好记性不如烂笔头,记录下vivado寄存器与寄存器之间的时序分析方法,本篇介绍vivado setup的分析方法,本篇为个人理解,如有错误,望指正。
如下面几幅图所示,主要分为四个部分:
- 从图中可以看出这条路径的基本信息,slack为时序裕量,source为源寄存器,destination为目的寄存器,requirement为时钟周期,data path delay为数据路径延时,logic levels为逻辑级数。Clock path skew为时钟到达目的寄存器的时延与时钟到达源寄存器时延的差值,clock uncertainty为时钟的不确定性,与clock jitter等因素相关,个人理解与时钟信号的质量关系最大。
- source clock path源时钟路径,也就是时钟从起始位置到达源寄存器时钟输入端的时延,本篇分析的时钟来源于ZYNQ PS 侧的FCLK,因此起始点在PS侧,第一个net延时为PS7到BUFG的延时,为0.994ns。第二个延时为BUFG的延时,为0.085ns。第三个延时为BUFG输出经过时钟树到达源寄存器时钟输入端的延时,为1.675ns,从时钟信号起始到源寄存器的时钟输入端,一共延时2.755ns。
3.数据路径的延时,数据路径的延时是从时钟信号的起始位置开始计时的,时钟信号到达源寄存器的时延为2.755ns, TCQ即寄存器从时钟上升沿采样到寄存器Q端输出数据的时延为0.398ns。源寄存器输出到达目的寄存器的路径和逻辑时延为5.077ns,一共8.230ns。即目的寄存器的数据输入端会在8.230ns时改变。
4. 目的时钟路径的时延,即时钟从起始位置到达目的寄存器的时延,起始位置为0+7ns,即加了一个clk周期,从起始位置到达BUFG的时延为0.905ns。BUFG的时延为0.077ns。BUFG输出到达目的寄存器时钟输入端的时延为1.277ns。clock pessimism为时钟悲观为0.109ns,何为时钟悲观,可参考这篇连接,https://forums.xilinx.com/t5/Timing-Analysis/What-is-quot-clock-pessimism-quot/td-p/284876 。因为STA时穷举法分析,计算clock sknew时,时钟到达目的寄存器输入端的延时用最短延时路径计算,时钟到达源寄存器输入端的延时用最长延时路径计算,但实际中这种情况是不可能存在的,因为时钟从起始位置到达BUFG输出这段路径时一样的,为了补偿这段计算过于严苛,超出实际情况的延时,所以在目的时钟路径的时延上加上clock pessimism。Clock uncertainty为时钟的不确定性,为0.111ns。FDRE为目的寄存器的setuptime,也就是寄存器的最短建立时间,即数据要领先时钟0.479ns到达寄存器输入端。最后的requiretime即为数据路径延时最长时间,与上面的实际数据路径延时的差值即为slack。
转载地址:https://blog.csdn.net/weixin_43048906/article/details/103040495