不满足建立时间则发生setuptimeviolation

不满足保持时间则发生holdtimeviolation

setuptime好修还是holdtime好修?
setuptime好修还是holdtime好修?说说道理。
说一些比较具体的方法,比如dc里和layout里操作。

我所知道的:
setup是由于数据太慢引起的,如果要修正,减少逻辑电路的延迟,加强驱动。
hold是由于数据太快引起的,加buf即可。
可以这样问,setup好修还是hold好修?
表面来说,hold好修,因为只是加buf,这样会影响到setuptime的问题;
setup难修,因为要更改设计,缩小延时,
加大buf,但是这样会引起holdtime的问题,反而变成一个复杂的问题。

2楼: >>参与讨论
hwwss
你的问题是一个时序规划的问题,需要在芯片设计之初就要全面
需要在芯片设计之初就要全面规划好,核心就是平衡好关键路径的延时。同时借助与布局的技巧可以提供更多的手段。

3楼: >>参与讨论
china_soc
你理解的概念有问题
1.setup不满足,那么hold一定满足;hold不满足,setup一定满足。
2.hold好解决(正常功能的hold,测试模式下的hold有些麻烦),加buffer既可,加了buffer一般不会使setup不满足,因为加几个buffer就满足了,延时一定不会大于一个时钟周期T.
3.setup不满足的时候,解决起来向有些麻烦,最直接的办法是降频,但是频率一般都是由系统定的,所以降频基本不用;ic常用的办法是在综合的阶段来解决,有时布版方面也可以帮忙;最后综合和版图都解决不了的,那么由rtl来解决
4.tohwwss:芯片设计初规划的只是规划每个MODULE的时钟,是规划不到MODULE内部两个时序元件的setupandholdtime的。

4楼: >>参与讨论
xyws
请教china_soc
请问china_soc,如何修测试模式下的hold,如何做测试模式下的时钟树?我是指在PR中

5楼: >>参与讨论
tiu
DCandlayout
setupviolation在综合时候解决。constrain有一些技巧。实在不行,就要改RTL.

holdtimeviolation在layout中解决,Astro会自动加上buffer的。但是最后几条软件也解决不了的path,就要靠最聪明的人脑了。



6楼: >>参与讨论
xianfeixue
我的看法
前提,不修改constraint

1.holdviolation好修,一般通过在datapath上加buffer
2.setupviolation一般通过减少datapath延时,或者通过延迟参考时钟,但延迟参考时钟有可能会使下一级register产生setupviolation

如果设计出来的IC有setupviolation,可以通过降频来使用,但如果存在holdviolation则不行。



7楼: >>参与讨论
china_soc
toxyws
如果前端rtl设计没有考虑到scan_ck的clocktree的问题,那么layout的时候很多要手工修,好像工具自动修比较困难(不一定对的,欢迎排砖)

8楼: >>参与讨论
semi_cd
我的理解
9楼: >>参与讨论
semi_cd
我的理解是……
我的理解是setup和hold的修调不存在哪个好修,只是解决方案不太而已!
另外,setup和hold在RTL级基本是无法预测的,在综合的时候必须要解决setup违背,而不严重的holdtime违背可以不修,因为在PR时会引入wiredelay,这些wiredelay可能会解决不严重的holdtime,而setup违背会更加严重!
我的理解,大家讨论!

10楼: >>参与讨论
toad1981
hold容易
hold容易一点吧,你加delaycell的时候要加在你voilation的那条路径的最后一级,即reg的D端就不会影响其它路径的setuptime了!

11楼: >>参与讨论
designanalyzer
..
DC里使劲修setup就行了,hold基本上不用管。

另外,
china_soc发表于2005-8-2309:08IC设计←返回版面

>你理解的概念有问题

>1.setup不满足,那么hold一定满足;hold不满足,setup一定满足。

为什么会这样呢?为什么不能setup&hold同时违反呢?
再想想看吧,你理解的概念有问题。;)

呵呵,不要误导了别的同学…

12楼: >>参与讨论
china_soc
todesignanalyzer

你的理解是两个时序元件间的延时非常小,小到数据t-setup以前就变化了,那新数据将旧数据冲掉了,而体现出setup和hold都不满足,但你想过没有,这个问题归根结蒂不还是hold的问题么,你在电路设计的时候,同一个path即调hold又调setup过么,没有吧,象上面的问题,调过hold那么setup就一定满足了,不妥地方请指教。
呵呵,你不误导了别的同学,但也不要太大牌么,说说理由,学习学习。论坛么,就是大家讨论的地方,我想谈不上误导,仅仅是建议而已:)。

13楼: >>参与讨论
designanalyzer
..
俺发现了个小问题,前面关于manualusefulskew的问题,确实也可能引起本级的问题。纠正一下。

但是于主旨无碍,setsup跟hold两者基本上没有必然联系。

14楼: >>参与讨论
windover
没争得巴
一个说同一路径,一个说两个时序元件之间的所有路径。



15楼: >>参与讨论
designanalyzer
有得争;-)
路径是用什么约束的?应该是from/to/through等等吧。
同一路径也有min/max之别,仍然可能同时存在setup&hold问题。

理不辩不明,请砸。

16楼: >>参与讨论
windover
同一路径也有min/max之别
〉同一路径也有min/max之别,仍然可能同时存在setup&hold问题。

你这是抬杠了。路径指path.



17楼: >>参与讨论
designanalyzer
..
路径=path,这个俺懂,懂了好久了。

请楼上直接指出偶哪里在抬杠。
偶还真的没看出来我抬在处,真心求教。

18楼: >>参与讨论
windover
同一路径
onepathfromffAtoffB.
pathesformffAtoffB.

中文中特别“同一路径”和“所有路径”区别。

19楼: >>参与讨论
designanalyzer
..
OK,如果你是完全地显式地指明了某条path的所有arc,那没得争。
但是请仔细看楼上各位讨论,有象你这样区分吗?以偏概全,值得商榷…

如果你坚持认为china_soc所说“1.setup不满足,那么hold一定满足;hold不满足,setup一定满足。”正确无误,俺只好不说话了。闪人,各位请继续。

如果你觉得我有断章取义的嫌疑,也请指出,谢谢!

20楼: >>参与讨论