建立时间和保持时间不满足如何解决
自己编写SDC文件进行约束
setup violation
主要就是设法剪掉critical path的delay,要么pipeline,要么retiming,要么把combination往前后级挪一挪。
hold time violation
hold time violation是clock tree的skew引起的。主要的宗旨就是设法加前面一级combination的delay,比如加buffer什么的。这时候hold time不满足必须让前前面延迟大一些,并大到比clock period还大出至少一个hold time来。也可以适当把clock period缩小。不过hold time并不是自己能控制的,挺闹心的。
在综合时,综上所述,
setup violation是由于前级组合的延迟过大引起的,因此要用set_max_delay来限制,
hold violation是由于前级组合延迟国小引起的,因此不能让他太小,要用set_min_delay来限制。
个人的一般处理方法是用流水线分一下
2楼,牛
不是很清楚,看看
setup violation是由于前级组合的延迟过大引起的,因此要用set_max_delay来限制,
hold violation是由于前级组合延迟国小引起的,因此不能让他太小,要用set_min_delay来限制。
胡扯,这个是例外约束。不是路径延时。这个只能改变指定路径发射沿和锁存沿的关系,就是他会用你设置的值来分析。根本起不到约束延时的目的!
学习了
仍旧看不懂
用流水线细分一下怎么样
可能芯片本身Fmax达不到。
好像一般保持时间容易满足,但是建立时间不容易满足……听说要多注意组合逻辑,不能让组合逻辑的延时太大,这个会影响fmax
胡扯,这个是例外约束。不是路径延时。这个只能改变指定路径发射沿和锁存沿的关系,就是他会用你设置的值来分析。根本起不到约束延时的目的!
您的意思是否是,调整(源端)发射和(目的端)所存沿的关系,工具在分析时序时就将该制定路径作为一个特例,在setup hold满足所设定的值范围内就认为是二者都没有violation 。
总结起来不跟LS那位一个意思吗?还是我理解有什么问题,请指教
我也是认为set_min_delay似乎可以约束路径
UG里说道:
The following example specifies that all timing paths from ff1/CP to ff2/D that pass
through one or more of {U1/Z U2/Z} and one or more of {U3/Z U4/C} must have delays
greater than 3.0 units.
pt_shell> set_min_delay 3.0 -from ff1/CP -through {U1/Z U2/Z} -through {U3/Z U4/C} -
to ff2/D
大侠,能否再稍微细致的讲一下,或者举个例子,给个脚本 多谢啦
