数字后端设计实现之自动化useful skew技术(Concurrent Clock &Data)

文章讲述了在数字IC设计中,合理利用clockskew(有用的时钟偏移)可以改善局部路径的timing,如增加setupslack,从而提高整体设计效率。Synopsys和Cadence的工具支持这种优化功能,而Innovus则推荐全程开启usefulskew,尤其在高性能ARMCPU设计中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在数字IC后端设计实现过程中,我们一直强调做时钟树综合要把clock skew做到最小。原因是clock skew的存在对整体设计的timing是不利的。

数字IC后端时序分析clock skew对timing的影响

但是具体到某些timing path,可能它的local clock skew对timing是有帮助的,比如如下图所示。

useful skew技术改善timing时序

第一级FF到第二级FF的setup原来存在-1ns的violation。经过借用后一级的timing margin把第二个FF的tree做长1ns后这条timing path的setup slack变成0ns,即meet了。而且我们发现第二级FF到第三级FF的setup slack虽然从原来的2ns slack变成1ns的slack,但依然还是正的slack。

所以,这个人为引入的clock skew对我们的setup是有利的,所以把这个技术称作usefu skew。

所以EDA工具无论是Synopsys还是Cadence的,在时序优化阶段都支持clock和data的同步优化功能。

在没有这个功能时,我们需要一个个去分析到底哪些点的sink需要做长做短。现在我们可以直接通过模式和选项的设置让工具自己帮助我们来利用好useful skew。

在这里插入图片描述

### 如何在ICC2中应用Useful Skew进行时序优化 #### 启用Global Skew和Local Skew优化功能 为了利用useful skew特性,需要先启用全局skew以及局部skew优化选项。通过设置特定的应用参数,可以在编译期间激活这些功能: ```tcl icc2_shell> set_app_options -list {cts.compile.enable_local_skew true} icc2_shell> set_app_options -list {cts.optimize.enable_local_skew true} ``` 上述命令允许工具尝试减小最差情况与最优情况下时钟路径之间的差异(global skew),同时也关注于具体路径上的启动(clock launch)与时钟捕获(capture)间的延迟(local skew)[^1]。 #### 减少OCV影响并移除Clock Reconvergence Pessimism 当构建时钟树结构时,应考虑减少片上变化(On-Chip Variation, OCV)带来的负面影响。为此,可以通过共享更多的缓冲器来降低这种不确定性,并消除因路径重合而导致的时间估算偏差: ```tcl set_app_options -value true ``` 此操作会在后续的报告中显示额外的信息项——即clock reconvergence pessimism去除后的效果评估[^2]。 #### 实施增量放置与优化策略 针对已经完成初步布局的设计文件,采用增量式的调整方法能够更精确地控制关键路径的变化。这通常涉及到对现有设计的小范围修改(ECO),从而实现更好的性能提升而不破坏整体架构稳定性[^3]: ```tcl perform_incremental_placement_and_optimization ... ``` 以上步骤综合起来构成了完整的基于useful skew时序优化流程,在实际项目开发过程中可以根据具体情况灵活运用各项技术手段达到最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值