转载来源:
低功耗设计基础:Clock Gating
后端Timing基础概念之:为何ICG容易出现setup violation?

为了节约动态功耗,最初有个十分简单的想法:在芯片实际工作过程中,有些信号或者功能并不需要一直开启,那么就可以在它们不用的时候将其时钟信号关闭。这样一来信号不再翻转,从而能够有效减少动态功耗,这就是Clock Gating。

那么Clock Gating是如何被加入到design中的呢?下面的例子介绍了在RTL阶段加入Clock Gating的方法:

可以看到在加入Clock Gating之后,DFF的clock信号前多了一个使能端EN,从而可以控制该时钟信号的打开与关闭。

除此之外,在综合阶段,EDA工具同样支持自动插入Clock Gating。以Synopsys公司的Design Compiler工具为例,简单的插入Clock Gating的方法如下:

ICG(Intergrated Clock Gating)作为low power的设计手法之一,已经在实际中得到广泛应用。它们能够在某些时候将某些clock关断从而达到降低功耗的目的。

一般每个ICG会控制一个或多个DFF,通过某个DFF传递过来的控制信号控制ICG的开启或者关断。

然而,在CTS(clock tree synthesis)工具或者命令综合时钟树的时候,ICG不会被看作sink因此并不会作为balance对象,因此就会出现如下这种结果:

由上图可以看出,在分析DFF到ICG的setup timing时:

launck clk delay = a + b
capture clk delay = a

因此,对于ICG的setup path,天然存在clock skew:b ,而skew的大小完全取决于ICG距离sink DFF有多远。

在出现setup violation的ICG path上,比较多见的就是因为ICG和sink DFF的clock之间存在较多逻辑或者物理上距离较远,从而导致skew较大而发生setup violation。

针对这种现象,
(1) 在实际设计中,我们可能会考虑将出现setup violation的ICG尽量放在sink DFF附近以减小skew。

(2)与此同时,EDA工具也提供命令来收紧ICG的timing constraint来迫使工具来优化这些path,比如set_clock_gating_check命令。

另外,CTS工具会对其做clone、declone操作。

ICG cell Clone:

受相同ICG cell控制的时序单元较多或者分布不均匀时,就会导致ICG cell连线过长,这时可通过clone ICG cell进行优化;

ICG cell De-Clone:

受相同ICG cell控制的时序单元较少,就会导致ICG cell数量过多,设计density增大。这时可通过De-clone ICG cell进行优化;

低功耗基础概念——ICG(Intergrated Clock Gating)相关推荐

  1. 低功耗基础概念——isolation cell

    文章目录 低功耗设计基础:Power Gating详解 低功耗实例--isolation cell及level shifter的选择 低功耗设计基础:Power Gating详解 低功耗设计基础:Po ...

  2. 门控时钟电路(Intergrated clock gating)

    门控时钟 某些模块不需要工作的时候,为了降低功耗,需要关闭该模块的时钟,节省触发器的翻转功耗.采用门控时钟电路来控制时钟的关断. 本文大量引用了知乎门控时钟的图片和一些文字描述 简单的与门 最初的思路 ...

  3. 秒杀数字后端实现中clock gating使能端setup violation问题

    秒杀数字后端实现中clock gating使能端setup violation问题 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 点击标题下「蓝色微信名」 ...

  4. lockup latch clock gating cell

    Latch功能 Latch的电路结构如下图: Latch电路结构 当 E = 1 时,latch直传(transparent),D端信号的变化会即时反应在Q端: 当 E = 0 时,latch关断(c ...

  5. Integrated Clock Gating (ICG)

    什么是ICG? 在时序级的设计中,我们经常遇到这样的情况:电路存在一个使能信号E,当使能信号无效时,输出保持.我们通常的做法是使用一个Mux来对输入进行选择(下图左侧).在综合阶段,可以通过选项将该类 ...

  6. (数字ic)CDC设计实例 - ICG :integrate Clock Gating Cell

    CDC设计实例 - ICG :integrate Clock Gating Cell 1.Latch原理 2.ICG消除毛刺原理 1)en信号中的毛刺出现在clk低电平期间,如下图所示 2)en信号出 ...

  7. 【数字IC基础】降动态功耗(降时钟翻转频率):门控时钟(clock gating)

    文章目录 十五.门控时钟(clock gating)!!! 15.1.概念 15.2.锁存时钟与门控电路 15.3.锁存时钟或门控电路 15.4.寄存时钟与门控电路 15.5.时钟门控的RTL代码编写 ...

  8. Clock Gating cell 与 Integrated Clock Gating cell(ICG)

    一.ICG消除毛刺原理 Clock gating cell 可以由与门或者或门构成,但是使用这两者会产生Glitch,因此目前都采用ICG(Integrated clock gating cell), ...

  9. 低功耗设计 Clock Gating

    背景介绍 芯片功耗组成中,有高达 40%甚至更多是由时钟树消耗掉的.这个结果的原因也很直观,因 为这些时钟树在系统中具有最高的切换频率,而且有很多时钟 buffer,而且为了最小化时钟 延时,它们通常 ...

最新文章

  1. 【Xamarin挖墙脚系列:现有IPhone/IPad 设备尺寸】
  2. HTML基础第七讲---框架
  3. jQuery元素过滤
  4. 数据库:内联接,外联接,空值和联接
  5. 常见的6种JavaScript设计模式
  6. python的基础知识可以应用到哪方面-Python基础知识
  7. 六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习)
  8. oracle 10g for solaris准备工作和实例的删除
  9. AudioTrack播放acc格式音频
  10. jscript php,PHP, JScript和VBScript函数和类的语法
  11. 抢先入驻皮皮虾APP社区 红利初期第一批操作者绝对有肉吃
  12. 小学校计算机教室年度工作总结,小学计算机教师年度工作总结
  13. 虚拟机+服务器管理器怎么打开,大话西游2特色版虚拟机镜像一键服务端+启动教程+物品ID+GM设置方法+数据库工具等...
  14. Python新手引导 第三篇-Python基础和字符编码
  15. 附合导线简易平差(4500PA)
  16. 微信公众号里放XLS链接教程
  17. 【面试题集 —— No.01】常见图片格式BMP、JPG/JPEG、PNG、GIF、TIFF、SVG的区别
  18. Codeforces D. Omkar and Bed Wars
  19. Docker 容器仓库之搭建私有仓库、hub仓库
  20. redist 在linux上的安装教程

热门文章

  1. 1064mysql分区_如何解决mysql错误代码1064
  2. RSA加密与解密(Java实现)
  3. 大话西游之GUI编程—(—)DOS时代
  4. 1转自 饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.25.97]
  5. 【C语言—零基础第九课】函数中的爱恨情仇
  6. am5718_TI Cortex-A15 AM5718 AM57x 多核异构开发板免费试用
  7. 银河麒麟批量压缩图片的方法
  8. 前端HTML5视频_HTML5核心-张晓飞-专题视频课程
  9. 基于FPGA平台RISCV架构的SOC应用系统设计1
  10. Rowid和Rownum的区别