FPGA内部结构及时序分析

2023-11-04


注:本文内容来源于B站UP主小梅哥爱漂流的视屏内容,本人整理出来前三节课的视频笔记,对视频内容感兴趣的同学可以去看看小梅哥的视频,视频链接为https://www.bilibili.com/video/BV1NE411h7qP?p=4&t=2584。

FPGA内部基本结构

现场可编程门阵列FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA的基本结构示意图如图所示,它由三个可编程单元和一个用于存放数据的静态存储器组成。这三种可编程的单元:输入输出(I/O)模块、可编程逻辑模块和互连资源IR,如下图所示。
在这里插入图片描述

实现基本逻辑关系的电路被称为门单元。

可编程输入输出块包括有:输出寄存器、输入寄存器、输出使能寄存器、输入延迟链、输出延迟链、上拉电阻;
可编程逻辑块的示意图如下图所示,LUT是指查找表。
在这里插入图片描述

查找表概述

Xilinx生产的FPGA采用SRAM——查找表类型的可编程原理。
一个N输入的查找表可以实现N个输入变量的任何逻辑功能。
当输入为0,选择上方通道,为1选择下方通道,四输入查找表内部结构如下图所示。
在这里插入图片描述
通过查找表,我们可以实现各种各样的逻辑电路。

数据传输路径

所以在数据传输路径的延迟时间主要包括内部走线延迟 、组合逻辑单元延迟n 和内部走线延迟n。数据传输的基本框图如下图所示
在这里插入图片描述
如果我们不考虑时钟的延时,我们可以根据数据传输路径分析一下整个数据传输的延时。
在这里插入图片描述
Tco:时钟上升沿到达D触发器 到数据传输出到Q端的延迟时间
Tsu:建立时间,目的寄存器自身特性决定,在时钟新年好上升沿到达其时钟接口时,其数据输入端(D)必须提前Nns稳定下来,负责无法保证数据正确存储。

时序分析模型

时钟树资源,全局时钟树能够让时钟信号达到寄存器的差距比较小,但是不能保证完全一致。时钟树结构示意图如下图所示:
在这里插入图片描述

时序分析的目的:通过分析FPGA设计中各个寄存器之间的数据与时钟传输路径,来分析数据延迟和时钟延迟之间的关系。系统中所有寄存器都能存储正确的寄存数据。

数据与时钟传输路径,由EDA软件,通过针对于某个特定的器件布局布线得到的。
时序约束的两作用:
①告知EDA软件,该设计需要达到怎样的时序指标,然后EDA软件就会根据时序约束的哥哥参数,尽快优化布局不信啊,以达到该约束的指标。
②协助EDA软件进行分析设计的时序路径,以产生相应的时序报告。
1、时序分析的基本模型,如下图所示。
在这里插入图片描述
基于时序分析模型,考虑时钟的延迟,我们得出下图波形图
在这里插入图片描述
分析数据传输路径建立时间余量的基本公式:Tclk1+Tdata+Tco<=Tclk+Tclk2-Tsu
满足以上公式时,目的寄存器能够正确接收源寄存器发射过来的数据。
公式变形得:Tclk+(Tclk2-Tclk1)-Tsu-Tdata-Tco>=0
Tskew=(Tclk2-Tclk1)
令Slack=Tclk+Tskew-Tsu-Tdata-Tco
Slack就是建立时间余量且要求Slack>=0;
基于建立时间余量的概念,我们有最高时钟频率的概念,也就是余量为0时的时候的最大时钟频率。

Tclk:时钟周期
Tclk1:时钟信号从时钟源端口出发到达源寄存器时钟端口的时间
Tclk2:时钟信号从源寄存器时钟端口出发到达目的寄存器时钟端口的时间 Tco:时钟上升延到寄存器时钟端到数据输出到寄存器Q端口的时间
Tdata:时钟从源寄存器Q端出发到目的寄存器D端口的时间 Tsu:寄存器要求其数据端口的值必须提前于时钟上升沿达到其时钟端口的时间值。
Tskew:始终从源端口出发达到目的寄存器和源寄存器时钟端口时间的差值。
Slack:数据需求时间和数据到达时间的差值,如果为正值,则表明数据被目的寄存器正确接收;如果为负值则反之。
Tclk1+Tdata+Tco:数据到达时间 Tclk+Tclk2-Tsu:数据需求时间

知识补充

问题:这个代码所描述的逻辑电路在cyclone IV E的EP4CE10F17C8(65nm)这个器件能最高运行在多少频率的时钟?
这个需要时序分析软件告诉我们答案。
时序分析一定要基于特定器件(该器件需要具体到一个特定型号的特定速度等级);
时序分析一定是基于某个逻辑设计在该特定期间上经过布局布线之后的网表(该网表包含了设计中每个逻辑具体在该器件的什么资源上面实现,而且还包括该资源在器件内的具体位置,还包括信号从每一个节点传输到下一个节点的具体延迟时间)。时序分析不是在对代码分析,而是在对真实的门级传输路径进行分析。

如果用户没有对时钟信号加约束,软件就会自动对分析出的时钟信号加入约束,这个约束会按照最大的可能来约束.。

温度越高,芯片内部信号传输速度越慢,因为温度可以改变硅片材料,泄漏电流和电子移动能力等特性,导致较高温度下芯片内信号传输速度变慢。传输速度变慢,延时就会增加,余量就会减少,从而导致时序不满足。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FPGA内部结构及时序分析 的相关文章

  • 【原创】always语句 和 initial语句

    过程语句 有 always语句 和 initial语句 相同点 1 always语句 和 initial语句 可以多次使用 2 always语句 和 initial语句 各语句块 整体 是独立运行 3 always语句 和 initial语
  • FPGA同步复位和异步复位的区别以及设计处理

    FPGA复位信号的设计处理 同步复位 同步复位 同步复位信号跟触发器的时钟是同步的 只有在时钟的跳变沿到来之后才会生效 对应verilog代码如下 这种写法会被编译器综合成同步复位 always posedge clk begin if r
  • SD卡读写实验(SPI模式)

    对于 SD 卡的 SPI 模式而言 采用的 SPI 的通信模式为模式 3 即 CPOL 1 CPHA 1 在 SD 卡 2 0 版 本协议中 SPI CLK 时钟频率可达 50Mhz SD 卡的 SPI 模式 只用到了 SDIO D3 SP
  • verilog中wire和reg类型的区别

    module counter parameter CNT MAX 25 d24 999 999 input wire sys clk input wire sys rst n output reg led out reg 24 0 cnt
  • 2022芯原芯片设计 笔试题分析和讨论

    2022芯原设计笔试题分析和讨论 以下仅为个人理解和分析 不保证正确 欢迎大家发表自己的想法 讨论出正确答案 企业知识题 1 1 D 芯原的主要经营模式为芯片设计平台即服务 Silicon Platform as a Service SiP
  • Verilog实现两路组相联cache

    cache代码 timescale 1ns 1ps cache共32块 分为16组 每组2块 即两路组相联 1块 4字 1字 4字节 主存共1024块 4096个字 主存地址共12位 1 0 为块内偏移 5 2 为组地址 11 6 为Tag
  • 输入延时(Input Delay)与输出延时(Output Delay)

    一 设置输入延时 Input Delay 1 不同的路径需要使用不同的约束 2 输入延时的定义 由下图可以看出Input Delay是以上游芯片的时钟发送沿为参考 上游的输出数据到达FPGA的外部输入端口之间的延迟 输入延迟 input d
  • xilinx xdma PCIe中断bug

    xilinx xdma PCIe中断存在bug bug1 此中断虽然是msi或者msx中断 但是不中断cpu bug2 此中断不是边沿中断 而是电平中断 在驱动层需要不断地轮训查询中断事件 bug3 此中断持续时间必须长 而且在收到中断应答
  • libero-soc许可证申请和环境配置

    环境 64位机 在哪台电脑上安装libero soc 就用哪台电脑申请许可证 1 注册 https www microsemi co 在官网注册 之后申请的许可证会发到注册时填写的邮箱 2 申请许可证 https www microsemi
  • 从零开始zynq linux AXI DMA传输

    本文从0开始叙述过程 使用的工具为vivado2016 4 sdk也是2016 4 准备工作 首先下载如下的目标文件 1 下载xilinx官方的bootloader文件 git clone https github com Xilinx u
  • 手机知识:手机的快充技术是什么,看完本文你就懂了

    目录 1 什么是手机快充 2 目前主流的手机快充协议 2 1 PD协议 2 2 PE协议 联发科 2 3 QC协议 高通 2 4 VOOC闪充 OPPO厂商 2 5 SCP FCP闪充 华为厂商 2 6 FlashCharge闪充 Vivo
  • FPGA实现VGA显示图片

    利用FPGA在带有VGA接口的液晶显示器上显示图片 电路原理图 端口说明 VGA R2 VGAB0的8个端口位VGA的RGB数据位 VGA HS为行同步信号 VGA VS为场同步信号 以分辨率为640x480为例 刷新速率为60Hz 每幅图
  • 在vhdl中生成随机整数

    我需要在 vhdl 中生成 0 1023 之间的随机整数 但是我在互联网上找不到这方面的好资源 请问有人帮我吗 下面是生成范围 0 1023 内均匀 均匀 分布的整数的示例 请注意 floor必须在与最大值 1 相乘之后使用运算 在本例中为
  • 基于FPGA的简易BPSK和QPSK

    1 框图 2 顶层 3 m generator M序列的生成 输出速率为500Kbps 4 S2P是串并转换模块 将1bit的m序列转换到50M时钟下的2bit M序列数据 就有4个象限 5 my pll是生成256M的时钟作为载波 因为s
  • 在 C 中操作 80 位数据类型

    我正在用 C 实现一些加密算法 其中涉及 80 位密钥 特定操作涉及将密钥旋转移位 x 个位数 我已经尝试过 long double 类型 如果我没记错的话 它是 80 位 但这不适用于位移运算符 我能想到的唯一替代方案是使用 10 个元素
  • 异步FIFO设计之格雷码

    目录 二进制转格雷码 格雷码转二进制 相邻的格雷码只有1bit的差异 因此格雷码常常用于异步fifo设计中 保证afifo的读地址 或写地址 被写时钟 或读时钟 采样时最多只有1bit发生跳变 在不考虑路径延时的情况下 因为源数据 读写地址
  • 使用 VHDL 实例化 FPGA 中的 RAM

    我试图按照中的指导实现双端口 RAM这篇优秀的博文 http danstrother com 2010 09 11 inferring rams in fpgas 然而 ModelSim 在编译时给出以下警告 Warning fifo ra
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • FPGA大输入数据

    我正在尝试向 FPGA 发送 4 KB 字符串 最简单的方法是什么 是我正在使用的fpga的链接 我正在使用 Verilog 和 Quartus 您的问题的答案在很大程度上取决于将数据输入 FPGA 的内容 即使没有您需要遵守的特定协议 S
  • 映射 MMIO 区域写回不起作用

    我希望对 PCIe 设备的所有读写请求都由 CPU 缓存进行缓存 然而 它并没有像我预期的那样工作 这些是我对回写 MMIO 区域的假设 对 PCIe 设备的写入仅在缓存回写时发生 TLP 有效负载的大小是缓存块大小 64B 然而 捕获的

随机推荐

  • CSS的基本使用

    CSS的基本使用一 1 CSS基本语法 CSS样式由选择器和一条或多条以分号隔开的样式声明组成 每条声明的样式包含着一份CSS属性和属性值 选择器名 属性 属性值 属性 属性值 div background color red 注意 css
  • 详解 http

    TCP IP 基础 在学习http之前 我们需要先了解一下TCP IP 网络基础 我们通常使用的网络 包括互联网 都是在TCP IP协议族的基础上运行的 而http则属于它内部的一个子集 TCP IP 分层 TCP IP 协议族按层次分 可
  • 前端Vue自定义加载loading组件 通过设置gif实现loading动画 可用于页面请求前loading

    前端Vue自定义加载loading组件 提高用户体验的关键 随着技术的发展 前端开发也变得越来越复杂 传统的一次性整体开发方式已经无法满足现代Web应用程序的需求 为了解决这个问题 我们引入了一种新的开发方式 组件化开发 组件化开发可以将一
  • 将编程上升为中小学主要学科课程,真的靠谱吗?

    近日 有人建议将 编程 上升为中小学主要学科课程 并列入 中高考升学考试体系 此话题瞬间引发广大家长及IT互联网圈内人士热议 褒贬不一 对此 我觉得网上的一种观点非常对 孩子们现阶段需要的是思想和素质教育 而不是单纯地通过某一类技工学科的学
  • 2023最新信息安全毕业设计题目选题大全

    0 简介 毕业季马上就要开始了 不少同学询问学长网安专业选题以及开题相关的问题 今天跟大家分享信息安全毕设选题 最新的信息安全 网络安全 专业毕设选题 难度适中 适合作为毕业设计 大家参考 学长整理的题目标准 相对容易 工作量达标 题目新颖
  • STM32CubeMX之RTC的使用

    本篇文章介绍STM32实时时钟 RTC 的使用方法 前期准备 STM32硬件电路板及仿真器 以STM32F407ZGT6单片机为例 Keil v5以上版本 MDK ARM 串口助手 实时时钟 RTC 是STM32单片机的标配 每个系列的都有
  • yolov5运行报错之RuntimeError: The size of tensor a (80) must match the size of tensor b (56) at.....

    错误 RuntimeError The size of tensor a 80 must match the size of tensor b 56 at non singleton dimension 3 如图 解决方法 https gi
  • idea登录github时出现Invalid authentication data. connect time out问题解决方法

    辛辛苦苦注册好GitHub 安装了git客户端 弄好ssh后 用IDEA登录GitHub账号 又出现问题了 好吧 一番搜查之下终于找到了解决办法 问题图如下 解决办法 file gt setting gt system settings去掉
  • Style 中的 ‘>>>‘ 与 ‘ /deep/(sass/less)‘介绍

    Vue style 深度作用选择器 这两个深度选择器的主要作用就行修改UI库中的默认样式 gt gt gt page gt gt gt van skeleton margin top 10px gt gt gt van skeleton t
  • 合理利用泛型擦除

    曾几何时 一直痛恨java的泛型擦除 为了适配老版的jdk java引入泛型的同时 引入了泛型擦除机制 导致想要获取类中的泛型 需要都个圈子 具体可以看我这篇博客 获取泛型的类 前不久使用Mybatis plus分页 但发现PO对象不满足接
  • Transformer《Attention Is All You Need》精读

    文章目录 1 研究背景 2 研究动机 3 模型结构 3 1编码器 3 2 解码器 3 3 Attention 3 4 Multi Head Attention 3 5 模型中Attention的应用 3 6 Position wise Fe
  • 计算机指令——从纸带说起

    前言 其实很多时候我都会感叹计算机的伟大 通过一个个电路就完成了如今各种系统 通过各种各样的语言就能够指挥设备完成不同的动作 当写下第一个hellow world的时候我就在想他什么怎么出现 今天搞明白其中的原理 我在这和大家分享 打孔卡
  • 使用ROS连接两台电脑时,只能看到对方设备的IP,但是订阅不到ros消息

    ROS连接两台设备 利用Ros通信 两台电脑需要处于同一局域网下 1 查看主机 从机 ip hostname ifconfig 查看ip 如果电脑连接的时有线网 则显示结果中 etho 部分的 inet addr 后面就是该电脑的 IP 地
  • java kotlinlang_Kotlin与Java互操作

    1 Kotlin 调用Javaimport java util fun demo source List val list ArrayList for item in source list add item for i in 0 sour
  • redis基本命令

    转 https www cnblogs com woshimrf p 5198361 html 目录 全局操作 1 redis是key value存储的 放在内存中 并在磁盘持久化的数据结构存储系统 2 redis提供原子自增操作incr
  • 学习算法之路(转载)

    第一阶段 练经典常用算法 下面的每个算法给我打上十到二十遍 同时自己精简代码 因为太常用 所以要练到写时不用想 10 15分钟内打完 甚至关掉显示器都可以把程序打 出来 1 最短路 Floyd Dijstra BellmanFord 2 最
  • Recent Advances in Deep Learning for Object Detection

    Recent Advances in Deep Learning for Object Detection Abstract 1 Introduction 2 Problem Settings 3 Detection Components
  • python修饰器原理_Python修饰器的函数式编程

    Python的修饰器的英文名叫Decorator 当你看到这个英文名的时候 你可能会把其跟Design Pattern里的Decorator搞混了 其实这是完全不同的两个东西 虽然好像 他们要干的事都很相似 都是想要对一个已有的模块做一些
  • 【RDMA】降低CPU除了RDMA (vbers)还是VMA ?

    前言 看介绍 像是mellonx针对其kernel bypass网卡 RDMA网卡 提供的一个lib库 该lib库对外提供socket api 使得用户的程序不需要修改就可以直接使用kernel bypass网卡 如RDMA网卡 我们都知道
  • FPGA内部结构及时序分析

    FPGA时序分析 FPGA内部基本结构 查找表概述 数据传输路径 时序分析模型 知识补充 注 本文内容来源于B站UP主小梅哥爱漂流的视屏内容 本人整理出来前三节课的视频笔记 对视频内容感兴趣的同学可以去看看小梅哥的视频 视频链接为https