时钟分频电路之Innovus自动产生的_clock_gen skew group盘点

我们在查看时钟树综合的log时会发现工具会自动生成一些skew group,这些skew group的名字都是以_clock_gen开头的。

skew_group _clock_gen_CLK_CORE_PLL_clk_reg_1/func: insertion delay [min=0.020, max=0.064, avg=0.038, sd=0.022], skew [0.045 vs 0.050], 100% {0.020, 0.064} (wid=0.002 ws=0.001) (gid=0.062 gs=0.044)

SoC芯片中Clock Gen和Reset Gen的时钟树综合

出现这种情况往往多见于下面这种电路设计中,即多见于时钟分频电路处。

时钟产生电路的时钟树综合

由于工具看到FF1/Q到div_reg/SI有timing check,所以自动把分频器相关配置寄存器和div_reg归到一个新的skew group中。

这样做其实也是有弊端的,如果FF2和FF1之间需要做timing check,同样是会有setup和hold time violation。因为两者的clock tree latency不一样(clock 不平)。

解决的方法是设计中的分频寄存器不要串在scan chain中。

有的时候我们只希望工具严格按照我们的sdc中的时钟定义来生成对应的skew group,并不希望自动来生成。那么我们就需要通过下面的命令来实现。

set_ccopt_property extract_clock_generator_skew_groups false

需要注意的是这个ccopt property一定要在生成clock spec前设置,否则无效。

在咱们社区复杂时钟clock gen设计的时钟树综合CTS训练营项目中,由于default extract_clock_generator_skew_groups是开启的,所以工具会额外生成一系列_clock_gen开头的skew group,并且把分频寄存器和它的fanout归到同一个clock skew group做balance。

这样很显然是不符合我们的预期的。
在这里插入图片描述
为了给大家提供一个时钟树综合的练习,小编给大家提供一个innovus小实验。有需要的同学可以留言,我免费分享给大家。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值