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

文档序号:6569752阅读:414来源:国知局
专利名称:统计时序分析中关键度预测的系统和方法
技术领域
本发明涉及数字集成电路的设计自动化。更具体地说,它涉及存 在延迟变化时的数字电路统计静态时序分析。
背景技术
人们注意到,变异性(variability)随着历代集成电路技术的发展 成比例增大。这种变异性源包括例如制造变化、设备疲劳、环境变 化(例如温度和供电电压)以及锁相环路(PLL)变化。在存在这些 变化时,希望获知每条信号传播弧(例如时序弧)的关键度 (criticality),即制造集成电路(例如芯片)、其中关键路径通过感 兴趣的信号传播弧的概率。各种各样的应用可从这种能力中获益,包 括测试、时序报告和电路优化。
现有技术的"确定性"时序方法在固定的工艺角或工艺"实例"上 执行时序。因此,可能难以预测信号传播弧关键度和电路延迟的概率 分布。此外,在确定性时序方法中,关键路径是唯一的,因而成为优 化方法中显而易见的改进目标。在统计时序中,注意到每条路径和每 条边都有作为关键路径和关键边的某个非负概率。希望能够按大小顺 序预测这些边关键度概率,以便指导集成电路的人工或自动优化。
预测关键度概率的现有技术方法存在例如在正确地考虑相关性 时的低效率以及不能正确地考虑相关性之类的问题。计算关键度的一 种方法是通过产生满足给定概率分布的过程参数的许多随机组合、并 随后执行重复的确定性时序分析以便为每个单个的过程参数组合检 测关键时序弧,来直接应用蒙特卡罗仿真。其中某特定边在最关键路 径上的那一小部分电路是该边的关键度概率。然而,由于需要过多的 确定性时序分析,此方法的计算效率很低。另一现有方法使用参数化的统计静态分析,在公开的题为
"System and Method for Probabilistic Criticality Prediction of Digital Circuits"的美国专利申请序列号2005/0066298中对其进行了描述。然 而,该方法隐含地假定"胎紧概率"(tightness probability )为独立概 率。该假设是有缺陷的,原因在于由于信号传播路径的再收敛和对 于共有的全局变化源的依赖,胎紧概率可能是强相关的,从而导致对 关键度概率的预测不精确。
因此,需要克服上述问题。

发明内容
本发明的各方面涉及数字电路中用于关鍵度预测的系统和方法。 具体地说,本发明的各方面公开了 一种用于在参数化的统计静态时序 分析(SSTA)中计算时序图每条边的关键度概率的方法。
本发明提供了一种用于确定电路时序图的边关键度概率的方法。 该方法包括形成与被计时的电路对应的有向无环时序图,执行该电路 的统计时序,为感兴趣的每条边定义将时序图划分为多个部分的割 集,为割集中的每条边确定边松弛(edge slack),为割集中的所有边 松弛计算统计最大值,和根据统计最大值推断每条边的边关键度概率。
本发明还提供了一种用于在电路的统计时序分析中预测关键度 的系统,包括用于形成与被计时的电路对应的有向无环时序图的装 置,用于执行电路的统计时序的装置,用于为时序图的每个层级定义 将时序图划分为多个部分的割集的装置,用于为割集中的每条边确定 边松弛的装置,用于为割集中的所有边松弛计算统计最大值的装置, 以及用于根据统计最大值推断每条边的边关键度概率的装置。
本发明还提供了 一种用于部署应用以优化电路的时序特征的方 法,包括提供计算机基础设施,其可操作为形成与被计时的电路对 应的有向无环时序图;执行电路的统计时序;为感兴趣的每条边定义 将时序图划分为多个部分的割集;为割集中的每条边确定边松弛;为割集中的所有边松弛计算统计最大值;和根据统计最大值推断每条边 的关键度概率。


下面参考下列附图介绍本发明的优选实施例。
图l是根据本发明实施例的统计静态时序分析系统的示意框图。
图2是由时序弧的关键度所驱动的电路优化系统的示意图。
图3是为介绍与图1-2中提到的相关术语而提供的数字电路实例。
图4示出了对图3中所示的示例电路进行建模的时序图。 图5的示意图示例了图3中所示的数字电路的时序图的信号传播 路径和时序弧的关键度。
图6示出了变化空间,其中路径的关键度区域经过如图5所示时序弧.
图7示出了时序图的示例割集。
图8是为时序图计算时序图割集的流程方法,该时序图的实例见 图4所示。
图9示例了示例时序图割集的计算过程。
图IO示例了经过时序弧的所有路径的最大延迟的计算过程。
图10A是用于确定时序图的边的关键度概率的高级流程方法,
该时序图的实例见图4所示。
图ll是用于计算时序弧关键度的流程图。
图12是用于计算N个一阶线性模型的胎紧概率的流程图。
图13为一阶模型的集合示出了二叉划分树实例。
图14是使用二叉划分树为N个一阶模型计算胎紧概率的流程
图,图13示例了二叉划分树的实例。
图15是用于遍历划分树和计算胎紧概率的流程图,划分树的实
例见图13所示。
图16的计算机系统用于执行本发明的各个方面。
具体实施例方式
本发明的各方面描述了在数字电路统计时序分析中用于预测信 号传播弧的关键度的系统和方法。信号传播弧的关键度是该弧为关键
弧的概率(即制造时序弧属于时序关键的信号传播路径的芯片的概 率)。
图1是根据本发明实施例的统计静态时序分析系统100的示意框 图。这里系统100也可称作工具100。系统100被配置为接收多个输 入110、 120、 130、 140。第一输入是表示待分析电路的结构的电路网 表110。第二输入是时序断言120 (例如时序约束)集合。时序断言 120典型地包括在主输入上的到达时间、在主输出上要求的到达时间、 与时钟相位有关的信息、和由主输出驱动的外部栽荷的详细情况。时 序断言120的形式可以是确定性数值或独立概率分布或相关概率分布 或其任一组合。
第三输入是参数化延迟模型130集合,这些延迟模型允许定时器 确定门或线的延迟作为延迟模型变量(例如输入斜率或上升/下降时间 和输出载荷)的函数和变化源的函数。例如,在公开的题为"System and 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 Method for 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)有益于电路分析和优化。 根据该技术,将门延迟表示为一阶线性模型
10j = a0+|>,风.+力 ,。 (1)
其中。。是均值;aat,是全局参数z,的变化(variation),
az,=《-%,。其中《.,。是义,的均值;",.是门延迟对参数变化/vy,.的灵
敏度;m。是引起门延迟的不相关变化的随机变量;以及。 +,是门延迟
对不相关变化m。的灵敏度。
使用公式(l)的表达,参数化的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)的一阶线性模型表示。考虑两 条路径&和^及其延迟的 一 阶线性模型
A = + ""+1卢。,* (2)
/=1 ' =1
其中,"。,是延迟的均值;Az,是参数《的变化,az,. 其中《,。是《.的均值;&、。,.,是路径延迟对参数变化a^,的灵敏度; a/ "、 m。,,是引起路径延迟的不相关变化的随机变量;以及^," "。+1,, 分别是路径延迟对不相关变化m。。 m吣的灵敏度。延迟A和",(当 作随机变量)有相同精确值的概率是0,除非
aa = a" (3)
于是,两条路径&和&中至少其一是关键路径的概率是每条路径
是关键路径的单独概率之和
尸(X或&是关键的)=尸"是关键的)+尸(^是关键的)(4) 如果公式(3)成立,则路径&和s,可以有相同的延迟。那么如
果路径&和&其中之一是关键的,则另一个也是关键的。如公式(5)
中所示,关键度值可以被分配给每条路径&和s,。
尸"是关键的)=/^,是关键的)=尸(^或^是关键的)/2 (5)
可以看出,公式(4)对公式(5)也成立。
公式(5)示例的概念可以从一对路径扩展到任意数量的路径。 也就是说,路径集合/^,&,...,5V中至少 一条路径是关键路径的概率等 于这些路径中的每条路径是关键路径的单独概率之和<formula>formula see original document page 13</formula> (6)
由此可以直接得到时序弧的关键度等于经过该弧的所有路径的
关键度之和,如图6所示。
图6示出了一个变化空间,其具有经过如图5的示例时序图所示 的时序弧的路径的关鍵度区域。具体地说,图6示意性地示出两个样 本参数变化的空间610:有效信道长度i^/和晶体管阈值VM。空间610 覆盖丄6//和V^从-3(y到3o的变化。空间610的每个点对应于Z^/,和 V,A的一个组合。多边形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的弧-否则,源和宿顶点不能属于图的不同组件。
从源顶点到宿顶点的任一路径上只有一条弧属于割集。 一旦路径 经过割集弧,它到达具有宿顶点的组件且不能返回具有源顶点的组 件。因此,该路径不可能经过割集的另一条弧。因此,可以得出的结 论是同一割集的两条时序弧"和6同时是关键的概率(即制造两条时 序弧均是关键时序弧的芯片的概率)是0,因为所述弧具有经过它们 的不同路径集。
对于时序图的任一割集,时序弧关键度的和总为l,因为该和代 表芯片所有路径的关键度之和。
假设对于给定割集C的任一时序弧《,已知经过该时序弧的所有
路径的最大延迟的一阶线性模型A,c:。于是,时序图的最大延迟"的
一阶模型,作为所有这些一阶模型D,,c的统计最大值,可被计算为
<formula>formula see original document page 14</formula> (7)
其中最大值是从统计意义上对割集C的所有时序弧进行计算得 到的,wc是割集中的边数。
经过时序弧",.的路径的最大延迟A,c大于从源顶点到宿顶点的 任一其它路径的延迟的概率恰好等于该时序弧。,的关键度。此概率
Sc等于在公式(7)中计算统计最大值时与延迟A,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划分为子集(层级)F7,F2,...K ,以便每个 时序弧从低层级顶点流向高层级顶点。在确定性和统计时序分析中均 使用了分层,它是时序分析器(例如图2中所示的时序分析器255) 的一部分。可以通过调用静态时序分析工具的适当功能模块或者通过 直接访问由静态时序分析工具创建的分层时序图实现步骤815。然后 执行步骤820。
在步骤820,创建空集C。。然后执行步骤825。在步骤825,初 始化层级计数器/的值为1并设置变量w等于时序图的层级数。然后 将方法移到步骤830。
在步骤830,计算割集C"考虑割集Cw,并从中删除去往层级 F,的顶点的所有弧。还有,根据下面的公式,将从层级K的顶点离开 的所有弧添加到所得割集中
C尸CV厂〖去在琉^ Kf的叙_/+/岸矛琉^ K; (8)
然后移动方法到步骤835。
步骤835将层级计数器/的值加1并将控制传递给步骤840。 步骤840确定层级计数器/的值是否小于时序图的层级数《。如 果计数器/小于",判断模块840将控制传递给功能模块830以计算 时序图的下一割集。否则,步骤840将控制传递给结束模块845。
图9示出示例性时序图的割集的计算过程。具体地说,图9解释 了对具有源节点926和宿节点956的时序图900的实例计算割集。为 了示例,示出了时序图900的一个层级903和两个割集980和983。层级903包括顶点930和976。顶点903有进入弧906和离开弧910 和940。顶点976有进入时序弧946和离开时序弧970。割集980包 括时序弧卯6、 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示例了经过时序图的时序弧的所有路径的最大延迟的计算 过程。将经过某条边的所有路径的最大延迟称为该边的边松弛。具体 地说,图IO示意性地示出了时序图1000,其源顶点为1015,宿顶点 为1035。示出了经过任选的时序弧1040的路径的最大延迟的一阶模 型的计算过程。时序弧1040有初始顶点1025和终端顶点1030。路径 集1020从源顶点1015流向所选时序弧1040的初始顶点1025。路径 集1045从所选时序弧1040的终端顶点1030流向时序图的宿顶点 1035。时序图1000中所示的画点区域表示更多未明示的时序图节点 和边。
假设参数化的统计时序分析已经算出了 一阶线性模型形式的到 达时间和要求时间,并且根据静态时序分析中到达时间和要求时间的
定义,可以得出结论是在时序弧1040的初始顶点1025上的到达时间 ^,恰好等于从源顶点1015到初始顶点1025的信号传播最大延迟。 另一方面,在时序弧1040的终端顶点1030上的要求时间7^,恰好等
于从顶点1030到宿顶点1035的信号传播最大延迟,不过要加负号。 为了简明,假定源顶点1015上的到达时间和宿顶点1035上的要求时 间设置为0。经过时序弧1040的路径集的最大延迟/)s是从源顶点1015 到时序弧1040的初始顶点1025的最大延迟D,加上时序弧1040本身 的延迟Z^加上从时序弧1040的终端顶点1030到宿顶点1035的最大 延迟"r:
Z^Z)y+Z^+Z^ (9)该延迟可以用由统计静态时序分析算出的到达时间和要求时间
的值表示
"5=^r,/+ZV7W'r (10) 需要理解的是公式(9)和(10)中的加减运算是在统计意义上进行的。
综上可知,可以根据统计时序分析的结果直接并有效地计算经过 时序图的任一时序弧的所有路径的最大延迟,即任一时序弧的边松 弛。
图10A是确定时序图的边关键度概率的高级流程方法,该时序 图的实例已在图4中示出。
在步骤1051,生成与被计时的电路对应的有向无环时序图并执 行电路的统计时序。然后方法移到步骤1052。
在步骤1052,对于感兴趣的每条边,定义将时序图划分为多个 部分的割集。然后执行步骤1053。
在步骤1053,确定割集中感兴趣的每条边的边松弛。然后执行 步骤1054。
在步骤1054,确定割集中所有边松弛的统计最大值。然后执行 步骤1055。
在步骤1055,根据步骤1054的统计最大值运算推断每条边的近 关键度概率。
图ll是为时序图计算时序弧关键度的流程方法1100,该时序图 实例已在图9示出。开始模块1110将控制传递给功能模块1115。
功能模块1115执行参数化的统计时序分析,为时序图的每个顶 点计算到达时间和要求的到达时间。功能模块1115将控制传递给功 能模块1120。
功能模块1120构建覆盖包含在时序图中的所有时序弧的该时序 图的割集。例如方法800可执行此操作。可使用其它合适的方法。可 以一次构建所有割集并随后对其进行处理,或一次构建和处理一个割 集。功能模块1120将控制传递给功能模块1125。功能模块1125设置变量M等于由功能模块1120构建的割集数。 功能模块1125将控制传递给功能模块1130。
功能模块1130初始化割集计数器/为1并将控制传递给功能模 块1135。
功能模块1135从功能模块1120构建的割集集合中选择第/个割 集G,功能模块1135将控制传递给功能模块1140。
功能模块1140设置等于割集C,冲的时序弧数并将控制传递给 功能模块1145。
功能模块1145初始化当前割集中弧计数器乂为1并将控制传递 给功能模块1150。
功能模块1150从割集C,中选择第乂个时序弧 并将控制传递给 功能模块1155。
功能模块1155找到时序弧 的初始顶点v,"/,"和终端顶点 ,,,,; 并将控制传递给功能模块1160。
功能模块1160计算经过时序弧%的所有路径的集合的最大延迟 AV (即e,y的边松弛)的一阶线性模型如下
<formula>formula see original document page 18</formula> (12)
其中
* ^0w,)是在顶点上的到达时间
* d( )是时序弧e,:/的延迟
* ^(v—是在顶点,.,上的要求时间
功能模块1160将控制传递给功能模块1165。
功能模块1165将时序弧计数器y'加1并将控制传递给判断模块
1170。
判断模块1170确定y的当前值是否不大于当前割集c:,.中的时序
弧数iV。如果/'不大于7V,判断模块1170将控制传递给功能模块1150。 否则,判断模块1170将控制传递给功能模块1175。
功能模块1175为一阶模型集合^),,,,/^,...,/>^计算胎紧概率 iV,A,2,.. .,Aw。例如,尸,口是A,7为P",A,2,.. .,"W中最大值的概率。可以用多种方法执行该计算。可能的方法之一是使用蒙特卡罗技术。 胎紧概率的蒙特卡罗计算方法可能是有效的,因为它只要被应用与割
集数(等于时序图深度) 一样多的次数。功能模块1175将控制传递 给功能模块1180。
功能模块1180设置当前割集的时序弧e,口,o..,e,w的关键度 等于功能模块1175算出的胎紧概率i^,尸w,…,iV。功能模块1180将 控制传递给功能模块1185。
功能模块1185将割集计数器Z加1并将控制传递给判断模块
1190。
判断模块1190确定/的当前值是否不大于割集数M。如果/的 当前值不大于i\f,判断模块1190将控制传递给功能模块1135以处理 下一割集。否则,判断模块11卯将控制传递给功能模块1195。
并不必须如上所述通过独立的方法800和1100来使时序图割集 的计算与时序弧关键度的计算分离。方法800、 1100可以结合起来以 便在割集构建之后立即计算属于该割集的时序弧的关键度。
图12示出了用于计算给定的W个一阶线性模型附;,附2,...,/^的 胎紧概率的算法1200的框图。这些一阶线性模型可以是例如延迟、 到达或要求时间的模型。在计算边关键度时,它们通常是割集中所有 边的边松他。
算法1200的开始模块1205将控制传递给功能模块1210。
功能模块1210设置7V等于给定的一阶统计模型的数目并将控制 传递给功能模块1215。
功能模块1215初始化一阶线性模型计数器为1并将控制传递 给功能模块1220。
功能模块1220计算除模型附,之外的所有给定一阶线性模型的统
计最大值。意思是计算iV-7个一阶线性模型Wi,W2,…,Ww,附W,…,Ww 的统计最大值。计算结果是一阶线性模型附w柳称为边/的补边松弛。 功能模块1220将控制传递给功能模块1225。
功能模块1225计算一阶边松弛模型w,大于功能模块1220计算出的一阶补边松弛模型附附駄的胎紧概率尸。功能模块1225将控制传 递给功能模块1230。
功能模块1230设置一阶模型附,的胎紧概率尸,等于功能模块1225 计算出的值尸并将控制传递给功能模块1235。
功能模块1235将一阶线性模型计数器/加1并将控制传递给判 断模块1240。
判断模块1240确定/值是否不大于给定的一阶模型数W。如果/ 的当前值不大于W,判断模块1240将控制传递给功能模块1220。否 则,它将控制传递给功能模块1245。
功能模块1245计算一阶线性模型附7,W2,…,附w的胎紧概率 /W,.,iV之和S并将控制传递给功能模块1250。理论上,S应等于 1.0,但是由于数字舍入或其它近似的原因,它可能不等于l.O。
功能模块1250通过将每个胎紧概率户,除S来将每个胎紧概率 尸,的值归一化。通过确保胎紧概率之和为1,该归一化可以提高计算 的精确度。功能模块1250将控制传递给结束模块1255。
方法1200可能需要应用O(TV力次二进制统计最大值运算。在另 一实施例中,可通过下迷步骤在线性时间0(7N9内计算关键度将给定 的一阶线性模型集合划分为具有2,4,8,...,2'°-个元素的子集的层次嵌 套系统;构建该层次划分的二叉划分树;从有2个元素的子集开始, 为每个子集预先计算统计最大值,然后继续到有4个元素的子集,依
此类推;以及遍历二叉划分树并且为补子集和在此遍历中所需的胎紧
概率计算统计最大值。
不失一般性,为节约篇幅,假定希望对其计算关键度的一阶线性
模型附h附2,…,W;v的数目iV是2的幂
7V=2" (13) 图13示出了一个有序二叉树1300,用于8个一阶线性模型集合
/>^,附2,附_ , /1^,W5,附6,附7,/M4/的层次均衡戈'J分。i亥树有根节点1303和示 意性地代表给定一 阶线性模型/yW,,W2,W3,/^,附5,W(j,附7,wW的叶节点
1333、 1335、 1338、 1340、 1343、 1345、 1348、 1350。在划分的第一层级上,将叶节点集划分为子集1323、 1325、 1328、 1330。树节点 1313 、 1315 、 1318 、 1320 对应于这些子集 "附hW^,〖附3,/wW附5,W^,〖附7,W^。将第一层级的子集的集合划分为第 二层级的两个子集1355、 1360。树节点1305、 1310对应于第二层级
的这些子集
图14示出了计算给定的N个一阶边松弛线性模型的胎紧概率的 流程图1400的框图。发明人假定给定的一阶边松弛模型的数目是2 的幂,不过该方法可一般地适用于任意数量的一阶边松弛模型。
开始模块1405将控制传递给功能模块1410。
功能模块1410设置iV等于希望计算其胎紧概率的给定的一阶边 松弛线性模型的数目。功能模块1410将控制传递给功能模块1415。
功能模块1415计算划分树中的层级数为
"ogW (14)
由于假设给定一阶模型数是2的幂(例如N是2的幂),所以 该计算是精确的。然而,方法1400可以扩展到处理任何数目的一阶 模型。功能模块1415将控制传递给功能模块1420。
功能模块1420创建划分树的叶(例如最低)层级并构建与给定 的一阶线性模型对应的叶节点的有序集合。功能模块1420将控制传 递给功能模块1425。
功能模块1425设置划分层级(例如划分树层级)的计数器/为1 并将控制传递给功能模块1430。
功能模块1430设置在划分的当前层级的子集(即在划分树当前 层级上的节点)的数目M-7V/2并将控制传递给功能模块1435。
功能模块1435初始化在划分的当前层级的子集的计数器为1 并将控制传递给功能模块1440。
功能模块1440构建划分的第个层级的第子集如下
<formula>formula see original document page 21</formula>(15)
通过包含来自前一层级划分的两个子集5W,々-,,&w,力来构建该子
集&》根据在划分的前一层级上子集的顺序,取子集能模块1440将控制传递给功能模块1445。
功能模块1445计算所构建子集&y的一阶线性模型附,v并将它赋 给该子集。通过计算与用于构建子集&,/的子集对应的一 阶线性模型附w,w,附,w,々的统计最大值,计算该一阶模型m^。 一阶线 性模型是子集&v中所含的所有 一 阶线性模型的统计最大值的 一 阶 线性才莫型。功能模块1445将控制传递给功能模块1450。
功能模块1450将子集计数器y'的当前值加1,然后将控制传递给 判断模块1455。
判断模块1455确定y'是否不大于在当前划分层级上的子集数3f。 如果)不大于在当前划分层级上的子集数,判断模块1455将控制传递 给功能模块1440以构建在划分的当前层级上的下一子集。否则,将 控制传递给功能模块1460。
功能模块1460构建对应于划分的第,'个层级的划分树的第i个层 级。可以在子集构建过程中执行该构建。然而,在优选的实施例中, 为了更清楚,发明人将树节点构建与子集构建分开。功能模块1460 将控制传递给功能模块1465。
功能模块1465将划分层级的计数器i加1并将控制传递给功能 模块1470。
功能模块1470计算在划分的下一层级的子集数M为M-iW/2并 将控制传递给判断模块1475。
判断模块1475确定/是否小于划分层级数w。如果/小于w,判 断模块1475将控制传递给功能模块1435以构建下一划分层级。否则, 将控制传递给功能模块1480。
功能模块1480通过给划分树添加根节点完成该树的构建,并将 控制传递给功能模块1483。
功能模块1483将等于与根节点的右子节点对应的子集的一阶线 性模型w^的补一阶线性模型附,,c。—赋给根节点的左子节点。该补 模型等于与对应于左子节点的子集互补的子集的统计最大值的一阶 线性模型。功能模块1483将控制传递给功能模块1485。功能模块1485将等于与根节点左子节点对应的子集的一阶线性 模型附,^的补一阶线性模型附卬—赋给根节点的右子节点。该补模型 等于与对应于右子节点的子集互补的子集的统计最大值的一阶线性 模型。功能模块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计算左补一阶线性模型附"。咖作为根节点的补模
型附r。w,c。,Z和右叶节点的一阶模型附/ea/Wg/f/ 的统计最大值。功能模块
1515将控制传递给功能模块1520。
功能模块1520计算左叶节点的一阶模型附,^^的胎紧概率,作
为该一阶线性模型附^y;,e/,和左补一阶模型附,,c。,,的二进制胎紧概率。
功能模块1520将控制传递给功能模块1525。
功能模块1525计算右补一阶线性模型wv。哼,作为根节点的补模型附r。。,,c。—和左叶节点的一阶模型附^/^的统计最大值。功能模块
1525将控制传递给功能模块1530。
功能模块1530计算右叶节点的一阶线性模型附一w-的胎紧概 率,作为该一阶模型附,e^^,和右补一阶线性模型附^。一的二进制胎 紧概率。功能模块1530将控制传递给结束模块1555。
功能模块1535计算左子节点的补一阶线性模型附,,c。,,作为根节 点的补模型w,。屮。—和对应于根节点的右子节点的子集的 一 阶线性模 型附ri-的统计最大值。功能模块1535将控制传递给功能模块1540。
功能模块1540计算右子节点的补一阶线性模型/iv。,,作为根节 点的补模型w,。。,,e。—和对应于根节点的左子节点的子集的 一 阶线性模 型附^的统计最大值。功能模块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、和/或1/0接口 1614读和/或写数据。总线1612提供在计算机系统1600中的每个组 件之间的通信链路。外部设备/资源1616可以包括能使用户与计算机 系统1600交互的任何设备(例如键盘、定点设备、显示器(例如显 示器1620)、打印机等)和/或能使计算机系统1600与一个或多个其 它计算设备进行通信的任何设备(例如网卡、调制解调器等)。
计算机基础设施1602只示例了可以用于实现本发明的各种类型 的计算机基础设施。例如,在一个实施例中,计算机基础设施1602
;骤的两个或更多计算设备(例如服务器集;、)。而且,计算机系统
1600只代表可以用于本发明实践中的许多类型的计算机系统,其中每 种计算机系统可以包括硬件/软件的诸多组合。例如,处理单元1608 可以包括单个处理单元、或者可以在一个或多个位置(例如在客户端 和服务器)分布有一个或多个处理单元。类似地,存储器1610和/或 存储系统1618可以包括位于一个或多个物理位置上的各种不同类型 的数据存储和/或传输介质的任意组合。还有,1/0接口 1614可以包 括用于与一个或多个外部设备/资源1616交换信息的任何系统。另外 还有,可以理解,图16中未示出的一个或多个额外的组件(例如系 统软件、通信系统、高速緩冲存储器等)可以包含在计算机系统1600中。然而,如果计算机系统1600包括手持设备等,可以理解的是一 个或多个外部设备/资源1616 (例如显示器1620)和/或一个或多个存 储系统1618可以包含在计算机系统1600内,而不是如图16所示在 计算机系统1600之外。
存储系统1618可以是能够在本发明中为信息提供存储的任意类 型的系统(例如数据库)。就此而言,存储系统1618可以包括一个 或多个存储设备,例如磁盘驱动器或光盘驱动器等。在另一实施例中, 存储系统1618可以包含分布在例如局域网(LAN)、广域网(WAN) 或存储区域网络(SAN)(未示出)上的数据。
而且,虽然未示出,用户1604操作的计算机系统可以包括计算 机化的组件,它们类似于上面关于计算机系统1600提到的那些组件。
尽管这里提供的本发明的描述集中于最大运算(max operation),但应当理解,所属领域的技术人员可以将本发明的教导 应用于最小运算(min operation )。而且,尽管这里提供的本发明的 描述集中于计算最晚到达时间,但应当理解,所属领域的技术人员可 以将本发明的教导应用于计算最早到达时间。还有,尽管这里提供的 本发明的描述集中于组合电路,但应当理解,所属领域的技术人员可 以将本发明的教导应用于顺序电路。另外,尽管这里提供的本发明的 描述集中于门延迟是可分函数的情况,但应当理解,所属领域的技术 人员可以将本发明的教导应用于门延迟是不可分函数的情况。
权利要求
1、一种用于确定电路时序图的边的关键度概率的方法,包括形成与被计时的电路对应的有向无环时序图;执行电路的统计时序;为感兴趣的每条边定义将时序图划分为多个部分的割集;为割集中的每条边确定边松弛;计算割集中所有边松弛的统计最大值;和从统计最大值推断每条边的边关键度概率。
2、 权利要求l的方法,其中多个部分中的笫一部分包括时序图 的源节点,多个部分中的第二部分包括时序图的宿节点。
3、 权利要求2的方法,其中割集包括边,并且边的源节点所处 的层级低于时序图的当前层级。
4、 权利要求2的方法,其中割集包括边,并且边的宿节点所处 的层级高于时序图的当前层级。
5、 权利要求2的方法,其中早模式统计边松弛是早模式源节点 统计到达时间、负的早模式宿节点统计要求到达时间和边的早模式延 迟的统计和。
6、 权利要求2的方法,其中晚模式统计边松弛是晚模式源节点 统计到达时间、负的晚模式宿节点统计要求到达时间和边的晚模式延 迟的统计和。
7、 权利要求1的方法,其中推断包括将每条边的边关键度概率 确定为割集中所有边的边松弛的最大值的胎紧概率。
8、 权利要求l的方法,其中影响电路性能的各变化源被同时考虑。
9、 权利要求l的方法,其中通过使用划分树数据结构执行推断步骤。
10、 一种用于优化电路的时序特征的方法,包括 根据权利要求1-9的任一方法确定时序图的边的关键度概率;和使用关键度概率指导电路的时序特征的优化。
11、 权利要求10的方法,其中通过使用划分树数据结构执行确定步骤。
12、 权利要求10的方法,其中确定步骤包括 形成与被计时的电路对应的有向无环时序图; 执行电路的统计时序;为感兴趣的每条边定义被配置为将时序图划分为多个部分的割集;为割集中的每条边确定边松弛; 计算割集中所有边松弛的统计最大值;和从统计最大值推断每条边的边关键度概率。
13、 一种用于在电路的统计时序分析中预测关键度的系统,包括 用于形成与被计时的电路对应的有向无环时序图的装置;用于执行电路的统计时序的装置;用于为时序图的每个层级定义将时序图划分为多个部分的割集 的装置;用于为割集中的每条边确定边松弛的装置; 用于计算割集中所有边松弛的统计最大值的装置;和用于从统计最大值推断每条边的边关键度概率的装置。
14、 一种计算机程序,包括用于执行根据权利要求1-12中任一 权利要求中的方法的所有步骤的指令。
全文摘要
描述了用于确定电路时序图的边关键度概率的方法。该方法包括形成与被计时的电路对应的有向无环时序图,执行电路的统计时序,为感兴趣的每条边定义将时序图划分为多部分的割集,为割集中的每条边确定边松弛,计算割集中所有边松弛的统计最大值,和从该统计最大值推断每条边的边关键度概率。还描述了用于确定电路时序图的边关键度概率的系统。
文档编号G06F17/50GK101317178SQ200680044096
公开日2008年12月3日 申请日期2006年12月12日 优先权日2005年12月16日
发明者C·威斯维斯瓦里亚赫, N·文卡特斯瓦兰, V·佐罗托夫, 熊瑾珺 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1