DC里的门控时钟方案

1.业界两种门控时钟的做法
门控时钟用于低功耗设计。但是业界通常有两种做法,一种是在所有always块中加enable信号(如下所示);另一种是专门写个门控时钟模块,这个模块输出新的时钟信号,然后再驱动其他模块。

always@(posedge clk)
    if(enable)
       Q <= D;

很显然,如果所有always块都加上enable,那工作量实在是太大了。用第二种方法的话,模块设计人员不用在设计的时候考虑enable信号(写代码的时候,写着写着就很容易遗忘)。

2.DC对于第一种做法是可以自动识别的,在compile命令执行之前,需要用两个命令才能识别出来(如下)。

先来看下,不自动识别成门控时钟和识别成门控时钟这两种情况的电路结构有什么区别:

在这里插入图片描述

由上面的图可以看出,插入门控时钟单元后,原有电路中的MUX就不需要了,如果数据位宽是多bit的,插入clock_gating后,电路面积可能会减少;但如果数据是单bit信号,那么节省的功耗就比较少。

因此,工具可以根据位宽来决定是否增加门控时钟。如果位宽很小,那么插入的clock_gati

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值