CN101317178A - 统计时序分析中关键度预测的系统和方法 - Google Patents

统计时序分析中关键度预测的系统和方法 Download PDF

Info

Publication number
CN101317178A
CN101317178A CNA2006800440965A CN200680044096A CN101317178A CN 101317178 A CN101317178 A CN 101317178A CN A2006800440965 A CNA2006800440965 A CN A2006800440965A CN 200680044096 A CN200680044096 A CN 200680044096A CN 101317178 A CN101317178 A CN 101317178A
Authority
CN
China
Prior art keywords
sequential
circuit
limit
cut set
statistics
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
Application number
CNA2006800440965A
Other languages
English (en)
Other versions
CN101317178B (zh
Inventor
V·佐罗托夫
C·威斯维斯瓦里亚赫
N·文卡特斯瓦兰
熊瑾珺
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.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101317178A publication Critical patent/CN101317178A/zh
Application granted granted Critical
Publication of CN101317178B publication Critical patent/CN101317178B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

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)
  • Complex Calculations (AREA)

Abstract

描述了用于确定电路时序图的边关键度概率的方法。该方法包括形成与被计时的电路对应的有向无环时序图,执行电路的统计时序,为感兴趣的每条边定义将时序图划分为多部分的割集,为割集中的每条边确定边松弛,计算割集中所有边松弛的统计最大值,和从该统计最大值推断每条边的边关键度概率。还描述了用于确定电路时序图的边关键度概率的系统。

Description

统计时序分析中关键度预测的系统和方法
技术领域
本发明涉及数字集成电路的设计自动化。更具体地说,它涉及存在延迟变化时的数字电路统计静态时序分析。
背景技术
人们注意到,变异性(variability)随着历代集成电路技术的发展成比例增大。这种变异性源包括:例如制造变化、设备疲劳、环境变化(例如温度和供电电压)以及锁相环路(PLL)变化。在存在这些变化时,希望获知每条信号传播弧(例如时序弧)的关键度(criticality),即制造集成电路(例如芯片)、其中关键路径通过感兴趣的信号传播弧的概率。各种各样的应用可从这种能力中获益,包括测试、时序报告和电路优化。
现有技术的“确定性”时序方法在固定的工艺角或工艺“实例”上执行时序。因此,可能难以预测信号传播弧关键度和电路延迟的概率分布。此外,在确定性时序方法中,关键路径是唯一的,因而成为优化方法中显而易见的改进目标。在统计时序中,注意到每条路径和每条边都有作为关键路径和关键边的某个非负概率。希望能够按大小顺序预测这些边关键度概率,以便指导集成电路的人工或自动优化。
预测关键度概率的现有技术方法存在例如在正确地考虑相关性时的低效率以及不能正确地考虑相关性之类的问题。计算关键度的一种方法是通过产生满足给定概率分布的过程参数的许多随机组合、并随后执行重复的确定性时序分析以便为每个单个的过程参数组合检测关键时序弧,来直接应用蒙特卡罗仿真。其中某特定边在最关键路径上的那一小部分电路是该边的关键度概率。然而,由于需要过多的确定性时序分析,此方法的计算效率很低。
另一现有方法使用参数化的统计静态分析,在公开的题为“System and Method for Probabilistic Criticality Prediction of DigitalCircuits”的美国专利申请序列号2005/0066298中对其进行了描述。然而,该方法隐含地假定“胎紧概率”(tightness probability)为独立概率。该假设是有缺陷的,原因在于:由于信号传播路径的再收敛和对于共有的全局变化源的依赖,胎紧概率可能是强相关的,从而导致对关键度概率的预测不精确。
因此,需要克服上述问题。
发明内容
本发明的各方面涉及数字电路中用于关键度预测的系统和方法。具体地说,本发明的各方面公开了一种用于在参数化的统计静态时序分析(SSTA)中计算时序图每条边的关键度概率的方法。
本发明提供了一种用于确定电路时序图的边关键度概率的方法。该方法包括形成与被计时的电路对应的有向无环时序图,执行该电路的统计时序,为感兴趣的每条边定义将时序图划分为多个部分的割集,为割集中的每条边确定边松弛(edge slack),为割集中的所有边松弛计算统计最大值,和根据统计最大值推断每条边的边关键度概率。
本发明还提供了一种用于在电路的统计时序分析中预测关键度的系统,包括用于形成与被计时的电路对应的有向无环时序图的装置,用于执行电路的统计时序的装置,用于为时序图的每个层级定义将时序图划分为多个部分的割集的装置,用于为割集中的每条边确定边松弛的装置,用于为割集中的所有边松弛计算统计最大值的装置,以及用于根据统计最大值推断每条边的边关键度概率的装置。
本发明还提供了一种用于部署应用以优化电路的时序特征的方法,包括提供计算机基础设施,其可操作为:形成与被计时的电路对应的有向无环时序图;执行电路的统计时序;为感兴趣的每条边定义将时序图划分为多个部分的割集;为割集中的每条边确定边松弛;为割集中的所有边松弛计算统计最大值;和根据统计最大值推断每条边的关键度概率。
附图说明
下面参考下列附图介绍本发明的优选实施例。
图1是根据本发明实施例的统计静态时序分析系统的示意框图。
图2是由时序弧的关键度所驱动的电路优化系统的示意图。
图3是为介绍与图1-2中提到的相关术语而提供的数字电路实例。
图4示出了对图3中所示的示例电路进行建模的时序图。
图5的示意图示例了图3中所示的数字电路的时序图的信号传播路径和时序弧的关键度。
图6示出了变化空间,其中路径的关键度区域经过如图5所示时序弧。
图7示出了时序图的示例割集。
图8是为时序图计算时序图割集的流程方法,该时序图的实例见图4所示。
图9示例了示例时序图割集的计算过程。
图10示例了经过时序弧的所有路径的最大延迟的计算过程。
图10A是用于确定时序图的边的关键度概率的高级流程方法,该时序图的实例见图4所示。
图11是用于计算时序弧关键度的流程图。
图12是用于计算N个一阶线性模型的胎紧概率的流程图。
图13为一阶模型的集合示出了二叉划分树实例。
图14是使用二叉划分树为N个一阶模型计算胎紧概率的流程图,图13示例了二叉划分树的实例。
图15是用于遍历划分树和计算胎紧概率的流程图,划分树的实例见图13所示。
图16的计算机系统用于执行本发明的各个方面。
具体实施方式
本发明的各方面描述了在数字电路统计时序分析中用于预测信号传播弧的关键度的系统和方法。信号传播弧的关键度是该弧为关键弧的概率(即:制造时序弧属于时序关键的信号传播路径的芯片的概率)。
图1是根据本发明实施例的统计静态时序分析系统100的示意框图。这里系统100也可称作工具100。系统100被配置为接收多个输入110、120、130、140。第一输入是表示待分析电路的结构的电路网表110。第二输入是时序断言120(例如时序约束)集合。时序断言120典型地包括在主输入上的到达时间、在主输出上要求的到达时间、与时钟相位有关的信息、和由主输出驱动的外部载荷的详细情况。时序断言120的形式可以是确定性数值或独立概率分布或相关概率分布或其任一组合。
第三输入是参数化延迟模型130集合,这些延迟模型允许定时器确定门或线的延迟作为延迟模型变量(例如输入斜率或上升/下降时间和输出载荷)的函数和变化源的函数。例如,在公开的题为“Systemand Method for Statistical Timing Analysis of Digital Circuits”的美国专利申请序列号2005-0065765中所述的一阶线性模型可用于确定延迟。系统100被配置为接收关于变化源的统计信息140。变化源140典型地包括变化源列表,每个变化源有均值和标准偏差。
概率或统计静态时序模块150被配置为接收输入110、120、130、140,以生成电路时序图,其中标注有在电路所有节点上的到达时间和要求时间(例如输出160)的参数化一阶模型160。参数化一阶模型160可以具有一阶线性模型形式。标注有到达时间和要求时间的参数化模型160的时序图由单元170接收,其中单元170被配置为计算时序弧的关键度。单元170计算时序弧的关键度180。时序弧的关键度180表明在成品芯片上时序弧的关键度概率。例如,时序弧A的关键度提供了制造时序弧A位于时序关键的信号传播路径上的芯片的概率。
图2是根据本发明的实施例的由时序弧的关键度驱动的电路优化系统200的示意图。系统200包括电路优化模块240和静态时序分析器250。电路优化模块240被配置为接收电路网表210、时序断言集合、参数化延迟模型220、以及优化目标和约束230作为输入。
电路网表210表示待优化电路的结构。
参数化延迟模型220的集合使静态时序分析器250能够确定门或线的延迟作为延迟模型变量(例如输入斜率或上升/下降时间和输出载荷)的函数和变化源的函数。例如,在公开的题为“System and Methodfor Statistical Timing Analysis of Digital Circuits”的美国专利申请序列号2005-0065765中所述的一阶线性模型可用于确定延迟。
优化约束230可以包括例如时序约束、泄漏和切换功率约束、信号斜率约束、面积约束和噪声约束。
优化目标230指定希望实现优化器240的目标。例如,优化目标可以是最小化芯片面积或功率、最大化生产量或性能等。
电路优化器240接受各种输入以产生优化电路260,其中优化电路260可以是网表或数据库形式。优化电路260包括优化目标230指定的特征并且满足优化约束230。优化电路260可以不同于网表210指定的电路。区别例如可以在电路单元的尺寸或类型、或拓扑方面。
在优化中,优化器240与静态时序分析器250交互以估计电路时序特征。另外,优化器240与时序弧关键度的计算器250交互以选择合适的电路单元作为改变单元尺寸、单元类型或者电路单元的其它优化转换的备选。可以理解,优化可以是离散型或连续型,并且某些自定义电路设计可以由也可以不由库单元构成。所属领域的技术人员能够创建可应用到这些不同的优化场景的本发明的变体。
为了计算时序弧的关键度,在适当的时候本说明书使用下列定义:
数字系统典型地以在每个时钟周期或“滴嗒”声中执行某些计算的电路为基础进行操作。在特定的时钟周期内,给定的信号可能不切换、可能切换一次、或者可能切换很多次,这取决于运用到电路上的输入。在每个时钟周期内,对于系统中的每一个信号,理想的是确保正确的时序(例如早模式到达时间或“早到达时间”和晚模式到达时间或“晚到达时间”)。
将早模式到达时间定义为信号可能切换的最早时间(例如从在前一时钟周期中所处的稳定逻辑状态变化)。早模式到达时间确保前一周期“稳定下来”,并在当前时钟周期内在逻辑值变化或切换之前记录正确的逻辑值。允许信号切换且仍使电路如所希望的那样运行的最早时间称作“早要求时间”(early required time)。
将晚模式到达时间定义为信号停止切换从而变得稳定的最晚时间。这确保电路已经在所需的时间内完成动作以满足时钟周期约束。期望信号停止切换并稳定在其最终的稳定逻辑状态上以使电路正常工作的最晚时间称为“晚要求时间”(late required time)。
在晚模式中,将要求时间和到达时间之间的代数差值定义为“晚时序松弛”。同样地,在早模式中,到达时间和要求时间之间的代数差值称为“早时序松弛”。
定时器通过经过时序图“前向传播”时序值来计算到达时间,并且通过经过时序图“后向传播”时序值来计算要求时间。
为简单起见,本说明局限于计算晚模式时序量(例如晚到达时间和晚要求时间)。然而,应当注意到所提计算关键度的技术和方法可扩展到早模式时序量(例如早到达时间和早要求时间)。
时序图是数字电路的模型。时序图的顶点对应于时序图所建模的电路的节点。时序图的弧或“时序弧”连接顶点。时序弧是有向的,并且模拟从一电路节点向另一电路节点的信号传播。每条时序弧分配有传播延迟。该延迟等于从时序弧的初始顶点到其最终顶点的信号传播时间。时序图的两个节点可以有特殊的意义-所有信号在其上开始的源节点和作为所有电路信号的目的地的宿节点。对于有一个主输入和一个输出的电路,源节点是电路的主输入,宿节点是电路的主输出。对于有多个主输入和输出的电路,为便于分析,将源和宿节点另外引入实际的电路节点。因此,源节点与电路的所有主输入连接,宿节点与电路的所有主输出连接。
将具有带有最小时序松弛的顶点的时序图的路径定义为关键路径。例如,如果电路设计成更高速工作,经过关键路径的信号传播可能也得变快。发明人注意到,加速非关键路径可能不会有助于电路更快运转,因为属于关键路径的时序弧被认为是关键的。可通过降低选择的关键弧的延迟,将电路设计为更快运转。非关键弧延迟的小改变似乎不会影响电路性能。因此,为优化电路,希望确定电路的关键时序弧。对于集成电路的有效生产测试,获知芯片的关键时序弧是有帮助的。电子设计自动化的其它领域(例如布局、布线、缓冲器插入和物理合成等)均可从时序弧关键度的获知中获益。
图3是用于说明图1-2中所述相关术语的示例数字电路的实例。数字电路300有门320、350和370。电路300有主输入310、340和360,和主输出330和380。
图4示出了对图3所示的示例电路300进行建模的时序图400。时序图400包括源节点440和宿节点455。节点410、430、490对应于图3的主电路输入310、340和360。节点420和485对应于图3的主输出330和380。节点420、480和485对应于图3的门320、350和370的输出。弧425、460、475是分别连接源节点440与节点410、430、490的时序弧。弧435和470是使节点420、485与宿节点455连接的时序弧。根据分配给时序弧的延迟,信号经过所有的时序弧从源节点440向宿节点455传播。
在所有门传播延迟是确定性值的实施例中,所有的到达和要求时间也是确定性值。然而,如果要对制造和/或环境变异性进行建模,时序弧的延迟应当被认为是用其对应的概率分布函数来描述的随机变量。于是,应当采用统计时序分析计算到达时间、要求时间和时序松弛的概率分布。
参数化的统计静态时序分析(SSTA)有益于电路分析和优化。根据该技术,将门延迟表示为一阶线性模型:
A = a 0 + Σ i = 1 n a i Δ X i + a n + 1 ΔR a - - - ( 1 )
其中:a0是均值;ΔXi是全局参数Xi的变化(variation),
ΔXi=Xi-Xi,0其中Xi,0是Xi的均值;ai是门延迟对参数变化ΔXi的灵敏度;ΔRa是引起门延迟的不相关变化的随机变量;以及an+1是门延迟对不相关变化ΔRa的灵敏度。
使用公式(1)的表达,参数化的SSTA计算电路时序特征(例如到达和要求到达时间、延迟、时序松弛)的统计近似,作为相同的一阶线性模型形式的相同参数的函数。
参数化的统计STA可以是基于路径的或基于块的。基于路径的统计STA单独地分析每条信号传播路径并计算电路延迟的概率分布作为所有路径延迟的概率最大值。通常这需要枚举所有信号传播路径并在参数变化空间内进行积分,这是一个低效率的计算过程。
另一参数化的SSTA技术是基于块的SSTA。在该技术中,按照每个电路节点的拓扑顺序,以类似于确定性STA传播到达时间的方式,为每个电路节点计算信号到达时间和信号要求到达时间,作为过程参数的函数。使用基于块的SSTA,可以将时序分析当作增量运算执行,由此在实施电路改动后,可以有效地对时序进行查询。
通过以门延迟递增到达时间并计算最差到达时间,基于块的STA计算每个电路节点上的到达时间。以门延迟递增到达时间与从门输入向门输出传播信号对应。本操作通过将门输入上的到达时间与门延迟相加执行。计算最差到达时间是从到达门输入的信号中选择最差信号。最差信号可以是最晚或最早到达时间,这取决于时序分析类型。
所提出的计算时序弧关键度的方法基于发明人所作的观察,发明人观察到时序弧的关键度是经过该时序弧的所有信号传播路径的关键度总和,如图5和6所示。
图5是示出示例时序图的信号传播路径和时序弧的关键度的示意图。具体地说,图5示出了时序图500,该时序图500具有源节点515和宿节点530。从时序图500中,选择具有初始顶点535和终端顶点550的任意时序弧540。路径520、545和565从源节点515向时序弧540的初始节点535延伸。路径525、555和560从时序弧540的终端节点550向宿节点530延伸。经过时序弧540的各条路径是路径520、545和565、时序弧540本身、和路径525、555和560的所有可能的组合。时序图500中的画点区域表示为了简明起见没有在时序图中明确示出的更多节点和弧。
每条路径的延迟可以用公式(1)的一阶线性模型表示。考虑两条路径Sk和Sj及其延迟的一阶线性模型:
D k = a 0 , k + Σ i = 1 n a i , k Δ X i + a n + 1 , k ΔR a , k - - - ( 2 )
D j = a 0 , j + Σ i = 1 n a i , j ΔX i + a n + 1 , j ΔR a , j
其中,a0,k、a0,j是延迟的均值;ΔXi是参数Xi的变化,ΔXi=Xi-Xi,0,其中Xi,0是Xi的均值;ai,k、ai,j是路径延迟对参数变化ΔXi的灵敏度;ΔRa,k、ΔRa,j是引起路径延迟的不相关变化的随机变量;以及an+1,k、an+1,j分别是路径延迟对不相关变化ΔRa,k、ΔRa,j的灵敏度。延迟Dk和Dj(当作随机变量)有相同精确值的概率是0,除非
a0,k=a0,j
ai,k=ai,j    (3)
an+1,k=an+1,j=0
于是,两条路径Sk和Sj中至少其一是关键路径的概率是每条路径是关键路径的单独概率之和:
P(Sk或Sj是关键的)=P(Sk是关键的)+P(Sj是关键的)(4)
如果公式(3)成立,则路径Sk和Sj可以有相同的延迟。那么如果路径Sk和Sj其中之一是关键的,则另一个也是关键的。如公式(5)中所示,关键度值可以被分配给每条路径Sk和Sj
P(Sk是关键的)=P(Sj是关键的)=P(Sk或Sj是关键的)/2(5)
可以看出,公式(4)对公式(5)也成立。
公式(5)示例的概念可以从一对路径扩展到任意数量的路径。也就是说,路径集合{S1,S2,...,Sn}中至少一条路径是关键路径的概率等于这些路径中的每条路径是关键路径的单独概率之和:
P Set , Crit = Σ i = 1 n P (Si是关键的)    (6)
由此可以直接得到时序弧的关键度等于经过该弧的所有路径的关键度之和,如图6所示。
图6示出了一个变化空间,其具有经过如图5的示例时序图所示的时序弧的路径的关键度区域。具体地说,图6示意性地示出两个样本参数变化的空间610:有效信道长度Leff和晶体管阈值Vth。空间610覆盖Leff和Vth从-3σ到3σ的变化。空间610的每个点对应于Leff和Vth的一个组合。多边形615、620、625、630、635、640、645、650、655代表经过时序图500的时序弧540(图5)的路径是关键路径的过程参数组合的区域。每个多边形区域对应于经过弧540的9条路径之一。应当理解,图5的时序图是示例性的,是为了更好地理解本发明的各方面而示出的。在优选实施例中,多边形区域可以只互相邻接但绝对不会相交,因为路径延迟是过程参数的不同线性函数。所有这些多边形615、620、625、630、635、640、645、650、655的并集是其中时序弧540是关键的过程参数组合的区域,因为如果经过弧540的路径中的至少一条是关键的,则该时序弧就是关键的。
如果考虑属于时序图割集的时序弧集合,可以简化时序弧关键度的计算。将连接图的割集定义为若从图中删除、则使图分割为两个不相连部分的弧的任意集合。真割集(或最小割集)是指这样一个割集,即:该割集的任一真割集自身不是割集。
为了简化时序弧关键度的计算,只考虑将时序图分为两部分的真割集,其中一部分包含源顶点,另一部分包含宿顶点。还有,只考虑满足下列性质的割集:
如果割集C将时序图划分为两个组件(component)F和G,以便F组件含有源顶点且G组件含有宿顶点,则任一割集弧的初始顶点属于F组件,任一割集弧的终端顶点属于G组件。换句话说,所有割集弧的弧从包含源顶点的组件指向包含宿顶点的组件。为了简洁,在下面的描述中称真割集为“割集”。
时序图是有向无环图(DAG)并且DAG的顶点总是可以按照拓扑分类(例如对DAG排序以便每条弧从低指数(index)顶点流向高指数顶点)。
如果时序图有割集C,则从时序图的源顶点流向宿顶点的任一路径具有属于割集C的弧-否则,源和宿顶点不能属于图的不同组件。
从源顶点到宿顶点的任一路径上只有一条弧属于割集。一旦路径经过割集弧,它到达具有宿顶点的组件且不能返回具有源顶点的组件。因此,该路径不可能经过割集的另一条弧。因此,可以得出的结论是同一割集的两条时序弧a和b同时是关键的概率(即制造两条时序弧均是关键时序弧的芯片的概率)是0,因为所述弧具有经过它们的不同路径集。
对于时序图的任一割集,时序弧关键度的和总为1,因为该和代表芯片所有路径的关键度之和。
假设对于给定割集C的任一时序弧ai,已知经过该时序弧的所有路径的最大延迟的一阶线性模型Di,C。于是,时序图的最大延迟D的一阶模型,作为所有这些一阶模型Di,C的统计最大值,可被计算为:
D = max 1 ≤ i ≤ n C ( D i , C ) - - - ( 7 )
其中最大值是从统计意义上对割集C的所有时序弧进行计算得到的,nC是割集中的边数。
经过时序弧ai的路径的最大延迟Di,C大于从源顶点到宿顶点的任一其它路径的延迟的概率Pi,C恰好等于该时序弧ai的关键度。此概率Pi,C等于在公式(7)中计算统计最大值时与延迟Di,C对应的胎紧概率。
因此,为了计算时序弧关键度,希望计算时序图的割集、经过每个时序弧的路径集的最大延迟的一阶模型以及以一阶线性模型形式表示的这些最大延迟的胎紧概率。
图7示出了时序图的示例割集。具体地说,图7示意性地示例了时序图700的割集780的实例。时序图700有源节点735和宿节点750。割集780包括从其初始节点725、725和760分别流向终端节点740、755和755的时序弧730、785和765。路径集715从源节点735流向节点725。路径集720从节点740流向宿节点750。路径集770从源节点735流向节点760。路径集775从节点755流向宿节点750。
图8是为时序图(图4示出了其实例)计算时序图割集的流程方法。具体地说,图8示例了用于构建时序图割集的方法800。需要理解的是可以用多种不同方法构建割集,且这里所述的发明构思是适用的,与如何构建割集无关。方法800的输入是时序图,输出是覆盖该时序图所有时序弧的割集集合。
开始模块810将控制传递给功能模块815。
在步骤815,功能模块815对时序图分层(levelize)。将分层定义为将时序图的顶点集V划分为子集(层级)V1,V2,...Vn,以便每个时序弧从低层级顶点流向高层级顶点。在确定性和统计时序分析中均使用了分层,它是时序分析器(例如图2中所示的时序分析器255)的一部分。可以通过调用静态时序分析工具的适当功能模块或者通过直接访问由静态时序分析工具创建的分层时序图实现步骤815。然后执行步骤820。
在步骤820,创建空集C0。然后执行步骤825。在步骤825,初始化层级计数器i的值为1并设置变量n等于时序图的层级数。然后将方法移到步骤830。
在步骤830,计算割集Ci。考虑割集Ci-1,并从中删除去往层级Vi的顶点的所有弧。还有,根据下面的公式,将从层级Vi的顶点离开的所有弧添加到所得割集中:
Ci=Ci-1-{去往顶点Vi的孤}+{离开顶点Vi的弧}    (8)
然后移动方法到步骤835。
步骤835将层级计数器i的值加1并将控制传递给步骤840。
步骤840确定层级计数器i的值是否小于时序图的层级数n。如果计数器i小于n,判断模块840将控制传递给功能模块830以计算时序图的下一割集。否则,步骤840将控制传递给结束模块845。
图9示出示例性时序图的割集的计算过程。具体地说,图9解释了对具有源节点926和宿节点956的时序图900的实例计算割集。为了示例,示出了时序图900的一个层级903和两个割集980和983。层级903包括顶点930和976。顶点903有进入弧906和离开弧910和940。顶点976有进入时序弧946和离开时序弧970。割集980包括时序弧906、936和946。割集983包括时序弧910、940、936和970。图9示出了当方法800处理时序图900的层级903时的快照。方法800从割集980转换到割集983。通过考虑具有弧906、936和946的割集980,该方法计算割集983;从割集980中移除去往层级903的顶点930、976的弧906和946;添加离开层级903的顶点930、976的弧910、940和970,从而生成新割集{936、910、940、970}。
图10示例了经过时序图的时序弧的所有路径的最大延迟的计算过程。将经过某条边的所有路径的最大延迟称为该边的边松弛。具体地说,图10示意性地示出了时序图1000,其源顶点为1015,宿顶点为1035。示出了经过任选的时序弧1040的路径的最大延迟的一阶模型的计算过程。时序弧1040有初始顶点1025和终端顶点1030。路径集1020从源顶点1015流向所选时序弧1040的初始顶点1025。路径集1045从所选时序弧1040的终端顶点1030流向时序图的宿顶点1035。时序图1000中所示的画点区域表示更多未明示的时序图节点和边。
假设参数化的统计时序分析已经算出了一阶线性模型形式的到达时间和要求时间,并且根据静态时序分析中到达时间和要求时间的定义,可以得出结论是在时序弧1040的初始顶点1025上的到达时间TAT,I恰好等于从源顶点105到初始顶点1025的信号传播最大延迟。另一方面,在时序弧1040的终端顶点1030的要求时间TRAT,T恰好等于从顶点1030到宿顶点1035的信号传播最大延迟,不过要加负号。为了简明,假定源顶点1015上的到达时间和宿顶点1035上的要求时间设置为0。经过时序弧1040的路径集的最大延迟DS是从源顶点1015到时序弧1040的初始顶点1025的最大延迟DI加上时序弧1040本身的延迟Da加上从时序弧1040的终端顶点1030到宿顶点1035的最大延迟DT
DS=DI+Da+DT    (9)
该延迟可以用由统计静态时序分析算出的到达时间和要求时间的值表示:
DS=TAT,I+Da-TRAT,T    (10)
需要理解的是公式(9)和(10)中的加减运算是在统计意义上进行的。
综上可知,可以根据统计时序分析的结果直接并有效地计算经过时序图的任一时序弧的所有路径的最大延迟,即任一时序弧的边松弛。
图10A是确定时序图的边关键度概率的高级流程方法,该时序图的实例已在图4中示出。
在步骤1051,生成与被计时的电路对应的有向无环时序图并执行电路的统计时序。然后方法移到步骤1052。
在步骤1052,对于感兴趣的每条边,定义将时序图划分为多个部分的割集。然后执行步骤1053。
在步骤1053,确定割集中感兴趣的每条边的边松弛。然后执行步骤1054。
在步骤1054,确定割集中所有边松弛的统计最大值。然后执行步骤1055。
在步骤1055,根据步骤1054的统计最大值运算推断每条边的边关键度概率。
图11是为时序图计算时序弧关键度的流程方法1100,该时序图实例已在图9示出。开始模块1110将控制传递给功能模块1115。
功能模块1115执行参数化的统计时序分析,为时序图的每个顶点计算到达时间和要求的到达时间。功能模块1115将控制传递给功能模块1120。
功能模块1120构建覆盖包含在时序图中的所有时序弧的该时序图的割集。例如方法800可执行此操作。可使用其它合适的方法。可以一次构建所有割集并随后对其进行处理,或一次构建和处理一个割集。功能模块1120将控制传递给功能模块1125。
功能模块1125设置变量M等于由功能模块1120构建的割集数。功能模块1125将控制传递给功能模块1130。
功能模块1130初始化割集计数器i为1并将控制传递给功能模块1135。
功能模块1135从功能模块1120构建的割集集合中选择第i个割集Ci,功能模块1135将控制传递给功能模块1140。
功能模块1140设置N等于割集Ci中的时序弧数并将控制传递给功能模块1145。
功能模块1145初始化当前割集中弧计数器j为1并将控制传递给功能模块1150。
功能模块1150从割集Ci中选择第j个时序弧eij并将控制传递给功能模块1155。
功能模块1155找到时序弧eij的初始顶点vinit,i,j和终端顶点vterm,i,j并将控制传递给功能模块1160。
功能模块1160计算经过时序弧eij的所有路径的集合的最大延迟Di,j(即eij的边松弛)的一阶线性模型如下:
Di,j=TAT(vinit,i,j)+d(ei,j)-TRAT(vterm,i,j)(12)
其中:
●TAT(vinit,i,j)是在顶点vinit,i,j上的到达时间
●d(ei,j)是时序弧eij的延迟
●TRAT(vterm,i,j)是在顶点vterm,i,j上的要求时间
功能模块1160将控制传递给功能模块1165。
功能模块1165将时序弧计数器j加1并将控制传递给判断模块1170。
判断模块1170确定j的当前值是否不大于当前割集Ci中的时序弧数N。如果j不大于N,判断模块1170将控制传递给功能模块1150。否则,判断模块1170将控制传递给功能模块1175。
功能模块1175为一阶模型集合{Di,1,Di,2,...,Di,N}计算胎紧概率Pi,1,Pi,2,...,Pi,N。例如,Pi,1是Di,1为{Di,1,Di,2,...,Di,N}中最大值的概率。可以用多种方法执行该计算。可能的方法之一是使用蒙特卡罗技术。胎紧概率的蒙特卡罗计算方法可能是有效的,因为它只要被应用与割集数(等于时序图深度)一样多的次数。功能模块1175将控制传递给功能模块1180。
功能模块1180设置当前割集Ci的时序弧ei,1,ei,2,...,ei,N的关键度等于功能模块1175算出的胎紧概率Pi,1,Pi,2,...,Pi,N。功能模块1180将控制传递给功能模块1185。
功能模块1185将割集计数器i加1并将控制传递给判断模块1190。
判断模块1190确定i的当前值是否不大于割集数M。如果i的当前值不大于M,判断模块1190将控制传递给功能模块1135以处理下一割集。否则,判断模块1190将控制传递给功能模块1195。
并不必须如上所述通过独立的方法800和1100来使时序图割集的计算与时序弧关键度的计算分离。方法800、1100可以结合起来以便在割集构建之后立即计算属于该割集的时序弧的关键度。
图12示出了用于计算给定的N个一阶线性模型m1,m2,...,mN的胎紧概率的算法1200的框图。这些一阶线性模型可以是例如延迟、到达或要求时间的模型。在计算边关键度时,它们通常是割集中所有边的边松弛。
算法1200的开始模块1205将控制传递给功能模块1210。
功能模块1210设置N等于给定的一阶统计模型的数目并将控制传递给功能模块1215。
功能模块1215初始化一阶线性模型计数器i为1并将控制传递给功能模块1220。
功能模块1220计算除模型mi之外的所有给定一阶线性模型的统计最大值。意思是计算N-1个一阶线性模型m1,m2,...,mi-1,mi+1,...,mN的统计最大值。计算结果是一阶线性模型mmax,称为边i的补边松弛。功能模块1220将控制传递给功能模块1225。
功能模块1225计算一阶边松弛模型mi大于功能模块1220计算出的一阶补边松弛模型mmax的胎紧概率P。功能模块1225将控制传递给功能模块1230。
功能模块1230设置一阶模型mi的胎紧概率Pi等于功能模块1225计算出的值P并将控制传递给功能模块1235。
功能模块1235将一阶线性模型计数器i加1并将控制传递给判断模块1240。
判断模块1240确定i值是否不大于给定的一阶模型数N。如果i的当前值不大于N,判断模块1240将控制传递给功能模块1220。否则,它将控制传递给功能模块1245。
功能模块1245计算一阶线性模型m1,m2,...,mN的胎紧概率P1,P2,...,PN之和S并将控制传递给功能模块1250。理论上,S应等于1.0,但是由于数字舍入或其它近似的原因,它可能不等于1.0。
功能模块1250通过将每个胎紧概率Pi除S来将每个胎紧概率Pi的值归一化。通过确保胎紧概率之和为1,该归一化可以提高计算的精确度。功能模块1250将控制传递给结束模块1255。
方法1200可能需要应用O(N2)次二进制统计最大值运算。在另一实施例中,可通过下述步骤在线性时间O(N)内计算关键度:将给定的一阶线性模型集合划分为具有2,4,8,...,2logN个元素的子集的层次嵌套系统;构建该层次划分的二叉划分树;从有2个元素的子集开始,为每个子集预先计算统计最大值,然后继续到有4个元素的子集,依此类推;以及遍历二叉划分树并且为补子集和在此遍历中所需的胎紧概率计算统计最大值。
不失一般性,为节约篇幅,假定希望对其计算关键度的一阶线性模型m1,m2,...,mN的数目N是2的幂:
N=2n    (13)
图13示出了一个有序二叉树1300,用于8个一阶线性模型集合{m1,m2,m3,m4,m5,m6,m7,m8}的层次均衡划分。该树有根节点1303和示意性地代表给定一阶线性模型{m1,m2,m3,m4,m5,m6,m7,m8}的叶节点1333、1335、1338、1340、1343、1345、1348、1350。在划分的第一层级上,将叶节点集划分为子集1323、1325、1328、1330。树节点1313、1315、1318、1320对应于这些子集{{m1,m2},{m3,m4},{m5,m6},{m7,m8}}。将第一层级的子集的集合划分为第二层级的两个子集1355、1360。树节点1305、1310对应于第二层级的这些子集{{{m1,m2},{m3,m4}},{{m5,m6},{m7,m8}}}。
图14示出了计算给定的N个一阶边松弛线性模型的胎紧概率的流程图1400的框图。发明人假定给定的一阶边松弛模型的数目是2的幂,不过该方法可一般地适用于任意数量的一阶边松弛模型。
开始模块1405将控制传递给功能模块1410。
功能模块1410设置N等于希望计算其胎紧概率的给定的一阶边松弛线性模型的数目。功能模块1410将控制传递给功能模块1415。
功能模块1415计算划分树中的层级数为:
n=log(N)    (14)
由于假设给定一阶模型数是2的幂(例如N是2的幂),所以该计算是精确的。然而,方法1400可以扩展到处理任何数目的一阶模型。功能模块1415将控制传递给功能模块1420。
功能模块1420创建划分树的叶(例如最低)层级并构建与给定的一阶线性模型对应的叶节点的有序集合。功能模块1420将控制传递给功能模块1425。
功能模块1425设置划分层级(例如划分树层级)的计数器i为1并将控制传递给功能模块1430。
功能模块1430设置在划分的当前层级的子集(即在划分树当前层级上的节点)的数目M=N/2并将控制传递给功能模块1435。
功能模块1435初始化在划分的当前层级的子集的计数器j为1并将控制传递给功能模块1440。
功能模块1440构建划分的第i个层级的第j子集如下:
Si,j={Si-1,2j-1,Si-1,2j}    (15)
通过包含来自前一层级划分的两个子集Si-1,2j-1,Si-1,2j来构建该子集Si,j。根据在划分的前一层级上子集的顺序,取子集Si-1,2j-1,Si-1,2j。功能模块1440将控制传递给功能模块1445。
功能模块1445计算所构建子集Si,j的一阶线性模型mi,j并将它赋给该子集。通过计算与用于构建子集Si,j的子集Si-1,2j-1,Si-1,2j对应的一阶线性模型mi-1,2j-1,mi-1,2j的统计最大值,计算该一阶模型mi,j。一阶线性模型mi,j是子集Si,j中所含的所有一阶线性模型的统计最大值的一阶线性模型。功能模块1445将控制传递给功能模块1450。
功能模块1450将子集计数器j的当前值加1,然后将控制传递给判断模块1455。
判断模块1455确定j是否不大于在当前划分层级上的子集数M。如果j不大于在当前划分层级上的子集数,判断模块1455将控制传递给功能模块1440以构建在划分的当前层级上的下一子集。否则,将控制传递给功能模块1460。
功能模块1460构建对应于划分的第i个层级的划分树的第i个层级。可以在子集构建过程中执行该构建。然而,在优选的实施例中,为了更清楚,发明人将树节点构建与子集构建分开。功能模块1460将控制传递给功能模块1465。
功能模块1465将划分层级的计数器i加1并将控制传递给功能模块1470。
功能模块1470计算在划分的下一层级的子集数M为M=M/2并将控制传递给判断模块1475。
判断模块1475确定i是否小于划分层级数n。如果i小于n,判断模块1475将控制传递给功能模块1435以构建下一划分层级。否则,将控制传递给功能模块1480。
功能模块1480通过给划分树添加根节点完成该树的构建,并将控制传递给功能模块1483。
功能模块1483将等于与根节点的右子节点对应的子集的一阶线性模型mright的补一阶线性模型ml,compl赋给根节点的左子节点。该补模型等于与对应于左子节点的子集互补的子集的统计最大值的一阶线性模型。功能模块1483将控制传递给功能模块1485。
功能模块1485将等于与根节点左子节点对应的子集的一阶线性模型mleft的补一阶线性模型mr,compl赋给根节点的右子节点。该补模型等于与对应于右子节点的子集互补的子集的统计最大值的一阶线性模型。功能模块1485将控制传递给功能模块1488。
功能模块1488从上到下遍历划分树的左子树并为其叶节点计算胎紧概率。遍历方法1500将在下面参照图15阐明。功能模块1488将控制传递给功能模块1490。
功能模块1490从上到下遍历划分树的右子树并为其叶节点计算胎紧概率。功能模块1490将控制传递给结束模块1495。
图15示例了用于遍历划分子树和计算对应于其叶节点的一阶模型的胎紧概率的流程方法1500。方法1500具有递归结构。也就是,该方法调用其自身来遍历较低层的子树。方法1500考虑与对应于划分子树节点的子集互补的子集。方法1500计算补子集元素的统计最大值的一阶线性模型。将补子集的一阶线性模型称为补一阶线性模型或补边松弛。
方法1500假定在调用方法1500之前,子树的根具有已分配的补一阶模型。这是通过调用方法1500的方法1400或由方法1500在其递归调用自身之前实现的。
开始模块1505将控制传递给判断模块1510。
判断模块1510确定根节点的子节点是否为叶节点。如果子节点是叶节点,判断模块1510将控制传递给功能模块1515以处理叶节点。否则,将控制传递给功能模块1535。
功能模块1515计算左补一阶线性模型ml,compl作为根节点的补模型mroot,compl和右叶节点的一阶模型mleaf.right的统计最大值。功能模块1515将控制传递给功能模块1520。
功能模块1520计算左叶节点的一阶模型mleaf.left的胎紧概率,作为该一阶线性模型mleaf.left和左补一阶模型ml,compl的二进制胎紧概率。功能模块1520将控制传递给功能模块1525。
功能模块1525计算右补一阶线性模型mr,compl作为根节点的补模型mroot,compl和左叶节点的一阶模型mleaf.left的统计最大值。功能模块1525将控制传递给功能模块1530。
功能模块1530计算右叶节点的一阶线性模型mleaf.right的胎紧概率,作为该一阶模型mleaf.right和右补一阶线性模型mr,compl的二进制胎紧概率。功能模块1530将控制传递给结束模块1555。
功能模块1535计算左子节点的补一阶线性模型ml,compl作为根节点的补模型mroot,compl和对应于根节点的右子节点的子集的一阶线性模型mright的统计最大值。功能模块1535将控制传递给功能模块1540。
功能模块1540计算右子节点的补一阶线性模型mr,compl作为根节点的补模型mroot,compl和对应于根节点的左子节点的子集的一阶线性模型mleft的统计最大值。功能模块1540将控制传递给功能模块1545。
功能模块1545从上到下遍历划分树的左子树并计算其叶节点的胎紧概率。通过递归调用方法1500执行遍历。功能模块1545将控制传递给功能模块1550。
功能模块1550从上到下遍历划分树的右子树并计算其叶节点的胎紧概率。通过递归调用算法1500执行遍历。功能模块1550将控制传递给结束模块1555。
该方法是有效的,并且正确考虑了内在相关性。同时考虑了影响电路性能的所有变化源。所得到的关键度概率使用于各种不同的无论使用人工或自动化技术实现的设计任务(例如优化、布局、缓冲器插入和布线等)。
图16的计算机系统用于执行本发明的各个方面。
计算机系统1600在计算机基础设施1602中提供。计算机系统1600旨在代表任意类型的能够执行本发明内容的计算机系统。例如,计算机系统1600可以是便携式计算机、台式机、工作站、手持设备、服务器、计算机集群等。应当注意的是用户1604可以直接访问计算机系统1600,或者可以操作通过网络1606(例如因特网、广域网(WAN)、局域网(LAN)、虚拟专用网(VPN)等)与计算机系统1600通信的计算机系统。对于后种情况,计算机系统1600与用户操作的计算机系统之间的通信可通过各种不同类型的通信链路组合发生。例如,通信链路可以包括可利用有线和/或无线传输方法的任意组合的可寻址连接。在通过因特网进行通信的情况下,通过传统的基于TCP/IP套接字的协议提供连接性,并且可以使用因特网服务提供商建立与因特网的连接性。
所示的计算机系统1600包括处理单元1608、存储器1610、总线1612、输入/输出(I/O)接口1614。还有,示出了计算机系统1600与外部设备/资源1616和一个或多个存储系统1618通信。通常,处理单元1608执行存储在存储器1610和/或存储系统1618中的计算机程序代码,例如用于计算边关键度的代码。在执行计算机程序代码时,处理单元1608可以相对于存储器1610、存储系统1618、和/或I/O接口1614读和/或写数据。总线1612提供在计算机系统1600中的每个组件之间的通信链路。外部设备/资源1616可以包括能使用户与计算机系统1600交互的任何设备(例如键盘、定点设备、显示器(例如显示器1620)、打印机等)和/或能使计算机系统1600与一个或多个其它计算设备进行通信的任何设备(例如网卡、调制解调器等)。
计算机基础设施1602只示例了可以用于实现本发明的各种类型的计算机基础设施。例如,在一个实施例中,计算机基础设施1602可以包括通过网络(例如网络1606)进行通信以执行本发明的各过程步骤的两个或更多计算设备(例如服务器集群)。而且,计算机系统1600只代表可以用于本发明实践中的许多类型的计算机系统,其中每种计算机系统可以包括硬件/软件的诸多组合。例如,处理单元1608可以包括单个处理单元、或者可以在一个或多个位置(例如在客户端和服务器)分布有一个或多个处理单元。类似地,存储器1610和/或存储系统1618可以包括位于一个或多个物理位置上的各种不同类型的数据存储和/或传输介质的任意组合。还有,I/O接口1614可以包括用于与一个或多个外部设备/资源1616交换信息的任何系统。另外还有,可以理解,图16中未示出的一个或多个额外的组件(例如系统软件、通信系统、高速缓冲存储器等)可以包含在计算机系统1600中。然而,如果计算机系统1600包括手持设备等,可以理解的是一个或多个外部设备/资源1616(例如显示器1620)和/或一个或多个存储系统1618可以包含在计算机系统1600内,而不是如图16所示在计算机系统1600之外。
存储系统1618可以是能够在本发明中为信息提供存储的任意类型的系统(例如数据库)。就此而言,存储系统1618可以包括一个或多个存储设备,例如磁盘驱动器或光盘驱动器等。在另一实施例中,存储系统1618可以包含分布在例如局域网(LAN)、广域网(WAN)或存储区域网络(SAN)(未示出)上的数据。
而且,虽然未示出,用户1604操作的计算机系统可以包括计算机化的组件,它们类似于上面关于计算机系统1600提到的那些组件。
尽管这里提供的本发明的描述集中于最大运算(maxoperation),但应当理解,所属领域的技术人员可以将本发明的教导应用于最小运算(min operation)。而且,尽管这里提供的本发明的描述集中于计算最晚到达时间,但应当理解,所属领域的技术人员可以将本发明的教导应用于计算最早到达时间。还有,尽管这里提供的本发明的描述集中于组合电路,但应当理解,所属领域的技术人员可以将本发明的教导应用于顺序电路。另外,尽管这里提供的本发明的描述集中于门延迟是可分函数的情况,但应当理解,所属领域的技术人员可以将本发明的教导应用于门延迟是不可分函数的情况。

Claims (14)

1、一种用于确定电路时序图的边的关键度概率的方法,包括:
形成与被计时的电路对应的有向无环时序图;
执行电路的统计时序;
为感兴趣的每条边定义将时序图划分为多个部分的割集;
为割集中的每条边确定边松弛;
计算割集中所有边松弛的统计最大值;和
从统计最大值推断每条边的边关键度概率。
2、权利要求1的方法,其中多个部分中的第一部分包括时序图的源节点,多个部分中的第二部分包括时序图的宿节点。
3、权利要求2的方法,其中割集包括边,并且边的源节点所处的层级低于时序图的当前层级。
4、权利要求2的方法,其中割集包括边,并且边的宿节点所处的层级高于时序图的当前层级。
5、权利要求2的方法,其中早模式统计边松弛是早模式源节点统计到达时间、负的早模式宿节点统计要求到达时间和边的早模式延迟的统计和。
6、权利要求2的方法,其中晚模式统计边松弛是晚模式源节点统计到达时间、负的晚模式宿节点统计要求到达时间和边的晚模式延迟的统计和。
7、权利要求1的方法,其中推断包括将每条边的边关键度概率确定为割集中所有边的边松弛的最大值的胎紧概率。
8、权利要求1的方法,其中影响电路性能的各变化源被同时考虑。
9、权利要求1的方法,其中通过使用划分树数据结构执行推断步骤。
10、一种用于优化电路的时序特征的方法,包括:
根据权利要求1-9的任一方法确定时序图的边的关键度概率;和
使用关键度概率指导电路的时序特征的优化。
11、权利要求10的方法,其中通过使用划分树数据结构执行确定步骤。
12、权利要求10的方法,其中确定步骤包括:
形成与被计时的电路对应的有向无环时序图;
执行电路的统计时序;
为感兴趣的每条边定义被配置为将时序图划分为多个部分的割集;
为割集中的每条边确定边松弛;
计算割集中所有边松弛的统计最大值;和
从统计最大值推断每条边的边关键度概率。
13、一种用于在电路的统计时序分析中预测关键度的系统,包括:
用于形成与被计时的电路对应的有向无环时序图的装置;
用于执行电路的统计时序的装置;
用于为时序图的每个层级定义将时序图划分为多个部分的割集的装置;
用于为割集中的每条边确定边松弛的装置;
用于计算割集中所有边松弛的统计最大值的装置;和
用于从统计最大值推断每条边的边关键度概率的装置。
14、一种计算机程序,包括用于执行根据权利要求1-12中任一权利要求中的方法的所有步骤的指令。
CN2006800440965A 2005-12-16 2006-12-12 统计时序分析中关键度预测的系统和方法 Expired - Fee Related CN101317178B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/303,792 2005-12-16
US11/303,792 US7437697B2 (en) 2005-12-16 2005-12-16 System and method of criticality prediction in statistical timing analysis
PCT/EP2006/069589 WO2007068690A1 (en) 2005-12-16 2006-12-12 System and method of criticality prediction in statistical timing analysis

Publications (2)

Publication Number Publication Date
CN101317178A true CN101317178A (zh) 2008-12-03
CN101317178B CN101317178B (zh) 2010-07-21

Family

ID=37708166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800440965A Expired - Fee Related CN101317178B (zh) 2005-12-16 2006-12-12 统计时序分析中关键度预测的系统和方法

Country Status (6)

Country Link
US (1) US7437697B2 (zh)
EP (1) EP1969502B1 (zh)
JP (1) JP5004965B2 (zh)
KR (1) KR100998798B1 (zh)
CN (1) CN101317178B (zh)
WO (1) WO2007068690A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103403719A (zh) * 2010-12-16 2013-11-20 辛奥普希斯股份有限公司 使用基于样本的静态时序基础结构的同步多角静态时序分析
CN108228919A (zh) * 2016-12-09 2018-06-29 厦门紫光展锐科技有限公司 一种集成电路接口的时序生成方法及装置
CN108733832A (zh) * 2018-05-28 2018-11-02 北京阿可科技有限公司 有向无环图的分布式存储方法
CN114239444A (zh) * 2021-12-21 2022-03-25 东南大学 一种基于块的电路延时模型的建立方法
CN114818570A (zh) * 2022-03-11 2022-07-29 西北工业大学 一种基于蒙特卡罗仿真的嵌入式系统时序分析方法
CN117574820A (zh) * 2024-01-15 2024-02-20 中科亿海微电子科技(苏州)有限公司 一种增量时序分析方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774294B2 (ja) * 2005-12-26 2011-09-14 富士通株式会社 集積回路レイアウト装置、その方法及びプログラム
US7480880B2 (en) * 2006-02-21 2009-01-20 International Business Machines Corporation Method, system, and program product for computing a yield gradient from statistical timing
JP4734141B2 (ja) * 2006-02-28 2011-07-27 富士通株式会社 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析方法、および遅延解析装置
US7698674B2 (en) * 2006-12-01 2010-04-13 International Business Machines Corporation System and method for efficient analysis of point-to-point delay constraints in static timing
US8151229B1 (en) * 2007-04-10 2012-04-03 Cadence Design Systems, Inc. System and method of computing pin criticalities under process variations for timing analysis and optimization
US7861199B2 (en) * 2007-10-11 2010-12-28 International Business Machines Corporation Method and apparatus for incrementally computing criticality and yield gradient
JP5076832B2 (ja) * 2007-11-22 2012-11-21 富士通株式会社 遅延解析支援プログラム、該プログラムを記録した記録媒体、遅延解析支援装置、および遅延解析支援方法
US8799840B1 (en) 2008-02-14 2014-08-05 Cadence Design Systems, Inc. Branch and bound techniques for computation of critical timing conditions
US7844933B2 (en) * 2008-05-01 2010-11-30 International Business Machines Corporation Methods of optimizing timing of signals in an integrated circuit design using proxy slack values
US8056035B2 (en) 2008-06-04 2011-11-08 International Business Machines Corporation Method and system for analyzing cross-talk coupling noise events in block-based statistical static timing
US8028260B1 (en) * 2008-10-14 2011-09-27 Altera Corporation Determination of most critical timing paths in digital circuits
US9098661B1 (en) * 2008-12-10 2015-08-04 The Mathworks, Inc. Extensible platform for back-annotation of target-specific characterization onto a model of a hardware system
JP2010160787A (ja) * 2008-12-11 2010-07-22 Jedat Inc パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体
US8141025B2 (en) * 2009-01-15 2012-03-20 International Business Machines Corporation Method of performing timing analysis on integrated circuit chips with consideration of process variations
WO2010092825A1 (ja) * 2009-02-13 2010-08-19 パナソニック株式会社 回路解析方法
US8122404B2 (en) * 2009-02-19 2012-02-21 International Business Machines Corporation Performing a statistical timing abstraction for a hierarchical timing analysis of VLSI circuits
US8781792B2 (en) * 2009-10-31 2014-07-15 International Business Machines Corporation Yield computation and optimization for selective voltage binning
CN102231130B (zh) * 2010-01-11 2015-06-17 国际商业机器公司 计算机系统性能分析方法和装置
US8266565B2 (en) * 2010-01-29 2012-09-11 International Business Machines Corporation Ordering of statistical correlated quantities
US8365116B2 (en) 2010-12-06 2013-01-29 University Of Utah Research Foundation Cycle cutting with timing path analysis
US9235675B2 (en) * 2011-04-01 2016-01-12 Taiwan Semiconductor Manufacturing Company, Ltd. Multidimensional monte-carlo simulation for yield prediction
KR20130111061A (ko) * 2012-03-30 2013-10-10 한국전자통신연구원 이진 분할 트리를 이용한 영상 인코딩 방법
US8977998B1 (en) * 2013-02-21 2015-03-10 Altera Corporation Timing analysis with end-of-life pessimism removal
US9342639B1 (en) * 2015-02-17 2016-05-17 International Business Machines Corporation Method of hierarchical timing closure of VLSI circuits using partially disruptive feedback assertions
KR102398596B1 (ko) 2015-06-15 2022-05-16 삼성전자주식회사 집적 회로의 수율 예측 방법 및 집적 회로의 설계 최적화 방법
US9760664B2 (en) * 2015-07-07 2017-09-12 International Business Machines Corporation Validating variation of timing constraint measurements
US9690899B2 (en) * 2015-08-13 2017-06-27 International Business Machines Corporation Prioritized path tracing in statistical timing analysis of integrated circuits
US9600617B1 (en) * 2015-09-01 2017-03-21 International Business Machines Corporation Automated timing analysis
US9865486B2 (en) 2016-03-29 2018-01-09 Globalfoundries Inc. Timing/power risk optimized selective voltage binning using non-linear voltage slope
US10318686B2 (en) 2016-10-11 2019-06-11 Intel Corporation Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph
US9767239B1 (en) 2016-10-20 2017-09-19 International Business Machines Corporation Timing optimization driven by statistical sensitivites
JP6787045B2 (ja) * 2016-10-31 2020-11-18 富士通株式会社 検証支援プログラム、検証支援方法、および情報処理装置
US10747924B2 (en) * 2018-07-16 2020-08-18 Taiwan Semiconductor Manufacturing Company Ltd. Method for manufacturing integrated circuit with aid of pattern based timing database indicating aging effect
WO2022125978A1 (en) * 2020-12-11 2022-06-16 Synopsys, Inc. Machine learning delay estimation for emulation systems

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365463A (en) 1990-12-21 1994-11-15 International Business Machines Corporation Method for evaluating the timing of digital machines with statistical variability in their delays
JP2002279012A (ja) * 2000-11-22 2002-09-27 Matsushita Electric Ind Co Ltd 遅延分布計算方法、回路評価方法およびフォールスパス抽出方法
US6637014B2 (en) * 2001-03-06 2003-10-21 Nec Corporation Crosstalk mitigation method and system
US20040002844A1 (en) * 2002-06-27 2004-01-01 Jess Jochen A.G. System and method for statistical modeling and statistical timing analysis of integrated circuits
US7000205B2 (en) 2003-05-29 2006-02-14 International Business Machines Corporation Method, apparatus, and program for block-based static timing analysis with uncertainty
US7111260B2 (en) 2003-09-18 2006-09-19 International Business Machines Corporation System and method for incremental statistical timing analysis of digital circuits
US7428716B2 (en) * 2003-09-19 2008-09-23 International Business Machines Corporation System and method for statistical timing analysis of digital circuits
US7086023B2 (en) 2003-09-19 2006-08-01 International Business Machines Corporation System and method for probabilistic criticality prediction of digital circuits
US7350171B2 (en) * 2005-11-17 2008-03-25 Lizheng Zhang Efficient statistical timing analysis of circuits

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103403719A (zh) * 2010-12-16 2013-11-20 辛奥普希斯股份有限公司 使用基于样本的静态时序基础结构的同步多角静态时序分析
CN103403719B (zh) * 2010-12-16 2017-10-13 辛奥普希斯股份有限公司 使用基于样本的静态时序基础结构的同步多角静态时序分析
CN108228919A (zh) * 2016-12-09 2018-06-29 厦门紫光展锐科技有限公司 一种集成电路接口的时序生成方法及装置
CN108733832A (zh) * 2018-05-28 2018-11-02 北京阿可科技有限公司 有向无环图的分布式存储方法
CN114239444A (zh) * 2021-12-21 2022-03-25 东南大学 一种基于块的电路延时模型的建立方法
CN114239444B (zh) * 2021-12-21 2023-08-29 东南大学 一种基于块的电路延时模型的建立方法
CN114818570A (zh) * 2022-03-11 2022-07-29 西北工业大学 一种基于蒙特卡罗仿真的嵌入式系统时序分析方法
CN114818570B (zh) * 2022-03-11 2024-02-09 西北工业大学 一种基于蒙特卡罗仿真的嵌入式系统时序分析方法
CN117574820A (zh) * 2024-01-15 2024-02-20 中科亿海微电子科技(苏州)有限公司 一种增量时序分析方法

Also Published As

Publication number Publication date
EP1969502B1 (en) 2012-08-01
US7437697B2 (en) 2008-10-14
KR20080075868A (ko) 2008-08-19
EP1969502A1 (en) 2008-09-17
JP2009519528A (ja) 2009-05-14
CN101317178B (zh) 2010-07-21
WO2007068690A1 (en) 2007-06-21
US20070143722A1 (en) 2007-06-21
KR100998798B1 (ko) 2010-12-06
JP5004965B2 (ja) 2012-08-22

Similar Documents

Publication Publication Date Title
CN101317178B (zh) 统计时序分析中关键度预测的系统和方法
CN100414552C (zh) 估计电路时钟树的抖动并合成抖动意识和偏差意识时钟树
US5384720A (en) Logic circuit simulator and logic simulation method having reduced number of simulation events
David et al. Statistical model checking for networks of priced timed automata
Ho et al. Perturbation analysis of discrete event dynamic systems
US6687883B2 (en) System and method for inserting leakage reduction control in logic circuits
CN102439468A (zh) 考虑了时间和空间相关性的统计形式活动分析
US7564809B1 (en) Event-synchronization protocol for parallel simulation of large-scale wireless networks
US8112728B1 (en) Early timing estimation of timing statistical properties of placement
US20130275112A1 (en) Delta retiming in logic simulation
US8782592B2 (en) System and method for designing digital circuitry with an activity sensor
CN104036090A (zh) 电路优化方法及装置
Grewal et al. Automatic flow selection and quality-of-result estimation for FPGA placement
Siddavaatam et al. Grey wolf optimizer driven design space exploration: a novel framework for multi-objective trade-off in architectural synthesis
Gill et al. Performance estimation and slack matching for pipelined asynchronous architectures with choice
Yasudo et al. Performance estimation for exascale reconfigurable dataflow platforms
Singh et al. Modeling multi-output filtering effects in PCMOS
van Hee et al. The right timing: reflections on the modeling and analysis of time
KR20020077032A (ko) 로직 이벤트 시뮬레이션
Reddi et al. Hierarchical timing verification system
Mehdipour et al. Reducing reconfiguration time of reconfigurable computing systems in integrated temporal partitioning and physical design framework
Yahyamozdarani et al. The continuous signalized (COS) node model for dynamic traffic assignment
D'Ambrosio et al. Solving biomedical classification tasks by softmax reconstruction in ECOC framework
Cortadella et al. Elasticity and Petri nets
Cintra et al. A Simulation Technique for Performance Analysis of Generic Petri Net Models of Computer Systems1

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171120

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171120

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100721

Termination date: 20191212

CF01 Termination of patent right due to non-payment of annual fee