逻辑设计方法学【3】--门控时钟

时间:2024-03-26 14:17:08

对于每一个寄存器,都需要有时钟输入端,如果在一些对设计功耗要求比较高的地方,保持设计准确后的功耗控制便是头等大事。为了分析如何减少功耗,首先要来分析功耗主要由哪些部分组成。

在绝大多数的设计中,功耗主要由三部分组成

  1. 在每个时钟沿变化的组合逻辑所产生的功耗(由于触发器驱动这些组合逻辑)
  2. 由触发器产生的功耗(即使在触发器的输入和内部状态没有发生变化,该功耗依然存在)
  3. 设计中时钟树产生的功耗
由于时钟树几乎消耗了整个芯片功耗的一半左右,甚至于更多,因此在上述三部分中,控制时钟树的功耗就显得尤为重要。对时钟树进行门控能大幅度降低触发器的功耗。门控时钟可以存在于时钟树的根部、末端、或者中间的任何位置。如果我们能有一种方法直接控制时钟树的根部,以使整个时钟树在电路不工作的时候都关闭,这样更能在根源上将功耗降到最低。

那么什么是门控时钟呢?顾名思义就是利用逻辑门技术控制时钟的通断。那么熟悉逻辑电路设计的设计者马上就会想到以下的问题:
  • 使用什么门电路
  • 门电路是否会对逻辑电路的时序产生影响
  • 什么时候开启/关闭门电路
带着以上三个问题,来详细地分析门控时钟。

下图1是一个带门控时钟的三位计数器:

逻辑设计方法学【3】--门控时钟
图 1 门控时钟计数器

通过上图可以看出,除了把门控时钟器件插入时钟网络中,该电路与传统的计数器电路的实现方式是完全相同的。这样只有在INC输入为高电平时才由时钟驱动触发器。当INC输入为低电平时,触发器无时钟输入,触发器的输出保持为原来的值。利用这样的方法,就可以减少时钟对功耗的消耗。

1 不含锁存器的门控时钟电路

不含锁存器的门控时钟电路是最简单的门控时钟,它由一个简单的与门/或门就可以完全实现(“与”门或“或”门使用哪个取决于触发器的活跃沿),如图2所示

逻辑设计方法学【3】--门控时钟
图 2 不带锁存器的门控时钟

从上面这张图能看出来一些问题,不含有锁存器的门控时钟电路,虽然实现比较简单,但是我们无法确定EN的持续时间,如果EN的持续时间小于T/2(T位CLK的周期),那么就会产生门控无效的问题。为了避免过早截断时钟脉冲或误产生多个时钟脉冲(或时钟上的毛刺),正确的操作强制要求使能信号(EN)从时钟活跃沿(本例为上升沿)起持续到时钟不活跃沿(本例为时钟下降沿)止为一个常量

图3说明了未满足上述要求而是产生的时钟过早被截断的情况。这种限制使得在基于单时钟触发器的设计中不适合使用不含锁存器的门控时钟。

逻辑设计方法学【3】--门控时钟
图 3 生成时钟过早地终止


2 基于锁存器的门控时钟电路


基于锁存器的门控时钟是想设计中加入了一个电平敏感的锁存器,以在时钟活跃沿和不活跃沿之间保持使能信号不变,这样就无须依靠门控电路本身来满足这一要求了。如图4所示

逻辑设计方法学【3】--门控时钟
图 4 基于锁存器的时钟门控电路

由于锁存器能捕捉到使能信号并使它保持到产生完整的时钟脉冲,因为使能信号只需要在时钟活跃沿附近保持稳定即可。但不需要考虑是否违反建立时间(setup)和保持时间(hold)。使用这种技术,每次只需要改变门的一个输入端来打开或关闭时钟就能保证电路的输出不含有任何毛刺或者尖峰脉冲了。

需要注意的是:在上图的例子中,使用“与”门控制在上升沿有效的时钟,对于在下降沿有效的时钟,使用“或”门进行控制,并用正沿触发的锁存器寄存使能信号

在使用这一设计方法的时候,必须注意时钟的占空比以及使能信号逻辑的延迟,因为使能信号必须在半时钟周期产生(即大于半个时钟周期)。在产生使能信号的逻辑比较复杂或者时钟占空比失衡的时候,就会发生问题(时钟占空比不为50%也可能会遇到类似的问题)。即使这样,但与其他产生门控时钟的方式引入的问题相比较,关注占空比和逻辑延迟的工作量是可以接受的,并且这两个量相对也是比较好控制的。

为了保证较高的生产缺陷覆盖率,有必要保证在使用扫描方法学时门控时钟电路是完全可控和可观察的。加入控制信号,使得设计中所有触发器不管使能值是多少都能被时钟驱动,这样就能使扫描链按照正常方式移动扫描数据了。

该信号可以在锁存器前先与使能信号进行一次“或”操作,并可将该信号连接到指示进入扫描测试中的测试模式信号上,或连接到只在扫描移位时有效的扫描使能信号上。

修改后的电路如图5所示,大多数的ASIC生产商提供“门控时钟单元”作为标准单元库中的一部分。
逻辑设计方法学【3】--门控时钟
图 5 标准时钟门控单元


3 门控信号


对设计的特殊部分使用门控信号能提高能效。与门控时钟的概念相似,门控信号减少了与时钟无关信号的变化。最常见的例子是解码器使能。

在地址解码机制中,地址信号会在所有目标模块解码器中变化。解码器输入端的切换行为会导致大量的门翻转。可以用使能或选择信号阻止切换行为的传播,但是可能会使逻辑变得稍复杂。

逻辑设计方法学【3】--门控时钟
图 6 带使能端的解码器

总结


经过上面的分析,再来看在开篇的时候所提出的三个问题:
  • 使用什么样的电路达到门控? 显而易见,使用带锁存器功能的门控电路可以达到效果
  • 门电路是否会对后续电路产生时序影响?不会产生影响,经过锁存器,可以将门电路所产生的毛刺过滤掉,并且锁存器不存在建立时间和保持时间违例的情况
  • 什么时候开启/关闭门控电路? 使能信号在时钟活跃沿周围保持稳定,还需要根据时钟的频率以及门控时钟的延迟来决定门控电路的开启/关闭时间
回答完这三个问题,我们就对门控电路有了一个比较清晰的理解。


参考文献


[1] Mohit Arora.硬件架构的艺术.机械工业出版社. 28-32