[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN103403719B - 使用基于样本的静态时序基础结构的同步多角静态时序分析 - Google Patents

使用基于样本的静态时序基础结构的同步多角静态时序分析 Download PDF

Info

Publication number
CN103403719B
CN103403719B CN201180067682.2A CN201180067682A CN103403719B CN 103403719 B CN103403719 B CN 103403719B CN 201180067682 A CN201180067682 A CN 201180067682A CN 103403719 B CN103403719 B CN 103403719B
Authority
CN
China
Prior art keywords
sample
sequential
clock
vector
design
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180067682.2A
Other languages
English (en)
Other versions
CN103403719A (zh
Inventor
P·甘塔
A·戈尔
F·P·塔拉泊芮瓦拉
M·奥夫钦尼科夫
J·刘
K·卡库卡卡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synopsys Inc
Original Assignee
Synopsys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of CN103403719A publication Critical patent/CN103403719A/zh
Application granted granted Critical
Publication of CN103403719B publication Critical patent/CN103403719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

提供一种用于对集成电路设计执行同步多角静态时序分析(STA)的方法。该方法可包括在多个角处读取设计数据,包括网表、寄生以及库。每个角可代表工艺、温度和电压状态的集合。通过使用设计数据作为输入,可在多个角处执行多个操作以生成关于设计的时序报告。显著地,每个操作具有单个控制流程且将样本矢量用于执行多个操作。每个样本是与角相关联的值。该方法使计算资源和存储器使用最小化,以及加速了多角分析的周转时间。

Description

使用基于样本的静态时序基础结构的同步多角静态时序分析
发明背景
发明领域
本发明涉及静态时序分析,尤其涉及将基于样本的静态时序基础结构用于同步多角静态时序分析。
相关技术
在亚65nm技术中,工艺和环境(即,电压和温度)变化对集成电路的时序性能具有显著影响。为了确保集成电路设计满足在存在工艺和环境变化时的时序要求,设计人员可针对多个时序“角(corner)”执行静态时序分析,其中每个角对应于工艺(例如,缓慢的、快速的、标称的等等)、电压以及温度(PVT)状态的一个集合。在过去十年中开发的统计静态时序(例如,Monte Carlo基于样本的静态时序)分析可按在计算上高效的方式解决多工艺角的影响,但是无法有效地解决电压或温度变化的影响。
结果,当前多角静态时序分析(STA)一般一次运行一个角(通过连续地使用一个工具或并行地使用多个工具)。通常,当前技术中的角的数量可超过十个角。在运行角之后,针对角获得的时序结果被合并以获得跨多个角的关键路径或图形节点的集合。由于角的数量以及时序结果的合并,当前静态时序分析需要相当多的计算资源。
因此,需要综合的时序方案,其可高效且准确地对多个时序角执行同步STA而不使用分开运行,而且其还可快速地生成概要时序报告而不需要明确的合并。
发明内容
提供一种对集成电路设计执行同步多角静态时序分析(STA)的方法。该方法可包括在多个角处读取设计数据(例如,网表、寄生和库等)。每个角可代表工艺、温度和电压状态的集合。通过使用设计数据作为输入,可执行多个操作以生成关于在多个角处的设计的时序报告。显著地,每个操作具有单个控制流且将样本矢量用于执行该多个操作。每个样本是与角相关联的值。
一个操作可包括计算单元和网弧延迟。每个单元弧计算可包括针对每个角执行弧查找,针对角的选择子集(例如,估计的最小和最大角、标称角等)计算延迟,以及针对角的所选子集以外的角估计延迟。通过使用单元弧计算的结果,可选择单元弧的子集(例如,最差的或最好的)。在这里,可基于单元弧的选择子集计算网弧延迟。
另一操作可包括确定透明锁存器何时借用或借出。该确定可包括针对每个透明锁存器计算时序松弛(timing slack)样本值(数据到达时间与所需要的时间之间的差)以及德尔塔(delta,δ)值(数据输出时间与时钟输出时间之间的差)。确定在角处的每个时序松弛值与德尔塔值的和是否小于或等于零。如果是,则借用/借出值等于零。如果不是,则借用/借出值等于时序松弛值。正借用/借出值表示从下一时序状态借用的时间,而负借用/借出值表示向下一时序阶段借出的时间。
又一操作可包括移除时钟再收敛悲观主义(clock reconvergence pessimism)。该移除可包括针对多个角形成时钟网络图(CNG)。形成CNG可包括针对每个离散时钟节点计算上升时钟再收敛悲观主义移除(clock reconvergence pessimism removal,CRPR)样本以及下降CRPR样本。可存储这些上升和下降CRPR样本用于进一步处理。
具体地,上升和下降CRPR样本可用于确定设计中的两个节点是否是可合并的。在一个实施例中,确定两个节点是否是可合并的可包括将这两个节点的上升CRPR之间的第一差与第一预定阈值相比较。还可将这两个节点的下降CRPR之间的第二差与第二预定阈值相比较。当第一差小于第一预定阈值且第二差小于第二预定阈值时可合并这两个节点。
还描述了执行同步多角STA的另一操作。在该方法中,可使用设计数据(例如,网表、寄生和库等)来执行针对设计的单元弧和网弧的延迟计算以生成第一样本矢量。第一矢量的每个样本可代表在多个角中的一个处的单元弧延迟值。可通过使用单元和网延迟矢量来执行时序更新以贯穿设计网表的时序图生成和传播到达和所需时间矢量,并随后得出时序松弛矢量作为所述设计网表的所述时序图的每个节点处的到达时间和所需时间之差。时序松弛矢量的每个样本代表在多个角中的一个处的松弛值。可使用设计网表的时序图的所有节点的时序松弛矢量来生成时序报告。时序报告可包括多个矢量,其中每个矢量可示出跨多个角的概要(例如,最差的或最好的)时序数据(例如,到达、所需时间、借用时间、CRPR值以及时序松弛等)。可输出这些时序报告以供用户审阅。
还描述了在近来的低功率技术中常用的将基于样本的STA用于对具有多个电压域的设计执行高效时序分析的方法。电压域是由常见电压调节器供电的单元的集合。由于电压调节器的变化或者供电网上的电压降落,域的供电电压可在低/高电压范围内波动。显著地,跨不同电压域的供电电压可独立地变化。在这种设计中,可俘获域内路径以及跨域路径的最差情况时序。域内路径是其所有单元和网位于相同电压域内的时序路径。跨域路径是其一些单元或网的时序路径被分布在不同电压域中的时序路径。对于域内路径,需要两次STA运行来俘获最差情况时序。对于跨域路径,STA必须列举跨电压域的每一低/高电压组合,从而导致2N次STA运行来俘获最差情况时序,其中N是电压域的数量。通过基于样本的STA、通过使用两个样本来计算域内路径在低和高电压下的时序以及使用多达2N个样本来计算跨域路径的时序,可实现域内和跨域STA两者的要求。
还描述了用于减少跨域路径所需要的样本的增强。当在任何电压域中开始时序路径时,可使用两个样本来计算在当前电压域的低/高电压下的时序。当时序路径进入新的电压域时,可将样本计数加倍以列举跨域电压组合。
附图说明
图1示出了示例性数字ASIC设计流程的简化表示。
图2A例示了示例性基于样本的多角静态时序分析。
图2B例示了可在基于样本的多角静态时序分析期间执行的示例性时序更新。
图3A例示了用于静态时序分析的常规延迟计算。
图3B例示了用于静态时序分析的示例性基于样本的延迟计算。
图4A例示了用于在静态时序分析中处理透明锁存器的常规技术。
图4B例示了用于在静态时序分析中处理跨角的透明锁存器的示例性基于样本的技术。
图5例示了包括透明锁存器的简单电路,其中每个透明锁存器具有含多个样本的矢量,每个样本与角相关联。在该实施例中,零值指示非借用样本而非零值指示借用样本。
图6A例示了包括触发器的简单电路,其中每个时钟网络节点具有含多个样本的矢量,每个样本与角相关联。在该实施例中,矢量形成时钟再收敛悲观主义移除(CRPR)的时钟网络图(CNG)。
图6B例示了用于生成多个角的CNG的常规技术。
图6C例示了用于生成多个角的CNG的示例性基于样本的技术。
图6D例示了用于使用多个角的CNG来执行CRPR的常规技术。
图6E例示了用于使用CNG矢量来执行基于样本的CRPR的示例性基于样本的技术。
图7A例示了可用于对具有多个电压域的电路设计执行高效时序分析的基于样本的STA技术。
图7B例示了可用于对具有多个电压域的电路设计执行高效时序分析的另一基于样本的STA技术。
具体实施方式
图1例示了示例性数字ASIC设计流程的简化表示,其为以下描述的基于样本的多角静态时序分析提供了上下文。在高层,该过程始于产品理念(步骤100)并且在EDA软件设计过程中实现(步骤110)。当设计最终定稿时,其可被下线流片(tape-out)(事件140)。在下线流片之后,可发生制造过程(步骤150)以及封装和组装过程(步骤160),从而得到完工的芯片(结果170)。
EDA软件设计过程(步骤110)实际包括数个步骤112-110,出于简单起见这些步骤以线性方式示出。在实际ASIC设计过程中,特定设计可能不得不回退历经各步骤直到通过某些测试。类似地,在任何实际的设计过程中,这些步骤可能以不同次序和组合发生。本说明书因此借助于上下文和一般化解释来提供,而不是作为用于特定ASIC的具体或推荐的设计流程来提供的。
现在将提供EDA软件设计过程(步骤110)的组成步骤的简要描述。
在系统设计(步骤112)中,设计人员可描述他们想要实现的功能性,执行假设情景(what-if)规划以精炼功能性,核查成本,等等。
在此阶段可进行硬件-软件架构划分。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Model Architect、Saber、System Studio、以及产品。
在逻辑设计和功能验证(步骤114)中,编写用于系统中的模块的VHDL或Verilog代码并且检查该设计的功能准确性。更具体地,检查该设计以确保其产生正确的输出。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括VCS、VERA、Magellan、Formality、ESP以及LEDA产品。
在测试的综合和设计(步骤116)中,将VHDL/Verilog代码翻译成网表。可针对目标技术对该网表进行优化。另外,发生对测试的设计和实现以准许对完工的芯片进行检查。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括DesignPowerCompiler、Tetramax、以及产品。
在网表验证(步骤118)中,检查网表对时序约束的顺应性以及与VHDL/Verilog源代码的对应性。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Formality、PrimeTime、以及VCS产品。在一个实施例中,可在步骤118中使用基于样本的多角静态时序分析。
在设计规划(步骤120)中,构造芯片的整体平面布置图并分析其时序和顶层走线。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Astro和IC Compiler(编译器)产品。
在物理实现(步骤122)中,可发生布局(电路元件的定位)和走线(这些电路元件的连接)。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Astro和ICCompiler产品。
在分析和提取(步骤124)中,在晶体管级验证电路功能,这进而准许假设情景(what-if)精炼。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括AstroRail、PrimeRail、Primetime、以及Star RC/XT产品。在一个实施例中,可在步骤124中使用基于样本的多角静态时序分析。
在物理验证(步骤126)中,执行各种检查功能以确保制造、电气问题、平版印刷问题以及电路系统的正确性。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Hercules产品。
在解决增强(步骤128)中,可执行布局的几何操纵以改进设计的可制造性。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括Proteus、ProteusAF以及PSMGen产品。
在掩模数据准备(步骤110)中,用于产生掩模的“下线流片”数据可在平版印刷方面用于产生集成电路芯片。在此步骤可使用的来自Synopsys公司的示例性EDA软件产品包括CATS(R)产品系。
在网表验证步骤118以及分析和提取步骤124中执行的静态时序分析(在本文中也被称为STA)可向设计人员提供关于设计的“最差情况”场景。具体地,静态时序分析可定义设备性能(例如,执行安装检查,其可随后确定设计的最大时钟速度)和芯片故障(例如,执行保持检查,其标识任何紊乱情况)。通常,静态时序分析考虑模式(例如,功能声音、功能数据、测试芯片配置、用于测试的测试设计,等等)和角(即,工艺、电压和测试)两者。
如以下进一步详细描述的,可修改统计静态时序(例如,Monte Carlo基于样本的静态时序)分析以解决工艺变化以及电压和温度变化的影响。这种修改可确保可同步地执行对多个角的高效且准确的静态时序分析。更确切地说,可同步地完成用于多个角的STA的诸阶段,即计算、传播和数据挖掘。更具体地,可跨多个角利用每个阶段。
计算可包括STA的多个方面中的任何一个,例如延迟计算、锁存器借用、时钟再收敛悲观主义移除(CRPR)等等。例如,图2A例示了使用基于样本的多角STA的示例性延迟计算。在图2A中,可在步骤201中通过使用设计网表、角库1-N以及角寄生1-N作为输入来执行网表、库和寄生读取,其中N是指定特定角的正整数(典型地由EDA工具选择)。可在步骤202中通过使用来自网表、库和寄生的单元信息以及其它设计数据来执行延迟计算。显著地,这种延迟计算可合并所有角的信息以生成单元和网延迟样本203。这些样本可在步骤204中用于时序更新以生成松弛(slack)样本205。在时序更新期间可聚集(即,添加)特定路径的单元和网的延迟以获得这些路径的到达时间。如本领域技术人员所知晓的,俘获路径的到达时间与发起路径的到达时间之间的差产生松弛值。在一个实施例中,通过使用由时序更新生成的多个到达时间,步骤204可生成松弛样本205。
图2B例示了设计网表的示例性时序图,其具有由节点A-G表示的单元以及时序阶段输入节点IN(输入)和时序阶段输出节点OUT(输出)。连接这些单元的箭头代表设计网表的网。在时序更新204期间,对于以输入节点IN开始且以输出节点OUT结束的时序图中的每一个节点,每个节点的输出处的到达时间被计算为由节点代表的单元的延迟样本与节点处的输入的到达时间之和。类似地,对于以输出节点OUT开始且以输入节点IN结束的时序图中的每一个节点,每个节点的输入处的所需时间被计算为节点的输出处的到达时间与由节点代表的单元的延迟样本之差。稍后在时序更新过程中,每个节点的时序松弛被计算为节点的输出处的到达时间与所需时间之差。
返回参考图2A,跨多个角的设计网表的时序图的概要时序数据(示为矢量203中的单元和网延迟样本)可被用于关键时序路径的工程变更次序(engineering change order,ECO)固定。可在步骤207中通过使用松弛样本,即确定时序是通过还是失败,以及其它信息(为了简单起见没有示出)来生成时序报告。这些时序报告结合工程变更次序(ECO)固定206可生成关键路径1-M,其中M是基于设计而变化的正整数。注意,每个关键路径可标识样本1-N的最差松弛值,例如关键路径1示出样本N的最差松弛且关键路径M示出样本3的最差松弛。时序报告207的其它特性可包括与一个角(例如,最差的、最好的等等)相对应的时序松弛样本以及关于到达、所需时间、借用时间和CRPR值的概要时序数据。在一个实施例中,针对每个关键时序路径的跨多个角的ECO固定可包括修改路径和/或另一设计网表(例如,从小到大或从大到小排列现有单元和网和/或插入新的单元或网,等等),以将该关键时序路径的时序松弛改进为小于预定阈值。
还要注意,虽然库和寄生之间的一对一映射被示为对步骤201的输入,但是其它实施例可具有不同于一对一映射的其它映射(例如,1-N个库,但是1-Q个寄生,其中Q是不等于N的整数)。
注意,图2A的每个操作并不是仅仅并行地运行相同操作。例如,图3A例示了一常规流程,其中通过并行地运行多个操作针对角1-N同步地执行延迟计算。为简单起见,假定延迟计算是基于逻辑门的一个或多个弧(其中弧从逻辑门的输入端子到该逻辑门的输出端子,例如反相器将具有单个弧,但是NAND门将具有两个弧(从每个输入端子到其单个输出端子有一个弧))来执行的。步骤301(1)-301(N)为角1-N的互连构建简化次序模型(ROM)。如果单元弧仍然如由步骤302(1)-302(N)所确定的那样来分析,那么步骤303(1)-301(N)计算单元弧延迟。一旦分析了单元的所有单元弧(步骤302(1)-302(N)),步骤304(1)-304(N)就挑选弧的选择子集(即,最差的、最好的等等)。步骤305(1)-305(N)使用弧的该子集来计算所有角的网弧延迟。注意,通过使用多个工具或能够进行多任务的一个工具,可并行地执行图3A的步骤,例如可基本同步地执行步骤301(1)-301(N)。
相反,图3B例示了利用跨多个角的时序基础结构的延迟计算。步骤310为角1-N构建ROM。如果单元的弧仍然如由步骤311所确定的那样来分析,那么步骤312针对每个角执行快速弧查找(例如,通过使用以上讨论的库)。通过使用该查找,步骤313可计算用于该弧的角的选择子集(例如,最小、最大、标称等等)的延迟。通过使用相同查找,步骤314可估计除角的所选子集以外的角的延迟。在估计了设计中的所有单元弧的所有延迟(步骤311)之后,步骤315挑选弧的选择子集(例如,最差的、最好的等等),且步骤316使用弧的所选子集来计算网弧延迟。
显著地,步骤312-314中的每一个可通过使用单个控制流程来执行适用于多个角的操作。因此,与图3A相比,在图3A中针对每个角并行地执行相同操作(即,每个角有一个控制流程),图3B的技术将多个控制流程有效地合并成可利用关于所有角的信息的一个控制流程。注意,这种利用还合并了先前与多个控制流程相关联的有效负载。即,现在可将用于针对角执行延迟计算的数据(其可被称为有效负载)合并成单个有效负载。该经合并的控制流程和有效负载可有利地使资源使用(例如存储器需求和处理器利用)最小化同时仍然提供准确的输出。
返回参考图2A,在步骤202中执行的延迟计算(图3B中所述的一个实施例)可为角1-N生成样本(在该情况下,单元和网弧延迟样本)的矢量。如以上所指示,该延迟计算是通过使用其中跨多个角利用经合并的控制流程和有效负载的技术来执行的。跨多个角的类似技术可被用于步骤204和207。
还要注意,步骤206中的ECO固定也可利用跨多个角的这种信息合并。具体地,在常规STA中,已经通过使用针对每个角分别计算的单元和网弧延迟来执行ECO固定。这种ECO固定典型地是复杂的且使设计人员花费相当多的时间来完成。相反,基于样本的STA可允许设计人员全盘查看来自所有关键路径的样本值,从而便于对ECO固定做出明智选择。
还要注意,用于输入的角库可能不向设计人员提供感兴趣的特定PVT。根据基于样本的STA的一个方面,经合并的控制流程和有效负载技术可便于由角库提供的PVT之间的内插。
显著地,可将经合并的控制流程和有效负载技术应用于STA的其它方面。例如,可将该技术应用于处理设计网表中的透明或电平敏感锁存器,以下对此进行简要描述。触发器或边缘触发的锁存器是时钟控制的设备,其在触发时钟脉冲到达时将在其输入引脚处存储的数据传递至其输出引脚(即,触发器是边缘触发的)。透明或电平敏感锁存器是其中当时钟脉冲为高时输出俘获输入的时钟控制的设备。更具体地,只要时钟脉冲为高,则在输入改变的任何时间输出也可改变。通过时钟的活动时间以及时钟边缘来触发透明锁存器。当逻辑的两个流水线化的阶段被透明锁存器限制时可发生时间借用。例如,如果逻辑的第一阶段具有比逻辑的第二阶段长得多(或短得多)的延迟,那么设计人员可为第一阶段“借用”(或“借出”)第二阶段的时间的一部分。
图4A例示了用于在STA中处理透明锁存器的常规技术。步骤401通过标识设计中的下一个锁存器来开始。步骤402确定该锁存器是否是透明锁存器。如果该锁存器不是透明锁存器,则标识下一个锁存器。如果该锁存器是透明锁存器,那么步骤404接收输入403,该输入403包括在D引脚(输入端子)处的实际到达时间和所需时间(包括用户设定的约束)。步骤404随后通过从到达时间减去所需时间来计算时序松弛。注意,步骤404有效地确定是否发生时序违反。并发地,步骤406接收输入405,该输入405包括D引脚至Q引脚延迟(Q是输出端子)以及CLK引脚至Q引脚延迟。步骤406通过从D至Q延迟减去CLK至Q延迟来计算“德尔塔δ(delta)”。注意,只有当发生时序违反时(如由时序松弛值所指示)才必须考虑德尔塔值。然而,为了计算方便,针对每个透明锁存器计算德尔塔值(注意,时序松弛值被并行地计算)。
步骤407确定时序松弛加上德尔塔是否小于或等于零(即非正)。如果是,则步骤409指示锁存器具有零的借用/借出值(其中借入/借出是指锁存器具有“借用”或“借出”特性)。如果不是,则步骤408指示锁存器具有等于在步骤404中计算的值的借用/借出值。步骤410结束借用/借出确定。注意,虽然步骤401-410被描述为针对角1来执行,但是类似的步骤针对所有的角(即角1-N)来执行。
图4B例示了用于在STA中处理跨多个角的透明锁存器的基于样本的技术。步骤411通过标识设计中的下一个锁存器来开始。步骤412确定该锁存器是否是透明锁存器。如果该锁存器不是透明锁存器,那么标识下一个锁存器。如果该锁存器是透明锁存器,那么步骤413接收所有角的到达和所需样本,并且通过从所有角的到达时间减去所需时间来计算时序松弛样本。并发地,步骤414针对所有角接收D至Q延迟样本和CLK至Q延迟样本并且通过从D至Q延迟减去CLK至Q延迟来计算“德尔塔”样本。(注意,在步骤413中描述的样本的示例性输入和输出矢量被示出以便读者理解——类似的输入和输出矢量被用于涉及样本的任何步骤,但是为了简明起见并未示出。)步骤415确定时序松弛矢量中的每个时序松弛样本和德尔塔矢量中的相应德尔塔样本之和是否小于或等于零(即,该和应用于两个矢量中的相应位置)。如果是,则步骤417指示矢量418的指定样本具有为零的借用/借出值。如果不是,则步骤416指示矢量418的指定样本具有等于(在步骤413中计算的)时序松弛值的借用/借出值。注意,矢量418中的负值意味着锁存器借给下一个阶段,而正值意味着从下一个阶段借用锁存。步骤419结束借用/借出确定。
为进一步例示,图5例示了透明锁存器501、502、503和504的示例性集合,其连接逻辑配置505、506和507。在图5所示配置中,锁存器501、502、503和504分别接收时钟信号CLK1、CLK2、CLK3和CLK4。矢量508和509分别是锁存器502和503的基于样本的矢量(参见图4的矢量418)。在图5中,矢量508或509的样本的非零值代表具有一值(以指定单位)的“借用”样本,该值与需要从流水线中的下一个透明锁存器借用的用于确保不发生时序错误的量相等。例如,对于(锁存器502的)矢量508中的第一样本,需要从锁存器503借用10个单位(例如,微微秒)。矢量508或509的样本的零值代表“非借用”样本,即不需要借用。
注意,矢量中的样本的次序可跨矢量一致,以便于参考图4B所述的计算。因此,例如,矢量508和509的第一样本(图5)指示Q2和D3之间的时序改进了3个单位(10-7)。的确,通过使用基于样本的锁存器借入技术,STA引擎可容易地确定在几个迭代中对于透明锁存器的现有顺序而言收敛是否是可能的,其中在该几个迭代中以选择的顺序接连地处理锁存器。注意,这种借用仅限于那些通过诸如单元和网之类的组合元件来串联连接的透明锁存器。因此,流水线中的触发器有效地结束了透明锁存器从流水线中的下游透明锁存器借用的能力,这对于STA领域中的技术人员而言是已知的。在一个实施例中,可随着时间针对设计执行基于样本的锁存器借用技术(图5)的多次迭代直至所有的透明锁存器被解决。
显著地,可将经合并的控制流程和有效负载技术应用于STA的又一些其它方面。例如,可将该技术应用于时钟再收敛悲观主义移除(CRPR),在本文中对此进行简要描述。图6A例示了触发器601、602、603和604的示例性集合,其连接逻辑配置605、606和607。在图6A所示配置中,触发器601、602、603和604分别在引脚CLK1、CLK2、CLK3和CLK4处接收时钟信号。注意,所有的时钟信号都是得自于CLK,即在引脚CLK2处接收的信号是缓冲的CLK信号(基于两个反相器),在引脚CLK3处接收的信号是反相的CLK信号(基于三个反相器),以及在引脚CLK4处接收的信号是缓冲的且有逻辑条件的CLK信号(基于两个反相器和NAND门)。
如首字母缩写词所指示,CRPR涉及减少时钟网络中的悲观主义。例如,参考从Q2到D3的数据路径,节点N2是去往CLK2引脚(触发器602,其具有输出引脚Q2)的第一时钟路径与去往CLK3引脚(触发器603,其具有输出引脚Q3)的第二时钟路径之间的公共节点。在STA中定义该数据路径时,发起路径可被定义为包括节点N1与N2和引脚CLK2、Q2与D3,而俘获路径可被定义为包括节点N1、N2、N3和引脚CLK3。
典型地,为在STA的时序中保守起见,数据被定时为尽可能地慢且时钟被定时为尽可能地快。该假定在STA中产生了显著的问题。例如,考虑反相器609,其位于节点N1和N2之间。反相器609对发起路径和俘获路径是公共的。为在STA中保守起见,反相器609须被定时为对于发起路径是“慢”的且对于俘获路径是“快”的,这在实际制造的电路中在物理上是不可能的,并且这将因此导致STA中的不必要的悲观主义。CRPR可用于除去这种不必要的悲观主义。具体地,CRPR可移除发起路径和俘获路径的公共元件的慢与快(即,最小到达时间与最大到达时间)之间的差。
为了执行该功能,还可考虑基于图的分析的复杂性。即,如果多个逻辑配置馈送进输入引脚中,例如逻辑配置606和608(具有相关联的上游触发器,为简单起见未予示出),则确定发起路径和俘获路径变得混乱。CNG(时钟网络图)可用于对设计中的单元进行分组,从而允许消除诸单元组之间的共性。注意,在Jindrich Zejda和Paul Frain所著的发表于ICCAD2002:632-639的题为“General framework for removal of clock networkpessimism(用于移除时钟网络悲观主义的通用框架)”的文章中进一步详细地讨论了CNG。
根据CRPR的一个方面,首先创建CNG,然后合并CNG的某些节点。图6B例示了用于创建所有角的CNG的常规技术。步骤611通过标识设计中的下一个时钟节点来开始。步骤612确定该时钟节点是否是离散时钟节点(例如,在图6A中,当考虑数据路径Q2至D3时节点N2是离散时钟节点)。如果该时钟节点不是离散时钟节点,则标识下一个时钟节点。如果该时钟节点是离散时钟节点,则步骤614接收输入613,该输入613包括在该时钟节点处的最大上升到达时间和最小上升到达时间。步骤614随后通过从最大上升到达时间减去最小上升到达时间来计算上升CRPR。并发地,步骤616接收输入615,该输入615包括在该时钟节点处的最大下降到达时间和最小下降到达时间。步骤616通过从最大下降到达时间减去最小下降到达时间来计算下降CRPR。步骤617将每个离散时钟节点的上升和下降CRPR存储在角1的设计中,其形成角1的CNG。注意,虽然步骤611-617被描述为针对角1来执行,但是类似的步骤针对所有的角(即角1-N)来执行。
图6C例示了用于生成所有角的CNG的基于样本的技术。步骤621通过标识设计中的下一个时钟节点来开始。步骤622确定该时钟节点是否是离散时钟节点。如果该时钟节点不是离散时钟节点,则标识下一个时钟节点。如果该时钟节点是离散时钟节点,则步骤624接收输入623,该输入623包括在该时钟节点处的最大上升到达时间和最小上升到达时间的样本的矢量。步骤624随后通过从最大上升到达时间减去最小上升到达时间来计算上升CRPR样本(其中在矢量中具有相同位置的样本优选地涉及相同的角,从而便于步骤624中的操作)。并发地,步骤616接收输入625,该输入625包括在该时钟节点处的最大下降到达时间和最小下降到达时间的样本的矢量。步骤626通过从最大下降到达时间减去最小下降到达时间来计算下降CRPR样本。步骤627将离散时钟节点的上升和下降CRPR的样本的矢量存储在针对所有角的设计中,其形成角1-N的CNG。
图6D例示了用于提供CRPR的常规技术。步骤631标识了两个离散时钟节点(在此通常描述为节点1和节点2)(返回参考图6A,节点1和2可以是节点N1和N2,或者节点N2和N3,其每一组形成离散时钟节点的集合)。步骤634确定下降CRPR1和下降CRPR2(经由输入632和633提供)之间的差的绝对值是否小于预定的CRPR阈值(典型地被用户定义为对STA的输入)。如果是,则步骤636将节点1标记为节点2的CRPR参考节点(即,与节点2有关的数据被删除且涉及节点2的任何未来STA过程被替代地引导至节点1)。步骤636确定上升CRPR1和上升CRPR2(也经由输入632和633提供)之间的差的绝对值是否小于预定的CRPR阈值(其可与先前所述的阈值相同或不同)。如果是,则步骤636将节点1标记为节点2的CRPR参考节点。注意,在步骤634和635中的任一步骤中的“真”确定导致在步骤636中对节点的标记。在另一方面,如果在步骤634和635中的任一步骤中做出“假”确定,则不合并这两个节点(为简单起见未予示出)。因此,一旦步骤634或635满足阈值要求且在步骤636中执行标记,则在步骤637可结束合并。注意,虽然步骤631-637被描述为针对角1来执行,但是类似的步骤针对所有的角(即角1-N)来执行。
图6E例示了用于提供CRPR的基于样本的技术。步骤641标识了两个离散时钟节点,例如节点1和2。步骤644确定下降CRPR1和下降CRPR2(经由矢量642和643提供)的样本之间的差的绝对值是否小于预定的CRPR阈值。如果是,则步骤636将节点1标记为节点2的CRPR参考节点。步骤634确定下降CRPR1和下降CRPR2(也经由矢量642和643提供)之间的差的绝对值是否小于预定的CRPR阈值(典型地被用户定义为对STA的输入)。如果是,则步骤636将节点1标记为节点2的CRPR参考节点。步骤637结束针对角1-N的节点1和2的合并。在另一方面,如果在步骤644和645中的任一步骤中做出“假”确定,则不合并这两个节点(为简单起见未予示出)。在一个实施例中,这种假确定可基于矢量中的最大差值,即确定该最大差值是否小于预定的阈值CRPR_阈值(CRPR_threshold)。
注意,从CNG的角度来看,可能过度地渴望确定节点的特定合并以获得优化的悲观主义移除。但是,合理的目标是移除至少一些悲观主义,从而减少数据存储。注意,从概念上讲,所有成对的节点被选择且一次比较一对。但是,在一个实施例中,为了计算机处理效率起见,可按CRPR值的次序将所有节点分类,接着可将具有相同CRPR的所有节点拓扑分类。随后,可将具有最小CRPR值的节点挑选为中枢节点,并且可将所有其它节点与其相比较且如果CRPR差小于在图6B所述技术中所描述的预定阈值则将其与中枢节点合并。如果下一个节点不能与最小节点合并,则该下一个节点变成中枢节点且所有剩余节点与其相比较,等等。
例如,返回参考图6A,可能节点N3可被忽略,并且节点N2可被指定为数据路径Q2至D3以及Q3至D4两者的公共节点。在这种情况下,对于CNG可存储较少的数据,因为可取出与节点N2和N3之间的延迟相关的最小和最大数据之间的差。注意,在技术设计的状态中,可初始地提供上百万个节点或更多的节点。在一个实施例中,通过使用CRPR,节点的数量可被显著地减少一个量级。注意,除了减少存储器空间之外,减少节点的数量还可减少可能的计算,从而减少STA运行时间。
注意,上述基于样本的STA可被应用于其它STA操作,包括但不限于报告、串音以及噪声计算。
如以上所指示,执行多角基于样本的STA可提供与常规STA相比显著的优点。例如,因为只有单次运行,且时序基础结构(例如,读取网表、读取寄生数据、构建时序图,等等)被所有角共享,所以多角分析所必需的计算资源被最小化。当使用分布式多核时序分析时这种共享变得甚至更加有利,其中甚至单次角运行也需要多个机器(典型地多于5个机器)。在2010年6月15日授权的题为“SYSTEM AND METHOD FOR PROVIDING DISTRIBUTED STATICTIMING ANALYSIS WITH MERGED RESULTS(用于提供具有经合并的结果的分布式静态时序分析的系统和方法)”的美国专利No7,739,098中进一步详细地描述了分布式多核时序分析,上述专利通过引用结合于此。
此外,针对所有的角样本仅仅执行控制逻辑代码和其它共享逻辑时序代码一次可提供与若干次单角运行相比固有的计算速度提升。同样,给定共享的基础结构以及对所有多角到达和松弛时序样本的快速访问,通过简单地查看在任何时序节点处的所有样本,可按隐含的方式高效地执行诸如标识报告时序中的关键路径设置之类的概要/报告任务。相反,在许多当前多角流程中,来自每个单独角的时序结果必须被明确地合并以获得关键路径设置。显著地,如以上CRPR实施例所示,共享的时序基础结构还可提供减少容量的机会,因为跨多个角的运行数据可被压缩(编码)而不会大大降低准确性。2010年6月11日提交的题为“EFFICIENT DATA COMPRESSION FOR VECTOR-BASED STATIC TIMING ANALYSIS(用于基于矢量的静态时序分析的高效数据压缩)”的美国专利申请12/814,421描述了用于数据压缩的多种技术,该专利申请通过引用结合于此。
上述基于样本的STA可以有利地在一个或多个计算机程序中实现,该一个或多个计算机程序在包括至少一个可编程处理器的可编程系统上执行,该至少一个可编程处理器被耦合成从和向数据存储系统、至少一个输入设备和至少一个输出设备接收和传送数据和指令。每一个计算机程序都可以用高级过程或面向对象编程语言、或者在需要时用汇编或机器语言来实现;并且在任何情况下,该语言都可以是经编译或经解释的语言。合适的处理器包括例如通用和专用微处理器以及其它类型的微控制器。一般而言,处理器将从只读存储器和/或随机存取存储器接收指令和数据。一般而言,计算机将包括用于存储数据文件的一个或更多个大容量存储设备;这类设备包括诸如内置硬盘和可移动盘等磁盘、磁光盘和光盘。适于有形地实施计算机程序指令和数据的存储设备包括所有形式的非易失存储器,例如包括:半导体存储设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如内置硬盘或可移动盘;磁光盘;以及CD-ROM盘。上述各项中的任一个可由专用集成电路(ASIC)补充或被结合在ASIC中。
本文中所描述的实施例不旨在是穷尽性的,或者将本发明限于所公开的确切形式。由此,许多修改和改变将是显而易见的。例如,重新使用现有的基于样本时序引擎也为多角分析提供了易于重新使用针对统计静态时序开发的基础结构和应用的极大机会。例如,通过采用诸如变化寄生处理之类的统计静态时序方法以及快速延迟计算方法(例如,缩放、数值回归模型)在几乎恒定的时间内高效地计算跨多个角的单元延迟,可显著地使多角分析速度提升。进一步的示例包括重新使用诸如多线程和分布式分析之类的多核编程技术的能力,这些技术当前被用于静态时序分析。
注意,基于样本的STA技术可用于对具有多个电压域的电路设计执行高效时序分析。电压域是由常见电压调节器供电的单元的集合。由于电压调节器的变化或者供电网上的电压降落,域的供电电压可在低/高电压范围内波动。显著地,跨不同电压域的供电电压可独立地变化。在这种设计中,可俘获域内路径以及跨域路径的最差情况时序。域内路径是其所有单元和网位于相同电压域内的时序路径。跨域路径是其一些单元或网被分布在不同电压域中的时序路径。
例如,图7A示出两条路径701和702,这两条路径被分别例示为域内路径和跨域路径(用于电压域V1:[V1L,V1H]和V2:[V2L,V2H])。对于域内路径,需要两次STA运行来俘获最差情况时序。因此,对于域内路径701,基于样本的STA可使用由两个样本(即,V1L和V1H)组成的矢量来计算在域V1的低/高电压下的时序。对于跨域路径,STA必须列举跨电压域的每一低/高电压组合,从而导致矢量中的2N次STA运行来俘获最差情况时序,其中N是电压域的数量。因此,对于由路径分段702A和702B组成的跨域路径702,四个样本(即,V1L/V2L,V1L/V2H,V1H/V2L以及V1H/V2H)可用于列举这两个独立域之间的所有可能的电压组合。为了正确地标识跨域路径并确定此类路径的样本计数,在计算时序信息之前需要对电路拓扑进行单独分析。基于样本的STA可在单次STA运行中执行多个电压域分析,从而消除了指数数值的STA运行的需要。
图7B例示了如何通过减少跨域路径所需的样本来改进图7A所述的基于样本的多个电压域分析。在图7B中,对于跨域路径702的起源于电压域V1的路径分段702A,仅有两个样本(即V1L和V1H)可被使用。在域V1和V2的边界处路径702的跨域路径分段702B的样本计数被加倍,其在电压域V2中结束(即,V1L/V2L,V1L/V2H,V1H/V2L,V1H/V2H)。为了正确地重构给定电压组合的时序信息,需要特殊处理来将这两个跨域路径分段(例如,路径分段702A和702B)与域边界处的不同样本计数对准。例如,可通过将域V1中的路径702的矢量的第二样本(V1H)与域V2中的矢量的第三样本(V1L/V2H)对准来获得V1H/V2L组合的时序信息(为了方便在图7B中以黑体示出的样本)。这种增强去除了在单独电路分析中标识跨域路径的需要。这种增强还允许跨域路径在到达下一个电压域之前自适应地使用较低的样本计数,从而减少用于多个电压域分析的基于样本的STA的存储器和运行时间。
因此,本发明的范围旨在由所附权利要求书及其等效物定义。

Claims (28)

1.一种对用于集成电路的设计执行同步多角静态时序分析的方法,所述方法包括:
在多个角处读取包括网表、寄生以及库的设计数据,每个角代表工艺、温度以及电压状态的集合;以及
通过将所述设计数据用作输入,在所述多个角处用处理器执行多个操作以生成所述设计的时序报告,每个操作具有单个控制流程且将样本的矢量用于执行所述多个操作,每个样本是与角相关联的值其中,一个操作包括计算单元和网弧延迟,并且其中,所述计算单元和网弧延迟包括:
对于每个单元弧:
针对每个角执行弧查找;
针对角的选择子集计算延迟;以及
针对除角的所述选择子集以外的所有其它角估计延迟;
挑选单元弧的选择子集;以及
基于单元弧的所述选择子集计算网弧延迟。
2.如权利要求1所述的方法,其特征在于,一个操作包括确定透明锁存器是从下一个时序阶段借用时间还是向其借出时间。
3.如权利要求2所述的方法,其特征在于,确定所述透明锁存器是借用还是借出时间包括:
对于每个透明锁存器:
使用数据到达时间和所需时间之间的差来计算时序松弛矢量;
使用数据输出时间和时钟输出时间之间的差来计算德尔塔矢量;以及
确定时序松弛矢量中的每个时序松弛样本与德尔塔矢量中的每个相应的德尔塔样本的每个和是否小于或等于零,
其中如果是,则借用/借出值等于零,以及
其中如果不是,则所述借用/借出值等于该时序松弛样本。
4.如权利要求3所述的方法,其特征在于,正借用/借出值指示从下一个时序状态借用的时间,且负借用/借出值指示向下一个时序阶段借出的时间。
5.如权利要求1所述的方法,其特征在于,一个操作包括为所述设计中的每个边缘触发的锁存器生成时序松弛样本,每个时序松弛样本是在所述边缘触发的锁存器的数据引脚处的数据到达时间与所需时间之间的差。
6.如权利要求1所述的方法,其特征在于,一个操作包括移除时钟再收敛悲观主义。
7.如权利要求6所述的方法,其特征在于,所述移除时钟再收敛悲观主义包括针对所述多个角形成时钟网络图。
8.如权利要求7所述的方法,其特征在于,形成所述时钟网络图包括:
对于每个离散时钟节点:
计算上升时钟再收敛悲观主义移除样本和下降时钟再收敛悲观主义移除样本;以及
存储所述上升和下降时钟再收敛悲观主义移除样本。
9.如权利要求8所述的方法,其特征在于,所述移除时钟再收敛悲观主义进一步包括:
通过使用所述上升和下降时钟再收敛悲观主义移除样本,确定所述时钟网络图中的两个节点是否是可合并的。
10.如权利要求9所述的方法,其特征在于,确定所述两个节点是否是可合并的包括:
将所述两个节点的上升时钟再收敛悲观主义移除之间的第一差与第一预定阈值相比较;
将所述两个节点的下降时钟再收敛悲观主义移除之间的第二差与第二预定阈值相比较;以及
当所述第一差小于所述第一预定阈值且所述第二差小于所述第二预定阈值时合并所述两个节点。
11.一种对用于集成电路的设计执行同步多角静态时序分析的方法,所述方法包括:
读取多个角的包括网表、寄生以及库的设计数据,每个角代表工艺、温度以及电压状态的集合;
通过使用所述设计数据,执行针对所述设计的单元和网弧的延迟计算以生成样本的多个第一矢量,每个第一矢量代表所述多个角之一,且每个第一矢量的每个样本代表单元或网弧延迟值;
使用单元和网延迟第一矢量来执行时序更新以遍及所述网表的时序图生成和传播到达和所需时间第二矢量;
使用在所述时序图的每个节点处的到达时间和所需时间之差来得出时序松弛矢量;
使用来自所述时序更新的数据生成时序报告;以及
输出所述时序报告。
12.如权利要求11所述的方法,其特征在于,一个操作包括使用一个或多个时序度量样本来生成跨所述多个角的所述网表的多个关键路径。
13.如权利要求12所述的方法,其特征在于,所述一个或多个时序度量样本代表时序松弛和到达时间中的至少一个。
14.如权利要求13所述的方法,其特征在于,所述多个关键路径与多个最负松弛样本相关联。
15.如权利要求11所述的方法,其特征在于,一个操作包括时序度量以生成所述设计的时序路径的时序报告,所述时序报告示出跨所述多个角的概要时序数据。
16.如权利要求15所述的方法,其特征在于,跨所述多个角的所述设计的时序图的所述概要时序数据被用于关键时序路径的工程变更次序固定。
17.如权利要求16所述的方法,其特征在于,每个关键时序路径的跨所述多个角的所述工程变更次序固定包括修改该关键时序路径和/或另一设计网表以将该关键时序路径的时序松弛改进为小于预定阈值。
18.一种对具有多个电压域的设计执行同步多角静态时序分析的方法,其中每个域的供电电压可独立变化,所述方法包括:
读取多个角的包括网表、寄生以及库的设计数据,每个角包括每个电压域的低和高电压限制的电压状态的集合;
使用所述设计数据生成驻留在电压域内的单元和网的弧的第一矢量,所述第一矢量由代表所述电压域的低和高电压下的时序的两个样本组成;
使用所述设计数据生成位于不同电压域内的单元和网的弧的第二矢量,所述第二矢量中的每个样本代表跨多个电压域的特定电压组合下的时序,其中所述第二矢量的大小为2N,其中N是电压域的数量;
使用单元和网延迟第一矢量来执行时序更新以遍及所述设计的时序图生成和传播到达和所需时间第二矢量,并随后得出时序松弛矢量作为所述设计的所述时序图的每个节点处的到达时间和所需时间之差;
使用时序更新数据生成时序报告,包括到达、所需及时序松弛矢量,其中所述时序报告是遍及所述设计的所述时序图生成的;以及
输出所述时序报告。
19.一种计算机,所述计算机配置成执行指令用于对集成电路的设计执行静态时序分析,当所述指令被执行时使所述计算机执行包括以下步骤的步骤:
在多个角处读取包括网表、寄生以及库的设计数据,每个角代表工艺、温度以及电压状态的集合;以及
通过将所述设计数据用作输入,在所述多个角处执行多个操作以生成所述设计的时序报告,每个操作具有单个控制流程且将样本的矢量用于执行所述多个操作,每个样本是与角相关联的值,其中,一个操作包括计算单元和网弧延迟,并且其中,所述计算单元和网弧延迟包括:
对于每个单元弧:
针对每个角执行弧查找;
针对角的选择子集计算延迟;以及
针对除角的所述选择子集以外的所有其它角估计延迟;
挑选单元弧的选择子集;以及
基于单元弧的所述选择子集计算网弧延迟。
20.如权利要求19所述的计算机,其特征在于,一个操作包括确定透明锁存器是从下一个时序阶段借用时间还是向其借出时间。
21.如权利要求20所述的计算机,其特征在于,确定所述透明锁存器是借用时间还是借出时间包括:
对于每个透明锁存器:
使用数据到达时间和所需时间之间的差来计算时序松弛矢量;
使用数据输出时间和时钟输出时间之间的差来计算德尔塔矢量;
确定所述时序松弛矢量中的每个时序松弛样本与所述德尔塔矢量中的每个相应的德尔塔样本的每个和是否小于零,
其中如果是,则借用/借出值等于零,以及
其中如果不是,则所述借用/借出值等于该时序松弛样本。
22.如权利要求21所述的计算机,其特征在于,负时序松弛样本指示向所述下一个时序阶段借出的时间,且正时序松弛样本指示从所述下一个时序阶段借用的时间。
23.如权利要求19所述的计算机,其特征在于,一个操作包括为所述设计中的每个边缘触发的锁存器生成时序松弛样本,每个时序松弛样本是在所述边缘触发锁存器的数据引脚处的数据到达时间与所需时间之间的差。
24.如权利要求19所述的计算机,其特征在于,一个操作包括移除时钟再收敛悲观主义。
25.如权利要求24所述的计算机,其特征在于,所述移除时钟再收敛悲观主义包括针对所述多个角形成时钟网络图。
26.如权利要求25所述的计算机,其特征在于,形成所述时钟网络图包括:
对于每个离散时钟节点:
计算上升时钟再收敛悲观主义移除样本和下降时钟再收敛悲观主义移除样本;以及
存储所述上升和下降时钟再收敛悲观主义移除样本。
27.如权利要求26所述的计算机,其特征在于,移除时钟再收敛悲观主义进一步包括:
通过使用所述上升和下降时钟再收敛悲观主义移除样本,确定所述时钟网络图中的两个节点是否是可合并的。
28.如权利要求27所述的计算机,其特征在于,确定所述两个节点是否是可合并的包括:
将所述两个节点的上升时钟再收敛悲观主义移除之间的第一差与第一预定阈值相比较;
将所述两个节点的下降时钟再收敛悲观主义移除之间的第二差与第二预定阈值相比较;以及
当所述第一差小于所述第一预定阈值且所述第二差小于所述第二预定阈值时合并所述两个节点。
CN201180067682.2A 2010-12-16 2011-12-07 使用基于样本的静态时序基础结构的同步多角静态时序分析 Active CN103403719B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/970,812 2010-12-16
US12/970,812 US8615727B2 (en) 2010-12-16 2010-12-16 Simultaneous multi-corner static timing analysis using samples-based static timing infrastructure
PCT/US2011/063785 WO2012082498A2 (en) 2010-12-16 2011-12-07 Simultaneous multi-corner static timing analysis using samples-based static timing infrastructure

Publications (2)

Publication Number Publication Date
CN103403719A CN103403719A (zh) 2013-11-20
CN103403719B true CN103403719B (zh) 2017-10-13

Family

ID=46236196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180067682.2A Active CN103403719B (zh) 2010-12-16 2011-12-07 使用基于样本的静态时序基础结构的同步多角静态时序分析

Country Status (4)

Country Link
US (1) US8615727B2 (zh)
EP (1) EP2659406A4 (zh)
CN (1) CN103403719B (zh)
WO (1) WO2012082498A2 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8701063B1 (en) 2012-10-22 2014-04-15 Synopsys, Inc. Compressing scenarios of electronic circuits
US8914759B2 (en) * 2012-12-31 2014-12-16 Synopsys, Inc. Abstract creation
US8788995B1 (en) * 2013-03-15 2014-07-22 Cadence Design Systems, Inc. System and method for guiding remedial transformations of a circuit design defined by physical implementation data to reduce needed physical corrections for detected timing violations in the circuit design
US8887109B1 (en) * 2013-05-17 2014-11-11 Synopsys, Inc. Sequential logic sensitization from structural description
US9292638B1 (en) * 2014-01-21 2016-03-22 Altera Corporation Method and apparatus for performing timing closure analysis when performing register retiming
US9513658B2 (en) * 2015-03-09 2016-12-06 Apple Inc. Multi-bit flip-flop reorganization techniques
US9483601B2 (en) 2015-03-24 2016-11-01 International Business Machines Corporation Circuit routing based on total negative slack
US10372869B2 (en) 2015-03-27 2019-08-06 Samsung Electronics Co., Ltd. System and method of analyzing integrated circuit in consideration of a process variation
US11256846B2 (en) 2015-03-27 2022-02-22 Samsung Electronics Co., Ltd. System and method of analyzing integrated circuit in consideration of a process variation and a shift
US10339258B2 (en) * 2015-06-30 2019-07-02 Synopsys, Inc. Look-ahead timing prediction for multi-instance module (MIM) engineering change order (ECO)
US9836572B2 (en) * 2015-11-19 2017-12-05 International Business Machines Corporation Incremental common path pessimism analysis
US9418201B1 (en) * 2015-11-19 2016-08-16 International Business Machines Corporation Integration of functional analysis and common path pessimism removal in static timing analysis
US10223493B1 (en) 2016-06-28 2019-03-05 Altera Corporation Dynamic tag allocation for clock reconvergence pessimism removal
US10169502B2 (en) 2016-08-23 2019-01-01 International Business Machines Corporation Addressing of process and voltage points
CN106503827B (zh) * 2016-09-21 2020-12-11 国网河北省电力公司 一种多时序混合整数规划问题的处理方法及装置
CN106682285A (zh) * 2016-12-09 2017-05-17 深圳市紫光同创电子有限公司 一种静态时序分析方法和装置
US10140399B2 (en) * 2016-12-21 2018-11-27 Arm Limited Corner database generator
US10380286B2 (en) * 2017-02-20 2019-08-13 International Business Machines Corporation Multi-sided variations for creating integrated circuits
US10216875B2 (en) * 2017-02-23 2019-02-26 International Business Machines Corporation Leverage cycle stealing within optimization flows
KR102416490B1 (ko) * 2017-06-15 2022-07-04 삼성전자 주식회사 와이어의 공정 변이를 고려한 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템
CN109145320B (zh) * 2017-06-16 2022-11-25 展讯通信(上海)有限公司 芯片层次化物理设计中的静态时序分析方法及装置
US10796054B2 (en) 2018-02-02 2020-10-06 Samsung Electronics Co., Ltd. Chip design method of optimizing circuit performance according to change in PVT operation conditions
US10671782B2 (en) * 2018-10-29 2020-06-02 International Business Machines Corporation Architecture for ordered write of data collected in parallel
TWI697797B (zh) * 2018-11-08 2020-07-01 瑞昱半導體股份有限公司 決定積體電路之電壓以及找出電壓與電路參數之關係的方法
CN111274751B (zh) * 2018-11-16 2023-07-25 瑞昱半导体股份有限公司 决定集成电路之电压及找出电压与电路参数之关系的方法
US10747925B1 (en) 2019-01-25 2020-08-18 International Business Machines Corporation Variable accuracy incremental timing analysis
US10902167B1 (en) 2019-07-09 2021-01-26 International Business Machines Corporation Feedback-aware slack stealing across transparent latches empowering performance optimization of digital integrated circuits
US11017137B2 (en) 2019-10-07 2021-05-25 International Business Machines Corporation Efficient projection based adjustment evaluation in static timing analysis of integrated circuits
US11036908B1 (en) 2020-06-08 2021-06-15 Apex Semiconductor Techniques for simulation-based timing path labeling for multi-operating condition frequency prediction
CN112364584B (zh) * 2021-01-13 2021-03-23 南京集成电路设计服务产业创新中心有限公司 一种基于分布式的静态时序分析方法
US20230252215A1 (en) * 2022-02-10 2023-08-10 Zhanguang Zhang System and method for generating a floorplan for a digital circuit using reinforcement learning
CN116090382B (zh) * 2023-03-28 2023-06-23 深圳鸿芯微纳技术有限公司 时序报告生成方法和设备
CN116306416B (zh) * 2023-05-17 2023-08-18 芯耀辉科技有限公司 用于生成静态时序分析时序库的方法、设备及介质
CN116306418A (zh) * 2023-05-24 2023-06-23 南京芯驰半导体科技有限公司 一种时序收敛方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1873646A (zh) * 2005-05-31 2006-12-06 阿尔特拉公司 产生等同于现场可编程门阵列的结构化专用集成电路的方法
CN101317178A (zh) * 2005-12-16 2008-12-03 国际商业机器公司 统计时序分析中关键度预测的系统和方法
CN101344898A (zh) * 2007-07-11 2009-01-14 恩益禧电子股份有限公司 半导体集成电路的生产方法、设计方法和设计系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6851098B2 (en) * 2002-08-28 2005-02-01 Lsi Logic Corporation Static timing analysis and performance diagnostic display tool
US7181713B2 (en) 2002-08-28 2007-02-20 Lsi Logic Corporation Static timing and risk analysis tool
US7739098B2 (en) 2004-02-04 2010-06-15 Synopsys, Inc. System and method for providing distributed static timing analysis with merged results
US7882471B1 (en) * 2005-11-15 2011-02-01 Cadence Design Systems, Inc. Timing and signal integrity analysis of integrated circuits with semiconductor process variations
US7650580B2 (en) 2006-01-03 2010-01-19 Synopsys, Inc. Method and apparatus for determining the performance of an integrated circuit
JP4629607B2 (ja) 2006-03-31 2011-02-09 富士通セミコンダクター株式会社 半導体集積回路のタイミング検証方法及びタイミング検証装置
US7480881B2 (en) 2006-08-18 2009-01-20 Lsi Logic Corporation Method and computer program for static timing analysis with delay de-rating and clock conservatism reduction
US8666722B2 (en) * 2010-06-11 2014-03-04 Synopsys, Inc. Efficient data compression for vector-based static timing analysis
US8793639B2 (en) * 2010-08-09 2014-07-29 Asicserve, Ltd. Method and system of converting timing reports into timing waveforms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1873646A (zh) * 2005-05-31 2006-12-06 阿尔特拉公司 产生等同于现场可编程门阵列的结构化专用集成电路的方法
CN101317178A (zh) * 2005-12-16 2008-12-03 国际商业机器公司 统计时序分析中关键度预测的系统和方法
CN101344898A (zh) * 2007-07-11 2009-01-14 恩益禧电子股份有限公司 半导体集成电路的生产方法、设计方法和设计系统

Also Published As

Publication number Publication date
CN103403719A (zh) 2013-11-20
EP2659406A2 (en) 2013-11-06
WO2012082498A3 (en) 2012-09-13
EP2659406A4 (en) 2017-10-18
US8615727B2 (en) 2013-12-24
US20120159414A1 (en) 2012-06-21
WO2012082498A2 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
CN103403719B (zh) 使用基于样本的静态时序基础结构的同步多角静态时序分析
CN102725761B (zh) 具有冗余的路径保持设计分区
US20100281444A1 (en) Multiple-power-domain static timing analysis
US8156462B2 (en) Verification technique including deriving invariants from constraints
CN102741777A (zh) 基于分区的漏电功率优化
Campbell et al. Hybrid quick error detection (H-QED) accelerator validation and debug using high-level synthesis principles
CN101681390A (zh) 模拟使用不确定值行为结构的方法和装置
CN104969226B (zh) 跨管线的时序瓶颈分析以利用有用偏差引导优化
Chi et al. Gate level multiple supply voltage assignment algorithm for power optimization under timing constraint
Li et al. Fast statistical timing analysis for circuits with post-silicon tunable clock buffers
CN101866372A (zh) 用于形式特性验证的假设的自动近似
Chen et al. Reliability-aware operation chaining in high level synthesis
US10289773B2 (en) Reset domain crossing management using unified power format
Takahashi et al. A method for reducing the target fault list of crosstalk faults in synchronous sequential circuits
Ducroux et al. Fast and accurate power annotated simulation: Application to a many-core architecture
Man et al. SC2SCFL: Automated SystemC to Translation
Tziouvaras et al. Instruction-flow-based timing analysis in pipelined processors
US20090210839A1 (en) Timing closure using multiple timing runs which distribute the frequency of identified fails per timing corner
Zhang Architecture and performance comparison of a statistic-based lottery arbiter for shared bus on chip
Ubar et al. Synthesis of high-level decision diagrams for functional test pattern generation
Kamran et al. Hardware acceleration of online error detection in many-core processors
Jin et al. A fast cross-layer dynamic power estimation method by tracking cycle-accurate activity factors with spark streaming
Gong et al. A new approach to single event effect tolerance based on asynchronous circuit technique
US9542514B2 (en) Constraint memory node identification in sequential logic
Nandy et al. Power minimization using control generated clocks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant