clock gating在CTS时应当怎样处理比较好?
gating处得setup和hold的violation主要是由于clock skew 造成,怎么样减少skew?
gating cell 很多啊
不用太单独处理, clock gating cell对于clock tree synthesis 是透明的,
clock tree会自动穿过去,不过有时候要控制 clockgating cell和他管理的sync cell 的区域范围,
如果相隔太远,会出setup问题, 那时就要用bound 把他们绑在一起,
clock gating和前端设计有关,如果gater的位置太前了, timing很难满足的,
谢谢你的解释,关于gating 的timing总会有很大的skew,
设计中有很多的gate cell,怎么将他们和对应的sync cell bound在一起呢?
encounter里面好实现吗?
ICC 里面可以设置 create_bounds 在place的时候就放在一起,
encouter也有类似的东西吧,叫region,好像,
谢谢楼上的指教,我看看去
学习。
xue xi le
encounter的话,
可以在place之前,把clock spec读进来,然后placeDesign的时候加上-clock_aware 这个option,也会对clock_gating的timing有好处
可以试试
谢谢啊
我觉得可以首先分析清楚clock tree中clock gate的结构:
1若是此clock gate前面控制他的reg(A组)和clock gate后面控制的reg(B组)没有时序路径,那么可以把A组的reg设置成exclude pin,那么A组的reg在做cts时就不会被平衡,这样A组reg和clock gate的skew就不大了
2若是A组reg和B组reg有时序路径,那么就不能设置exclude pin。此时可以看看A组reg的前一级是否有用剩时间,如果有,就用usefulskew来调整。
3不是所有的clock gate都是有用的,首先要看看它是不是冗余逻辑,即看看它的输出端有没有连接reg,若没有,可set false path到这个clock gate的使能端。
大哥讲解的很详细,看了就明白了。thx
IT IS NOT SURE
icg造成的clock skew是必然的,因为icg在 clock tree的中段, 没有full clock path,
1) place的时候多加margin,比如多增加0.2 setup clock gating check
2) place是clock gate aware , edi里面
setPlaceMode -clkAwaretrue
icc try to place flops in nearby around icg cells
3) 看能否把icg 往下游移动,以为越接近clockroot, clock gating效果越好,
timing越难满足(因为clock skew太大,), 越远离clock root, timing越好修,
回答的很nice
为什么CLOCK GATING 越往下游移动,timing 会越好呢?
为什么skew是必然的?CTS的时候不会balance吗
同问
place 的时候吃clock spec文件
请问小编,在设了set_clock_gating_check之后,report_timing会显示出设的这个值吗?
我怎么发现,我设了set_clock_gating_check之后做report_timing,没有看到设置的这个值呢
因为ICG对于CTS是透明的,只会对ICG后面的Sink做balance,因而实际上会有skew,于是在对ICG做setup check的时候,就会有violations。将ICG向下游移动,可以减小产生的skew。
小编 icc中怎么实现将ICG向下游移动,以减小产生的skew
主要靠工具place,CTS,相关的优化选项打开,个别不行的就手动干预,useful skew等。
学习了
要想减小clock_gating的timing的问题,其实是一个balance clock tree power和timing的问题。如果想要timing好,意味着你的clock——gating要更加靠近 register,也就意味着你的clocktree power会不好,反之越靠近root点,clock tree power就好,但是timing 就差。 目前前端的clock gating的插入是structure based,也就是它并不一定知道加个icg是不是一定会减少power。而后端对于clock——gating插入是base在已有的icg上通过clone和declone来解决timing和power 。但是基本是timing为主
谢谢回复,我知道edi有个clock aware的选项在place的阶段,icc有类似的选项吗?我没有找到
受教了,问个问题,icg上通过clone和declone 是什么意思icc中什么命令实现啊?
clone就是把 一个icg ,clone成多个,分别place得更靠近register. declone就是反过来
谢谢回复,版大说的create bound是一个好方法,只是clock gate比较大的情况下,一个个去写出来也是挺费时间的
太高深了 我先看下guide吧
icfbicfb大好,clock_opt的时候把move_bounds内的cell给打散了怎么办啊