怀集建设房管部门网站,外贸网站建设合同,海外网络推广,好品质高端网站设计新感觉建站一、基本概念理解
对于数字系统而言#xff0c;建立时间#xff08;setup time#xff09;和保持时间#xff08;hold time#xff09;是数字电路时序的基础。数字电路系统的稳定性#xff0c;基本取决于时序是否满足建立时间和保持时间。 建立时间Tsu#xff1a;触发器…一、基本概念理解
对于数字系统而言建立时间setup time和保持时间hold time是数字电路时序的基础。数字电路系统的稳定性基本取决于时序是否满足建立时间和保持时间。 建立时间Tsu触发器的时钟信号触发沿到来以前数据要维持稳定不变的时间。如果D进入Tsu后仍然变化如图1就不满足建立时间可能出现亚稳态。
保持时间Th触发器的时钟信号触发沿到来以后数据要维持稳定不变的时间。如果D进入Th后仍然变化如图1就不满足保持时间可能出现亚稳态。
输出时间Tco触发器的时钟信号触发沿 到 数据从D稳定输出到Q所需时间。
建立时间裕量setup slackD数据变化已稳定到Tsu之前。
保持时间裕量hold slackTh之后到D变化之前。 同步信号和时钟信号有关实际上输入信号和时钟信号进行了与运算或与非运算输入信号和时钟信号的运算结果为有效状态时器件的状态才会改变。
异步信号信号和时钟信号无关输入信号变为有效状态时器件的状态就会立即改变
恢复时间Recovery Time指异步控制信号在“下个时钟沿”来临之前变无效的最小时间长度。如果保证不了这个最小恢复时间也就是说这个异步控制信号的解除与“下个时钟沿”离得太近没有给寄存器留有足够时间来恢复至正常状态就不能保证“下个时钟沿”能正常作用也就是说这个“时钟沿”可能会失效。
去除时间Removal Time:是指异步控制信号在“有效时钟沿”之后变无效的最小时间长度。 这个时间的意义是如果保证不了这个去除时间也就是说这个异步控制信号的解除与“有效时钟沿”离得太近那么就不能保证这个“有效时钟沿”能正常作用也就是说这个“有效时钟沿”可能会失效。 FAN-OUT某信号扇出值即驱动几个寄存器。
FPGA组成
①可编程输入/输出单元可配置不同阻抗特性电流大小等。
②基本可编程逻辑单元由查找表LUT用于组合逻辑与寄存器Register用于时序逻辑。
③嵌入式块RAMFPGA内嵌的RAM可配置为单端口/双端口RAMFIFO等。FPGA还可外挂ram芯片等。
④布线资源全局专用布线资源全局时钟/全局复位、长线资源长度、驱动能力仅次于全局资源可用于高速信号、短线资源用于基本的逻辑单元连线。
⑤底层嵌入功能单元不固定。
⑥内嵌专用硬核
FPGA同源时钟源寄存器和目的寄存器应用同源时钟驱动同源指源头是同一个时钟相位差相同比如由同个PLL输出的俩时钟。
阻塞触发器由时钟触发在时钟触发沿到来之前输出值不会因为输入值改变输入值被阻塞即电路具有维持阻塞作用。由此理解阻塞赋值与非阻塞赋值非阻塞即组合逻辑使用时序逻辑替代组合逻辑可以提高时序性能。
FPGA实现可编程通过查找表LUT由与或非等逻辑组成的特定逻辑表达式真值表实现任意组合逻辑通过D触发器与时钟实现时序逻辑。FPGA架构如下图。 一个LUT里面可以实现各种组合逻辑与、或、非门等LUT 里面实际有16个1bit 的基于 SRAM 结构的存储器能够对应 a、b、c、d 四个输入的逻辑组合的所有可能 Quartus 通过向这16bit的存储器里写入不同的初始值就能使abcd 四个输入在不同的状态下输出不同的逻辑结果从而实现使用一个LUT实现各种组合逻辑的功能。 最高运行时钟频率Fmax在保证设计时序收敛的情况下将时钟沿提前Tslack最小建立时序余量时间后得到的新时钟的周期即最小时钟周期对应最高运行时钟频率。即一个系统最高能跑多少兆而不出错时序报告看。
Slow 1200mV 85C Model芯片内核供电电压 1200mV工作温度85度情况下的慢速传输模型。
Slow 1200mV 0C Model芯片内核供电电压 1200mV工作温度0度情况下的慢速传输模型。
Fast 1200mV 0C Model芯片内核供电电压 1200mV工作温度0度情况下的快速传输模型。
时序分析的对象是网表模型。网表就是 Quartus 软件经过编译布局布线后得到的实际适配某一个特定型号芯片的电路信息该电路信息就是对应下载到芯 片中后实际在芯片中呈现的电路。 二、FPGA内部约束条件公式推导
触发器-触发器 / 外部器件-FPGA 的数据传输示意图 Comb为组合逻辑时延pcb为pcb板走线时延
1.建立时间约束条件
(即满足建立时间数据是稳定的)
Tco Tcomb Tsu Tclk Tskew时钟偏移
即Tco Tcomb Tclk Tskew时钟偏移- Tsu 由此可知满足建立时间约束条件的Tclk最小值为
Tclk(min) Tco Tcomb Tsu - Tskew时钟偏移
则最高时钟频率为: F(max) 1 / Tclk(min) 2.保持时间约束条件
(即满足保持时间数据是稳定的)
Tco Tcomb Th Tskew时钟偏移 3.建立时间约束与保持时间约束联立
Th Tskew时钟偏移 Tco Tcomb Tclk Tskew时钟偏移- Tsu
具体电路具体分析反正就根据给出的时序图和参数按照建立时间与保持时间的定义来解保证没有亚稳态。即前一级输出到寄存器的时间 不能进入当前级的建立时间当前级的保持时间不能超过当前级输出到下一级的时间。 三、题目 总结求解电路的Tsu和Th从电路的内部寄存器出发假设裕量为0从内层往外层推导。
四、IO延时约束 IO约束确保外部器件输入到FPGA时满足FPGA输入寄存器的建立时间和保持时间确保FPGA输出到外部器件时满足外部器件的建立时间和保持时间。
1.输入最大最小延时 输入延时外部器件发出数据到FPGA输入端口的时间。定义 表达式Tin Tco Tpcb – Tskew 这里Tskew为什么是-可以从上面的建立时间约束公式理解
其中Tco 为外部器件发出数据的时间Tpcb为PCB板级走线的延时时间Tskew为两个器件的时钟边沿延时时间。 根据表达式和器件物理特性可以确定 最大输入延时Tin(max) Tco(max) Tpcb(max) – Tskew(min) 最小输入延时Tin(min) Tco(min) Tpcb(min) – Tskew(max)
故需估算Tco、Tpcb、Tskew。 从而对FPGA的IO口进行最大最小延时约束优化从输入端口到第一级寄存器的路径延迟保证系统时钟可靠采集到从外部来的信号。
2.输出最大最小延时 输出延时FPGA输出数据后到达外部器件的延时时间。定义 最大输出时延Tout max Tpcb(max) Tsu – Tskew(min)
其中Tpcb为PCB板级走线的延时时间Tskew为两个器件的时钟边沿延时时间Tsu为外部器件的建立时间。
最小输出时延Tout min Tpcb(min) - Th – Tskew(max)
其中Tpcb为PCB板级走线的延时时间Tskew为两个器件的时钟边沿延时时间Tsu为外部器件的保持时间。 约束最大输出延时是为了约束IO口输出防止输出过慢使外部器件的数据建立时间裕量为负约束最小输出延时是为了约束IO口输出使IO口输出一个最小延时值防止输出过快破坏了外部器件上一个时钟周期的数据保持时间导致保持时间裕量为负。
即通知编译器FPGA的Ftco最大最小值根据这个值去综合。 对于一些参数:
PLL产生时钟信号到源寄存器的时钟延时即使是走全局时钟网路这一延时虽小但是必然存在。 值不知道但是TimeQuest Timing Analyzer软件可以知道EDA软件可以一定程度控制其值大小
Tco值不知道但这是一个固有的物理参数其值TTAEDA软件也知道
数据从寄存器Q端口产生后到达IO口在FPGA内部传输所花费的时间。值不知道但是TTA软件可以知道EDA软件可以一定程度控制其值大小
在PCB走线传输花费的时间。可以计算的5555mil/ns看器件
输出时钟到达FPGA引脚的延时值不知道但是TTA软件可以知道EDA软件可以一定程度控制其值大小
输出时钟到达外部器件的走线延时可以计算的5555mil/ns看器件
五、时序约束
作用
1.提高设计的工作频率告知EDA软件我们的时序标准。指示布局布线器在诸多路径中选择正确的方式减少时延保证编译结果能够尽可能稳定运行在你指定的时钟频率下。
2.作为静态时序分析工具的判断标准提供正确的时序分析报告。
Clock transfer:跨时钟域传输
在高速系统中时序约束包括
1.内部时钟约束
2.IO时序约束
3.时序例外约束
才能实现时序收敛
需要特别指出的一点是由于时序分析是针对时钟驱动的电路进行的所以分析的对象一定是“寄存器-寄存器”对。在分析涉及到I/O 的时序关系对时看似缺少一个寄存器分析对象构不成“寄存器-寄存器” 对其实是穿过FPGA 的I/O 引脚在FPGA 外部虚拟了一个寄存器作为分析对象。
对于源寄存器和目的寄存器中有一个不在 FPGA 内部的情况下单纯约束 FPGA的时钟是无法让 EDA 软件对这样的路径进行分析。
做时钟约束主要就是告诉EDA软件输入的时钟信号的频率。
IO约束就是通过告知 EDA 软件一些IO传输路径中的已知时间参数来让 EDA 软件编译并控制 FPGA 内部的各个路径传输延迟使得总的路径能够满足建立时间余量为正的目的。
1.内部时钟约束 在代码里时钟信号你写input CLK_50M你知道这是50Mhz的时钟但EDA软件如quartus它不知道只知道这是个时钟端口它会根据时钟信号进行时序分析后生成电路网表不同的时钟信号会生成不同的优化电路网表。如果不进行时钟约束EDA软件会自动分配一个时钟信号编译后可以查看Clocks选项看该信号频率不一定是我们想要的所以需要进行时钟约束告诉EDA软件这个时钟信号的频率指导其布局布线。 时钟约束步骤使用timing analyzer依照timiequest timing analyzer文件进行即可。 2.IO时序约束 IO口约束针对最大最小输入时延和最大最小输出时延可以在constraint-set input delay 以及 set output delay 中设置。 IO时序分析分为系统同步和源同步两种。
系统同步基于同一时钟源进行系统同步器件间的传输延时无法确定不能进行高速数据的传输。
源同步源同步输出的信号有时钟和数据信号输出时钟由FPGA产生有多种输出方式如锁相环ALTDDIO IP核状态机驱动数据的时钟。 2.时序例外约束
2.1伪路径例外伪路径表示该路径实际存在但该路径的电路功能无须考虑时序约束。通过定义伪路径通知vivado等FPGA开发软件无需对这些路径进行时序优化布线。这样FPGA开发软件就会自动跳过这部分路径的优化可以减少综合布线的优化时间。使用伪路径命令可以有效地减少时序分析的复杂度同时提高系统性能和可靠性。
六、提高Fmax
影响Fmax的是寄存器到寄存器传输路径中延迟最大对应的建立时间余量最小的那一条path保证目的寄存器能够正确接收数据所能够运行的时钟信号的最大频率。
1.找最坏路径在综合报告中Timequest timing analyzer - slow 1200mv 85c mode-worst-case timing paths,点击Setup:就能在slack这一列看到建立时间余量的排序。这个余量以你约束的launch clock时钟作为参考。可以根据这个余量来提升你的工作时钟频率从而提高系统性能。正的表示在参考时钟频率下还有建立时间余量负的表示无余量系统Fmax达不到你要的频率。 2.点击最坏路径的To node 的一个信号右键找到locate-locate in design file。找到该信号的设计逻辑起点与终点分析设计中是否引入了多层组合逻辑针对优化。
3.优化的方法可以为插入寄存器大法。在多层组合逻辑中间插入触发器即时序逻辑将原本较长的组合逻辑链路路径切割为了两段较短的组合逻辑路径便可减小传输延迟。这会带来一个时钟周期的延迟。
4.优化后重新编译可能性能只提升一点点因为也许之前的关键路径解决了但是马上又会有新的路径成为关键路径需要再对新的关键路径进行分析直到最后满足设计需求或者再也无法优化。
七、芯片版图 由多个逻辑阵列块组成Logic Array BlockLAB浅色为未使用资源深色为已使用资源黑色区域为一些固定功能的资源或没有资源用户不可对其进行任意配置。
1逻辑阵列块Logic Array BlockLAB每个LAB由16个LELogic Element组成。 2逻辑单元Logic ElementLE每个LE由一个寄存器和一个查找表组成。 内部结构 由查找表、寄存器、进位链、数据选择器组成。查找表大部分采用SRAM工艺即存储真值表实现组合逻辑寄存器可配置成触发器、锁存器、同步/异步复位等模式进位链方便加法器实现。 锁相环PLL 的时钟输入可以是PLL 所在的 Bank 的时钟输入管脚或者其他 PLL 的输出FPGA 内部产生的信号不能驱动PLL。 时序分析时可以通过在data path页面右击选择locate到chip planner从而在芯片版图上看路径连线等情况。