ICG setup timing violation介绍?

Clock Gating简介

 ICG setup timing violation介绍?_第1张图片

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

 ICG setup timing violation介绍?_第2张图片

下图展示了glitch的产生原因 

ICG setup timing violation介绍?_第3张图片 

 

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

ICG setup timing violation介绍?_第4张图片 

ICG setup timing violation 产生原因(一) 

 ICG setup timing violation介绍?_第5张图片

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 setup timing violation介绍?_第6张图片

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

 ICG setup timing violation 修复策略

 ICG setup timing violation介绍?_第7张图片

 

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 ( 建议 )

ICG setup timing violation介绍?_第8张图片 

 ICG setup timing violation介绍?_第9张图片

ICG setup timing violation介绍?_第10张图片 

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的值。

 

 

 

你可能感兴趣的:(芯片后端设计原理,arm开发,硬件工程,后端)