update_io_latency用在什么情况下
对应update_io_latency命令,该命令是什么意思,具体用在什么情况下,看过该命令的man后还是不太理解,man上是这样写的:
Provides an automated means of balancing IO and Core clock latencies after the clock network has been added to the design so that pre and post clock tree skew between the clocks is maintained as closely as possible. This results in minimum change of inbound andoutboundIO slacks.
我的理解是,该命令调节input pins的input_delay or output_delay 的值来满足in2reg or reg2out的slack>=0(即,工具自己调整约束),是这个意思吗?
欢迎大家批评指正.
做完CTS,调整IO timing
通常就是对io timing进行调整,对io clk(包括virtual clk)的latency进行反标,
其实没太大用处,只是io timing report看的更真实一些罢了
也就是io timing多了clk latency这一项,不是place那个阶段的0值
多谢icfb小编回复,明白了!
那为什么会有在SDC中设clock_latency呢?还有如果在CTS之后update_io_latency,原来SDC指定的clock_latency是否还起作用呐?
谢谢
1.sdc中有clock latency:我觉得,除非有什么特殊意义(比如想让clock tree的insertion delay大于某个值),clock insertion delay一般没有必要在SDC中设置,source latency可以设置上,或者说你在读入约束的时候可以问一下综合的人,自己把约束稍微做一些修改.
2.假如sdc中存在clock latency的话,update_io_latency是否有作用:这个问题的意思是说,该命令在update的过程中是honor sdc中的制约还是honor 实际的clock insertion delay,个人觉得会honor sdc中的制约,因为我曾经碰到过在encounter中CTS后,忘记修改约束了,在设置set_propagated_clock [all_clocks]后,对于generated clock的source latency的值依然用的sdc中的值而不是实际的大小.
以上为个人观点,欢迎批评指正
学习了!
对pr后端来说,不需要使用set_clock_latency 语句,会混淆cts 自动propagated的值,
主要是给前端综合提供信息的