[Note]ICG(时钟门控)为什么是用setup和hold检查

为什么ICG(集成时钟门控)的时序检查和D触发器的检查方式是一样的?

在与门前加了一个latch之后,时序检查就发生了变化。

先看一下ICG的结构。

       为了理解ICG的时序检查,我们先看一下D触发器的时序检查。

       D触发器可以看作是2个D锁存器连接组成。

       可以观察到,两者的左边半部分是一模一样的。

       然后,再复习一下D触发器的setup和hold检查原理。

       对于触发器的建立时间和保持时间的概念一般就是以下定义:

建立时间:在时钟有效沿到来之前,数据必须维持一段时间保持不变,这段时间就是建立时间 Tsetup

保持时间:在时钟有效沿到来之后,数据必须维持一段时间保持不变,这段时间就是保持时间 Thold

当时只知道触发器需要建立时间和保持时间使得工作稳定,但是为什么需要建立时间和保持时间呢?秉持着对知识点刨根问底的态度,这里就从更底层出发,去深究触发器为什么需要建立时间和保持时间。

下图就是 D 触发器的内部结构展开图,其主要有两个 D 锁存器组成,在前面的为 Master,后面的为 Slave,两个锁存器串联共用一个时钟信号,但是两者极性相反,为了更符合习惯,这里的触发器定为上升沿敏感的。

为什么需要建立时间?

在前面分析过,在数据传输时,Master 锁存器负责将数据锁存,Slave 锁存器负责将 Master 稳定锁存的数据输出。因此输入在从 Master 输入到 Slave 输出是一个顺序执行的过程,也就是说要想从 Slave 顺利输出数据,那么在 Master 就必须顺利锁存好数据。

那就先看 Master 锁存器是如何对输入数据进行锁存的,数据的路径如下图中的红线所示,当时钟 Clk 为 0 时,数据从 D 输入(假设数据输入为 0)经过反相器历时 t1,数据变成 1,经过与门历时 t2 数据变成 1,再经过或非门历时 t3,由于此时数据为 1,所以经过或非门 Q 端输出为 0,Q 端输出又作为下面的或非门输出为 1,并且在此历时 t4,最终在 Q 端输出 0,此时数据便顺利被锁存起来。

这里忽略不计门与门之间的路径延时时间,只对时间做个大概分析,从这里可以计算得到所历经的总时长为:t1+t2+2*t3+t4,这个时间就可以大致认为是触发器的建立时间 Tsetup。当经过 Tsetup 后数据被稳定的锁存,当时钟上升沿到来时(0->1),Slave 锁存器就可以接受到正确的数据并输出,如果不满足建立时间需求的话会发生什么情况呢?

假设此时不满足建立时间需求,当需要被锁存的数据在还未进入到第一个或非门时,时钟上升沿就已经来到,此时 Q 端输出的数据仍然是上一次被锁存的不确定数据,可能为 1 也可能为 0,这样 Slave 输出的数据就可能会出错。

为什么需要保持时间?

再来分析一下保持时间,如下图中绿线为时钟到达与门的路径延时假设为 t5,蓝线为数据到达与门的路径延时假设为 t6,因为时钟路径存在反相器延时,所以延时会大一些,即 t5>t6,假设在 Slave 输出数据的过程中,输入数据 D 由原来的 0 跳变到 1,此时由于 t5>t6,就有可能使得与门的两个输入同时为 1(时钟上升沿来临之前 Clk 为 0,经反相器输出为 1),此时与门输出为 1,推出 Q' 输出为 0,进而 Q 输出为 1,于是新到来的输出 Q = 1 就会将影响原来的 0,最后导致锁存的数据为 1,最终 Slave 的输出为 1,导致数据出错,这就是为什么输入数据需要在时钟上升沿来临之后仍然保持一段时间(t5-t6)不变。

从上面的分析可以得出,D 触发器的建立时间要求比保持时间要求要更严苛,这也是在 RTL 设计综合后,建立时间违例比保持时间违例更频繁的原因,要求高了自然就更难达到,同时建立时间和保持时间也是相悖的,建立时间要求数据路径延时更小,数据路径延时越小,Master 锁存器更容易将数据锁存;保持时间希望数据路径延时更大,一旦使得数据路径延时 t6>t5,Slave 锁存器输出的数据就不会出错。

总结

       D触发器的setup时间就是第一个D锁存器的锁存时间。

       D触发器的hold时间,是clk到与门的时间晚于D到与门的时间,导致的hold时间。

       Setup最小时间=D到与门的时间+与门到锁存或门的时间+两个或门互锁存时间(忽略了器件延迟)

       Hold最小时间=clk到与门的时间-D到与门的时间(忽略了器件延迟)

       可以看到两者都有一个D到与门的时间,如果想放松setup检查时间,那么减少D到与门的时间,但是这样会让Hold时间变得严格,所以,电路上两者是互斥的。

       同理,可以推出ICG的分析也是如此。

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值