《FPGA中的时序分析和设计》由会员分享,可在线阅读,更多相关《FPGA中的时序分析和设计(32页珍藏版)》请在金锄头文库上搜索。
1、FPGA中的时序分析和设计中的时序分析和设计本课程涉及的内容时序基础时序分析时序优化时序约束同步设计跨时钟域设计案例l时序基础 时序分析和序分析和设计是是为了回答以下了回答以下问题:为什么同一个FPGA烧写程序在同一个板卡上时好时坏? 为什么同一个FPGA烧写程序在不同批板卡上表现不一? 设计是否已经稳定?有多大裕量?怎样更稳定?设计是否可以跑得更快,怎样跑得更快?怎样对设计进行完整有效的约束,怎样确定约束是否完整和合理?为什么要进行同步设计,怎样进行同步设计?怎样进行跨时钟域的设计?l时序基础 数字域上的采数字域上的采样(最(最简模型)模型) 物理模型时序模型l时序基础 数字域上的采数字域上
2、的采样(内部模型)(内部模型)物理模型时序模型l时序基础 数字域上的采数字域上的采样(接口模型)(接口模型)物理模型时序模型l时序基础 数字域上的采数字域上的采样(全模型)(全模型) FPGA中的中的时序包括两大部分:序包括两大部分: 1,接口的接口的时序。序。 2,内部的内部的时序。序。 INCLKOUTDQCLRPREDQCLRPRE组合逻辑延时CLRl时序分析(模型) 三种路径:1.时钟路径2.数据路径3.异步路径*时钟路径异步路径数据路径异步路径DQCLRPREDQCLRPRE两种分析:1.同步路径 时钟 & 数据路径2.异步路径* 时钟 & 异步信号*在本例中异步路径是指控制寄存器异
3、步信号的路径l时序分析(发射沿 & 锁存沿) CLK发射沿锁存沿Data ValidDATA发射沿:“源寄存器”的输入端锁存信号的时钟沿锁存沿:“目的寄存器”的输入端锁存信号的时钟沿。 通常发射沿到锁存沿的路径是时序分析工具分析的路径,在有时钟频率约束的情况下,分析和布线工具会保证发射沿到锁存沿小于一个时钟周期(多周期路径除外)。l时序分析(建立时间 & 保持时间) 建立时间:时钟沿到来之前,数据必须稳定的最短时间。保持时间:时钟沿到来之后,数据必须稳定的最短时间。建立时间和(或)保持时间不满足是采样出错的根本原因。DQCLRPRECLKTh采样窗DATATsu时钟数据时钟边沿前后,数据均需有
4、个稳定期,以确保准确采样l时序分析(数据延时时间) 数据延时时间= Tclk1 + Tco +TdataCLKREG1.CLKTclk1Data ValidREG2.DTdata发射沿Data ValidREG1.QTcon从发射沿到数据到达目的寄存器输入端的时间REG1PRED QCLRREG2PRED QCLR组合逻辑Tclk1TCOTdatal时序分析(时钟延时) 时钟延时时间 = Tclk2 CLKREG2.CLKTclk2锁存沿n从时钟输入引脚到采样寄存器时钟引脚的延时REG1PRED QCLRREG2PRED QCLR组合逻辑Tclk2l时序分析(时钟歪斜/抖动) CLKREG2.
5、CLK时钟歪斜n从时钟输入引脚到采样寄存器时钟引脚的延时REG1PRED QCLRREG2PRED QCLR组合逻辑Tclk2REG2.CLK 时钟歪斜/抖动通常都是PS级,在常用芯片中甚至是100PS级,在分析时序时加一定的裕量就可以不考虑l时序分析(建立时间余量) Tclk2REG2.CLKn在锁存沿到来之前,实际数据稳定的时间超出能正确采样的Tsu的余量。n建立时间余量大于0是采样稳定的必要条件。TsuCLKREG1.CLKTclk1Data ValidREG2.DTdataData ValidREG1.QTco Setup Slack发射沿锁存沿REG1PRED QCLRREG2PRE
6、D QCLR组合逻辑Tclk1TCOTdataTclk2Tsul时序分析(保持时间余量) n在锁存沿到来之前,实际数据稳定的时间超出能正确采样的的余量。n保持时间余量大于0是采样稳定的必要条件。REG2.CLKTclk2ThCLKREG1.CLKTclk1Data ValidREG2.DTdataData ValidREG1.QTcoHoldSlack锁存沿REG1PRED QCLRREG2PRED QCLR组合逻辑Tclk1TCOTdataTclk2Thl时序分析(恢复/移除时间) 恢复时间:在时钟沿到来之前,数据已经稳定的最短时间。移除时间:在时钟沿到来之后,数据保持稳定的最短时间。跟同步
7、信号的建立时间和保持时间是类似的概念。DQCLRSETCLKTremValidASYNCTrecCLKASYNCl时序分析(异步和同步) 尽量用同步设计。异步信号一般只在没有时钟的情况下需要复位/置位操作时使用。同步等于所有的动作在时钟这个口令员的口令下同时动作,整齐划一,稳定性可靠。异步等于各信号各自为政,需要设计者搞清他们的关系,把他们都控制和安排好。异步设计不是不可以,但是增大了设计者的工作量,增加了设计的复杂度。ASSPreg1PRED QCLRFPGA/CPLDreg2PRED QCLROSCFPGA/CPLDreg1PRED QCLRreg2PRED QCLR用同步信号控制异步接口
8、(芯片间)用同步信号控制异步接口(芯片内)Data arrival pathData arrival pathData required pathData required pathl时序分析(IO接口分析)n接口时序分析必须考虑外部接口芯片的时序特性n接口时序分析包括外部走线的延时特性 FPGA/CPLDFPGA/CPLDreg1PRED QCLRreg2PRED QCLRCL*TdataTclk1Tclk2TCOTsu/ThOSC数据延时路径数据到达路径数据采样路径l时序分析(IO接口分析)n接口时序分析必须考虑外部接口芯片的时序特性n接口时序分析包括外部走线的延时特性 l时序优化(软件优
9、化选项)Quartus:ISE: l时序优化(软件优化选项)Quartus:ISE: l时序优化(软件优化的作用)n平衡不同的寄存器级在延时路径中的比重 l时序优化(软件优化的作用)n调整关键路径的走线方式 fgab - criticalLUTLUTcdeLUTLUTfgaecdbl时序优化(软件优化的作用)n使不同的级数之间延时变小 Nl时序优化(软件优化的作用)n较少扇出 l时序优化(更改设计) n增加寄存器把多级组合逻辑切断n系统延时组成:逻辑延时,走线延时n什么情况下需要这样做:60/40法则:逻辑延时大于总延时的60%,需要切断l时序优化(更改设计) VHDL VerilognIF嵌
10、套过多可能造成风险l时序优化(更改设计) IF 多层嵌套综合结果l时序优化(更改设计) Tclk2extTclk2int增加寄存器级数,对接口寄存器,可以放到IOB中l时序优化(更改设计) Tclk1extTclk1intl时序优化(总结)n组合合逻辑层次次过多多n信号扇出信号扇出过大大n接口接口时序序紧张n某些慢路径不某些慢路径不满足高足高时钟频率率n整个通路中,整个通路中,总某一部分不某一部分不满足足时序序n设计运行的运行的结果果时好好时坏坏方法问题n插入寄存器切断组合逻辑插入寄存器切断组合逻辑n复制信号减少扇出,保留复制的信复制信号减少扇出,保留复制的信号避免被工具优化号避免被工具优化n利用利用IOB中的寄存器,中的寄存器,IODELAY等等n多周期约束多周期约束n更改布线策略更改布线策略n增加区域约束增加区域约束n增大设计裕量增大设计裕量有待进一步整理