0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

XOR自门控与时钟门控的不同之处

jf_tpHP8OJR 来源:集成电路设计及EDA教程 2024-01-02 11:34 次阅读

时钟XOR自门控(Self Gating)基本思路和时钟门控类似,都是当寄存器中的数据保持不变时,通过关闭某些寄存器的时钟信号来降低设计的动态功耗。不过XOR 自门控是利用异或门(XOR)将存储在寄存器中的数据与到达寄存器的数据引脚的数据进行比较,输出门控时钟使能信号。

在讲解XOR自门控之前,先回顾一下时钟门控(Clock Gating)技术的缺点。

时钟门控使用条件:

代码中有确定的门控时钟使能信号或者有门控时钟使能译码逻辑存在。比如下面代码中的EN信号:

input [n:0] D;

input CLK,EN;

output [n:0] Q;

always@ (posedge CLK)

begin

if (EN)

Q<=D;

end

时钟门控的缺陷:

从上面代码能看出,要想使用时钟门控技术,对代码风格有一定的要求,得有时钟门控信号。这可是硬伤,毕竟设计中不可能所有的寄存器都能找到这样逻辑,也不能保证所有写Verilog代码的人都有这样的觉悟。

因此,这就导致设计中有些寄存器组无法采用门控时钟技术。

XOR自门控与时钟门控的不同之处:

与时钟门控的不同之处在于,时钟门控技术依赖于现有设计中的使能条件,而XOR 自门控则利用异或门(XOR)将存储在寄存器中的数据与到达寄存器的数据引脚的数据进行比较,输出门控时钟使能信号。如果数据不变,则由异或门直接关断寄存器的时钟输入信号。下图显示了插入XOR自门控单元产生门控时钟使能信号的原理。

wKgZomWThGKAU88nAABmELvuuuU653.png

XOR自门控单元

XOR自门控的优点:

默认情况下,工具仅支持非门控时钟寄存器上的XOR自门控。

以下是XOR自门控的优点:

•有些情况,某些寄存器的使能条件无法从现有逻辑推断出,因此无法用传统的门控时钟技术来关断它们的时钟信号。这种情况下可以使用XOR自门控来关断它们的时钟信号;

•时钟门控和XOR自门控并不冲突,可以同时使用。对于那些已经采用门控时钟关断的寄存器,可以使用下面的命令允许在这些寄存器上采用XOR自门控:

set_self_gating_options

-interaction_with_clock_gating

采用了该技术之后,这些寄存器时钟信号的关断时间可能会增加。

DCT实现的Flow:

wKgaomWThGKAPKTLAADWlsFPTok806.jpg

DCT实现的Flow

注意:当具有XOR自门控单元的ASCII网表被读回到Power Compiler工具中时,所有属性信息都将丢失,并且工具无法识别自门控单元用于报告或优化。Power Compiler工具使用write_script命令支持XOR自门控ASCII流程。如下图所示,使用下面的命令保存设计的当前属性:

write_script -hierarchy -output file_name

wKgZomWThGKAES9-AADD3d_mT-4907.jpg

XOR Self-Gating ASCII Flow

将需要将设计读回工具时,可以使用source命令来加载由write_script命令导出的脚本。这将设置设计中的所有必需属性,包括用于报告和优化目的的自门控单元。

DCT实现:

使用set_self_gating_objects命令可以指定XOR自门控的对象,运行compile_ultra -self_gating命令时会执行XOR自门控。

如果不想对MID子设计中的D_OUT寄存器组执行XOR自门控,可以用下面的命令:

dc_shell-topo> set_self_gating_objects -exclude MID/D_OUT_reg[*]

dc_shell-topo> compile_ultra -self_gating

对时钟门控寄存器执行XOR自门控:

默认情况下,Power Compiler工具不会在时钟门控寄存器上执行XOR自门控。如果要对时钟门控的寄存器执行XOR自门控,可以使用以下命令:

dc_shell-topo> set_self_gating_options

-interaction_with_clock_gating insert

指定XOR自门控选项:

要指定XOR自动门控的条件并定义与时钟门控的交互,使用set_self_gating_options命令。在用命令compile_ultra -self_gating进行编译,Power Compiler插入XOR门时,会采用这些设置。

应用举例:

使用set_self_gating_options命令,对2位到9位之间的寄存器插入XOR自门控:

dc_shell-topo> set_self_gating_options -min_bitwidth 2 -max_bitwidth 9

dc_shell-topo> compile_ultra -self_gating

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117731
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130306
  • 门控时钟
    +关注

    关注

    0

    文章

    27

    浏览量

    8895
  • XOR
    XOR
    +关注

    关注

    0

    文章

    12

    浏览量

    161693

原文标题:数字IC低功耗设计之--XOR自门控与Design Compiler topo实现

文章出处:【微信号:集成电路设计及EDA教程,微信公众号:集成电路设计及EDA教程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    fpga门控时钟问题

    我在一个图像项目里用来很多的门控时钟来产生需要的时序波形,这样程序很不稳定,图像晃动很大,我猜想是不是因为门控时钟太多,程序不稳定,但是又没有方法替代
    发表于 10-28 22:39

    FPGA的时钟门控是好还是坏?

    喜我对时钟门控有一些疑问。从我所读到/学到的东西 - 时钟门控可用于低功率fpga设计(关闭时钟以防止元件切换以节省功率)。但是,我还读到
    发表于 02-21 10:21

    关于门控时钟的讨论 精选资料推荐

    1、什么是门控时钟?在解释何为门控时钟之前,有必要了解为什么需要门控时钟。集成电路工艺节点的提升
    发表于 07-30 06:11

    什么是门控时钟

    什么是门控时钟
    发表于 11-05 07:26

    什么是时钟门控?如何去实线时钟门控的设计呢

    什么是时钟门控?有几个因素会影响电路的功耗。逻辑门具有静态或泄漏功率,只要对其施加电压,该功率大致恒定,并且它们具有由切换电线产生的动态或开关功率。Flip-flop触发器非常耗电,大约占总功率
    发表于 12-19 17:09

    基于门控时钟的CMOS电路低功耗设计

    阐述了如何运用门控时钟来进行CMOS电路的低功耗设计。分析了门控时钟的实现方式,如何借助EDA工具在设计中使用门控
    发表于 11-19 11:49 22次下载

    门控时钟

    门控时钟的资料,关于FPGA方面的资料。有需要的可以看看
    发表于 05-10 16:31 11次下载

    通常有两种不同的时钟门控实现技术

    时钟门控(Clock Gating)是一种在数字IC设计中某些部分不需要时关闭时钟的技术。这里的“部分”可以是单个寄存器、模块、子系统甚至整个SoC。 为什么需要时钟
    的头像 发表于 06-13 16:48 2329次阅读

    什么是门控时钟 门控时钟降低功耗的原理

    门控时钟的设计初衷是实现FPGA的低功耗设计,本文从什么是门控时钟门控时钟实现低功耗的原理、推
    的头像 发表于 09-23 16:44 1.2w次阅读
    什么是<b class='flag-5'>门控</b><b class='flag-5'>时钟</b> <b class='flag-5'>门控</b><b class='flag-5'>时钟</b>降低功耗的原理

    门控时钟实现低功耗的原理

    只有当FPGA工程需要大量降低功耗时才有必要引入门控时钟,若必须引入门控时钟,则推荐使用基于寄存器的门控
    的头像 发表于 07-03 15:32 1704次阅读

    什么是门控时钟?如何生成门控时钟

    由于门控时钟逻辑具有一定的开销,因此数据宽度过小不适合做clockgating。一般情况下,数据宽度大于8比特时建议采用门控时钟
    发表于 12-05 12:28 2445次阅读

    一文详解门控时钟

    当寄存器组的输出端没有驱动或没有变化时,可以关掉寄存器组的时钟来减少动态功耗,此谓门控时钟 (Clock Gating, CG) 技术。
    的头像 发表于 03-29 11:37 6134次阅读
    一文详解<b class='flag-5'>门控</b><b class='flag-5'>时钟</b>

    FPGA原型平台门控时钟自动转换

    现代FPGA综合工具会自动执行门控时钟转换,而无需更改RTL代码中的设计,然而,我们可能需要适当地手动指导综合工具执行门控时钟变换。
    的头像 发表于 05-23 17:38 1077次阅读
    FPGA原型平台<b class='flag-5'>门控</b><b class='flag-5'>时钟</b>自动转换

    门控时钟检查(clock gating check)的理解和设计应用

    通过门控方式不同,一个门控时钟通常可以分为下面基类,
    的头像 发表于 06-19 16:49 1694次阅读
    <b class='flag-5'>门控</b><b class='flag-5'>时钟</b>检查(clock gating check)的理解和设计应用

    为什么需要时钟门控时钟门控终极指南

    时钟门控(Clock Gating)** 是一种在数字IC设计中某些部分不需要时关闭时钟的技术。这里的“部分”可以是单个寄存器、模块、子系统甚至整个SoC。
    的头像 发表于 06-29 15:58 1115次阅读
    为什么需要<b class='flag-5'>时钟</b><b class='flag-5'>门控</b>?<b class='flag-5'>时钟</b><b class='flag-5'>门控</b>终极指南