数字IC前端学习笔记:门控时钟

相关阅读

数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm=1001.2014.3001.5482


        门控时钟(clock gating)技术作为一种传统的动态低功耗技术被广泛应用于现在的数字集成电路设计中,这是RTL级别的低功耗优化技术。门控时钟即使用逻辑门电路控制时钟的开启和关闭,当芯片上某一模块的功能不需要工作时,如芯片上的USB模块或SPI接口模块没有使用时,可以使用门控信号停止这些模块的时钟,有效降低了时钟树上的功耗和信号翻转率。

        图1所示的为一种简单的门控时钟结构,它由一个与非门和一个非门组成,甚至可以仅仅引入一个与门。其设计开销几乎可以可忽略不计,可以说是门控时钟的原型。

图1 简单的门控时钟

        但是从信号完整性角度来看,这种设计结构对于大规模的数字电路实现有一个极大的缺陷,可能产生毛刺。在实际系统工作时,如图2所示,当源时钟CLK为高电平时,如果CLK_EN变为低电平,GCLK将立刻变为低电平,即出现了一个下降沿,这是一个毛刺信号,会影响一些使用下降沿的触发器。同样的,当源时钟CLK为高电平时,如果CLK_EN变为高电平,GCLK将立刻变为高电平,即出现了一个上升沿,这会影响一些使用上升沿的触发器。总之,这类在门控时钟上出现的毛刺,对同步电路来说是非常致命的。

图2 简单的门控时钟会产生毛刺

        因此门控时钟对使能信号的约束如图3所示,其约束脚本如下所示。 

create_clock -period 10 [get_ports CLK]
set_dont_touch_network [get_clocks CLK]
set_clock_gating_check -setup 0.5 hold 0.5 [current_design]

图3 门控时钟的时序约束 

        由于上述限制,工业界广泛采用的门控电路是一种在上述简单的门控电路结构上加入了高电平锁存的锁存器,如图4所示。因为以上的毛刺都是出现在CLK为高电平时,所以思路是使用CLK的高电平锁存CLK_EN信号,这样CLK_EN在CLK高电平期间就一定是一个稳定的值(CLK_EN在CLK低电平期间没有影响,因为是相与)。

                                        

图4 使用锁存器的门控时钟 

        图5为带锁存器的门控时钟的工作波形,从图中可以看出,只有当CLK为低电平时,CLK_EN才能直接传到与非门的输入端,这相当于CLK_EN信号被锁存了半个周期,这样就不会有毛刺了。

图5  使用锁存器的门控时钟不会产生毛刺

        可以通过下面的Verilog代码实现门控时钟结构:

always@(*)
    if(!CLK) CLK_TEMP = CLK_EN;

assign GCLK = CLK & CLK_TEMP;

        在时钟切换电路中,时钟门控电路也很重要,详细细节可以看下面的文章。

数字IC前端学习笔记:时钟切换电路https://blog.csdn.net/weixin_45791458/article/details/134495720?spm=1001.2014.3001.5502

以上内容来源于《SOC设计方法与实现》和《专用集成电路设计实用教程》,有删改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

日晨难再

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

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

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

打赏作者

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

抵扣说明:

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

余额充值