门控时钟介绍

本文介绍了门控时钟技术在降低芯片功耗中的重要作用。时钟树消耗了芯片大量功耗,门控时钟通过在不需要时关闭时钟来减少动态功耗。直接门控时钟通过与en信号结合实现,但需注意时序配合避免毛刺。锁存器门控时钟利用锁存器在时钟高电平时锁定clk_en状态,确保周期性。该方法有效降低了时钟网络的功耗并提供了稳定的时钟输出。
摘要由CSDN通过智能技术生成

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;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮子座硅农(Leo ICer)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值