Timing paths:
1, input - to - register timing path
2, register – to – register timing path
3, register – to – output timing path
4, Combinational Paths
Input 输入后没有经过时序,纯组合逻辑到output输出。
Input delay
依据原则就是,将其补成一个register – to – register path
所以外围模拟计算input delay时clk用的时input 的clk 。T input delay <=> Tc-q + 到达in之前的路径延迟
Output delay
依据原则同样是,将其补成一个register – to – register path
所以外围模拟计算output delay时clk与前一个触发器的用同一个时钟源。T output delay <=> 从out之后到外围下一个触发器之前的路径延迟 + Tsetup
Constraining Combinational Paths by Virtual Clock
在某些情况下,有必要创建一个存在于系统中但不在设计中的时钟。
如果未指定源对象,则使用虚拟时钟,该时钟在设计中实际上不存在。
源对象表示设计中时钟的位置。 源对象可以是设计的输入端口或设计内的引脚虚拟时钟没有来源。
它存在于内存中,但不是设计的一部分。
虚拟时钟指定相对于时钟的输入和输出延迟
虚拟时钟未连接到当前设计中的任何端口或引脚。
同步时钟 :
从同一个时钟源出来的 可以经过pll分频成不同的频率 但其相位关系已知 故同步
从不同时钟源出来的,即使频率相同 也不同步
即: 同源同频 <=> 同步 ,同源不同频 <=> 同步 ,同频不同源 <=> 不同步
静态时序分析:
在一个时钟驱动下数据在时钟上升沿从FFI出来 经过组合逻辑运算之后
在下一个时钟上升沿来临前至少setup时间 到达FF2让其寄存住数据
(附加:在流水线中,其中一步是比较大的组合逻辑,运算时间比较久,而下一级计算比较简单,根据上图可以得到启示,向下一级借时间。具体做法是:比如上图FF1,FF2之间为本级运算,那么可以在FF2的CLK前加一些buff,使其向后偏移一定时间,则该级拥有了比之前长的计算时间,但是由于下一级的时钟沿(FF3)到达时间不变,则相当于缩短了下一级的计算时间)
如果slack为正则说明有时间裕量,时序要求满足。