《如何缩短clock insertion delay-1》
问题和需求:
跨时钟域的Setup Timing问题,由于Launch Clock的latency太长导致的两个Clock之间的Skew比较大,所以Setup timing比较难满足,需要缩短Launch clock的Insertion delay。另外这个Clock其实已经做了HCTS了,所以需要基于HCTS去继续降低Insertion delay(Latency)。
分析和Debug:
我们可以把每个Tap point下面挂的sink的分布给高亮一下。
如下图所示,它显示了它下面每个Tap point下面挂的Sink的分布范围,不同的颜色代表挂在了不同Tap point下面。圆圈和方块代表那个地方是有Sink的,空白的地方是没有Sink的,因此它的面积就代表了Sink的多少。(所以下方的紫色方块那个地方的Sink是最多的,因为它面积最大)
从图中可以看出,每个Tap点下面挂的Sink数目相差很大,有的Tap点下面挂的Sink非常多,它限制了整体的的Latency,因为其他的所有Tap点下面的Sink都需要和它里面最长的那个去Balance,虽然可能它下面的Sink数目非常少。另外就是可以发现有一些Sink(下方橙色的部分)是远离绝大部分Sink的位置的,也可能是它拉长了整体的Tree的Latency。
思路与解决方案:
上方的HCTS的Box的大概范围是红色框的部分,可以看到红框下半部分的Sink明显比上半部分要少,两边明显比中间要少。
所以我们可以去缩小HCTS box(这个Case的宽度和高度都可以缩小),使得每个Tap point驱动的Flop数量不要相差太多。
经过几个Trial发现,那个橘色的一些Sink远离其他绝大部分的Sink,有的Trial发现即使它们距离比较远,它们的Latency依然比较小,为了保险起见,还是对它们加了Region,Region到了HCTS box里面,防止偏离的比较远拉长Latency。
结果:
见星球原文 https://t.zsxq.com/82zri
实现方法:
见星球原文 https://t.zsxq.com/82zri
星球还有更多降低Insertion delay和debug的方法哦。
星球简介
低功耗设计技术总结 - 3万字,129页 IR drop的分析与修复总结 - 4.3千字,20页 数字后端理论及实践-ICC干货笔记 - 11万字,423页 数字后端理论及实践-Innouvs教程(第4版)- 5.7万字,316页 ICC2教程-星球精编版 - 2万字,125页 数字后端理论及实践-Innouvs教程(第5版)- 11.8万字,635页 面试笔试题整理 面试笔试经验分享(第1版)- 1.6万字,48页 面试笔试题整理 面试笔试经验分享(第2版)- 2.3万字,87页 ICC2 ICC与Innovus的命令对照(第1版) Tcl与DesignCompiler教程(第1版)- 6.1万字,183页 DRC规则讲解、DRC的检查与修复(第1版)- 7.3千字,26页 Congestion的分析与修复专题(第1版)- 1.2万字,41页 Perl-Tk教程(第1版)- 1.6万字 73页 星球精华推文分类整理合集(第1版)- 1.8万字,75页 星球精华推文分类整理合集(第2版)- 4.4万字,160页 面试笔试题整理 面试笔试经验分享(第3版)- 2.7万字,96页 星球精华推文分类整理合集(第3版)- 6.6万字,240页 时序分析与sdc专题笔记(第1版) - 3.1万字,115页 星球精华推文分类整理合集(第4版)- 8.4万字,296页 面试笔试题整理 面试笔试经验分享(第4版)- 3.2万字,103页 更多教程、笔记持续更新中。。。