热度 3| ||
面对越来越复杂规模越来越大的设计,其时钟结构也越来越复杂,实现高质量时钟树综合的过程种有可能会遇到各种问题,梳理一个通用的debug流程出来,或者是针对问题去找合适的切入点,快速定位。
第一步,最快捷的做法是从log入手,先快速过滤error,warning等特别的信息,初步确认流程没有明显错误。
第二步,检查基本配置是否合理,或者符合要求。
cts mode检查
常见的设置包括buffer list,是否用的是规定的类型;
max transition的约束是否合理;
ndr rule是否匹配;
甚至确认长tree的主corner是否合适
第三步,针对所遇到的问题,从相关参数入手。
时钟结构分析
遇到时钟长度,或者skew不符合预期的,需要打开CTD window去debug相应的结构是否出现异常
useful skew的参数设置
useful skew mode,effort, band_size等
worst chain
查看log种的worst chain,去trace是否有skew余量,以及瓶颈在哪些path上,有方向的去分析
阶段性db的保存
利用相关的debug命令,经ccopt拆分成几个子的步骤,分别存出阶段性db,然后比较
skew group,spec阅读与修改
分析skew group是否合理,是否有必要单独分出独立的group去长tree,去设置单独的目标长度等
Htree的应用常见问题
Htree常见的问题有a. sink没有挂在相应的tap上 b. icg被dont touch不能clone;c.icg被两个tap拉扯等
tree长不符合预期,local skew还有空间等。这些方面的就针对性去调setting或者htree的结构规划。
以上是一些可参考的debug切入点,正向的流程应该是先学习clock结构,然后配置正确的参数设置,微调参数从而实现高质量的tree。出现问题,则反向思路定位。