1 输入路径约束
由于STA不能检查不受约束路径上的时序约束,因此需要约束所有路径来进行时序分析
当然,如果存在一些输入控制信号,我们并不关心其信号时序,可能并不需要进行时序检查
如下图是一个待分析设计(DUA),UFF0是外部设计,其输出是UFF0的输入,并且UFF0在设计内部,二者的数据通过输入port INP1连接

UFF0和UFF1都是由时钟CLKA驱动的,了解过建立时间和保持时间的应该知道,在第一个时钟上升沿UFF0发送数据,UFF1在下一个时钟上升沿接收数据,因此CLKA的周期应该是数据从UFF0到UFF1的时间
接下来根据上面的图分析时间
对于外部设计,从UFF0到端口INP1时间的是UFF0需要的时间Tclk2q(CK端 -> Q端的时间)+ C1所需的时间Tc1
那么输入端口INP1上的延迟定义指定的是外部延迟的总和(Tclk2q + Tc1)
假设Tclk2q是0.9ns,Tc1是0.6ns,那么输入延迟约束为:
set Tclk2q 0.9
set Tc1 0.6
set_input_delay -clock CLKA -max [expr Tclk2q + Tc1] [get_ports INP1]
根据这个约束可以知道,输入端口INP1的外部延迟是1.5ns (Tclk2q + Tc1),如果时钟CLKA的周期是2ns,那么端口INP1只剩下500ps(2ns - 1.5ns)的时间可以在设计内部传播
也就是说,UFF1要想在下一个时钟上升沿捕获UFF0发送的稳定的数据,Tc2 + UFF1 setup时间必须小于50

本文详细介绍了时序分析中的输入路径和输出路径约束设置。通过设置输入延迟和输出延迟,确保电路在给定时钟周期内满足建立时间和保持时间要求。举例说明了如何根据UFF0和UFF1之间的数据传输来设定输入和输出路径约束,以及如何考虑最大延迟和最小延迟。此外,还提到了在具有多个输入和输出端口的设计中如何进行约束设定。
最低0.47元/天 解锁文章
386

被折叠的 条评论
为什么被折叠?



