多功率域的静态时序分析的利记博彩app

文档序号:6583120阅读:218来源:国知局
专利名称:多功率域的静态时序分析的利记博彩app
技术领域
本公开主要涉及电子设计自动化。更具体地,本发明涉及用于在基于图形的静态 时序分析中对累积延迟值进行调整的技术。
背景技术
计算技术的高速发展已经使得有可能针对有时大到数万亿字节的数据集每秒执 行数万亿次计算操作。这些进步在很大程度上归功于集成电路的规模和复杂性的指数式增长。由于集成电路在规模和复杂性方面的这种增长,使用复杂工具来验证电路设计中 的时序约束已经成为必要,这例如是静态时序分析(STA)。在基于图形的STA中,通过考虑 与基于图形的电路表示中的节点这些节点上所附带的不同边相关联的延迟值,无须枚举整 个电路中的所有可能路径,就可以沿着这些节点累积最坏情况延迟值。使用这种基于图形 的STA,可以识别电路中的一个或者多个关键路径。继而执行基于路径的STA,以便通过减 少所识别路径中的消极因素(pessimism),来更精确地确定裕量(slack)值。注意,在集成电路的设计和加工期间,时序相关参数中的片上变化通常根据STA 技术、使用降级因子来建模,这些降级因子用于改变(或者降级)延迟值以反映片上变化。 因为STA可以在合理时间量内针对许多大规模集成电路执行合理的精确时序分析,所以其 已经显露为用于针对大规模集成电路来验证时序约束的可选方法。大规模集成电路通常包括定义了单独的功率域的多个电源。由这些电源提供的供 给电压中的有意差异以及无意变化会直接影响这些集成电路中的延迟值。不幸的是,用于在多功率域电路中执行STA的现有方法或者不精确,或者不高效, 或者既不精确也不高效。在某些技术中,执行被设计用来在单一功率域的电路上工作的基 于图形的STA,以便识别路径集合,而后在所识别的路径上执行更详细的基于路径的STA, 以便处理多个功率域。不幸的是,由于在这些方法中使用的基于图形的STA没有考虑电路 中的多个功率域,这些技术从根本上就是不精确的。这是因为在其上执行基于路径的STA 的那些识别出的路径可能并不包括最坏情况路径,并且由此,这一技术可能完全遗漏了最 坏情况路径。在其他技术中,使用穷举方法来考虑所有可能的电压组合。如果在N个功率域中 的每个域中存在V个离散电压,则STA运行的数量等于VN。由此,在具有7个功率域(其各 自具有最小供给电压和最大供给电压)的电路中,STA运行的数量是27,或者说128。由于 在此方法中所需STA运行的数量随着功率域的数量成指数增长,这一方法对于具有较多数 量的功率域的电路而言是不切实际的。

发明内容
本发明的某些实施方式提供了针对包括多个功率域的电路来执行基于图形的STA 的技术和系统。在基于图形的STA期间,计算机系统可以接收针对不同供给电压电平的延迟值。继而,计算机系统可以针对该电路执行基于图形的STA。尤其是,当执行此类基于图 形的STA时,计算机系统可以贯穿整个基于图形的电路表示,传播累积延迟值(到达时间 以及所需时间)和功率域交叉信息,其中功率域交叉信息在遍历图形的同时至少记录是否 跨越了功率域;以及至少基于功率域交叉信息来调整图形结束点(诸如,寄存器)处的累积 延迟值。注意,调整累积延迟值可以包括,如果功率域交叉信息指示累积延迟值跨越功率 域边界而传播,则向累积延迟值添加消极因素。例如,添加消极因素可以包括对累积延迟 值应用降级因子(注意,针对启动路径和捕获路径使用不同的降级因子)。备选的是,消极 因素至少基于延迟的物理模型,其为与功率域交叉相关联的供给电压中的变化的函数。在其他实施方式中,调整累积延迟值包括如果功率域交叉信息指示累积延迟值 没有跨越功率域边界而传播,则从累积延迟值中去除消极因素。具体地,在此方法中,系统 使用消极的延迟值的集合,并且针对没有跨越功率域边界的路径去除消极因素。在某些实施方式中,随着累积延迟值贯穿整个基于图形的电路表示而传播,功率 域交叉信息记录每个功率域对累积延迟的贡献。在这些实施方式中,调整累积延迟值还可 以包括至少基于每个功率域的累积延迟贡献,来从累积延迟值中去除消极因素。具体地, 在此方法中,随着延迟值贯穿整个图形而传播,系统可以记录在每个功率域中累积的每个 功率域的最小/最大延迟值(与仅跟踪总延迟值相反)。本发明的某些实施方式使用功率域交叉信息来去除消极因素,其中该消极因素可 以是当基于图形的STA组合功率域(其中每个设备从相关的电源接收功率)内的高电压和 低电压的延迟时,由该基于图形的STA所添加的。某些实施方式提供了用于对包括多个功率域的电路执行基于图形的STA的方法。 此方法可以包括上述操作中的至少某些。其他实施方式提供了用于与计算机系统相结合使 用的计算机程序产品。此计算机程序产品可以包括与至少某些上述操作相对应的指令。其 他实施方式提供了执行至少上述某些操作的电子设备,诸如集成电路。


图1是示出了根据本公开的一个实施方式的在设计和加工集成电路时的各种操 作的流程图;图2A是示出了根据本公开的一个实施方式的具有多个功率域的电路的框图;图2B是根据本公开的一个实施方式的表示电路的图形的绘图;图3是示出根据本公开的一个实施方式的方法的流程图,其用于针对图2A的电路 执行基于图形的静态时序分析(STA);图4是示出根据本公开的一个实施方式的方法的流程图,其用于针对图2A的电路 执行STA ;图5是示出根据本公开的一个实施方式的计算机系统的框图,该计算机系统用于 针对图2A的电路执行STA ;图6是示出根据本公开的一个实施方式的数据结构的框图;表1示出了与电路200中的组件相关联的示例性延迟值;表2示出了在不同供给电压下与电路200中的组件相关联的示例性延迟值。
注意,贯穿整个附图,类似的参考数字表示相应的部分。
具体实施方式

给出下文描述是为了使本领域技术人员能够制造和使用本发明,并且下文描述是 在特定应用及其需求的上下文中提供的。对于本领域技术人员而言,对所公开实施方式的 各种修改将是易见的,而且在不脱离本发明的精神和范围的情况下,可以将在此限定的一 般性原理应用于其他实施方式和应用。由此,本发明并不限于所示实施方式,而是将被赋予 以与此处公开的原理和特征相一致的最广范围。描述了计算机系统、方法、集成电路以及用于与计算机系统一起使用的计算机程 序产品(即,软件)。这些设备和技术可以用于对包括多个功率域的电路执行STA。尤其是, 在STA技术期间,基于标记的引擎可用于在基于图形的STA期间跟踪功率域交叉。如果功率 域跨越了路径,则在路径结束点处可以对累积延迟增加消极因素。类似地,对于没有跨越功 率域的那些路径,可以在结束点处从累积延迟中去除消极因素。此外,在某些实施方式中, 在基于图形的STA期间跟踪所有功率域交叉以及相关联的延迟值,以便精确估计电路中的 延迟。这种STA技术提供了允许电路验证软件的用户对复杂性、运行时间和整体精确性 进行权衡的灵活性。例如,使用这种STA技术,STA运行的数量可以显著降低(降低至一次 STA运行)。另外,可以改进关键路径识别的精确性,并且可以减少所确定的累积延迟值的 消极因素。由此,这种STA技术可以使得集成电路易于设计,并且易于验证其时序,由此减 小时间和开销,并且提高客户满意度和忠实度。现在描述集成电路或芯片的设计和加工的实施方式。图1给出了示出在集成电路 的设计和加工中的各种阶段的流程图100。该过程开始于产品构思的产生(110),其在使用 电子设计自动化(EDA)软件(112)的设计过程期间实现。当最终完成设计时,可以进行流 片(134)。在流片之后,加工(136)半导体模具,并且执行封装和组装过程(138),其最终得 到成品芯片(140)。注意,使用EDA软件(112)的设计过程包括下文描述的操作114-132。此设计流程 描述仅用于示出目的。具体而言,此描述并不旨在限制本公开。例如,实际的集成电路设计 可能要求设计者按照与下述顺序不同的顺序来执行设计操作。在系统设计(114)期间,设计者描述想要实现的功能。他们也可以进行假设 (what-if)规划以完善功能、检查成本等。注意,硬件-软件架构划分可以发生在这一阶段。 此阶段中可以使用的来自CA,Mountain View的Synopsys公司的示例性EDA软件产品包括 Model Architect 、Saber 、System studio 和 Design Ware 产品。继而,在逻辑设计和功能验证(116)期间,编写用于电路中的模块的VHDL或者 Verilog代码,并且检验该设计的功能的准确性。具体而言,检验该设计以保证它产生正确 输出。此阶段中可以使用的来自CA,Mountain View的Synopsys公司的示例性EDA软件产
品包括VCS 、Vera 、DesignWare 、Magellan 、Formality 、ESP 和Leda 产品。接着,在综合和测试设计(118)期间,VHDL/Verilog被转译成网表。可以 针对目标技术优化网表。而且,可以设计和实施测试以检验成品芯片。此阶段中可以使用的来自CA,Mountain View的Synopsys公司的示例性EDA软件产品包括 Design Compiler 、Physical Compiler 、Test Compiler 、Power Compiler 、
FPGA Compiler 、Tetramax 和 Design Ware 产品°此外,在网表验证(120)期间,对网表进行检查,检查其是否与时序约束相符以 及是否与VHDL/Verilog源代码一致。此阶段中可以使用的来自CA,Mountain View的
Synopsys公司的示例性EDA软件产品包括Formality 、PrimeTime 和产品。此外,在设计规划(122)期间,可以构造芯片的总体平面布置图并分析其时序和 顶层布线。此阶段中可以使用的来自CA,Mountain View的Synopsys公司的示例性EDA软
件产品包括Astro 和ic Compiler 产品。另外,在物理实现(124)期间,进行放置(对电路元件的定位)和布线(对电路元 件的连接)。此阶段中可以使用的来自Ck, Mountain View的Synopsys公司的示例性EDA
软件产品包括Astro 和ic Compiler 产品。继而,在分析和提取(126)期间,在晶体管级验证电路功能,其允许细加工。此 阶段可以使用的来自CA,Mountain View的Synopsys公司的示例性EDA软件产品包括
AstroRail 、PrimeRail 、primeTime 和 star rc/XT 产品。接着,在物理验证(128)期间,为确保制造、电气问题、光刻问题和电路的正确性 而对设计进行检查。此阶段可以使用的来自CAJountain View的Synopsys公司的示例性 EDA软件产品是Hercules 产品。此外,在分辨率增强(130)期间,对布局的几何形状进行处理以提高设计的可制 造性。此阶段可以使用的来自CAJountain View的Synopsys公司的示例性EDA软件产品
包括Proteus 、Proteus AF 和PSMGED 产品。另外,在掩模数据准备(132)期间,提供用于产生掩模以产生成品芯片的“流片” 数据。此阶段可以使用的来自CAJountain View的Synopsys公司的示例性EDA软件产品 包括Cats 系列产品。在上述一个或者多个阶段中可以使用本公开的实施方式。具体而言,在某些实施 方式中,在系统设计(114)期间和/或逻辑设计以及功能验证(116)期间,例如在电路的 STA期间,可以使用本公开。现在描述用于在包括多个功率域的电路中的所有功率域交叉路径上,执行有效且 精确的全电路或者基于图形的STA的技术的实施方式。图2A给出了示出具有多个功率域 210的电路200的框图。每个功率域210可以包括一个或者多个组合或时序电路元件或 者电路块,诸如一个或者多个门214以及一个或者多个寄存器(触发寄存器或者锁定寄存 器)216。注意,电路200通常可以包括模拟电路、数字电路和/或混合信号电路。功率域210可以包括电源218。这些电源可以向门214和触发器216提供供给电 压。此外,供给电压可以是彼此独立的(也即,供给电压可以至少部分是不相关的)。注 意,在图2A中所示的电路元件仅用于示出目的,而并非旨在将本公开的范围限制于所公开 的形式。例如,电路可以仅包括一个电源,该电源可以向电路的不同部分供给不同的供给电 压。
因为与特定门相关联的延迟值依赖于供给电压,所以在不同功率域210中的供给 电压对于沿着贯穿整个电路200的路径的累积延迟值有影响。尤其是,每个功率域210定 义了其包含的组件(或者块)的环境。功率域可以包括多个电源。在此公开中的术语“功率域”是指由相同电源供电或 者由至少部分相关的不同电源供电的一组单元。由此,在给定功率域中的组件的延迟值一 起变化,或者至少以部分相关的方式作为供给电压的函数而变化。与之对比,由于在不同功 率域210中的供给电压可以不同并且至少部分地不相关,因此在不同功率域210中的组件 的延迟值的至少一部分是不同的,并且可能不作为供给电压的函数而一起变化。在STA期 间,期望确定不同功率域中的不同供给电压导致最坏情况延迟值的最坏情形。如前所述,在STA期间,基于图形的STA通常用于识别最坏情况或者关键路径。图 2B给出了表示电路(诸如图2A中的电路200)的图形250。在基于图形的STA期间,在前进 或者遍历(例如,经由广度优先搜索)通过图250的同时跟踪累积延迟值。例如,在开始点 260处开始,延迟值可以沿着该节点所附带的每条边(诸如边264-1)而传播至节点(诸如, 节点262-1),并且可以存储所有进入边之中的最坏情况延迟,并且进一步在图形中传播。以 此方式,可以在贯穿图形的单条通路中确定整个电路的最坏情况延迟。在结束点266处, 一旦确定了最坏情况累积延迟值,则可以将其用于识别贯穿整个电路的最坏情况关键路径 (包括开始点、中间点和结束点)。最坏情况关键路径可用于后续的基于路径的STA,以便改 善最坏情况裕量或者电路的时序富余的准确度(也即,在到达时间和捕获时间之间的差)。注意,基于图形的STA允许使用贯穿图形250的单条通路来识别最坏情况路径。另 外,应该注意,通常需要考虑贯穿图形250遍历多个功率域210的路径(跨功率域路径),以 及完全位于单个功率域中的贯穿图形250的路径(功率域内路径)。例如,图形250中没有 跨越功率域交叉212-2的路径是功率域内路径,而真正跨越了功率域交叉212-2的路径是 跨功率域路径。如前所述,如果没有正确地处理功率域210的影响,则不能识别贯穿电路的 正确的最坏情况路径,并且STA计算的准确性将会降低。在下文的讨论中,针对确定具有多个功率域的电路的最坏情况路径延迟值,描述 了 STA技术的三个实施方式。这些实施方式不同之处在于,在最坏情况路径延迟值中的消 极因素数量、分析的复杂性、运行时间以及存储器需求。具体地,这三个实施方式可以视为 在准确性和有效性之间的三个不同折衷点。在称为“快速”STA的第一实施方式中,在遍历图形250的同时,针对给定路径中的 边是否具有至少一个功率域交叉(有时候将其称作“功率域交叉信息”)进行跟踪。在结 束点处,针对具有至少一个功率域交叉的那些路径来选择性地将消极因素加入累积延迟值 (例如,通过应用降级因子)。快速STA方案可以视为这样的方案,其开始于相对较为积极 的延迟值,并且继而根据该路径是否跨越了至少一个功率域而选择性地向路径延迟值添加 消极因素。由于仅有单个比特的信息(指示路径是否跨越功率域边界)需要传播,并且由 于预期相对较少的路径是跨功率域路径,因此这一方案是高度有效的。然而,由于此方案通 常贯穿图形传播较为积极的延迟值,因此快速STA方案可能不适用于不能忽略电容性耦合 交叉串扰对延迟值的影响的情形。在称为“检测”STA的第二实施方式中,在遍历图形250的同时,跟踪给定路径中的 边是否具有至少一个功率域交叉。在结束点处,针对不具有至少一个功率域交叉的那些路径(S卩,功率域内路径),在累积延迟值中选择性地降低消极因素,而在具有至少一个功率 域交叉的路径中(即,跨功率域路径)不降低消极因素。注意,在检测STA方案中,仅有单 个比特的信息(其指示路径是否跨越了功率域边界)需要传播。然而,功率域内路径的数 量可能相对较大,并且由此检测STA方案需要的资源可能多于快速STA方案。不同于快速 STA方案,检测STA方案可以视为如下方案,其中,贯穿图形传播相对较为消极的延迟值,并 且从功率域内路径中选择性地去除消极因素。其结果是,与快速STA方案不同,检测STA方 案适合于不能忽略电容耦合串扰对延迟值的影响的情形。在称作“完全”STA的第三实施方式中,在遍历图形250的同时,跟踪产生的所有功 率域交叉和累积延迟值。在结束点处,针对功率域内路径以及跨功率域路径两者来选择性 地降低消极因素。由于完全STA方案贯穿图形传播了更多信息,并且由于完全STA方案在功率域内 路径以及跨功率域路径两者上去除了消极因素,因此相对于快速STA方案或者检测STA方 案,完全STA方案通常需要更多的计算资源。然而,由于完全STA方案所确定的路径延迟值 是准确的,该技术可以不需要针对所识别的关键路径执行基于路径的STA。相反,对于快速 STA方案和检测STA方案二者而言,可能需要在通过使用这些方案找到潜在最坏情况路径 的集合上执行更为详细的基于路径的STA分析。 功率域交叉信息通常可以存储在任何数据结构中。例如,该信息可以存储在与用 来承载关于时序异常的信息的数据结构类似的数据结构中。在某些实施方式中,将用于承载功率域交叉信息的数据结构称为“标记”。具体地, 在一个实施方式中,计算机系统可以为初始功率域中的电路图形的开始点分配一个或者多 个标记,并且当功率域交叉出现在节点所附带的边上时,修改图形中这些节点处的标记。此 夕卜,当图形中节点所附带的边上出现功率域交叉时,计算机系统可以在图形中的这些节点 处添加一个或者多个新标记。基于标记的STA引擎可以为初始功率域210-3中的开始点260分配标记。如果在 快速STA或者检测STA期间出现了功率域交叉,则可以修改标记中的一个比特以便指示存 在至少一个功率域交叉。继而,在结束点266处,可以至少基于所存储的标记信息,选择性 地添加(在快速STA期间)或者减少(在检测STA期间)消极因素。注意,在这些实施方 式中,贯穿图形250传播的累积延迟值可以独立于标记进行存储。在完全STA期间,当跨越功率域交叉传播功率域交叉信息时,可以添加新的标记 (除添加标记以外或者备选地,可以修改现有标记)。这些标记可以用于存储用于与相应的 功率域210相关联的不同供给电压的累积延迟值。继而,在结束点266处,可以基于存储在 标记中的信息(例如,用于每个功率域的每个供给电压的累积延迟值)来选择性地减去消 极因素。注意,可以通过使用降级因子来添加消极因素。例如,在快速STA期间添加消极因 素可以包括对捕获路径延迟应用一个降级因子以便沿着捕获路径降低延迟,以及对启动 路径延迟应用第二降级因子以便增大沿着启动路径的延迟。注意,对于延迟值的调整可以 使用延迟模型来执行,这比简单地对延迟值应用降级因子要更为复杂。例如,可以使用将延 迟定义为供给电压中的变化的函数的延迟物理模型,其中该变化与功率域交叉相关联。更 为复杂的延迟模型可以进一步改进路径延迟值的准确性,但是此类模型通常增大了需的计算量。由于使用多功率域感知的基于图形的方法来执行STA技术的这些实施方式,因此 其允许使用单次STA运行来进行时序分析。因而可以显著降低STA运行的数量而并不牺牲 准确性。例如,在具有3-4个功率域的电路中,STA运行的数量(以及由此STA完成时间) 可以降低大约10倍。图3给出了示出针对包括多个功率域的电路执行基于图形的STA的方法300的流 程图,该方法可以通过计算机系统(更一般地,通过诸如集成电路的电子设备)来执行。在 基于图形的STA期间,计算机系统接收针对包括多个功率域的电路中的不同供给电压电平 的延迟值(操作310)。注意,系统可以基于延迟模型来计算延迟值。继而,计算机系统针对 该电路执行基于图形的STA (操作312)。尤其是,当执行这种基于图形的STA时,计算机系 统贯穿该电路的基于图形的表示来传播累积延迟值和功率域交叉信息(操作314),其中在 遍历图形时,功率域交叉信息至少记录是否跨越了功率域;以及至少基于功率域交叉信息 来调整图形结束点处的累积延迟值(操作316)。如前所述,存在多种调整累积延迟值的实施方式。例如,如果功率域交叉信息指示 相关联的累积延迟值跨越了功率域边界传播,则向裕量值添加消极因素(快速STA)。备选 地,如果功率域交叉信息指示相关联的累积延迟值没有跨越功率域边界传播,则从裕量值 去除消极因素(检测STA)。此外,在某些实施方式中,随着累积延迟值贯穿该电路的基于图 形的表示而传播,功率域交叉信息记录每个功率域的累积延迟贡献(完全STA)。在这些实 施方式中,调整裕量值包括至少基于沿着时序路径的启动段和捕获段的每个功率域的相 关联累积延迟贡献,从裕量值中去除消极因素。注意,所有三个实施方式(也即,快速STA、检测STA和完全STA)可以使用时钟重 收敛消极因素去除(CRPR)来去除消极因素,其中消极因素是通过使用对于启动路径和捕 获路径而言公共的电路元件的不同延迟值而得到的。在下文示例中计算的裕量值已经使用 时钟重收敛消极因素去除进行了调整。现在返回参考附图2A,表1示出了与电路200中的组件相关联的示例性延迟值。 某些实施方式使用降级过程来为跨域路径添加消极因素。在下文的示例中,在降级之前的 分析中,相同的延迟值用于全部供给电压电平。跨域路径将被处罚10%,也即启动延迟将 乘以1. 1,而捕获延迟将乘以0. 9。在未应用降级因子的情况下,在触发器216-2处的裕量 是-1. 5ns,而在触发器216-3处的裕量是-3ns。存在可以由不考虑多功率域的现有STA技 术来计算的裕量值。在快速STA方案下,在触发器216-2处的裕量保持在-1. 5ns不变,这 是由于快速STA方案没有针对不跨越功率域的路径添加消极因素。然而,在快速STA方案 下,在触发器216-3处的裕量是-4. 5ns,这是由于触发器216-3的启动段和捕获段跨越了功 率域。具体而言,触发器216-2的启动路径开始于门214-1的输入端,并且传递通过 门214-2和214-3以及触发器216-1,之后在触发器216-2的数据输入端处终止。触发器 216-2的捕获路径开始于门214-1的输入端,并且传递通过门214-2和214-4,之后在触发 器216-2的时钟输入端处终止。由此,沿着捕获路径的延迟是(1. 5+6+1. 5)ns,而沿着启动 路径的延迟是(1. 5+6+1. 5+1. 5)ns,其给出了 -1. 5ns的裕量。CRTO项等于0,这是由于对最 大和最小供给电压使用相同的延迟值,并且没有对未跨越至少一个功率域边界的路径执行降级。针对触发器216-3可以类似地执行裕量计算捕获延迟是0. 9X (1. 5+6+6),启动延 迟是 1. IX (1. 5+6+1. 5+1. 5+6),而 CRPR 等于 1. IX (1. 5+6)-0. 9 X (1. 5+6) = 1. 5。由此触 发器216-3的最终裕量值是-4. 5。表 1 表2示出了在不同供给电压处与电路200中的组件相关联的示例性延迟值。对于 现有STA方案而言,在触发器216-2处的裕量是-3ns,而在触发器216-3处的裕量是-7ns。 通过使用检测STA,在触发器216-2处的裕量是-2ns (因为没有跨越功率域交叉212-1,消 极因素降低了)。在此示例中,注意,对于现有STA方案和检测STA方案两者而言,在触发器 216-3处的裕量是-7ns (由于跨越了功率域交叉212-1,因此裕量不变)。具体而言,沿着触发器216-2的捕获路径的延迟是(l+4+l)ns,而沿着触发器 216-2的启动路径的延迟是(2+7+2+2)ns,其给出了 -7ns的裕量。CRTO调整等于(1+3)ns, 其给出-3ns的CRH 调整后的裕量。注意,CRH 调整等于门214-1和214-2的低延迟值与 高延迟值之间的差异。-3ns的裕量值是现有STA方案将计算出的。然而,在本公开中所描述的检测STA和完全STA方案通过至少利用如下认识而进 一步降低了触发器216-2中的消极因素触发器216-2的启动路径和捕获路径位于相同功 率域内,并且由此,裕量应当使用与最大供给电压或者最小供给电压相关联的延迟值来计 算,而不同时使用二者进行计算。基于这一认识,触发器216-2的消极因素去除项可以通过 取以下两个值中的最小值来确定((门214-3的D-+门214-5的Dfflax)-(门214-3的Dfflin+ 门214-5的Dmin)),和(门214-4的Dmax-门214-4的Dmin)。注意,在此消极因素去除项中, D-表示针对最大供给电压的延迟值,而D_表示针对最小供给电压的延迟值,这是由于较 大电压通常对应于较小延迟。通过使用在表2中示出的示例性延迟值,消极因素去除项等 于mim((2+2)-(l+l),(2_1))=1。由此,在对触发器216-2的裕量应用此调整之后,获得了更为准确的裕量值-2ns,其比现有STA方法计算得到的-3ns的值具有更小的消极因素。表2
注意,检测STA方案并不调整跨功率域路径的裕量。由此,触发器216-3的裕量保 持在-7ns不变。然而,不同于检测STA方案,完全STA方案还降低跨功率域路径上的消极 因素,在下文中通过使用表2中的延迟值来解释。通过使用完全STA以及表2中的延迟值,触发器216-2处的裕量是-2ns (其与检 测STA所计算的裕量相同),并且在触发器216-3处的裕量是-4ns (其不同于检测STA所计 算的裕量)。注意,在完全STA中,在功率域内路径和跨功率域路径中都已经降低了消极因素。触发器216-3的启动路径和捕获路径是跨功率域路径,因为上述路径跨越了功率 域交叉212-1。触发器216-3的裕量的消极因素去除项可以计算如下。注意,跨功率域路径 的消极因素去除项针对每个功率域会具有子项。在完全STA方案中的消极因素去除项至少 是基于以下认识由于功率域中的所有电路元件均在相同的电压下操作,因此当计算裕量 时,应当使用与最大供给电压或最小供给电压相关联的延迟值,而不是同时使用二者。具体而言,触发器216-3的启动路径开始于门214-1的输入端,传递通过门214-2、 214-4和214-6,之后在门214-8的输出端处终止。触发器216-3的捕获路径开始于门214-1 的输入端,传递通过门214-2,在门214-7的输出端处终止。触发器216-3的裕量的消极因素去除项包括两个子项与功率域210-1相关联的 第一子项,以及与功率域210-2相关联的第二子项。第一子项可以通过取以下两个值的最 小值来计算沿着位于功率域210-1内的启动路径部分的最大累积延迟和最小累积延迟之 间的差、以及沿着位于功率域210-1内的捕获路径部分的最大累积延迟和最小累积延迟之 间的差。注意,不考虑启动路径与捕获路径之间的公共部分,因为该部分中引入的消极因素 由CRI^R项所去除。换言之,消极因素去除项中的第一子项等于min((门214-4的Dmax+门 214-6 的 Dmax)-(门 214-4 的 Dmin+门 214-6 的 Dmin),0) = min((2+2)-(1+1),0) =0。注意, 触发器216-3的捕获路径不具有位于功率域210-1内的任何门(不包括对于启动路径和捕获路径公共的门214-1和214-2)。由此,在上文中示出的最小值(min)函数中的第二项等于0。消极因素去除项中的第二子项可以以类似方式计算。具体而言,对于触发器 216-3,第二子项等于 min(门 214-8 的 Dmax-门 214-8 的 Dmin,门 214-7 的 Dmax-门 214-7 的 Dfflin) = min (7-4, 7-4) =3。由此,完全STA方案计算触发器216-3的裕量等于-4ns (回想 前面现有STA方案计算的更加消极的裕量是-7ns)。图4给出了示出针对电路200 (图2A)执行STA的方法400的流程图。方法400 可以由计算机系统来执行,更一般地,可以由诸如集成电路的电子设备来执行。快速STA或 者检测STA可以用作识别一条或者多条关键路径的第一关(操作412)。如果路径违反了设 计时序标准(诸如,具有过小的裕量值)(操作414),则在签发设计(操作418)之前可以执 行基于路径的STA (操作416)。如果没有任何路径违反设计时序标准(操作414),则可以 签发设计(操作418)。可选地,可以执行完全STA (操作410)以便在签发设计(操作418) 之前准确地执行时序分析。注意,当执行完全STA时,系统不必为了确定更准确的裕量值而 通过针对基于图形的STA方案所识别的关键路径集合执行基于路径的STA。在方法300(图3)和/或400的某些实施方式中,可以存在更多或者更少的操作。 此外,操作的顺序可以有所改变,和/或两个或者更多操作可以合并成单个操作。现在描述执行STA (诸如方法300 (图3)和/或400)的计算机系统的实施方式。 图5给出了示出计算机系统500的框图。计算机系统500包括一个或多个处理器510、通 信接口 512、用户接口 514以及将这些组件耦合在一起的一条或多条信号线522。注意,一 个或多个处理单元510可以支持并行处理和/或多线程操作,通信接口 512可以具有永久 通信连接,并且一条或多条信号线522可以构成通信总线。而且,用户接口 514可以包括 显示器516、键盘518和/或指点器520,诸如鼠标。计算机系统500中的存储器524包括易失性存储器和/或非易失性存储器。更具 体地,存储器524可以包括R0M、RAM、EPROM、EEPR0M、闪存、一个或者多个智能卡、一个或 者多个磁盘存储设备、和/或一个或者多个光学存储设备。存储器524可以存储操作系统 526,该操作系统526包括用于处理执行基于硬件的任务的各种基本系统服务的过程(或者 指令集)。存储器524还存储通信模块528中的过程(或者指令集)。这些通信过程可用 于与一个或者多个计算机和/或服务器进行通信,包括相对于计算机系统500而言位于远 程的计算机和/或服务器。存储器524还可以包括多个程序模块(或者指令集),包括电路设计模块530 (或 者指令集)、和/或基于标记的引擎544 (或者指令集)。此外,电路设计模块530可以包括 基于图形的STA模块532 (或者指令集)和/或基于路径的STA模块534 (或者指令集)。通过使用电路设计模块530,设计人员可以设计或者验证包括多个功率域(诸如, 功率A 538-1和功率域B 538-2)的一个或者多个电路536。具体地,基于图形的STA模块 532可以对使用供给电压540的一个或多个电路536执行快速STA、检测STA和/或完全 STA。在此分析期间,基于标记的引擎544可以将标记546分配给一个或多个不同的功率域。 这些标记可以被更新,以便在遍历对应于给定电路(或者给定电路的部分)的图形的同时, 跟踪至少一个功率域交叉(诸如,在快速STA或者检测STA期间)。备选地,标记546可以 跟踪功率域交叉和/或可以以每个功率域为基础的累积延迟值。可以计算延迟值调整542并且将其应用于累积延迟值。如图4中所示,在快速STA或者检测STA之后,在某些实施方 式中,基于路径的STA模块534对给定电路中的一个或者多个已识别关键路径执行基于路 径的STA。
基于图形的STA模块532和/或基于路径的STA模块534可以输出一个或者多个 电路536的裕量值548。可以将这些裕量值与设计标准550进行比较,以便确定设计人员是 否可以签发一个或多个电路536。存储器524中的各种模块中的指令可以实现为高级程序化语言、面向对象编程 语言和/或汇编语言或者机器语言。注意,可以对编程语言进行编译或者汇编,例如,其可 配置或者配置用于通过一个或者多个处理单元510来执行。计算机系统500可以包括各种设备,诸如个人计算机、膝上型计算机、服务器、工 作站、大型计算机和/或能够操作计算机可读数据的其他设备。尽管示出的计算机系统500具有多个离散装置,但是图5旨在作为计算机系统500 中可能存在的各种特征的功能性描述,而不是在此所述实施方式的结构性示意。在实践中, 本领域普通技术人员应该认识到,计算机系统500的功能可以分布在多个服务器或者计算 机上,并且各种服务器或计算机群组执行这些功能的特定子集。由此,计算机系统500可以 位于某一位置,或者可以分布在多个位置,诸如经由网络(诸如,因特网或者内联网)通信 的计算系统。在某些实施方式中,计算机系统500的部分或者全部功能可以实现为以下一个或 多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或一个或者多个数字信号处理 器(DSP)。由此,基于图形的STA可以使用FPGA来执行。注意,如现有技术中已知的,计算 机系统500的功能可以大部分以硬件实现并且小部分以软件实现,或者小部分以硬件实现 并且大部分以软件实现。现在讨论可以在计算机系统500中使用的数据结构的实施方式。图6给出了示出 数据结构600的框图。此数据结构可以包括标记610。例如,标记610-1可以包括功率域交 叉指示符612-1,其可以指示该标记是否跨越了功率域边界而传播。此外,标记610-1还可 以包括标识功率域的功率域标识符616-1以及累积延迟614-1,该累积延迟614-1存储随着 跨越功率域传播标记而累积的累积延迟。在某些实施方式中,电路200 (图2A)、计算机系统500 (图5)和/或数据结构600 包括更少或者更多的组件。此外,两个或者更多组件可以合并成单个组件,和/或可以改变 一个或多个组件的位置。仅出于示例和描述的目的给出了本公开实施方式的上述描述。其意图不在于穷举 本发明或者将本发明限于公开的形式。因而,本领域技术人员应当清楚存在许多修改和变 化。此外,上述公开的意图不在于限制本发明。本发明的范围由所附权利要求限定。
权利要求
一种用于对包括多个功率域的电路执行基于图形的静态时序分析的计算机实现的方法,包括接收针对不同供给电压电平的延迟值;以及通过以下操作对所述电路执行所述基于图形的静态时序分析贯穿所述电路的基于图形的表示,传播累积延迟值以及功率域交叉信息,其中在遍历所述图形的同时所述功率域交叉信息至少记录是否跨越了功率域;以及至少基于所述功率域交叉信息在所述图形的结束点处调整累积延迟值。
2.根据权利要求1所述的方法,其中调整所述累积延迟值包括如果所述功率域交叉 信息指示累积延迟值跨越功率域边界而传播,则向所述累积延迟值添加消极因素。
3.根据权利要求2所述的方法,其中添加所述消极因素包括对所述累积延迟值应用 降级因子。
4.根据权利要求2所述的方法,其中所述消极因素至少基于延迟的物理模型,所述延 迟的物理模型是供给电压中与所述功率域交叉相关联的变化的函数。
5.根据权利要求1所述的方法,其中调整所述累积延迟值包括如果所述功率域交叉 信息指示累积延迟值没有跨越功率域边界而传播,则从所述累积延迟值中去除消极因素。
6.根据权利要求5所述的方法,其中所述消极因素至少基于延迟的物理模型,所述延 迟的物理模型是供给电压中与所述功率域交叉相关联的变化的函数。
7.根据权利要求1所述的方法,其中随着所述累积延迟值贯穿所述电路的基于图形的 表示而传播,所述功率域交叉信息记录每个功率域的累积延迟贡献。
8.根据权利要求7所述的方法,其中调整所述累积延迟值包括至少基于每个功率域 的累积延迟贡献,从累积延迟值中去除消极因素。
9.根据权利要求8所述的方法,其中所述消极因素至少基于延迟的物理模型,所述延 迟的物理模型是供给电压中与所述功率域交叉相关联的变化的函数。
10.根据权利要求1所述的方法,其中在所述多个功率域中的供给电压至少部分地彼 此不相关。
11.根据权利要求1所述的方法,其中传播所述功率域交叉信息包括为初始功率域中的所述图形的开始点分配标记;以及当在所述图形中的节点所附带的边上出现功率域交叉时,修改图形中的所述节点处的 所述标记。
12.根据权利要求11所述的方法,其中传播所述功率域交叉信息进一步包括当在所 述图形中的节点所附带的边上出现功率域交叉时,向图形中的所述节点添加新的标记。
13.一种用于对包括多个功率域的电路执行基于图形的静态时序分析的设备,包括接收装置,配置用于接收针对不同供给电压电平的延迟值;以及执行装置,配置用于对所述电路执行所述基于图形的静态时序分析,包括传播装置,配置用于贯穿所述电路的基于图形的表示,传播累积延迟值以及功率域交 叉信息,其中在遍历所述图形的同时所述功率域交叉信息至少记录是否跨越了功率域;以 及调整装置,配置用于至少基于所述功率域交叉信息在所述图形的结束点处调整累积延 迟值。
14.根据权利要求13所述的设备,其中所述调整装置包括添加装置,其配置用于如果 所述功率域交叉信息指示累积延迟值跨越功率域边界而传播,则向所述累积延迟值添加消 极因素。
15.根据权利要求14所述的设备,其中所述添加装置配置用于对所述累积延迟值应用 降级因子。
16.根据权利要求14所述的设备,其中所述消极因素至少基于延迟的物理模型,所述 延迟的物理模型是供给电压中与所述功率域交叉相关联的变化的函数。
17.根据权利要求13所述的设备,其中所述调整装置包括去除装置,其配置用于如果 所述功率域交叉信息指示累积延迟值没有跨越功率域边界而传播,则从所述累积延迟值中 去除消极因素。
18.根据权利要求17所述的设备,其中所述消极因素至少基于延迟的物理模型,所述 延迟的物理模型是供给电压中与所述功率域交叉相关联的变化的函数。
19.根据权利要求13所述的设备,其中随着所述累积延迟值贯穿所述电路的基于图形 的表示而传播,所述功率域交叉信息记录每个功率域的累积延迟贡献。
20.根据权利要求19所述的设备,其中所述调整装置包括去除装置,其配置用于至少 基于每个功率域的累积延迟贡献,从累积延迟值中去除消极因素。
21.根据权利要求20所述的设备,其中所述消极因素至少基于延迟的物理模型,所述 延迟的物理模型是供给电压中与所述功率域交叉相关联的变化的函数。
22.根据权利要求13所述的设备,其中在所述多个功率域中的供给电压至少部分地彼 此不相关。
23.根据权利要求13所述的设备,其中所述传播装置包括分配装置,配置用于为初始功率域中的所述图形的开始点分配标记;以及修改装置,配置用于当在所述图形中的节点所附带的边上出现功率域交叉时,修改图 形中的所述节点处的所述标记。
24.根据权利要求23所述的设备,其中所述传播装置进一步包括添加装置,其配置用 于当在所述图形中的节点所附带的边上出现功率域交叉时,向图形中的所述节点添加新的 标记。
全文摘要
本发明公开了一种用于多功率域的静态时序分析的方法和设备。描述了计算机系统、方法、集成电路和用于计算机系统一起使用的计算机程序产品(也即,软件)的实施方式。这些设备和技术可以用于对包括多个功率域的电路执行STA。功率域交叉信息以及可选地每个功率域的延迟可以在基于图形的完全电路STA期间传播,以便精确地执行STA而无需遍历所有路径。某些实施方式可以使用基于标记的引擎以在基于图形的STA期间跟踪功率域交叉。如果路径跨越了功率域,则可以在路径结束点处向累积延迟添加消极因素。对于没有跨越功率域的路径,可以在其结束点处从累积延迟中去除消极因素。在某些实施方式中,对于跨越了功率域的路径,在结束点处从累积延迟中去除消极因素。
文档编号G06F17/50GK101877018SQ20091021130
公开日2010年11月3日 申请日期2009年10月30日 优先权日2009年4月30日
发明者F·塔拉波雷瓦拉, J·泽杰达, K·拉玛特, W·舒 申请人:新思科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1