Critical Path--关键路径

什么是Critical Path? 一般是指我们设计中时序最关键的路径,通常也就是timing最差或者最难修的路径。实际工作中,leader或者同事也经常问你Critical Path在哪里。 这时,我们要学会从时序报告中去找到timing最差的path并去分析它。

那如何分析呢?下面提供几点建议

首先,我们可以看下这条path的走向是否合理,也叫作detour,通俗的解释就是有没有绕远路。

Innovus可以采用Global timing debug工具显示path path的路径

report_timing -machine_readable > critcal_path.mtarpt

其次,我们可以看下设计的clock tree做得平不平。 通常来说,我们还是希望clock tree能尽可能做平一点,这样timing更容易meet。简单一点的方法,我们能直接从时序报告中得到clock tree的skew,就是自己算下launch clock path和capture clock path的delay差值(下图箭头差值),如果差值过大,那就要重点看一下clock tree的质量了

在这里插入图片描述
最后,我们也可以分析下具体data path上,有没有一些bad buffering, 过大的 load或者transition,甚至一些距离比较长的net都可以研究下

转载:https://www.sohu.com/a/288660692_99933533

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关键路径算法是一种用于确定项目最长时间和关键路径的方法。它可以帮助我们确定项目中哪些任务是最重要的,以及哪些任务必须按时完成。下面是一个简单的关键路径算法的实现: int criticalpath(algraph g) { int i, j, k, m, n, e, l; int ve[MAXSIZE], vl[MAXSIZE], stack[MAXSIZE], top = -1; arcnode *p; // 初始化ve数组 for (i = 0; i < g.n; i++) ve[i] = 0; // 计算ve数组 for (i = 0; i < g.n; i++) { for (p = g.vertices[i].firstarc; p != NULL; p = p->nextarc) { j = p->adjvex; e = p->weight; if (ve[i] + e > ve[j]) ve[j] = ve[i] + e; } } // 初始化vl数组 for (i = 0; i < g.n; i++) vl[i] = ve[g.n - 1]; // 计算vl数组 for (i = g.n - 2; i >= 0; i--) { for (p = g.vertices[i].firstarc; p != NULL; p = p->nextarc) { j = p->adjvex; e = p->weight; if (vl[j] - e < vl[i]) vl[i] = vl[j] - e; } } // 输出关键路径 for (i = 0; i < g.n; i++) { for (p = g.vertices[i].firstarc; p != NULL; p = p->nextarc) { j = p->adjvex; e = p->weight; if (ve[i] == vl[j] - e) { printf("(%d,%d) ", i, j); } } } return 0; } 这个算法的主要思想是通过计算每个任务的最早开始时间和最晚开始时间来确定关键路径。最早开始时间(ve)是指在没有任何延迟的情况下,任务可以开始的最早时间。最晚开始时间(vl)是指在不影响项目完成时间的情况下,任务必须开始的最晚时间。 在计算ve和vl数组之后,我们可以通过比较每个任务的ve和vl来确定关键路径。如果一个任务的ve等于它的vl减去它的持续时间,那么它就是关键路径上的一个任务。 最后,我们可以输出关键路径上的所有任务。这个算法的时间复杂度为O(n^2),其中n是任务的数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值