发 帖  
原厂入驻New
[经验]

【FPGA经典试题】电路模块的setup-time和hold-time是正值还是负值

2012-3-15 10:41:40  7444 电路模块 FPGA
分享
0
请问:
a.对于一个D-FF 而言,它的setup-time 和hold-time 是正值还是负值?为什么?
b.对于一个电路模块(包括多个组合逻辑子模块及时序逻辑子模块)而言,它的 setup-time 和hold-time 是正值还是负值,为什么?
问题 a:
建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间;保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间。setup-time 和hold-time 可以是正值或负值,为什么可以是负值呢?如下图
【FPGA的经典试题】电路模块setup-time和hold-time是正值还是负值

因为 clock 到达时刻并不等同于latch 的传输门A 关闭的时刻,这之间有一个未知的延迟时间。假设Clock 的到达时刻为传输门A 关闭、传输们B 打开的时刻。如果Data 没有在这之前足够早的时刻到达,那么很有可能内部的feedback线路上的电压还没有达到足够使得inv1 翻转的地步(Data 有slope,传输门B 打开后原来的Q 值将通过inv2 迫使feedback 保持原来的值)。

如果这种竞争的情况发生,Q 的旧值将有可能获胜,使Q 不能够寄存住正确的Data 值;当然如果feedback 上的电压已经达到了足够大的程度也有可能在竞争中取胜,使得Q 能够正确输出。和 setup time 的情况不一样,因为Clock 到达时刻并不等同于latch 的传输门A 完全关闭的时刻。

所以如果Data 没有在Clock 到达之后保持足够长的时间,那么很有可能在传输门A完全关闭之前Data 就已经变化了,并且引起了feedback的变化。如果这种变化足够大、时间足够长的话,很有可能将feedback 从原本正确的低电压拉到较高电压的电压。甚至如果这种错误足够剧烈,导致了inv1和 inv2 组成的keeper 发生了翻转,从而彻底改变了Q 的正确值,就会导致输出不正确。当然,如果这种错误电压不是足够大到能够改变keeper 的值,就不会影响到Q 的正确输出。



问题 b:
对于一个电路模块,它的 setup-time 和hold-time 是正值,因为对于建立时间:
Slack=要求时间-到达时间
对于保持时间
Slack=到达时间-要求时间

joesph2675 2012-3-31 21:46:41
天哪 一窍不通
回复

举报

李建华 2013-7-22 17:25:15
不知道为什么不知道为什么不知道为什么
回复

举报

zhangyuhaha 2013-7-24 12:39:06
很不错,讲得很仔细
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表