使用快速估计技术的有效的采用穷尽法的基于路径的sta的制作方法

文档序号:6583117阅读:148来源:国知局
专利名称:使用快速估计技术的有效的采用穷尽法的基于路径的sta的制作方法
技术领域
本发明通常涉及用于对集成电路(IC)芯片执行静态时序分析(STA)的技术。更 为具体地,本发明涉及用于通过使用快速路径延迟估计来执行有效的基于穷尽路径的STA 的方法和装置。
背景技术
计算机技术的快速发展使得可以对数据集执行每秒数千吉次计算操作,数据集的 大小有时为数千吉比特。这些发展可以主要归因于集成电路的尺寸和复杂度方面的指数增长。由于集成电路的尺寸和复杂度方面的增长,变得需要使用复杂的工具来验证时序 约束。在出现静态时序分析(STA)之前,时序约束通常通过使用基于模拟的技术来验 证。随着集成电路的复杂度增加,因为基于模拟的技术的长运行期、低容量和非完整分析, 使用基于模拟的技术来验证时序约束变得不可实现。与基于模拟的技术不同,STA通过计算最差情形延迟和最好情形延迟来验证时序, 而不列举所有可能的路径。因此,STA可以在合理的时间量内对大的集成电路执行详尽的 时序分析。结果是,STA已经作为用于对大的集成电路验证时序约束的选择方法出现。在集成电路(IC)设计的STA阶段期间,通常使用基于图表的STA和基于路径的分 析两者。基于图表的STA是非常快的(0(N) ;N是设计中的单元的数目),但是结果通常不 好。基于路径的STA通常被使用来提供不像基于图表的STA那么差(以及更为准确)的对 时序间隙(slack)(或多个间隙)的估计。更为具体地,通常在基于图表的分析之后,执行 基于路径的分析,其通过以下来实现对基于图表的分析的结果进行排序,从最保守的端点 开始,并针对终止于该端点的每条路径重新计算到该端点的间隙。因为基于路径的间隙在 时序图中的每个交合点处不像基于图表的分析要求的那样使用最差偏移(slew),而是每个 端点的相对改进可以改变,所以基于路径的间隙通常不是很保守。不利地,基于路径的STA是计算密集型过程,该过程要求跟踪设计内的每条可能 的路径。尽管基于路径的STA是准确的,但是执行基于路径的STA所要求的计算量随着单 元的数目而指数增加。因此,需要一种可以减少与基于穷尽路径的STA相关联的运行时间的方法和装置。

发明内容
本发明的一个实施例提供了一种系统,该系统在电路设计中执行有效的基于路径 的静态时序分析(STA)。在操作期间,系统识别电路设计内的一组路径,其中每条路径包括 一个或多个段。对于一组路径中的一条路径,系统确定该路径中的至少一段是否与先前通 过执行基于路径的STA而计算出的不同路径共享,其中不同路径中的至少一段与先前计算出的基于路径的时序信息相关联。如果共享,则系统至少基于与不同路径中的共享段相关 联的基于路径的时序信息,执行对路径的基于路径的延迟的估计。否则,系统通过对路径执 行基于路径的STA,计算路径的基于路径的延迟。在一些实施例中,在执行估计后,系统通过首先确定所估计出的基于路径的延迟 是否大于阈值延迟,确定与路径相关联的基于路径的延迟是否是组路径中的最差情况的基 于路径的延迟。如果是,则系统通过对路径执行基于路径的STA,计算路径的基于路径的延 迟。否则,系统确定基于路径的延迟不是一组路径中的最差情况的基于路径的延迟。注意, 确定是基于所估计出的基于路径的延迟进行的,而不会针对路径延迟实际计算基于路径的 延迟,从而减少计算时间。在一些实施例中,系统尝试识别组路径中的最差情况的基于路径的延迟和最差情 况的基于路径的间隙。在一些实施例中,在执行估计后,系统通过首先确定所估计出的基于路径的延迟 是否小于阈值延迟,确定与路径相关联的基于路径的延迟是否是一组路径中的最好情况的 基于路径的延迟。如果是,则系统通过对路径执行基于路径的STA,计算路径的基于路径的 延迟。否则,系统确定基于路径的延迟不是组路径中的最好情况的基于路径的延迟。注意, 确定是基于所估计出的基于路径的延迟进行的,而不会针对路径延迟实际计算基于路径的 延迟,从而减少计算时间。在一些实施例中,系统尝试识别该组路径中的最好的基于路径的延迟和最好的基 于路径的间隙。在一些实施例中,该组路径终止于电路设计中的共同端点。在一些实施例中,基于路径的时序信息包括基于路径的延迟和基于路径的偏移。在一些实施例中,系统通过基于与不同路径中的相同段相关联的基于路径的延迟 和基于路径的偏移来估计路径中的段的基于路径的延迟,执行对路径的基于路径的延迟的 估计。在一些实施例中,路径中的每个段与基于图表的延迟和基于图表的偏移相关联, 基于图表的延迟和基于图表的偏移是根据基于图表的STA针对路径先前计算出的。注意, 基于图表的延迟和基于图表的偏移提供对与路径相关联的基于路径的延迟和基于路径的 偏移的最差情况的估计。在一些实施例中,系统通过基于与段相关联的基于图表的偏移来估计路径中的段 的基于路径的延迟,执行对路径的基于路径的延迟的估计。在一些实施例中,系统通过进行对路径中的每个段的估计,执行对路径的基于路 径的延迟的估计。更具体地,对于每个段,系统确定段是否与先前根据基于路径的STA计算 出的另一路径共享,其中另一路径中的段与先前计算出的基于路径的时序信息相关联。如 果共享,则系统基于与另一路径中的共享的段相关联的基于路径的时序信息,执行对该段 的基于路径的延迟的估计。否则,系统使用与段相关联的基于图表的延迟,作为该段的所估 计出的基于路径的延迟。最后,系统对路径中的所有段的所估计出的基于路径的延迟进行 求和,以获得路径的所估计出的基于路径的延迟。在一些实施例中,该组路径终止于电路设计中的多个端点。


图1例示了根据本发明的实施例的集成电路的设计和制造的各个步骤;图2示出了例示在集成电路的设计和实现期间如何使用STA的流程图;图3示出了例示对IC设计执行传统的基于穷尽路径的STA的过程的流程图;图4例示了对示例端点执行穷尽PBA间隙计算;图5示出了例示根据本发明的实施例的使用快速估计来对新的路径执行改进的 基于路径的STA的过程的流程图;图6例示了根据本发明的实施例的具有共享共同段的两条路径的电路示意图;图7示出了例示根据本发明的实施例的对IC设计执行改进的基于穷尽路径的STA 的过程的流程图;图8例示了根据本发明的实施例的对图4中的示例端点执行改进的穷尽PBA间隙 计算;图9例示了根据本发明的实施例的用于在IC设计中执行有效的基于路径的STA 的装置。
具体实施例方式下述描述被呈现来使得本领域的技术人员能够实现和使用实施例,并且下述描述 是在具体应用及其要求的上下文中提供的。对所公开的实施例的各种修改对于本领域技 术人员而言是非常显而易见的,并且这里所定义的一般性原理可以应用于其它实施例或应 用,而不会背离本公开的精神和范围。因此,本发明不限于所示出的实施例,而是与符合本 文在此公开的原理和特征的最广范围相一致。在该具体实施方式
中所描述的数据结构和代码通常存储在计算机可读存储介质 上,计算机可读存储介质可以是可以存储可供计算机系统使用的代码和/或数据的任何设 备或介质。计算机可读存储介质包括但不限于,易失性存储器、非易失性存储器、磁性或光 学存储设备(比如盘驱动器、磁带、CD (压缩盘)、DVD (数字通用盘或数字视频盘))、或者现 在公知或稍后开发的能够存储计算机可读介质的其他介质。在该具体实施方式
中描述的方法和过程可以被具体体现为代码和/或数据,代码 和/或数据可以存储在如上的计算机可读存储介质中。当计算机系统读取和执行在计算机 可读存储介质上存储的代码和/或数据时,计算机系统执行被具体体现为在计算机可读存 储介质中存储的代码和/或数据结构的方法和过程。此外,本文所描述的方法和过程可以包括在硬件模块或装置中。这些模块或装置 可以包括但不限于,专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执 行特定软件模块或代码的专用或共享处理器、和/或现在公知或稍后开发的其它可编程逻 辑器件。当硬件模块或装置被激活时,硬件模块或装置执行在它们中包括的方法和过程。集成电路设计流程图1例示了集成电路的设计和制造的各种步骤。过程开始于生成产品构想(阶段 100),其使用电子设计自动化(EDA)软件设计过程实现(阶段110)。当设计完成时,可以进 行流片(阶段140)。在流片后,完成制造过程(阶段150),并进行封装和组装过程(阶段 160),封装和组装过程最终导致完成的芯片(阶段170)。
接着,EDA软件设计过程(阶段110)包括阶段112-130,如下所述。注意,这个设 计流程描述仅仅是示例性的。这种描述不意味着限制本发明。例如,实际的集成电路设计 可以要求设计者按照与本文所描述的顺序不同的顺序来执行设计阶段。下述讨论提供了设 计过程中的阶段的进一步的细节。系统设计(阶段112)设计者描述要实现的功能。他们还可以执行假设(what-if) 规划来微调(refine)功能以及检查成本。在该阶段可以出现硬件-软件架构划分。在该 阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括MODEL ARCHITECT 、 SABER 、SYSTEM STUDIO 和DESIGNWARE 产品。逻辑设计和功能验证(阶段114)在此阶段,编写用于系统中的模块的VHDL或 Verilog代码,并且检查设计的功能准确性。更为具体地,对设计进行检查,以确保它产生正 确的输出。在该阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括VCS 、 VERA 、DESIGNWARE 、MAGELLAN 、FORMALITY 、ESP 和LED A 产品。综合和设计(阶段116)这里,VHDL/Verilog被转换为网表。可以针对目标 技术来对网表进行优化。另外,可以设计和实现测试来检查所完成的芯片。在该阶段 可以使用的来自SYN0PSYS公司的示例EDA软件产品包括DESIGN COMPILER 、 PHYSICAL COMPILER 、TEST COMPILER 、POWER COMPILER 、 FPGA COMPILER 、TETRAMAX 和 DESIGNWARE 产品。网表验证(阶段118)在这个阶段,检查网表是否符合时序约束以及是否与VHDL/ Verilog源代码对应。在该阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括 FORMALITY 、PRIMETIME 和VCS 产品。设计规划(阶段120):这里,针对时序和顶层布线来构建和分析芯片的整体布 局(floor plan)。在该阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括 ASTRO 和 ic COMPILER 产品。物理实现(阶段122)放置(电路元件的定位)和布线(电路元件的连接)在这 个阶段出现。在该阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括ASTRO 和IC COMPILER 产品。分析和提取(阶段124)在这个阶段,在晶体管级上验证电路功能;这继而允 许what-if微调。在该阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括 ASTRORAIL 、PRIMERAIL 、
PRIMETIME 、HSPICE 、HSIM 、NANOTIME 、NANOSIM 和 STAR-RCXT 产品。时序验证(阶段125):静态时序分析(STA)通常在该阶段发生,其中,检查网 表是否符合时序约束以及是否与VHDL/Verilog源代码对应。在该阶段可以使用的来自 SYN0PSYS公司的示例EDA软件产品包括PRIMETIME 产品。物理验证(阶段126)在这个阶段,对设计进行检查,以确保制造、电气问题、光刻 问题和电路的正确性。在该阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括 HERCULES 产品。分辨率(resolution)增强(阶段128)这个阶段包括对布局的几何处理,以改进设计的可制造性。在该阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括 PROTEUS 、 PROTEUS AF 和PSMGED 产品。掩膜数据制备(阶段130)这个阶段提供制造掩膜的流片数据,以产生完成的芯 片。在该阶段可以使用的来自SYN0PSYS公司的示例EDA软件产品包括CATS 产品系列。可以在一个或多个上述步骤期间使用本发明的实施例。具体地,可以在时序验证 阶段125期间使用本发明的一个实施例。静杰时序分析(STA)图2示出了例示在设计和实现集成电路期间通常如何使用STA的流程图。首先,设计集成电路(步骤202)。接着,提取寄生效应(prarasitics)(步骤204)。 随后,执行静态时序分析(步骤206)。如果发现时序冲突(步骤208),则过程返回到电路 设计步骤202,从而对电路进行调整(tweak)以解决时序冲突。另一方面,如果没有发现时 序冲突,则过程继续制造过程中的下一步骤。基于穷尽路径的分析图3示出了例示对IC设计执行传统的基于穷尽路径的STA的过程的流程图。这 个过程在一组路径中搜索具有最差的重计算出的基于路径的间隙的路径。在执行基于路径的STA之前,假设已经对IC设计执行了基于图表的STA。结果是, 每个时序端点(下文中称为“端点”),例如,触发器(翻转),与被称为“基于图表的STA间 隙”或“GBA间隙”的间隙相关联。注意,给定端点的GBA间隙是通过首先计算终止于端点 的一组路径的GBA间隙,随后选择针对该组路径的一组GBA间隙中的最差GBA间隙来获得 的。在下述讨论中,将对给定端点执行基于路径的STA的过程称为“重计算”,因为它发生在 已经执行基于图表的STA之后。为了执行基于穷尽路径的STA,系统通常开始于基于相关的GBA间隙来对IC设计 中的一组端点区分优先级(步骤302)。系统随后选择还未被重计算的具有最差的GBA间隙 的端点(或“最差GBA端点”)(步骤304)。接着,系统基于与终止于该端点的一组路径相 关的GBA间隙,按照间隙值递增的顺序对该组路径进行排序,即,较差的间隙接收较高的优 先级(步骤306)。更为具体地,针对按照GBA间隙排序的一组路径中的每条路径,系统确定GBA间隙 是否大于阈值间隙(步骤308)。该阈值间隙保持当前的最差的重计算出的PBA间隙,随着 处理更多的路径,当前的最差的重计算出的PBA间隙被迭代地更新。通常,阈值间隙具有足 够大的初始值,其可以被容易地替换为重计算出的PBA间隙。如果当前处理的路径的GBA间隙大于阈值间隙,则已经找到最差的重计算出的 PBA间隙,其等于阈值间隙(步骤310),并且过程终止。注意,这很少是第一路径正被处理 的情形(即,该路径具有最差GBA间隙)。然而,如果该当前处理的路径的GBA间隙小于阈值间隙,则系统对该路径执行基 于路径的STA,以获得重计算出的PBA间隙(步骤312)。注意,所重计算出的PBA间隙通常 大于该同一路径的GBA间隙。系统随后确定所重计算出的PBA间隙是否小于当前的阈值间 隙(步骤314)。如果是,则找到最差PBA间隙的新值,并且系统利用新近重计算出的PBA间 隙来替换阈值间隙(步骤316)。系统随后继续按照优先级顺序处理一组路径中的下一路 径,直到找到该组路径中的最差的重计算出的PBA间隙。
10
如果步骤314为假,即,所重计算出的PBA间隙大于阈值间隙,则系统返回来按照 优先级顺序处理一组路径中的下一路径。随后,重复上述过程,直到找到最差的重计算出的 PBA间隙。通过对按优先级排列的端点应用图3中描述的穷尽PBA间隙计算,针对与最差GBA 间隙相关联的那些端点,系统可以识别最差的重计算出的PBA间隙。应该指出的是,这种穷尽PBA间隙计算过程不必处理终止于所选择的端点的一组 路径中的每条路径。图4例示了对示例端点400执行穷尽PBA间隙计算。更为具体地,图4以图形的方式例示了针对终止于端点400的一组路径重计算间 隙的过程。如图4中所示,以如果轴410上的每个GBA间隙值和轴420上的PBA间隙值具 有相同的水平位置,则轴410上的每个GBA间隙值等于轴420上的PBA间隙值的方式,绘制 GBA间隙轴410和PBA间隙轴420。注意,与相应的GBA间隙401A_409A(9个圆圈)相关联的9条路径按照GBA间隙递 增的顺序排列在GBA间隙轴410上,其中路径的最差GBA间隙401A位于轴410的最左端。 在穷尽PBA间隙计算过程期间,根据图3中描述的技术来从与间隙401A(浅阴影圆圈)相 关联的路径开始顺序地处理这一组路径。这生成了 PBA间隙轴420上的重计算出的PBA间 隙401B(深阴影圆圈),其大于GBA间隙,这是期望的,因为GBA间隙更为不好。注意,PBA 间隙401B随后变为最差的重计算出的PBA间隙(当没有其它值可用时)。接着,对与GBA 间隙402A相关联的路径进行重计算,并且获得PBA轴420上的PBA间隙402B。因为PBA间 隙402B小于GBA间隙401B,所以间隙402B替换401B,作为新的最差PBA间隙。类似地,分别对与GBA间隙403A、404A和405A(所有都为浅阴影圆圈)相关联的 路径进行重计算,以获得PBA轴420上的PBA间隙403B、404B和405B(所有都为深阴影圆 圈)。注意,GBA间隙403A-405A中的每个都小于最差PBA间隙402B。此外,对应的GBA间 隙403B-405B中的每个都大于最差PBA间隙402B。因此,在重计算PBA间隙405B后,PBA 间隙402B保持为最差PBA间隙。接着,处理与GBA间隙406A(空心圆圈)相关联的新路径。首先,将GBA间隙406A 与最差PBA间隙402B进行比较。因为GBA间隙406A大于最差PBA间隙402B,所以GBA间 隙轴410上的GBA间隙的增加值确保与GBA间隙406A-409A(所有为空心圆圈)相关联的 路径不会产生比当前的最差PBA间隙402B更小的PBA间隙值。因此,不会对这些新的路径 进行重计算,从而节省计算资源,并且基于路径的STA报告端点400的最差PBA间隙。注意,尽管在图4中不是对所有路径进行重计算,但是对与GBA间隙403A-405A相 关联的那些路径全部进行重计算,从而所重计算出的PBA间隙不会影响搜索针对端点400 的最差PBA间隙的结果。使用快速估计的改进的基于路径的STA本发明的实施例提供了改进的基于路径的STA技术,该技术可以大大减少使用基 于路径的STA必须重计算的路径的数目。更为具体地,如果新的路径或者该新的路径的一 部分(例如,一段)与一个或多个先前重计算过的路径重叠,则不必从头开始对新路径进行 重计算。取而代之,可以使用与已经重计算过的路径相关联的基于路径的时序信息,来快速 地估计还未被分析的新路径的路径延迟。例如,如果被完全重计算的前M个路径是 散的(即,没有共同段),而接下来的N个新路径与前M个路径中的一些路径共享一些段,则可以尝试估计在这些新路径中的基于 路径的分析相对于基于图表的分析的改进,而不需要重计算所有N个新路径。注意,在重用已经重计算过的路径来估计新路径的PBA延迟的一般性概念下,可 以使用不同的估计技术。一种估计技术将诸如来自基于路径的STA的PBA延迟和PBA偏移 (slew)的时序信息与已经根据基于图标的STA获得的最差偏移组合,以生成对新路径的路 径延迟的充分准确的估计。这种估计通常远快于完全的基于路径的STA计算。注意,执行这种快速估计的一个目标是在基于穷尽路径的STA期间尽可能多地删 减(prime)路径。例如,当搜索一个端点的最差PBA间隙时,可以对新路径进行快速估计, 其中估计可以与当前的最差PBA延迟/间隙进行比较。如果所估计的延迟/间隙好于当前 的最差PBA延迟/间隙,则从下一步的考虑中删减该新路径。因此,本技术避免对新路径重 计算PBA延迟/间隙。注意,在本实施例中,该估计为新路径提供了时序界限。这种估计技 术将在下面进行更为详细的描述。估计技术的质量通常影响相对于传统的基于路径的STA的运行时间改进量。如果 估计技术的质量低(即,如果估计准则是较保守的),则删减的路径可能较少,而必须重计 算许多路径。相反,如果估计技术的质量高(即,如果估计准则不那么保守),则可以删减大 多数路径,而重计算较少的路径。在一个实施例中,估计技术被设计为使得它可以产生与完 全重计算出的结果基本上相同的结果,或者产生与完全重计算出的结果相比要差但同时尽 可能接近完全重计算出的结果的结果。这种估计技术提供更好的运行时间改进。在一个实 施例中,正确设计的估计技术产生比基于图表的STA结果好、但是与完全重计算出的基于 路径的STA结果相比不是最佳的结果。图5示出了例示根据本发明的实施例的使用快速估计来对新路径执行改进的基 于路径的STA的过程的流程图。在操作期间,系统接收新路径,该新路径包括一组互相链接的段(步骤502)。注 意,已经先利用基于图表的STA针对每条路径计算了 GBA延迟/间隙。因此,新路径中的每 个段与一个GBA延迟相关联,该GBA延迟可以用作最差情况的延迟估计。针对一组段的所 有GBA延迟的总和等于针对新路径的GBA延迟。这个GBA延迟随后可以被转换为同一路径 的GBA间隙。注意,每个段还可以与共同的如基于图表的STA所要求的最差偏移相关联。接着,对于一组段中的每个段,系统确定新路径是否与先前根据基于图表的STA 重计算过的至少一个不同的路径共享(例如,重叠)段(步骤504)。图6例示了根据本发明的实施例的具有共享共同段606的两条路径(即,路径602 和604)的电路示意图。更为具体地,路径602包括至少三个缓存器、一个锁存器和两个AND 门608和610。路径601包括一个锁存器以及AND门608和610。此外,路径602和604在 段606上重叠,该段606包括AND门608和610。在本发明的一个实施例中,每个段被定义为4个管脚的序列,例如,图6中的 A-X-M-Y。注意,路径602和604两者通过管脚A-X-M-Y。此外,每个段还包括两个字段关 键字字段和数据字段。关键字字段被用来验证新路径是否匹配给定段。该字段还包含4个 管脚、4个上升/下降方向和单元弧数目,例如,从弧AX到MY的数目。在本实施例中,对于 一条路径中的一段匹配(或共享)另一路径中的一段,上述两段必须具有相同的4个管脚 的序列,以及在所有匹配管脚上具有相同的上升/下降方向。
数据字段包含基于GBA的延迟及偏移和基于PBA的延迟及偏移的数据结构。段的 数据字段可以包含估计共享同一段的新路径的PBA延迟所需要的延迟及偏移。数据字段还 可以存储一些统计值(例如,年龄、访问的数目等)。注意,本发明通常可以应用于任何类型 的段结构。因此,本发明不限于如上所述和图6中所例示的具体段结构。在一些实施例中,在高速缓存中存储这些段。利用每个段的关键字对该高速缓存 进行索引。存储这些段的主数据结构可以只是表格也可以是更高级的数据结构,以便于快 速地查找和更新。每个段还可以与一个得分相关联。在一个实施例中,该得分可以是PBA 延迟相对于GBA延迟的改进,其可以由基于路径的STA保证。利用该得分,如果必须添加新 路径且同时高速缓存是满的,则系统可以从高速缓存中移除具有最低得分的段。参见图5,如果步骤504为真,则系统尝试使用所存储的与先前重计算过的路径中 的段相关联的GBA延迟及偏移和PBA延迟及偏移,来估计新路径中的共享段的PBA延迟(步 骤506)。注意,在步骤506期间可以出现若干种变型。理想地,如果可以从先前重计算的路 径取回延迟和偏移,则延迟和偏移随后可以被用来执行对新路径的估计。然而,在一些实施 例中,对于先前重计算过的路径,延迟和偏移是不可获得的。这可以发生在存在多个合格的 路径并且在步骤504中识别,并且仅仅与最佳值(例如,最小延迟)相关联的路径具有所存 储的延迟和间隙时。在这种情形下,系统需要在合格的路径中定位包含上述值的路径。然 而,如果多个合格的路径都具有存储的延迟和偏移,则系统可以选择与最佳值(例如,最小 延迟)相关联的路径来估计新路径中的共享段的延迟。注意,这些多个合格的路径可以终 止于同一端点或者终止于不同的端点。如果步骤504的结果为假,S卩,没有找到与该段匹配的路径,则系统使用原始的 GBA延迟作为该段的PBA延迟估计(步骤508)。注意,重用GBA延迟不会对该段产生改进。接着,系统返回来处理还未被估计的新路径中的下一段,并且随后重复步骤 504-508。这个过程继续,直到新路径中的所有段已经被估计为止。此时,系统将对新路径 中的所有段的所估计的PBA延迟进行求和,以获得新路径的估计的PBA延迟(步骤510)。 理想地,与原始的GBA延迟/间隙相比,由于先前重计算过的PBA值的影响,该估计的PBA 延迟以及随后所估计的PBA间隙在准确性上获得相当大的改进并且不那么保守。如果是这 样,则已经以非常快的方式获得所估计的PBA延迟/间隙。在一个实施例中,随后可以使用 完全路径估计来决定是否从相关联的基于路径的STA中删减新路径而不需要进行重计算, 或者决定新路径必须被重计算。如下结合图7和8来更为详细地描述该过程。在整个新路径与其它路径之间没有重叠段的最差情况方案中,所估计的PBA延迟 变为原始GBA延迟值,并且没有做出改进。这种情形通常在IC设计中的开始的非常少量的 路径被处理时出现。如同如下在图7中所述,这些路径通常必须使用基于路径的STA并为 将来的路径设置值来进行重计算。随着越来越多的延迟和偏移被重计算,重叠段的数目增 加并且可以对基于路径的STA进行更多的估计。在一些实施例中,在正在处理第二路径时 重叠出现并且尽可能早地应用估计技术。注意,使用快速估计的一个目标是对新路径提供与GBA延迟相比更为准确和更少 不好的PBA延迟。现在描述估计技术。在本发明的一个实施例中,新路径中的一个段的PBA延迟的估计是基于先前针对 不同路径中的同一个段计算的PBA延迟和PBA偏移进行的。理想地,可以通过直接将重计算的PBA延迟重用作新路径中的PBA延迟的估计来进行估计。然而,这通常是不正确的,因 为对于给定段,段的输入管脚上的不同偏移产生段的不同PBA延迟,其中大的输入偏移导 致更大的PBA延迟。因为与新路径相关联的偏移是未知的,所以新路径中的一个段的PBA 延迟是大于还是小于不同路径中的同一个段的重计算的PBA延迟,不是马上就清楚的。本发明的一些实施例考虑了如下事实使用时序图中的每个节点上的最差偏移 (即,最大偏移值)来计算GBA延迟。还要注意的是,PBA延迟随输入偏移的变化是由电路的 电特性绑定确定的。基于这些考虑,可以设计一个公式,该公式提供随着输入偏移增加PBA 延迟降级的上限。例如,一个公式使用下述表达式来估计新路径中的共享段的PBA延迟的上限。D〃+F(S-S'),其中S是段上的GBA偏移,D' /S'是已经重计算的路径中的该段的PBA延迟/偏 移,以及D"是新路径中的该段的PBA延迟。此外,F()是两个偏移S和S'之差的非负函 数。在一个实施例中,F(S_S' ) = a X(S-S'),其中a >0是偏移-延迟系数。注意, 上述表达式提供了基于先前计算出的段的PBA延迟和PBA偏移两者对新路径的最差可能的 延迟降级的估计。注意,新路径的偏移不是利用估计技术来估计的。图7示出了例示根据本发明的实施例的对IC设计执行改进的基于穷尽路径的STA 的过程的流程图。类似于图3中所示出的传统过程,该过程在终止于给定端点的一组路径 中搜索具有最差的重计算的PBA间隙的路径。系统通常开始于基于相关联的GBA间隙来对IC设计中的一组端点按优先级进行 排列(图7中未示出)。系统随后选择还未被重计算的具有最差的GBA间隙的端点(或“最 差GBA端点)(步骤702)。接着,系统基于终止于该端点的一组路径的相关联的GBA间隙, 按照间隙值递增的顺序,对终止于该端点的这一组路径进行排序,即,较差的间隙接收较高 的优先级(步骤704)。接着,对于按照GBA间隙顺序的一组路径中的每条路径,系统确定GBA间隙是否大 于阈值间隙(步骤706)。注意,该阈值间隙保持当前的最差的重计算出的PBA间隙,随着处 理更多的路径,当前的最差的重计算出的PBA间隙被迭代地更新。通常,阈值间隙具有足够 大的初始值,其可以被容易地替换为重计算出的PBA间隙。如果该当前处理的路径的GBA间隙大于阈值间隙,则已经找到最差的重计算出的 PBA间隙,其等于阈值间隙(步骤708),并且过程终止。注意,这很对于正在被处理的第一 路径是很少见的情形(即,具有最差GBA间隙的路径)。然而,如果该当前处理的路径的GBA间隙小于阈值间隙,则系统随后确定路径是 否具有已经在共享同一段的不同路径中使用基于路径的STA重计算的至少一段(步骤 710)。注意,该不同路径可以是IC设计中的任何路径,并且因此不限于正在处理的该组路 径中的路径。如果步骤710为真,则系统例如使用结合图5描述的估计过程来快速地估计路径 的PBA间隙(步骤712)。系统随后确定所估计出的PBA间隙是否小于当前的阈值间隙(步 骤714)。如果是,则系统确定当前路径不与最差PBA间隙相关联,并且因此该路径可以被删 减。因此,系统不对该路径上的PBA间隙进行重计算,并且节省计算资源。系统随后返回来 按照优先级顺序处理该组路径中的下一路径。注意,该比较是安全的,因为所估计的PBA间隙是与该路径相关联的实际PBA间隙的下限(即,更保守的值)。换言之,如果步骤710为 真,则如果所估计的PBA间隙被替换为实际的PBA间隙,则步骤710也为真。然而,如果步骤710或步骤714的确定结果为假,即,路径不具有先前重计算的段 或所估计的PBA间隙小于阈值间隙,则系统随后对路径执行基于路径的STA,以获得所重计 算出的PBA间隙(步骤716)。系统随后确定所重计算出的PBA间隙是否大于当前的阈值间 隙(步骤718)。如果是,则系统确定当前路径与最差PBA间隙不相关联,并且返回来按照优 先级顺序处理该一组路径中的下一路径。否则,找到新的最差PBA间隙,并且系统利用所重计算出的PBA间隙来替换阈值间 隙(步骤720)。接着,系统继续处理按照优先级顺序的一组路径中的下一路径,直到找到最 差的重计算出的PBA间隙。最后,系统输出最差的重计算出的PBA间隙(步骤722)。该过 程相对于图3中的传统过程的一个重大的改进在于,在该过程中,实际对非常少的路径进
行重计算。图8例示了根据本发明的实施例的对图4中的示例端点执行改进的穷尽PBA间隙计算。在改进的穷尽PBA间隙计算过程期间,根据图7中描述的技术来顺序地处理与GBA 延迟401A-409A相关联的组路径,其中开始于与间隙401A(浅阴影圆圈)相关联的路径。 为了简单,利用路径的GBA延迟值来指代该路径。当在不使用估计的情况下对与GBA延迟 40IA和402A相关联的路径进行重计算后,间隙402B(深阴影圆圈)被识别为最差PBA间隙。接着,处理路径403A。在该实例中,路径403A与先前重计算的路径之间具有重叠 段,先前重计算的路径包括但不限于路径401A和402A(即,包括终止于其它端点的路径)。 因此,对路径403A进行估计,以及所估计出的PBA间隙在PBA间隙轴上被示出为403B,,其 是实际PBA间隙403B的估计。随后除去路径403A,因为403B,大于402B。类似地,还对 路径404A和405A进行估计,并随后除去路径404A和405A。注意,在图8中,所估计的路 径403A-405A由具有交叉形状的阴影圆圈表示,从而将路径403A-405A与所重计算的路径 40IA和402A区分开。类似于图4,不对路径406A-409A进行重计算或估计。与图4中描述的过程相对照,在图8中对仅仅两条路径进行重计算,与之前相比减 少了三条路径。然而,改进的过程产生与传统过程相同的最还PBA间隙402B。注意,尽管在对最差情况的PBA延迟和间隙的穷尽搜索的上下文中描述本估计技 术,但是本估计技术还可以用于执行对最好情况的PBA延迟和间隙的穷尽搜索。为了如此 完成,对在图7中所描述的过程进行修改,以便阈值间隙现在表示最好的重计算的PBA间 隙,并且步骤706、714和718中的条件完全保留。此外,用于关于段的延迟的新估计技术需 要提供用于实际PBA延迟的下限来取代上限。通常,本估计技术可以应用于任何基于路径 的STA过程。在一些实施例中,可以通过增加并行性,比如通过使用多线程或其它并行技术,进 一步改进本技术的效率。通过同时地处理IC设计中的更多的路径和更多的端点,当正在分 析新路径时,更多的先前重计算出的时序信息变得可用。图9例示了根据本发明的实施例的用于在IC设计中执行有效的基于路径的STA 的装置。
装置902可以包括经由有线或无线通信信道彼此通信的机构。具体地,装置902 可以包括识别机构904、确定机构906、估计机构908和计算机构910。上述机构中的每个机 构可以使用一个或多个集成电路实现,或者被实现为通用处理器的模块。装置902可以是 计算机系统的部件。在一些实施例中,识别机构904可以被配置为识别IC设计内的一组路径,其中每 条路径包括一个或多个段;确定机构906可以被配置为确定一组路径中的路径的至少一段 与通过先前执行基于路径的STA而计算的不同路径共享,其中不同路径中的至少一段与先 前计算的基于路径的时序信息相关联;估计机构908可以被配置为至少基于与不同路径中 的共享段相关联的基于路径的时序信息,执行对该路径的基于路径的延迟的估计;以及计 算机构910可以被配置为通过对路径执行基于路径的STA,计算路径的基于路径的延迟。本发明的实施例的上述描述已经被呈现来仅仅用于例示和描述。描述不是意在排 他性或者将本发明限制到所公开的形式。相应地,许多修改和变形对于本领域的技术人员 而言是显而易见的。另外,上述公开不是意在限制本发明。本发明的范围由所附权利要求 限定。
权利要求
一种用于在电路设计中执行有效的基于路径的静态时序分析(STA)的方法,所述方法包括识别所述电路设计内的一组路径,其中每条路径包括一个或多个段;对于所述一组路径中的一条路径,确定所述路径中的至少一段是否与先前通过执行基于路径的STA而计算过的不同路径共享,其中所述不同路径中的所述至少一段与先前计算出的基于路径的时序信息相关联;并且如果是,则至少基于与所述不同路径中的共享段相关的基于路径的时序信息,执行对所述路径的基于路径的延迟的估计;否则,通过对所述路径执行基于路径的STA,计算所述路径的基于路径的延迟,其中所述方法通过重用与先前计算过的路径相关联的时序信息来快速地估计还未被分析的路径的基于路径的延迟,减少计算时间。
2.如权利要求1所述的方法,其中,在执行所述估计后,所述方法还包括通过执行下述 来确定与所述路径相关联的基于路径的延迟是否是所述一组路径中的最差情况的基于路 径的延迟确定所估计出的基于路径的延迟是否大于阈值延迟;并且如果是,则通过对所述路径执行基于路径的STA来计算所述路径的基于路径的延迟;否则,确定所述基于路径的延迟不是所述一组路径中的最差情况的基于路径的延迟, 其中所述确定是基于所估计出的基于路径的延迟来进行的,而不实际计算所述路径延迟的 基于路径的延迟,从而减少计算时间。
3.如权利要求2所述的方法,其中,所述方法被用来在所述一组路径中识别最差情况 的基于路径的延迟和最差情况的基于路径的间隙。
4.如权利要求1所述的方法,其中,在执行所述估计后,所述方法还包括通过执行下述 来确定与所述路径相关联的基于路径的延迟是否是所述一组路径中的最好情况的基于路 径的延迟确定所估计出的基于路径的延迟是否小于阈值延迟;并且如果是,则通过对所述路径执行基于路径的STA,计算所述路径的基于路径的延迟;否则,确定所述基于路径的延迟不是所述一组路径中的最好情况的基于路径的延迟, 其中所述确定是基于所估计出的基于路径的延迟来进行的,而不实际计算所述路径延迟的 基于路径的延迟,从而减少计算时间。
5.如权利要求4所述的方法,其中,所述方法被用来在所述一组路径中识别最好情况 的基于路径的延迟和最好情况的基于路径的间隙。
6.如权利要求1所述的方法,其中,所述一组路径终止于所述电路设计中的共同端点。
7.如权利要求1所述的方法,其中,所述基于路径的时序信息包括基于路径的延迟和 基于路径的偏移。
8.如权利要求7所述的方法,其中,执行对所述路径的基于路径的延迟的估计包括至 少基于与所述不同路径中的同一段相关联的基于路径的延迟和基于路径的偏移,估计所述 路径中的所述段的基于路径的延迟。
9.如权利要求8所述的方法,其中,所述路径中的每个段与基于图表的延迟和基于图标的偏移相关联,所述基于图表的延迟和基于图表的偏移是先前根据基于图表的STA而针 对所述路径计算出的,其中所述基于图表的延迟和所述基于图表的偏移提供对与所述路径 相关联的基于路径的延迟和基于路径的偏移的最差情况的估计。
10.如权利要求9所述的方法,其中,执行对所述路径的基于路径的延迟的估计包括 至少基于与所述段相关联的基于图表的偏移,对所述路径中的所述段的基于路径的延迟进 行估计。
11.如权利要求10所述的方法,其中,执行对所述路径的基于路径的延迟的估计还包括对于所述路径中的每个段,确定所述段是否与先前根据基于路径的STA而计算过的另一路径共享,其中所述另一 路径中的所述段与先前计算出的基于路径的时序信息相关联;如果是,则至少基于与所述另一路径中的共享段相关的基于路径的时序信息,执行对 所述段的基于路径的延迟的估计;否则,使用与所述段相关联的基于图表的延迟,作为所述段的估计出的基于路径的延 迟;并且对所述路径中的所有段的估计出的基于路径的延迟进行求和,以获得所述路径的所估 计出的基于路径的延迟。
12.如权利要求1所述的方法,其中,所述一组路径终止于所述电路设计中的多个端点o
13.一种用于在电路设计中执行有效的基于路径的静态时序分析(STA)的设备,所述 设备包括识别机构,配置为识别所述电路设计内的一组路径,其中每条路径包括一个或多个段;确定机构,配置为确定所述一组路径中的一条路径的至少一段是否与先前通过执行基 于路径的STA而计算过的不同路径共享,其中所述不同路径中的所述至少一段与先前计算 出的基于路径的时序信息相关联;估计机构,配置为用于至少基于与所述不同路径中的共享段相关的基于路径的时序信 息,执行对针对所述路径的基于路径的延迟的估计;以及计算机构,配置为通过对所述路径执行基于路径的STA,计算所述路径的基于路径的延迟,其中所述设备通过重用与先前计算出的路径相关联的时序信息来快速地估计还未被 分析的路径的基于路径的延迟,减少计算时间。
14.如权利要求13所述的设备,其中,所述设备还包括最差情况确定装置,用于在执行 所述估计后确定与所述路径相关联的基于路径的延迟是否是所述一组路径中的最差情况 的基于路径的延迟,所述最差情况确定装置包括用于确定所估计出的基于路径的延迟是否大于阈值延迟的装置;以及 用于在确定所估计出的基于路径的延迟大于阈值延迟时通过对所述路径执行基于路 径的STA来计算所述路径的基于路径的延迟的装置;用于在确定所估计出的基于路径的延迟不大于阈值延迟时确定所述基于路径的延迟不是所述一组路径中的最差情况的基于路径的延迟的装置,其中所述确定是基于所估计出 的基于路径的延迟来进行的,而不实际计算所述路径延迟的基于路径的延迟,从而减少计 算时间。
15.如权利要求14所述的设备,其中,所述设备还包括用于在所述一组路径中识别所 述最差情况的基于路径的延迟和所述最差情况的基于路径的间隙的装置。
16.如权利要求13所述的设备,其中,所述设备还包括最好情况确定装置,用于在执行 所述估计后确定与所述路径相关联的基于路径的延迟是否是所述一组路径中的最好情况 的基于路径的延迟,所述最好情况确定装置包括用于确定所估计出的基于路径的延迟是否小于阈值延迟的装置;以及用于当确定所估计出的基于路径的延迟小于阈值延迟时通过对所述路径执行基于路 径的STA来计算所述路径的基于路径的延迟的装置;用于当确定所估计出的基于路径的延迟不小于阈值延迟时确定所述基于路径的延迟 不是所述一组路径中的最好情况的基于路径的延迟的装置,其中所述确定是基于所估计出 的基于路径的延迟来进行的,而不实际计算所述路径延迟的基于路径的延迟,从而减少计 算时间。
17.如权利要求16所述的设备,其中,所述设备还包括用于在所述一组路径中识别最 好情况的基于路径的延迟和最好情况的基于路径的间隙的装置。
18.如权利要求13所述的设备,其中,所述一组路径终止于所述电路设计中的共同端点o
19.如权利要求13所述的设备,其中,所述基于路径的时序信息包括基于路径的延迟 和基于路径的偏移。
20.如权利要求19所述的设备,其中所述估计机构包括用于至少基于与所述不同路 径中的同一段相关联的基于路径的延迟和基于路径的偏移来估计所述路径中的所述段的 基于路径的延迟的装置。
21.如权利要求20所述的设备,其中,所述路径中的每个段与基于图表的延迟和基于 图标的偏移相关联,所述基于图表的延迟和基于图表的偏移是先前根据基于图表的STA而 针对所述路径计算出的,其中所述基于图表的延迟和所述基于图表的偏移提供对与所述路 径相关联的基于路径的延迟和基于路径的偏移的最差情况的估计。
22.如权利要求21所述的设备,其中,所述估计机构包括用于至少基于与所述段相关 联的基于图表的偏移对所述路径中的所述段的基于路径的延迟进行估计的装置。
23.如权利要求22所述的设备,其中,所述估计机构还包括对于所述路径中的每个段,用于确定所述段是否与先前根据基于路径的STA而计算过的另一路径共享的装置,其 中所述另一路径中的所述段与先前计算出的基于路径的时序信息相关联;用于当确定所述段与先前根据基于路径的STA而计算过的另一路径共享时至少基于 与所述另一路径中的共享段相关的基于路径的时序信息,执行对所述段的基于路径的延迟 的估计的装置;用于当确定所述段与先前根据基于路径的STA而计算过的另一路径不共享时使用与 所述段相关联的基于图表的延迟,作为所述段的估计出的基于路径的延迟的装置;以及用于对所述路径中的所有段的估计出的基于路径的延迟进行求和,以获得所述路径的 所估计出的基于路径的延迟的装置。
24.如权利要求13所述的设备,其中,所述一组路径终止于所述电路设计中的多个端点o
全文摘要
本发明涉及使用快速估计技术的有效的基于穷尽路径的静态时序分析。本发明的一个实施例提供了一种系统,该系统在电路设计中执行有效的基于路径的静态时序分析(STA)。在操作期间,系统识别电路设计内的一组路径,其中每条路径包括一个或多个段。对于一组路径中的一条路径,系统确定该路径中的至少一段是否与先前通过执行基于路径的STA而计算过的不同路径共享,其中该不同路径中的至少一段与先前计算出的基于路径的时序信息相关联。如果共享,则系统至少基于与该不同路径的共享段相关联的基于路径的时序信息,执行对该路径的基于路径的延迟的估计。否则,系统通过对路径执行基于路径的STA,计算路径的基于路径的延迟。
文档编号G06F17/50GK101877017SQ20091021130
公开日2010年11月3日 申请日期2009年10月30日 优先权日2009年4月30日
发明者C·索维亚尼, K·拉玛特, R·赫莱赫尔 申请人:新思科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1