|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 39123811 于 2013-5-18 14:24 编辑
好吧,hold time violation这个话题基本上已经味同嚼蜡了,但是怎么能解决这个问题呢?紧紧从timing issue的角度考虑?
以下是我对hold time violation的认识
1> 如果只是考虑一级pipeline的话,也是最常见的面试题啦
(画得不好不要笑,新人另外求画图软件),在这种情况下,如果发生hold time violation的话,那我们就要想办法延长clk上升沿之后data的保持时间。有两种方法,
1> 加大输出data的combination logic 的延迟,使得data整体右移;
2> 想办法把clk左移,怎么弄呢,减少clock skew(这个是物理现象貌似是不可改变的),减小时间周期?或是在后端设计时把连这个clk的buffer去掉?
此种情况解决hold time violation的方法欢迎讨论,这里仅仅是抛砖引玉。
第一种情况是大家都讨论烂了的,第二种情况我至今没有想到解决方法,
下面是第二种情况,多级pipeline,我们以两级reg为例
在这种情况下,我们把注意力集中在第二个dff,由于Q1同时也是D2,而D2的hold time其实完全是由clk->Q1来决定的,这样的话上述两个方法都无法解决此种情况下的hold violation。
请高人解决下这个问题,难道library 里的Dff 都默认hold time < clk to Q delay ?
@
陈涛 |
|