今天小编给大家分享下数字IC后端实现Physical Implementation过程中经常遇到的几个hold violation问题。每个问题都是小编自己在公司实际项目中遇到的。
数字后端实现静态时序分析STA Timing Signoff之min period violation
Q1: 在Innouvs postCTS时序优化的log中我们经常会看到如下所示的信息提示。这里会告诉我们工具修复当前design hold violation插入的hold buffer数量和剩下无法修复hold violation的原因(Reasons for remaining hold violations)。请问当前design经过optDesign优化后仍然存在83ps hold violation的原因是什么?应该如何解决?
Q2: 下图所示为一条从cpu core子模块到顶层a7top的一条hold timing path,当前hold violation有83ps。这条timing path就是上面第一个问题中未被修复的hold violation点。请问当前hold violation存在的主要原因是什么?如何修复?
Q3: 下图所示为咱们TSMC 12nm 低功耗 upf flow ananke_core A55设计实现在postCTS优化后高亮的hold buffer分布图。请问当前hold buffer分布是否合理?如何控制hold buffer不插在memory data pin上?具体在PR Implementation阶段应该如何解决?
Q4: 下图所示为咱们社区复杂时钟clock gen设计时钟树训练营项目在做primetime timing signoff时发现的hold violation。按道理这条timing path不应该会有这么大的hold violation,请问当前hold violation出现的根本原因是什么?是否一定是时钟树综合阶段出的问题?遇到这种hold violation问题,debug的思路是什么,突破口在哪里?
Q5:下图所示两条timing path分别为a7top顶层reg到子模块a7core data pin和从子模块a7core输出到顶层a7top ICG Enable Pin的时序路径。
1)请计算出当前电路的最高工作频率
2)如何规避到CPU a7core的hold violation?
3)为何各路clock tree上有USK的clock inverter? 出现比较多这类clock inverter能说明什么问题?
Q6:下图所示为一个典型复杂时钟结构设计。请解释为何当前设计在scan模式下容易有hold violation?应该如何在时钟树综合阶段进行干预?
SoC芯片中Clock Gen和Reset Gen的时钟树综合