ICG setup timing violation介绍?

Clock Gating简介

 

 门控时钟(clock gating)在RTL级电路设计过程中进行低功耗优化常用方法,能够有效降低动态功耗(翻转功耗)。Clock gating cell 可以由与门,与非门,或门或者或非门构成,但很容易产生Glitch。在实际使用中,一般用ICG(集成门控时钟单元)来完成clock gating

 

下图展示了glitch的产生原因 

 

 

功能: 节约动态功耗
定义: 在芯片实际工作过程中,有些信号或者功能并不需要一直开启,那么就可以在不用的时候将其时钟信号关闭。这样一来信号不再翻转,从而能够有效减少动态功耗中的开关功耗(因为时钟cell的toggle比较高,所以这部分功耗占比很大),这种用来关闭时钟信号 cell 就是 ICG cell

 

ICG setup timing violation 产生原因(一) 

 

CTS时钟树综合的时候,ICG不会被看作sink,通常放置在source附近,因此就会出现如上图这种结果。

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

   launck  clk  delay = a + k + d(icg)
   capture clk delay = a

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

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

 ICG setup timing violation 产生原因(二)

 

ICG cell 放在了sink附近(skew小),这种ICG setup timing 问题通常是data path太长(逻辑级数)的原因。 

 ICG setup timing violation 修复策略

 

 

CTS 阶段默认Reg1Reg2尽量长平,所以 T1 ≈ T2 + D(icg) + T3

reg1cgate进行clock gating checkT1 >> T2,也就是launch clock >> capture clock

方法:

Ø 1. 做短 data path T4
Ø 2 . 做短 T1 (挂树)
Ø 3. 做短 T3 skew 小了相当于 T1 ≈ T2
Ø 4. 统一的 pipeline ( 建议 )

 

 

 

EDA工具也提供命令来收紧 ICG timing constraint来迫使工具来优化这些Path

比如:set_clock_gating_check 命令,其实也是对data path路径的优化。

在place之前 :set_clock_gating_check 

在CTS之后 :reset_clock_gating_check为default

注:CTS之前设clock gating check为了弥补clock tree, ICG celllatency较短,所以加一些余量。CTS之后remove_clock_gating_check并不是不让toolICG timing check,而是用librarygating check的值。

 

 

 

  • 10
    点赞
  • 166
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

芯片后端工程师-ratel

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

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

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

打赏作者

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

抵扣说明:

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

余额充值