时序约束学习笔记
Reg2reg类型:,以源时钟为起点分析。
建立时间余量Tsu slack = data require time - data arrive time = Tcycle + Tclk2 - Tsu - (Tclk1 + Tco + Tdata)



Vivado时序约束报告里的建立时间要求有时候会是正值,可能是因为到d触发器数据端到内部cell还有一些延时,或者是因为目的寄存器的时钟pin到内部时钟之间增加了延时,这两种都会导致建立时间要求为负值。
Clock pessimism :时钟悲观值,将源时钟路径的时钟延时取最大值,目的寄存器时钟路径延时取最小值,即Tclk1最大,Tclk2最小,在满足最差的时序条件下得到的值。
clock uncertainty:时钟不确定度,由器件决定。
保持时间余量 Thold slack = data finish time - clock require time = Tcycle + Tclk1 + Tco + Tdata - (Tcycle + Tclk2 + Th)
根据公式也可以看出,保持时间余量与时钟频率无关。
保持时间为最小分析(分析所有可能情况里最快的那一种,即最极限的那种,corner),建立时间为最大分析,与公式里的Tdata有关,在保持时间余量计算公式里,Tdata越小,余量越小,建立时间则相反。

约束时钟就是为了让vivado工具尽量帮我们综合成理想的情况,时序分析之前一定要约束管教与时钟。
感谢尤老师。