请教 为什么一般先修setup再修hold啊?
在fix SI的时候为什么又先修hold,再修setup啊?
都可以吧, 一般来说setup time比hold time violation难修,
因为hold 只要地方, 插buffer就好了, setup 却不一定能修掉,
我觉得hold 比setup 难修
因为,setup一般来说是前端解决好了的,没有一个前端的setup的slack都不满足就把网表丢给后端。
所以,其实,hold才是必须要修掉的,一般都是后端加buf解决。
setup不满足,降频还能用,hold不满足,就只能扔了了。
hold 好修,加buffer就好了,
4楼说的极是
在什么时候降频呢?
一般情况 设计做好时setup都是好的 但我遇到过烂的设计 setup和hold都不干净
一般我们修setup采取size的方法 ,hold采取插buffer ,最后setup和hold都要清理干净,还要留出一定的margin
fix SI阶段先修hold 是为了尽量把设计中的hold 违反修干净,避免在routeSI阶段由于修Setup 导致设计空间不够而无法修hold的情况。
这个问题面试被问到了。伤了
修setup时,对space和routing resource要求比较高,再插入hold buffer之前,有更多的空间可以利用。而hold buffer放得远一点也无妨
修xtalk时,一般BC比较严重,修好了它,WC下,大部分就解决了
修复setup violation大致有以下几种方法
1. 减小路径中插的buffer的数量
2. 把buffer换成两个反相器而且两个反相器之间的距离要远些
3. 减小在buffer引脚上的电容
4. 减小buffer的size来减小通过buffer的时间
5. 确保clock uncertainty相对于你用的技术库不要太大
6. 最后就是你说的降低频率了。在修复setup的时候这种方法是最后考虑的
太厉害了,正在自学dc,虽然你说的我都没用过,但觉得好有道理的样子!
我还想问下,第二点,把buffer换成2个反相器,且反相器之间的距离要远些,是对于launch path而言吧,这个是出于什么考虑呢?传输延时不是增加了吗