微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 解决setup和hold违例加buffer的原理是怎样啊

解决setup和hold违例加buffer的原理是怎样啊

时间:10-02 整理:3721RD 点击:
给位大侠,小弟对加buffer还有点不清楚,违例是不是都是负值啊,他是以那个时间为参考的啊,加上buffer,不是延时效果吗,哎,不清楚啊,希望各位大侠不吝赐教啊

fix hold是延迟data path,当然在datapath上插入buffer或者delay cell
fix setup path是缩短data path,有时候插入buffer有修复transition的效果
transtion修好了,路径自然就快了,

violation就是显示为负。
插buffer可以解决hold time violation的问题。因为hold time就是指数据需要保持一定时间才能让输出稳定,即在这段时间内不能有新的数据到达。所以hold time violation就是说新数据来得太快,所以插入buffer到data path可以可以让新数据来得慢一点。就解决了violation的问题。
setup time就是说数据在时钟到来前一定要建立一段时间,所以在数据就要在时钟来之前就已经到达锁存器的D端,所以这个时候如果要插入buffer就插到该锁存器的clk端口就可以解决violation的问题了

buffer driven strenge not the same,!

建立时间和保持时间违例都能用插入buffer来解决吗?

插buffer修setup是加大buffer size/strength, 目的减少delay
插buffer修hold是增加buffer数量, 目的是增大delay
其中原因, 请自己揣摩一下。

修复setup violation 在clk端插入buffer,就是cts里面做的吧

不是的,从cts阶段插buffer不是为了修setup,当然优化的时候会考虑setup/hold,但是cts主要是为了做clock tree,关注的是latency,skew,transition。修setup的方法一般有1)缩短datapath,根据net delay 和cell delay,插buffer或者换用delay值小的逻辑,反正目的是缩短datapath,但是要注意同路径的hold。 2)delay capture clock 或者 early launch clock,这个主要是根据后一条路径 和前一条路径是否有setup margin如果有的话 可以借。

8楼高手!

可以



cts中加buffer目的是减小clock skew, clock latency。在cts之前,clock被设计成理想状态,没skew,latency,理想transition time等等。

补充一点,对于fix setup vio,加驱动大的buffer的初衷是缩短transition time,增大load能力,从而使整个data path delay减小程度远大于增加buffer自身带来的delay。反之,修hold,加合适buffer初衷是使自身增加的delay,大于其使整个datapath delay的减小程度。

很崇拜大家!

fix setup violation 的加 buffer 跟 upsize 是完全相等吗?

上面几楼的观点按一般情况是行得通的,如若该cell的回路为反馈回路,如分频器,则在ck端添加buffer是几乎没有作用的,只能考虑加大BUF本身的size,以增大driving减小transition和delay。

完美解决了 插buffer 对于 fix setup和hold vio的问题

请教在怎样插入buffer

有的时候hold修好了,但是setup violation又来了,修hold 的同时要关注setup的violation slack,最好对所插入buffer或delay cell的延时有一个预估,hold修好后,setup violation的slack要小于margin流出来的余量就可以了。

2楼已经解释的比较详细了

请问,为什么在CK端加buffer是没有用的?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top