请教 面试中时序不满足问题
最近有师弟问我他面试时老有人问他逻辑综合时序不满足该怎么办?
除了插寄存器,换工艺库我也回答不出,请教版上高人,这种问题怎么回答靠谱?
是setup还是hold不过啊?
setup不过,重新约束,ungroup,retiming,换cell,重新设计等等
hold, copile -fix_holdtime, 换cell, 插delay,暴力写脚本插dly都可以
首先谢谢
我觉得面试官关键在于 这个 如何 重新设计 吧
关键是比如已经确定流水级了,又需要实现特定逻辑,感觉比较难搞
我的拙见:首先检查constraint。如果没问题可以衡量violation的大小,一般很小的violation后端都是能够修掉的。如果想在P&R前就去修掉首先可以运用综合工具试试,如group path,retiming等,其次可以SVT换HVT,最后可能就得修改设计了。当然,前面说的是针对setup violation,对hold violation, 一般可以用ECO插delay buffer来解决。 欢迎讨论。
hold比较简单
setup现在,从rtl角度就几个办法,想法减少逻辑和扇出
综合时时序不满足肯定是setup的问题。具体要看slack,很小的话并且综合的约束比较紧可以忽略,比较大的话要看是不是约束的问题,比如本来是多周期路径等,修改设计只能作为最后的手段。
“其次可以SVT换HVT”
菜鸟弱问:不应该是SVT换LVT么?
LVT :low voltage threshold.
HVT: hign voltage theshold.
SVT: standard voltage theshold
补充一下,对delay:L<S<H,对leakage正好相反:L>S>H,所以在power允许情况下可以用delay小的cell来修violation。
先看看constraint和design本身,特别是在早期的时候
useful skw 有用
只有特定情况下才能用
从前一级或者后一级借时间
很有用的
别说一级,借几级都没问题,但是不到万不得已一般不用