分频器设计中使用行波计数器有何优缺点?

分频设计中使用行波计数器有何优缺点?

行波计数器:使用级联寄存器,用触发器的输出端驱动下一级触发器的时钟输入端

分频器设计中使用行波计数器有何优缺点?_第1张图片

行波计数器的优势

ASIC设计人员常常使用行波计数器对时钟进行幂为2的分频,与其他同步计数方式相比,行波计数器使用的门数更少

因为计数器在各阶段创建行波时钟,所以这种级联会导致问题,这些行波时钟会对STA和综合工具带来麻烦,所以应该尝试避免使用这种结构以减少验证的工作量,尽管行波计数器存在各种挑战和问题,但是在功耗较高的系统中很适合使用这种计数器,因为这样可以大量降低由逻辑或者SOC所引起的峰值功耗。

用行波计数器来降低功耗

有一些方式可以使得行波计数器更可靠,可用性更强,如下图5.28所示,接收电路使用低有效使能输入信号,只有在时钟为“低”电平的时候才读入4位计数器的值,一旦时钟脉冲置“高”,接收电路就停止计数器电路的输出,因为计数电路是正沿触发的,所有计数行为都发生在时钟从低到高的过程中,这样使得接收电路在计数器的4位输出信号切换到稳定之前一直处于无效状态,直到时钟信号返回低状态,接收电路才会开启,这样可以保证所有行波都处于安全稳定状态时新计数值才会读入接收电路,这里时钟信号的“高”时钟是一个关键参数:它至少要和计数器的最大行波周期同样长,否则,时钟信号会过早开启接收电路,但是此时行波过程依然在进行中,也就是行波此时可能还没有到达最后一级,这将导致后级寄存器输出状态并没有得到及时更新,导致输出错误。

分频器设计中使用行波计数器有何优缺点?_第2张图片

行波计数器的不足

缺点:唯一比较大的缺点就是触发器之间有一定的延时。因为驱动clk_out的触发器是由clk作为时钟的,那么这个触发器的Q端变化相比于clk有一个必不可少的clk-to-q延时,例如下图的q3与q1之间的差距就是clk-to-q延时造成的,如下图5.25所示,每个阶段都进行二分频操作,因为时钟像波浪一样行进穿过系统中各级寄存器,所以称为“行波计数器”,由于每一级寄存器都存在传播延迟,因为较高有效位相对于较低有效位更晚发生变化。

分频器设计中使用行波计数器有何优缺点?_第3张图片

如图5.26所示,在时钟行进过程中由于由于各级触发器级联所导致的每一级延迟会使得计数器可能产生不正确的值(由于毛刺),在最高有效位变化时,会产生最坏的影响,如下图中是计数器从“0111”变为“1000”的时序图,在这个过程中4个位均发生了变化,在时钟传递过程中触发器会出现短暂的伪输出值,各级触发器的输出会在快速在“0111”、“0110”、“0100、“0000”、“1000”之间变化,即:即:从7-->6-->4-->0最后到8,而不是干净的从”0111“变为”1000“

分频器设计中使用行波计数器有何优缺点?_第4张图片

由于行波是快速发生的,在许多使用环境中,这种效应是在可接受范围内的,比如用计数器的输出去驱动发光二极管LED,不会产生任何影响,但是如果将该信号用于驱动多路选择器、微处理器等存储器的索引指针,或者任何其他伪误差可能导致错误输出的情况,这是我们无法接受的

行波计数器对于STA是一个巨大的挑战,因为它在每一级触发器均产生了一个新的时钟域,这就需要STA工具处理更多的时钟域,从而会消耗更多的时间

同理,行波计数器也会为扫描链的插入增加难度,可以在扫描模式下使用多路器对这种寄存器的时钟进行选择,从而使其在扫描模式下处于同一个时钟域中,但是这样会对缺陷覆盖率产生影响,因为新引起的时钟多路器形成了一条无法扫描到的路径。

总结

总之,行波计数器在低功耗设计中能减少电路的漏级电流并降低功耗,但是使用时必须非常小心,虽然行波计数器看着非常简单,但是会对可测性和缺陷覆盖率造成影响,所以必须要在使用这种异步计数器方法前从正反两方面进行权衡

参考:《硬件架构的艺术-数字电路的设计方法与技术》

 

 

你可能感兴趣的:(数电基础)