CN105701266A - 用于电路设计中的静态时序分析的方法和系统 - Google Patents
用于电路设计中的静态时序分析的方法和系统 Download PDFInfo
- Publication number
- CN105701266A CN105701266A CN201410712156.2A CN201410712156A CN105701266A CN 105701266 A CN105701266 A CN 105701266A CN 201410712156 A CN201410712156 A CN 201410712156A CN 105701266 A CN105701266 A CN 105701266A
- Authority
- CN
- China
- Prior art keywords
- latencies
- path
- deferred constraint
- input
- delay
- 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.)
- Granted
Links
- 238000013461 design Methods 0.000 title claims abstract description 37
- 238000004458 analytical method Methods 0.000 title claims abstract description 14
- 230000003068 static effect Effects 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000005457 optimization Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 5
- 238000011144 upstream manufacturing Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 238000003860 storage Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31725—Timing aspects, e.g. clock distribution, skew, propagation delay
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31725—Timing aspects, e.g. clock distribution, skew, propagation delay
- G01R31/31726—Synchronization, e.g. of test, clock or strobe signals; Signals in different clock domains; Generation of Vernier signals; Comparison and adjustment of the signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/35—Delay-insensitive circuit design, e.g. asynchronous or self-timed
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
本公开内容涉及用于电路设计中的静态时序分析的方法和系统。在一个实施例中,公开了一种用于在电路设计的静态时序分析中计算路径延迟的方法,包括:确定所述电路设计的路径中的第一器件与第二器件的连接关系;基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束,所述延迟约束规定所述第一器件的第一器件延迟与所述第二器件的第二器件延迟之间的相关性;以及使用符合延迟约束的所述第一器件延迟和所述第二器件延迟来计算所述路径的路径延迟。还描述了相应的系统。
Description
技术领域
本发明的实施例总体上涉及电路设计,并且特别涉及用于电路设计中的静态时序分析的方法和系统。
背景技术
静态时序分析(StaticTimingAnalysis,STA)是电路设计中的重要部分。已经开发了大量用于STA的工具和方法。STA过程的主要目的是通过分析路径的延迟,计算出电路设计的各项时序性能指标,以发现违反时序要求的路径。计算电路设计中各个路径的路径延迟(pathdelay)是STA的基础。路径包括一个或多个器件,例如门(gate)。路径的延迟可以基于路径中的器件延迟来确定。器件延迟可以被事先确定和存储,例如存储在标准单元库(StandardCellLibrary)中,并且可在STA过程中被访问和使用。
已知的是,器件延迟通常随着不同的输入模式/条件而变化。以三输入异或门(XOR3)为例,其第一输入端到输出端的延迟通常与第二输入端和第三输入端的输入值相关。具体地,在第二输入端和第三输入端的输入模式为“11”(即,这两个输入值均为“1”)、“10”或“01”(即,这两个输入值中一个为“0”、另一个为“1”)以及输入模式“00”(即,这两个输入值均为“0”)的情况下,第一输入端到输出端的延迟通常是不同的。对于其他电路器件同样存在这种情况。
在传统的STA方法中,路径延迟是通过将路径中的各个器件的最大器件延迟相加而获得的。换言之,每个个体器件都被假设达到最大器件延迟。这样得到的路径延迟随后被用来确定路径是否满足时序需要。然而,基于最大器件延迟的传统STA方法所得到的路径延迟往往是“悲观的”。也就是说,路径的实际最大延迟可能小于所计算的路径延迟。例如,在某些情况下,路径中的某些器件不可能同时达到最大器件延迟。悲观的路径延迟计算影响了STA的准确性,并且可能指示不会现实发生的时序违例。为此,将要花费不必要的努力对电路设计进行优化,并且可能增加运行时间和晶片尺寸。
发明内容
总体上,本发明的实施例提出一种用于电路设计中的静态时序分析的技术方案。
在本发明的一个方面,提供一种用于在电路设计的静态时序分析STA中计算路径延迟的方法。所述方法包括:确定所述电路设计的路径中的第一器件与第二器件的连接关系;基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束,所述延迟约束规定所述第一器件的第一器件延迟与所述第二器件的第二器件延迟之间的相关性;以及使用符合延迟约束的所述第一器件延迟和所述第二器件延迟来计算所述路径的路径延迟。
在本发明的另一方面,一种用于在电路设计的静态时序分析STA中计算路径延迟的系统。所述系统包括:连接关系确定单元,被配置为确定所述电路设计的路径中的第一器件与第二器件的连接关系;延迟约束生成单元,被配置为基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束,所述延迟约束规定所述第一器件的第一器件延迟与所述第二器件的第二器件延迟之间的相关性;以及路径延迟计算单元,被配置为使用符合延迟约束的所述第一器件延迟和所述第二器件延迟来计算所述路径的路径延迟。
根据本发明的实施例,可以利用器件中的连接关系生成相连器件的延迟约束。根据这样的延迟约束,可以确定在实际中不可能出现的器件延迟(例如,最大器件延迟)或其配对。由此,可以在计算路径延迟时将不可能出现的器件延迟排除在考虑范围之外。以此方式,可以有效地消除路径延迟计算中的悲观性,从而提高STA的准确性,进而改善时序优化的效率。本发明的其他特征和优点将通过下文描述而变得容易理解。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显其中:
图1示出了适于用来实现本发明实施例的示例性计算机系统/服务器的示意性框图;
图2示出了电路设计的路径中具有共同输入端的两个器件的示意图;
图3示出了根据本发明实施例的用于在STA中计算路径延迟的方法的示意性流程图;
图4示出了可用于存储器件延迟信息的标准单元库的一部分的示意图;
图5示出了电路设计的路径中与相同的寄存器相关的两个器件的示意图;
图6示出了电路设计的路径中的具有信号截断可能的两个器件的示意图;
图7示出了根据本发明一个实施例的用于将基于连接关系的延迟约束与STA结合使用的方法的示意性流程图;以及
图8示出了根据本发明实施例的用于在STA中计算路径延迟的系统的示意性框图。
在附图中,相同或相似的标号被用来表示相同或相似的元素。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的方框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括—但不限于—操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
下面将详细描述本发明实施例的机制和原理。除非特别声明,在下文和权利要求中使用的术语“基于”表示“至少部分地基于”。术语“包括”表示开放性包括,即“包括但不限于”。术语“多个”表示“两个或更多”。术语“一个实施例”表示“至少一个实施例”。术语“另一实施例”表示“至少一个另外的实施例”。此外,在此使用的“第一”、“第二”等术语仅仅是为了区分所指代的对象,并未意在施加顺序、时间、空间或者任何其他方面的限制。其他术语的定义将在下文描述中给出。
为了更清楚地阐释本发明的机制和原理,下面将首先分析传统STA中的问题和缺陷。在传统的STA中,所分析的路径中的每个器件都被假设达到最大器件延迟。而后,通过按照连接顺序将这些器件的最大器件延迟相加,可以获得对路径延迟的估计。但是,如上文所述,以这种方式获得的路径延迟往往具有明显的“悲观性”。发明人通过大量实验和研究发现:路径中彼此相连的器件的器件延迟之间彼此约束,而这种约束关系转而影响整条路径的路径延迟。目前,在估计路径延迟时,没有将种器件间的约束关系纳入考虑。
如图2所示,在电路设计的一条路径200中,器件210和220相互连接。假设根据标准单元库确定:器件210达到其最大器件延迟的条件是其输入端212的输入值为“1”,而器件220达到其最大器件延迟的条件是其输入端222的输入值为“0”。然而,在路径200中,器件210的输入端212与器件220的输入端220连接至共同的引线230。在这种情况下,不可能出现第一器件210的输入端212接收输入值“1”而第二器件220的输入端222接收输入值“0”的情况。因此,第一器件210和220不会同时达到最大器件延迟。
传统STA得到的悲观估计是不利的。由于这种悲观的路径延迟估计,原本符合设计要求的路径可能被错误地标识为违反时序要求;原本只是轻微违反时序要求的路径可能被错误地标识为比较严重地违反时序要求。相应地,需要花费不必要的时间和精力对这些路径进行时序优化。从设计时间和成本的角度看,这都是不期望的。
为了克服传统STA中的上述以及其他潜在问题,本发明的实施例在STA的路径延迟计算中,将器件之间的连接关系纳入考虑。通过根据器件的连接关系生成表征器件相关性的延迟约束,能够有效地消除传统路径延迟估计的悲观性,改善STA的准确性。
图3示出了根据本发明实施例的用于在STA中计算路径延迟的方法300的示意性流程图。为讨论方便起见,将主要描述路径中的两个相互连接的器件。然而,应当理解,方法300可以适用于包含任意数目的器件的路径。
如图所示,方法300开始于步骤S310,在此确定两个器件之间的连接关系。为讨论方便,将这两个器件称为“第一器件”和“第二器件”。而后,方法300进行到步骤S320,在此至少部分地基于步骤S310处确定的第一器件和第二器件的连接关系,生成与第一器件和第二器件相关联的延迟约束。
在此使用的术语“器件”主要是指路径中的逻辑器件,例如门器件。门的示例包括但不限于:与门、或门、非门、异或门、与非门、与或门,等等。任何目前已知或者将来开发的逻辑器件均可与本发明的实施例结合使用,本发明的范围在此方面不受限制。
如已知的,电路路径中的每个器件都具有固有的器件延迟。器件延迟可具有多个可能的候选值。当输入模式不同时,器件的器件延迟在这些候选值之间变化。作为示例,对于具有三个输入端的异或门而言,其第一输入端到输出端的延迟可随第二输入端和第三输入端的输入模式而改变。第二输入端和第三输入端的输入值具有四种可能的输入模式(inputpattern),即,“00”、“01”、“10”和“11”,每种输入模式可能导致器件延迟具有不同的取值。当然,取决于器件的类型,器件延迟的取值在不同的输入模式下保持不变也是可能的。
一般而言,一个器件的器件延迟的候选值与相应的输入模式可以被事先确定和存储。例如,关于器件延迟的信息可以被存储在标准单元库中。作为示例,图4示出了一个标准单元库的一部分的示意图。在所示的示例中,器件类型为“AOI211”的电路元件410的器件延迟的多个候选值以及对应的输入模式被存储在标准单元库的代码片段420中。标准单元库中所存储的这些信息可以在STA中被访问和使用。
根据本发明的实施例,与第一器件和第二器件相关联的延迟约束用于规定第一器件与第二器件的器件延迟之间的相关性。具体而言,对于第一器件的器件延迟(称为“第一器件延迟”)和第二器件的器件延迟(称为“第二器件延迟”)的任何取值配对(valuepair),只有在其满足延迟约束的情况下,才可能在计算路径延迟时被纳入考虑。反之,不符合延迟约束的器件延迟的任何取值配对将在路径延迟计算中被排除在考虑范围之外。换言之,在步骤S320处生成的延迟约束根据步骤S310处确定的第一器件与第二器件的连接关系,在计算路径延迟时限制第一器件和第二器件各自的器件延迟的取值。下面将描述本发明的几个若干示例性实施例。
在一个实施例中,可以在步骤S310处确定第一器件与第二器件是否具有共同的输入端。更具体地,可以确定第一器件的任何输入端和第二器件的任何输入端是否连接至同一引线或者彼此直接连接。例如,在图2所示的情况中,第一器件210的输入端212和第二器件220的输入端222连接至相同的引线,因此可被认为是彼此连接。
响应于在步骤S310处确定第一器件的第一输入端与第二器件的第二输入端直接连接,在步骤S320处可以生成相应的延迟约束。为讨论方便起见,将该延迟约束称为“第一延迟约束”。第一延迟约束规定:在STA的路径延迟计算中,第一器件的第一器件延迟的取值所对应的第一输入端的输入值,与第二器件的第二器件延迟的取值所对应的第二输入端的输入值应当相同。只有当满足第一延迟约束时,器件延迟的相应取值配对才是可能的。反之,任何违反第一延迟约束的器件延迟的取值配对都应在计算路径延迟时被排除。
为讨论方便之目的,仍然考虑图2所示的示例。根据本发明的实施例,针对第一器件210和第二器件220将会生成第一约束,其规定:第一器件210的器件延迟的取值所对应的输入端212的输入值,应当等于第二器件220的器件延迟的取值所对应的输入端222的输入值。
以最大器件延迟为例,假设根据标准单元库中的信息确定:第一器件210达到其最大器件延迟时的输入端212为“1”,并且第二器件220达到其最大器件延迟时的输入端222为“0”。此时,第一器件210和第二器件220的最大器件延迟的取值配对不满足第一约束,因为此时第一器件和第二器件上彼此连接的输入端的输入值不同。因此,第一器件和第二器件不能同时达到各自的最大器件延迟。相应地,如下文所述,在计算路径延迟时,将禁止第一器件210和第二器件220同时取其最大器件延迟。
反之,如果根据标准单元库中的数据确定:第一器件210达到其最大器件延迟时的输入端212为“1”,并且第二器件220达到其最大器件延迟时的输入端222也为“1”,则这个取值配对满足第一约束(因为此时第一器件和第二器件上彼此连接的输入端的输入值相同)。因此,在计算路径延迟时,第一器件210和第二器件220可以同时达到各自的最大器件延迟。
仍然参考图3描述本发明的示例性实施例。备选地或附加地,在一个实施例中,可以在步骤S310处确定第一器件和第二器件是否具有与一个或多个相同的寄存器相关的输入端。如已知的,在电路中,除了门之类的逻辑运算器件之外,还可以包括充当存储元件的寄存器。在某些情况下,不同逻辑器件的输入端并未直接彼此连接,但是却与共同的一个或多个寄存器相关联。
图5示出了与相同的寄存器相关联的器件的示意图。在图5所述的路径500中,第一器件210的输入端(称为“第三输入端”)214和第二器件220的输入端(称为“第四输入端”)224没有直接相连。然而,输入端214和224都与相同的寄存器510和520相关。为讨论方便,在下文描述中,与第一器件的第三输入端和第二器件的第四输入端均相关的一个或多个寄存器被称为“共同寄存器”。
此时,可以在步骤S320处生成相应的延迟约束,称为“第二延迟约束”。第二延迟约束规定:第一器件210的第一器件延迟所对应的共同寄存器(在此例中为寄存器510和520)的状态(称为“第一状态”)应与第二器件220的第二器件延迟所对应的共同寄存器的状态(称为“第二状态”)相同。
类似于第一延迟约束,只有当第一器件210与第二器件220的器件延迟的取值配对满足第二延迟约束时,该取值配对才可能在计算路径延迟时被纳入考虑。反之,违反第二延迟约束的任何器件延迟的取值配对将被排除在路径延迟的计算之外。
作为示例,仍然考虑器件的最大器件延迟。假设根据标准单元库中的数据确定:第一器件210达到其最大器件延迟时寄存器510和520的状态为“00”或者“10”,并且第二器件220达到其最大器件延迟时寄存器510和520的状态为“01”。此时,第一器件210达到最大器件延迟所需的共同寄存器的第一状态与第一器件220达到最大器件延迟所需的共同寄存器的第二状态不可能相同(二者交集为空)。由此,可以确定第一器件210和第二器件220不能同时达到最大器件延迟。
反之,如果第一器件210达到其最大器件延迟时寄存器510和520的状态为“00”或“10”,并且第二器件220达到其最大器件延迟时寄存器510和520的状态为“10”,则第一器件210和第二器件220可能同时达到最大器件延迟(当寄存器510和520的状态为“10”时)。因此,这两个器件的最大器件延迟的配对可以在路径延迟计算中被纳入考虑。
在另一些实施例中,除了在步骤S310处确定的器件连接关系之外,在步骤S320处确定延迟约束时,还可以将一个或多个其他相关因素纳入考虑。例如,在一个实施例中,延迟约束可以基于器件的连接关系以及至少一个器件的类型来确定。
参考图6描述一个具体示例。在图6所示的示例中,假设路径600中的第一器件210的输入端216与第二器件220的输入端226通过同一引线610而直接连接(或者与一个或多个共同寄存器相关,图中未示出)。而且,如图所示,第一器件210在路径600中位于第二器件220的上游。进一步假设:第一器件210达到最大器件延迟的条件是输入端216的输入值为“1”。由此,在第一器件210达到最大器件延迟的情况下,第二器件220的输入端226的输入值也必然为“1”。如果第二器件220包括或门,那么不论第一器件210向第二器件220的输入端228馈送何值,第二器件220的输出都将为“1”。
也就是说,在这种情况下,第一器件210的输出被第二器件220截断。由此,路径600的信号延迟本质上不会受到第一器件210的器件延迟的影响。相应地,在这种情况下,在计算路径延迟时可以将第一器件210的器件延迟排除在考虑范围之外。
类似地,当第二器件220包括与门时,同样可能截断第一器件210的输出。例如,如果第一器件210达到最大器件延迟的条件是输入端216的输入值为“0”,则第一器件220的输入必然被第二器件220截断。这是因为,当第一器件210的输入端216的输入值为“0”时,第二器件220的输入端226的输入值也为“0”。由此,第二器件220的输出必然为零。此时,第一器件210的器件延迟也应被排除在路径延迟计算之外。
应当理解,第二器件220并非一定是或门或者与门本身。实际上,只要第二器件220能够执行“与”运算或者“或”运算,便可截断路径中的信号。例如,第二器件220可以是与非门、或非门、与或门等任何包含或门和/或与门的器件。
在上面描述的这些情况下,如果确定第一器件延迟达到给定值会导致第一器件的输出将被第二器件截断,则可以在步骤S320处生成第三延迟约束,其排除在计算路径延迟时第一器件延迟取所述给定值的可能性。
将会理解,尽管上文已经描述了延迟约束的若干示例,但是这些示例仅仅是示范性的,无意以任何方式限制本发明的保护范围。任何其他适当的延迟约束及其生成方式都是可行的。例如,备选地或附加地,在一个实施例中,可以使用已知的或将来开发的分析引擎对电路中的逻辑锥(logiccone)或其部分进行扫描。
如已知的,逻辑锥是指需要确定信号逻辑的组合电路,其可由布尔表达式来表示。通过扫描逻辑锥(或其部分),可以确定电路或其给定路径中不可能出现的输入模式,即,不可行输入模式。另外,例如通过访问标准单元库,可以获取与第一器件的器件延迟的候选值相对应的第一组输入模式,以及与第二器件的器件延迟的候选值相对应的第二组输入模式。基于不可行输入模式、第一组输入模式和第二组输入模式,可以生成与第一器件和第二器件相关联的延迟约束。具体而言,可以从第一组输入模式和第二组输入模式中排除不可行输入模式。例如,可以从第一组输入模式和/或第二组输入模式中,移除被包括在不可行输入模式中的那些输入模式(如果有的话)。以此方式,可以在计算路径延迟时排除相应的器件延迟的候选值。
继续参考图3,方法300进行到步骤S330,在此使用符合在步骤S320处获得的延迟约束的第一器件和第二器件各自的器件延迟,来计算整条路径的路径延迟。
将会理解,根据本发明的实施例,不同类型的延迟约束可以单独使用,也可以任意组合使用。在一个实施例中,在步骤S320处生成的一个或多个延迟约束可以被存储在任意适当格式的约束文件中。相应地,在步骤S330处可以访问约束文件,并且将与约束文件冲突那些器件延迟的取值配对排除在路径延迟计算之外。
例如,在一个实施例中,在步骤S320处可以首先假设所有器件都达到标准单元库所指示的最大器件延迟。而后,可以检查这种假设是否违反延迟约束。如果根据相关的延迟约束确定某些器件无法同时达到最大器件延迟,则可以从标准单元库中选择其他候选值,使得器件延迟的取值配对符合延迟约束。
与总是基于每个器件的最大器件延迟来计算路径延迟的传统方案相比,本发明的实施例能够极大地消除路径延迟计算的悲观性。例如,实验证明:仅仅使用第一延迟约束就可以排除掉大量不可能出现的相连器件同时达到最大器件延迟的情况。
应当理解,尽管在上文结合图3的描述中着重讨论了最大器件延迟,但是这仅仅是示例性的,无意以任何方式限制本发明的范围。在其他实施例中,在计算路径延迟时,可以根据延迟约束确定是否应当排除标准单元库中所存储的器件延迟的任何候选值。
另外,根据本发明的实施例,可以从STA过程伊始便应用上文参考图3描述的方法300。备选地,为了更加符合实践应用的需求,也可以将基于连接关系的延迟约束与传统的STA方法结合使用。图7示出了一个根据本发明实施例的将基于连接关系的延迟约束与传统STA相结合的方法700的示意性流程图。
方法700开始于步骤S710,在此向电路设计应用STA过程。例如,在一个实施例中,在STA过程中,可以假设电路中的所有器件都达到其最大器件延迟,由此获得每条路径的路径延迟。路径延迟可以与预定义的时序要求进行比较,从而确定路径是否违规。也即,如果一条路径在先前STA中被确定的先前路径延迟大于时序要求所规定的期望延迟,则确定路径违反了时序要求。STA过程将返回电路中的一条或者多条不满足时序设计要求的路径(如果存在的话)。
方法700进行到步骤S720,在此判断电路中是否包含违反时序要求的路径。如果所有路径均符合时序要求(分支“否”),方法700进行到步骤S730,在此输出电路设计。否则,如果电路中包含一条或多条违反时序要求的路径(分支“是”),方法700进行到步骤S740,在此确定违规路径中的一条路径的在先前STA中的路径延迟超出时序要求所规定的期望延迟的时间量是否低于阈值。
如果违规路径的先前路径延迟超出期望延迟的时间量在预定阈值之下(分支“是”),方法700进行到步骤S750,在此基于器件的连接关系而生成延迟约束。步骤S750对应于上文描述的方法300中的步骤S310和S320,其细节不再重复。
可以看到,在方法700中,只有当初始STA所确定的违规路径的先前路径延迟与时序要求所规定的期望延迟之间的差距足够小时,才启用基于连接关系的延迟约束。这是因为,当路径严重违反时序要求时,即使利用延迟约束修正了路径延迟计算中的悲观性,对于时序优化的帮助也往往不甚明显。此时,可以暂不启用基于延迟约束的修正,而是直接对违规路径进行时序优化。通过一轮或者多轮优化,当违规量降低到阈值之下时,再基于延迟约束消除悲观性,从而更加有效和高效地完成时序优化。
在步骤S750之后,方法进行到步骤S760,在此基于步骤S750处获取的延迟约束重新计算违规路径的路径延迟。具体而言,如上所述,对于彼此连接的第一器件和第二器件,可以参照延迟约束来确定其是否可能在当前连接关系下达到最大器件延迟。如果不能,则可以通过更新第一器件和/或第二器件的器件延迟,来重新计算路径延迟,从而对初始STA的结果进行修正。
在步骤S770,确定是否还有更多尚未处理的违规路径。如果是,方法700返回到步骤S740,以便继续处理。另一方面,如果在步骤S740处确定已经处理了所有违规路径,方法700在步骤S780处对违规路径进行时序优化。可以理解,在步骤S780所处理的违规路径中,可能包括那些因为违规量超过阈值而没有重新计算路径延迟的违规路径,也可能包括违规量低于阈值并且因此在步骤S750和S760重新计算了路径延迟的违规路径。
在步骤S780之后,方法700可以返回步骤S720,在此确定经过时序优化之后的电路设计中是否还包括违规路径。如果违规路径仍然存在,则可以执行一轮或多轮的进一步优化。以此方式,通过一次或多个迭代,能够有效地、准确地完成对电路设计的时序优化,消除违规路径。
图8示出了根据本发明实施例的用于在STA中计算路径延迟的系统800的示意性框图。如图所述,系统800包括:连接关系确定单元810,被配置为确定所述电路设计的路径中的第一器件与第二器件的连接关系;延迟约束生成单元820,被配置为基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束,所述延迟约束规定所述第一器件的第一器件延迟与所述第二器件的第二器件延迟之间的相关性;以及路径延迟计算单元830,被配置为使用符合延迟约束的所述第一器件延迟和所述第二器件延迟来计算所述路径的路径延迟。
在一个实施例中,所述延迟约束生成单元820可以包括:第一延迟约束生成单元,被配置为响应于所述第一器件的第一输入端与所述第二器件的第二输入端直接连接而生成第一延迟约束,所述第一延迟约束规定:所述第一器件延迟所对应的所述第一输入端的输入值与所述第二器件延迟所对应的所述第二输入端的输入值应当相同。
在一个实施例中,所述延迟约束生成单元820可以包括:第二延迟约束生成单元,被配置为响应于所述第一器件的第三输入端与所述第二器件的第四输入端与相同的寄存器相关而生成第二延迟约束,所述第二延迟约束规定:所述第一器件延迟所对应的所述寄存器的第一状态与所述第二器件延迟所对应的所述寄存器的第二状态应当相同。
在一个实施例中,所述延迟约束生成单元820可以包括:基于器件类型的延迟约束生成单元,被配置为基于所述连接关系以及所述第一器件和第二器件中至少一个的器件类型而生成所述延迟约束。在一个实施例中,所述第一器件在所述路径中位于所述第二器件的上游。此时,所述基于器件类型的延迟约束生成单元包括:第三延迟约束生成单元,被配置为若所述第一器件延迟达到给定值会导致所述第一器件的输出将被所述第二器件截断,则生成第三延迟约束,所述第三延迟约束排除所述第一器件延迟取所述给定值的可能性。在这样的实施例中,所述第二器件可以是支持“或”运算或者“与”运算的器件。
在一个实施例中,所述延迟约束生成单元820可以包括:不可行输入模式确定单元,被配置为通过扫描所述电路设计的逻辑锥的至少一部分,确定所述电路设计中的不可行输入模式;第一输入模式获取单元,被配置为获取与所述第一器件延迟的候选值相对应的第一组输入模式;第二输入模式获取单元,被配置为获取与所述第二器件延迟的候选值相对应的第二组输入模式;以及基于输入模式的延迟约束生成单元,被配置为通过从所述第一组输入模式和所述第二组输入模式中排除所述不可行输入模式而生成所述延迟约束。
在一个实施例中,所述路径在先前STA中的先前路径延迟超出时序要求所规定的预期延迟。在此实施例中,所述系统800还可以包括:违反量比较单元,被配置为将所述先前路径延迟超出所述预期延迟的时间量与预定阈值进行比较。所述连接关系确定单元810可被配置为仅在所述时间量低于所述预定阈值的情况下,确定所述第一器件与所述第二器件的所述连接关系。
在一个实施例中,在所述先前STA中,所述第一器件延迟是所述第一器件的最大器件延迟、并且所述第二器件延迟是所述第二器件的最大器件延迟。在此实施例中,所述路径延迟计算单元830可以包括:路径延迟重计算单元,被配置为响应于确定所述延迟约束在所述先前STA中被违反,通过更新所述第一器件延迟和所述第二器件延迟中的至少一个,来重新计算所述路径的路径延迟。
在一个实施例中,系统800还可以包括:时序优化单元,被配置为基于重新计算的路径延迟对所述路径进行时序优化。
为清晰起见,图8中没有示出系统800所包括的可选单元或者子单元。上文所描述的所有特征和操作分别适用于系统800,故在此不再赘述。而且,系统800中的单元或子单元的划分不是限制性的而是示例性的,旨在从逻辑上描述其主要功能或操作。一个单元的功能可以由多个单元来实现;反之,多个单元亦可由一个单元来实现。本发明的范围在此方面不受限制。
而且,系统800所包含的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。例如,在某些实施方式中,系统800可以利用软件和/或固件来实现。备选地或附加地,系统800可以部分地或者完全地基于硬件来实现。例如,系统800中的一个或多个单元可以实现为集成电路(IC)芯片、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA),等等。本发明的范围在此方面不受限制。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
计算机可读程序指令也可加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种用于在电路设计的静态时序分析STA中计算路径延迟的方法,所述方法包括:
确定所述电路设计的路径中的第一器件与第二器件的连接关系;
基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束,所述延迟约束规定所述第一器件的第一器件延迟与所述第二器件的第二器件延迟之间的相关性;以及
使用符合延迟约束的所述第一器件延迟和所述第二器件延迟来计算所述路径的路径延迟。
2.根据权利要求1所述的方法,其中基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束包括:
响应于所述第一器件的第一输入端与所述第二器件的第二输入端直接连接而生成第一延迟约束,所述第一延迟约束规定:所述第一器件延迟所对应的所述第一输入端的输入值与所述第二器件延迟所对应的所述第二输入端的输入值应当相同。
3.根据权利要求1所述的方法,其中基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束包括:
响应于所述第一器件的第三输入端与所述第二器件的第四输入端与相同的寄存器相关而生成第二延迟约束,所述第二延迟约束规定:所述第一器件延迟所对应的所述寄存器的第一状态与所述第二器件延迟所对应的所述寄存器的第二状态应当相同。
4.根据权利要求1所述的方法,其中基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束包括:
基于所述连接关系以及所述第一器件和第二器件中至少一个的器件类型而生成所述延迟约束。
5.根据权利要求4所述的方法,其中所述第一器件在所述路径中位于所述第二器件的上游,并且其中基于所述连接关系以及所述第一器件和第二器件中至少一个的器件类型而生成所述延迟约束包括:
若所述第一器件延迟为给定值会导致所述第一器件的输出将被所述第二器件截断,则生成第三延迟约束,所述第三延迟约束排除所述第一器件延迟取所述给定值的可能性。
6.根据权利要求5所述的方法,其中所述第二器件具有“或”运算功能和“与”运算功能之一。
7.根据权利要求1所述的方法,其中基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束包括:
通过扫描所述电路设计的逻辑锥的至少一部分,确定所述电路设计中的不可行输入模式;
获取与所述第一器件延迟的候选值相对应的第一组输入模式;
获取与所述第二器件延迟的候选值相对应的第二组输入模式;以及
通过从所述第一输入模式和所述第二输入模式中排除所述不可行输入模式而生成所述延迟约束。
8.根据权利要求1到7任一项所述的方法,其中所述路径在先前STA中的先前路径延迟超出时序要求所规定的预期延迟,并且其中确定所述电路设计中的路径中的第一器件与第二器件的连接关系包括:
将所述先前路径延迟超出所述预期延迟的时间量与预定阈值进行比较;以及
响应于所述时间量低于所述预定阈值,确定所述第一器件与所述第二器件的所述连接关系。
9.根据权利要求8所述的方法,其中在所述先前STA中,所述第一器件延迟是所述第一器件的最大器件延迟、并且所述第二器件延迟是所述第二器件的最大器件延迟,并且其中使用符合延迟约束的所述第一器件延迟和所述第二器件延迟来计算所述路径的路径延迟包括:
响应于确定所述延迟约束在所述先前STA中被违反,通过更新所述第一器件延迟和所述第二器件延迟中的至少一个,来重新计算所述路径的路径延迟。
10.根据权利要求9所述的方法,还包括:
基于重新计算的路径延迟对所述路径进行时序优化。
11.一种用于在电路设计的静态时序分析STA中计算路径延迟的系统,所述系统包括:
连接关系确定单元,被配置为确定所述电路设计的路径中的第一器件与第二器件的连接关系;
延迟约束生成单元,被配置为基于所述连接关系生成与所述第一器件和所述第二器件相关联的延迟约束,所述延迟约束规定所述第一器件的第一器件延迟与所述第二器件的第二器件延迟之间的相关性;以及
路径延迟计算单元,被配置为使用符合延迟约束的所述第一器件延迟和所述第二器件延迟来计算所述路径的路径延迟。
12.根据权利要求11所述的系统,其中所述延迟约束生成单元包括:
第一延迟约束生成单元,被配置为响应于所述第一器件的第一输入端与所述第二器件的第二输入端直接连接而生成第一延迟约束,所述第一延迟约束规定:所述第一器件延迟所对应的所述第一输入端的输入值与所述第二器件延迟所对应的所述第二输入端的输入值应当相同。
13.根据权利要求11所述的系统,其中所述延迟约束生成单元包括:
第二延迟约束生成单元,被配置为响应于所述第一器件的第三输入端与所述第二器件的第四输入端与相同的寄存器相关而生成第二延迟约束,所述第二延迟约束规定:所述第一器件延迟所对应的所述寄存器的第一状态与所述第二器件延迟所对应的所述寄存器的第二状态应当相同。
14.根据权利要求11所述的系统,其中所述延迟约束生成单元包括:
基于器件类型的延迟约束生成单元,被配置为基于所述连接关系以及所述第一器件和第二器件中至少一个的器件类型而生成所述延迟约束。
15.根据权利要求14所述的系统,其中所述第一器件在所述路径中位于所述第二器件的上游,并且其中所述基于器件类型的延迟约束生成单元包括:
第三延迟约束生成单元,被配置为若所述第一器件延迟为给定值会导致所述第一器件的输出将被所述第二器件截断,则生成第三延迟约束,所述第三延迟约束排除所述第一器件延迟取所述给定值的可能性。
16.根据权利要求15所述的系统,其中所述第二器件具有“或”运算功能和“与”运算功能之一。
17.根据权利要求11所述的系统,其中所述延迟约束生成单元包括:
不可行输入模式确定单元,被配置为通过扫描所述电路设计的逻辑锥的至少一部分,确定所述电路设计中的不可行输入模式;
第一输入模式获取单元,被配置为获取与所述第一器件延迟的候选值相对应的第一组输入模式;
第二输入模式获取单元,被配置为获取与所述第二器件延迟的候选值相对应的第二组输入模式;以及
基于输入模式的延迟约束生成单元,被配置为通过从所述第一组输入模式和所述第二组输入模式中排除所述不可行输入模式而生成所述延迟约束。
18.根据权利要求11到17任一项所述的系统,其中所述路径在先前STA中的先前路径延迟超出时序要求所规定的预期延迟,所述系统还包括:
违反量比较单元,被配置为将所述先前路径延迟超出所述预期延迟的时间量与预定阈值进行比较,
其中所述连接关系确定单元被配置为响应于所述时间量低于所述预定阈值,确定所述第一器件与所述第二器件的所述连接关系。
19.根据权利要求18所述的系统,其中在所述先前STA中,所述第一器件延迟是所述第一器件的最大器件延迟、并且所述第二器件延迟是所述第二器件的最大器件延迟,并且所述路径延迟计算单元包括:
路径延迟重计算单元,被配置为响应于确定所述延迟约束在所述先前STA中被违反,通过更新所述第一器件延迟和所述第二器件延迟中的至少一个,来重新计算所述路径的路径延迟。
20.根据权利要求19所述的系统,还包括:
时序优化单元,被配置为基于重新计算的路径延迟对所述路径进行时序优化。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410712156.2A CN105701266B (zh) | 2014-11-28 | 2014-11-28 | 用于电路设计中的静态时序分析的方法和系统 |
US14/854,073 US9633148B2 (en) | 2014-11-28 | 2015-09-15 | Static timing analysis in circuit design |
US15/430,571 US10380285B2 (en) | 2014-11-28 | 2017-02-13 | Static timing analysis in circuit design |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410712156.2A CN105701266B (zh) | 2014-11-28 | 2014-11-28 | 用于电路设计中的静态时序分析的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105701266A true CN105701266A (zh) | 2016-06-22 |
CN105701266B CN105701266B (zh) | 2019-05-07 |
Family
ID=56079363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410712156.2A Active CN105701266B (zh) | 2014-11-28 | 2014-11-28 | 用于电路设计中的静态时序分析的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9633148B2 (zh) |
CN (1) | CN105701266B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018188081A1 (en) * | 2017-04-14 | 2018-10-18 | Synopsys, Inc. | Pessimism reduction in static timing analysis |
CN110032781A (zh) * | 2019-03-27 | 2019-07-19 | 广东高云半导体科技股份有限公司 | 编辑时序约束方法、装置、计算机设备及存储介质 |
CN110442926A (zh) * | 2019-07-17 | 2019-11-12 | 东南大学 | 先进工艺和低电压下的集成电路统计时序分析方法 |
CN110710113A (zh) * | 2017-06-08 | 2020-01-17 | 国际商业机器公司 | 序列检测 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701266B (zh) | 2014-11-28 | 2019-05-07 | 国际商业机器公司 | 用于电路设计中的静态时序分析的方法和系统 |
CN113923154A (zh) * | 2017-07-05 | 2022-01-11 | 华为技术有限公司 | 一种路径计算的方法、装置和系统 |
CN107741568B (zh) * | 2017-11-08 | 2019-12-31 | 中南大学 | 一种基于状态转移优化rbf神经网络的锂电池soc估算方法 |
CN114967807B (zh) * | 2022-03-28 | 2023-06-06 | 清华大学 | 时序检测电路以及自适应电压调节电路 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985257A (zh) * | 2004-05-28 | 2007-06-20 | 高通股份有限公司 | 用于修改电路设计中的保持时间违反的方法和设备 |
CN101877017A (zh) * | 2009-04-30 | 2010-11-03 | 新思科技有限公司 | 使用快速估计技术的有效的采用穷尽法的基于路径的sta |
US8196076B2 (en) * | 2007-11-19 | 2012-06-05 | Texas Instruments Incorporated | Optimal flow in designing a circuit operable in multiple timing modes |
CN102567557A (zh) * | 2010-12-20 | 2012-07-11 | 国际商业机器公司 | 用于构建用于集成电路设计的时钟树的方法和装置 |
CN102799698A (zh) * | 2011-05-26 | 2012-11-28 | 国际商业机器公司 | 一种用于专用集成电路的时钟树规划的方法和系统 |
CN103177145A (zh) * | 2011-12-20 | 2013-06-26 | 国际商业机器公司 | 一种用于集成电路的多个时序模式合并的方法和系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058252A (en) * | 1995-01-19 | 2000-05-02 | Synopsys, Inc. | System and method for generating effective layout constraints for a circuit design or the like |
US6453446B1 (en) * | 1997-12-24 | 2002-09-17 | Magma Design Automation, Inc. | Timing closure methodology |
US6760894B1 (en) | 1999-12-28 | 2004-07-06 | Cadence Design Systems, Inc. | Method and mechanism for performing improved timing analysis on virtual component blocks |
US7647220B2 (en) * | 2001-10-18 | 2010-01-12 | Cadence Design Systems, Inc. | Transistor-level timing analysis using embedded simulation |
US6834379B2 (en) * | 2002-10-30 | 2004-12-21 | Broadcom Corporation | Timing path detailer |
US7216318B1 (en) * | 2003-04-29 | 2007-05-08 | Cadence Design Systems, Inc. | Method and system for false path analysis |
US7587690B1 (en) * | 2003-04-29 | 2009-09-08 | Cadence Design Systems, Inc. | Method and system for global coverage analysis |
US7555689B2 (en) * | 2005-06-28 | 2009-06-30 | Dhiraj Goswami | Generating responses to patterns stimulating an electronic circuit with timing exception paths |
US8640066B1 (en) * | 2007-01-10 | 2014-01-28 | Cadence Design Systems, Inc. | Multi-phase models for timing closure of integrated circuit designs |
JP2010020372A (ja) | 2008-07-08 | 2010-01-28 | Panasonic Corp | 遅延ライブラリ、遅延ライブラリの作成方法、および遅延計算方法 |
US7971169B1 (en) | 2008-08-13 | 2011-06-28 | Lsi Corporation | System and method for reducing the generation of inconsequential violations resulting from timing analyses |
US8627262B2 (en) * | 2010-04-13 | 2014-01-07 | Synopsys, Inc. | Automatic generation of merged mode constraints for electronic circuits |
US8832616B2 (en) * | 2011-03-18 | 2014-09-09 | Sage Software, Inc. | Voltage drop effect on static timing analysis for multi-phase sequential circuit |
US9953120B2 (en) * | 2012-07-18 | 2018-04-24 | University Of Utah Research Foundation | Relative timing characterization |
US8863052B1 (en) * | 2013-07-12 | 2014-10-14 | Cadence Design Systems, Inc. | System and method for generating and using a structurally aware timing model for representative operation of a circuit design |
CN105701266B (zh) | 2014-11-28 | 2019-05-07 | 国际商业机器公司 | 用于电路设计中的静态时序分析的方法和系统 |
-
2014
- 2014-11-28 CN CN201410712156.2A patent/CN105701266B/zh active Active
-
2015
- 2015-09-15 US US14/854,073 patent/US9633148B2/en active Active
-
2017
- 2017-02-13 US US15/430,571 patent/US10380285B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985257A (zh) * | 2004-05-28 | 2007-06-20 | 高通股份有限公司 | 用于修改电路设计中的保持时间违反的方法和设备 |
US8196076B2 (en) * | 2007-11-19 | 2012-06-05 | Texas Instruments Incorporated | Optimal flow in designing a circuit operable in multiple timing modes |
CN101877017A (zh) * | 2009-04-30 | 2010-11-03 | 新思科技有限公司 | 使用快速估计技术的有效的采用穷尽法的基于路径的sta |
CN102567557A (zh) * | 2010-12-20 | 2012-07-11 | 国际商业机器公司 | 用于构建用于集成电路设计的时钟树的方法和装置 |
CN102799698A (zh) * | 2011-05-26 | 2012-11-28 | 国际商业机器公司 | 一种用于专用集成电路的时钟树规划的方法和系统 |
CN103177145A (zh) * | 2011-12-20 | 2013-06-26 | 国际商业机器公司 | 一种用于集成电路的多个时序模式合并的方法和系统 |
Non-Patent Citations (1)
Title |
---|
张富彬等: "静态时序分析及其在IC设计中的应用", 《电子器件》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018188081A1 (en) * | 2017-04-14 | 2018-10-18 | Synopsys, Inc. | Pessimism reduction in static timing analysis |
US10740520B2 (en) | 2017-04-14 | 2020-08-11 | Synopsys, Inc. | Pessimism in static timing analysis |
CN110710113A (zh) * | 2017-06-08 | 2020-01-17 | 国际商业机器公司 | 序列检测 |
CN110710113B (zh) * | 2017-06-08 | 2023-05-12 | 国际商业机器公司 | 序列检测器中的路径度量单元及路径度量的方法 |
CN110032781A (zh) * | 2019-03-27 | 2019-07-19 | 广东高云半导体科技股份有限公司 | 编辑时序约束方法、装置、计算机设备及存储介质 |
CN110032781B (zh) * | 2019-03-27 | 2020-04-17 | 广东高云半导体科技股份有限公司 | 编辑时序约束方法、装置、计算机设备及存储介质 |
CN110442926A (zh) * | 2019-07-17 | 2019-11-12 | 东南大学 | 先进工艺和低电压下的集成电路统计时序分析方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170154143A1 (en) | 2017-06-01 |
US9633148B2 (en) | 2017-04-25 |
CN105701266B (zh) | 2019-05-07 |
US20160154915A1 (en) | 2016-06-02 |
US10380285B2 (en) | 2019-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105701266A (zh) | 用于电路设计中的静态时序分析的方法和系统 | |
CN101877017B (zh) | 使用快速估计技术的有效的采用穷尽法的基于路径的sta | |
US8589837B1 (en) | Constructing inductive counterexamples in a multi-algorithm verification framework | |
US8578311B1 (en) | Method and system for optimal diameter bounding of designs with complex feed-forward components | |
US10915683B2 (en) | Methodology to create constraints and leverage formal coverage analyzer to achieve faster code coverage closure for an electronic structure | |
US20150277876A1 (en) | Compiling device, compiling method, and storage medium storing compiler program | |
US20200104452A1 (en) | Integrated circuit design with optimized timing constraint configuration | |
CN105630763A (zh) | 用于提及检测中的消歧的方法和系统 | |
US10540468B1 (en) | Verification complexity reduction via range-preserving input-to-constant conversion | |
US20120054698A1 (en) | Logic modification synthesis | |
CN105446952A (zh) | 用于处理语义片段的方法和系统 | |
US9542523B2 (en) | Method and apparatus for selecting data path elements for cloning | |
US8527924B2 (en) | Method and apparatus for performing formal verification of polynomial datapath | |
US10678981B2 (en) | Priority based circuit synthesis | |
US9798850B2 (en) | System and method for combined path tracing in static timing analysis | |
CN104951290A (zh) | 优化软件的方法和设备 | |
US8849440B2 (en) | Manufacturing control based on a final design structure incorporating both layout and client-specific manufacturing information | |
US9684749B2 (en) | Pipeline depth exploration in a register transfer level design description of an electronic circuit | |
US10803216B1 (en) | Combinational logic circuit optimization | |
US8527922B1 (en) | Method and system for optimal counterexample-guided proof-based abstraction | |
Karbovskii | Technology of multilinear programming in naturally conditioned models. I | |
JP5541011B2 (ja) | 最適化ネットリスト作成プログラム、最適化ネットリスト作成装置および最適化ネットリスト作成方法 | |
US10345378B2 (en) | Apparatus and method for performing a scalability check on a hardware description language representation of a circuit | |
US9852259B2 (en) | Area and/or power optimization through post-layout modification of integrated circuit (IC) design blocks | |
US8850372B2 (en) | Method and system for performing invariant-guided abstraction of a logic design |
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 |