门控时钟介绍

  • Post author:
  • Post category:其他




1 门控时钟介绍

功耗是芯片设计中非常重要的一个指标,研究表明,在芯片功耗的组成中,有高达40%甚至更多是由时钟树消耗掉的。这个结果的原因也很直观,因为这些时钟树在系统中具有最高的切换频率,而且有很多时钟buffer,而且为了最小化时钟延时,它们通常具有很高的驱动强度。此外,即使输入和输出保持不变,接收时钟的触发器也会消耗一定的功耗。而且这些功耗主要是动态功耗。 减少时钟网络的功耗消耗,最直接的办法就是在不需要时钟的时候,把时钟关掉。这种方法就是所谓的

门控时钟:clock gating



2 直接门控时钟

最简单的就是操作数隔离的方法,将时钟与en信号相与,通过控制en实现时钟门控,如下图:

在这里插入图片描述

问题:注意只有clk和clk_en同时为高的时候,gclk才输出高,所以如果clk_en时序不合适,会导致高电平的时间比低电平的时间短,甚至是

毛刺



3 锁存器门控时钟

电路已经很明显了,在clk为低时锁存器连通、clk为高时锁存器锁住,如下图

在这里插入图片描述

波形图如下,可见当clk为低的时候gclk为低没跑,但clk为高的时候,gclk的值可看作是clk上升沿采样的clk_en的值。

所以使用Latch可以有效地锁存clk_en值,同时不影响clk的周期性

在这里插入图片描述

其对应的RTL代码也很容易

always@(*) begin
	if(clk)
		clk_temp = clk_en;
	else
		clk_temp = clk_en;
end
assign gclk = clk & clk_temp;



版权声明:本文为qianniuwei321原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。