阎浮提 · 2020年05月25日

后端Timing基础概念之:为什么时序电路要满足setup和hold?

原文:https://zhuanlan.zhihu.com/p/34253965
作者:阎浮提

众所周知,setup和hold作为timing分析与验证中最重要的概念之一,是时序电路正常工作必须满足的条件。

但是很多初学者甚至某些工作数年的工程师,对时序电路需要验证setup和hold背后的原理可能并不清楚。

下图是上升沿触发的D触发器的一种典型的基于传输门的设计原理:

上升沿D触发器原理图

首先我们先把注意力集中在电路的前半部分。

假设CLK的初始状态为0,此时第一个传输门导通,信号走向为:

D -> a -> b -> c -> d 注:路径1

从以上信号走向可以看出,信号必须在CLK上升沿到来之前在d点保持稳定,否则如果在这之前D pin的信号发生变化,就会导致DFF锁住错误的信号。换句话说,如果假设路径1需要花费的时间为t0,那么D处的信号必须要在CLK上升沿之前的t0或更早的时间内保持稳定。此即setup的物理意义,也是timing report种library setup time所代表的含义。

接着,当CLK从0变成1后,D与a之间的传输门关闭,a与d之间的传输门导通,此时信号走向为:

d -> a -> -> b -> e -> f(Q) -> g -> h

需要注意的是,当信号从0变为1的过程中,在一段很短的时间内,所有传输门都可能导通,若此时D端信号发生变化而CLK的transition比较慢,则会发生新值覆盖旧值而导致信号错误的现象。因此,D段信号需要在传输门完成开/关过程中保持稳定,此即为hold的物理意义,也是timing report中library hold time代表的含义。

现在我们从DFF的构造上分析了setup和hold的原理,请大家思考这样一个问题:从上面的描述可以看出:
library setup time和library hold time应该都是正值,但是它们是否有可能是负值?如果有可能,在什么情况下会为负呢?
下期揭晓答案~

相关文章


如果大家有任何后端技术与职业发展方面的问题,抑或关于数字后端感兴趣的技术话题想要了解和探讨,欢迎关注我的知乎专栏: 数字IC后端设计工程师修炼之路

同时欢迎关注微信公众号:数字后端芯讲堂,一起探讨技术,共同提升!
本极术专栏也会同步更新芯片设计后端的技术干货,也请关注数字IC后端设计工程师修炼之路

推荐阅读
关注数
3845
内容数
46
本专栏致力于将数字芯片后端设计的技术,经验和技巧介绍给想入门或提高的你。一方面从基础知识方面的讲解使初学者少走弯路,另一方面用实际工作中的经验技巧方便从业者提高和交流。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息