为什么reg2cgate的setup难以满足?

乐活   2024-10-29 12:17   中国  

    Reg2cgate的setup天生是难以满足的,其中缘由是什么呢?通过下面一张图大家便可以直观的了解到。

    从图上我们可以看出,clock gate的clock latency是delay1,reg1的clock latency是delay1+delay2,可以明显的看出,reg2cgate的setup,其launch clock path delay天生是要比capture clock path delay要多delay2的,因此其setup相对于reg2reg是不好满足的。


    根据setup的计算公式可以看出:

Launch_clock_path_delay +data_path_delay+setup_check < capture_clock_path_delay + clock_period

    我们将下图中的一些值代入到上述公式可以得到:

(Launch_clock_path_delay - capture_clock_path_delay) + data_path_delay+setup_check < clock_period,即delay2 + delay3 + setup_check < clock+period

    所以为了解决reg2cgate的setup,我们可以降低delay2,delay3的值,delay3为data path delay,这个工具默认是为去降低的。因此,能够让我们去处理的就是delay2的值。

    那么delay2的值是如何降低的呢?下面有几种方法供大家参考。

    a. 在长clock tree的时候,让clock gate尽量贴近其后面的register,尽量不要在clock gate后面用插buffer的方式,去解clock gate的fanout。这么操作会导致delay2变大。如果clock gate的fanout特别大,可以去问一下综合人员是否可以优化一下netlist,或者我们在长clock tree的时候可以将clock gate clone选项打开;

    b. 如果reg1与其他register没有timing交互的话,可以在reg1的ck端设置ignore pin,这样工具在长clock tree的时候,便会将reg1的clock latency做短,即减少了delay2的值。

    那么,通过上述方法,基本上可以解决掉reg2cgate的setup问题。

    另外,在innovus中,我们也可以在对reg2cgate创建group path,并对group path level设置一个较高的值。那么,工具在优化的时候,会着重去优化reg2cgate path。

    以上就是解决reg2cgate setup的原理和方法。


#小编也是一个入行几年的数字后端工程师。由于本身对编程方面比较感兴趣。因此,在数字后端脚本、flow上比较擅长,大家如果有相关的问题,可以提供答疑咨询服务。另外,欢迎大家加入我的知识星球“芯冰乐”或者关注微信公众号“芯冰乐”,获取更多干货知识分享。



芯时代青年
专心数字前端全流程,芯时代有为青年的自我修养
 最新文章