首页> 中国专利> 估计电路时钟树的抖动并合成抖动意识和偏差意识时钟树

估计电路时钟树的抖动并合成抖动意识和偏差意识时钟树

摘要

估计电路时钟树的抖动并合成抖动意识和偏差意识时钟树。在一个实施例中,一种计算时钟树中的抖动的方法包括将时钟树分为多个段,并且根据与所述时钟树相关的电路的至少一部分的模型,计算一个或更多个段中的抖动。所述模型包括所述电路中的各抖动源的表示。该方法还包括为了计算与所述时钟树中的路径或路径对相关的抖动,统计地将所述时钟树中该路径或该对路径的每一段中的抖动彼此组合。在一个实施例中,为有效计算抖动,并实现零时钟偏差,一种方法合成电路中的对称树,在所述对称树中,在从时钟树的根到时钟树的汇点的所有路径的对应段表现出彼此相似的电当量。

著录项

  • 公开/公告号CN1881224A

    专利类型发明专利

  • 公开/公告日2006-12-20

    原文格式PDF

  • 申请/专利权人 富士通株式会社;

    申请/专利号CN200610088599.4

  • 发明设计人 拉耶瓦·穆尔加;威廉·W·沃克;

    申请日2006-06-06

  • 分类号G06F17/50;

  • 代理机构北京三友知识产权代理有限公司;

  • 代理人孙海龙

  • 地址 日本神奈川县川崎市

  • 入库时间 2023-12-17 17:59:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-21

    未缴年费专利权终止 IPC(主分类):G06F17/50 授权公告日:20080827 终止日期:20180606 申请日:20060606

    专利权的终止

  • 2008-08-27

    授权

    授权

  • 2007-02-14

    实质审查的生效

    实质审查的生效

  • 2006-12-20

    公开

    公开

说明书

技术领域

本发明总的来说涉及电路设计,更具体地,涉及对数字电路的时钟树的抖动(jitter)进行估计,并合成偏差意识和抖动意识时钟树。

背景技术

随着集成电路规模增大,工艺和环境的影响(诸如电压、温度和串扰)趋于增加这种电路各处的延迟变化。这种变化增加了电路中的时钟抖动(或者触发器的时钟到达时间的不确定性)。抖动的增加减少了固定时钟周期的电路中关键路径上允许的最大延迟,这使得更进一步的优化以及更长的周转时间更为重要。

附图说明

为了更彻底地理解本发明及其特点和优点,结合附图进行以下描述,在附图中:

图1示出了示例串扰;

图2示出了示例数据路径和用于该数据路径的示例时钟树;

图3示出了时钟树段抖动的示例仿真模型;

图4示出了示例时钟树;

图5示出了抖动变化的示例参数;

图6示出了示例长路径分析的示例计算;

图7示出了示例竞态分析(race analysis)的示例计算;

图8示出了时钟树合成与分析的示例方法;

图9示出了从时钟源到触发器(FF)的路径的示例段;和

图10示出了示例完全双向图。

具体实施方式

图1示出了示例串扰。在多层的亚微米电路设计中,随着接线变得更长且更窄,并且将它们彼此分开的距离减少,相邻互连(interconnect)之间的耦合电容就成为重要问题。结果,物理上相邻的网(net)(或互连)之间的串扰噪声成为重要问题。受影响的网是受害者,v,使得噪声影响受害者v的相邻切换网是侵略者,a。如何合适,指的是包含一个或更多个这样的网的侵略者a。如图1所示,当侵略者a沿着与受害者v相反的方向切换时,串扰可增加到达受害者v的时间。当侵略者a沿着与受害者v相同的方向切换时,串扰可减少到达受害者v的时间。v和a之间的分布耦合电容被显示为Cci。串扰还可导致逻辑险态(logic hazard)和电路故障。例如,如果延迟的改变大到使关键路径比时钟周期慢(从而导致定时违犯)或者由于与侵略者a的电容耦合而在受害者v上产生的大尖峰与时钟沿足够接近从而在目标触发器(FF)处获得错误值,电路可能发生故障。在电路设计过程中,对由于串扰而引起的延迟改变的精确计算变得重要。本发明的特定实施例在芯片级设计的环境下解决该问题,并且在存在串扰耦合的情况下计算准确的路径延迟。

传统的设计实践和静态定时分析(STA)工具通过为时钟树上的每个缓冲器保留保守的延迟裕量(margin)来处理时钟抖动。作为最差情况的分析,它们将用于时钟树中的路径上的缓冲器的这些裕量进行累加。然后,取决于该时钟路径是去往源FF还是去往目标FF,全部裕量或者被加到标称路径延迟,或者从该标称路径延迟中减去。这种最差情况的分析过于悲观,这是因为该分析假设了一条时钟路径上的所有缓冲器的最小延迟条件(即,最小温度、最大供电电压、最小沟道长度、以及最小阈值电压)以及另一条时钟路径上的缓冲器的最大延迟条件(即,最大温度、最小供电电压、最大沟道长度、以及最大阈值电压)。使用这样非常不可能出现的情形,导致不必要的电路过度设计。大多数制造的芯片显示出比由这些工具预测的性能高出30%的性能。

统计学静态定时分析(SSTA)是用于更为现实的定时检验的另选范例。广义地说,对于SSTA提出了两种方法:分析的方法和基于采样的方法。分析的方法以统计学门电路延迟模型(例如,高斯概率密度函数)和统计学工艺变化模型为输入,并建立电路延迟或路径延迟的概率密度函数(PDF)。由于所涉及的数学复杂性(例如,得出PDF的最大和最小值),所以这些仍然是研究的课题。基于采样或者基于蒙特卡罗(MC)的技术产生输入参数的值,假设这些参数满足一些分布(例如,均匀分布或高斯分布)。根据这些值计算电路延迟。重复该过程几百或几千次,直到为延迟分布曲线获得足够的延迟值。基于MC的技术非常精确,但是计算强度大。不可能将其直接应用于真正的工业设计中。

在特定实施例中,用于时钟树抖动分析的方法将分析的方法和蒙特卡罗方法进行组合。在特定实施例中,树合成技术产生零偏差(zero-skew)树。基于该树的抖动分析比传统的基于MC的方法更高效并且没有传统STA那么保守。在特定实施例中,可将该方法应用于以太网芯片在工艺、温度、电压和串扰变化的情况下的时钟树合成和分析。

在给出时钟树和源FF以及目标FF的情况下,特定实施例采用用于计算时钟抖动的统计学和较不保守的方法(与最差情况方法相比)。在该方法中,使用蒙特卡罗仿真,用SPICE精确计算出时钟树的每个缓冲段的延迟变化(或抖动)。然后将这些段的抖动按统计学组合,产生整个时钟路径(或路径对)的抖动,而不是简单地将这些抖动相加(如传统STA工具所做的)。特定实施例合成时钟树,对于该时钟树可高效地执行上述的段抖动计算和树抖动分析。

在特定实施例中,时钟抖动分析算法分析数据路径的源FF和目标FF之间的抖动。在特定实施例中,后处理方案使用对时钟树的统计学抖动计算,对由传统STA工具给出的设计的关键路径进行重新分析。

假定周期时间固定,时钟偏差和抖动一起减小了设计中的关键路径允许的最大延迟。偏差是两个给定触发器FFi和FFj的时钟到达时间ti和tj的确定差。在没有任何工艺、电压或温度变化并且所有噪声源为零的情况下,偏差起源于时钟分布网络中的(因瑕疵或蓄意的)失配。通过以下步骤可计算出偏差:建立时钟分布网络的精确模型,然后在恒定的温度和Vdd下执行从时钟源到时钟树上的每个FF的SPICE或STA仿真,并且测量从时钟源的50% Vdd到每个FF的50% Vdd的标称时钟延迟t。因此,计算时钟偏差可以与以下计算相同:计算时钟延迟和到达时间,然后计算其差。

抖动是关心的参数的不确定性或时间变化。就时钟而言,关心的参数是时钟到达触发器的时间。如果时钟周期是τ,则理想地在FF处,在任意两个连续周期中的时钟的升(和降)沿相隔τ时间单位。然而,在实践中,该时间间隙会变化,这通常是由于以下原因。

1、在门电路,供电噪声或Vdd-Vss的变化是时间的函数。不同集合的门电路在不同的时钟周期中进行切换,引起供电噪声。这导致Vdd和Vss线上的电流的随时间变化,并且因此IR和Ldi/dt降低。由于门电路的延迟取决于Vdd,所以时钟缓冲器的供电电压的任何改变都会改变时钟到达FF的时间。

2、门电路的温度变化以及跨模的温度变化。因为功率和温度彼此非常相关,(漏泄主导(leakage-dominant)型技术尤其如此),所以引起温度变化。具有较高的切换活动的块将消耗较高的动态功率,导致较高的局部温度。这反过来增加了漏泄功率的消耗,导致总功率进一步提高。这可引起跨芯片的非常大的温度变化率。门电路的温度变化还由于不同周期中的不同的切换活动而产生。在较高温度工作的门电路由于载流子迁移率的下降而表现出较高的延迟。

3、串扰噪声。如图1所示,如果存在与v物理上接近的侵略者a并且该侵略者a正在切换,则可改变时钟线的延迟。由于从一个周期到下一周期,侵略者的切换行为可能变化,所以这可以导致对于受害者的抖动。时钟是设计中最重要的信号之一。典型地,在时钟的两侧都进行Vdd/Vss屏蔽来消除这样的串扰影响。然而,当宽总线在时钟线上方通过时,屏蔽不能防止来自顶层和底层的串扰。

4、PLL抖动。从PLL产生的时钟具有一些固有抖动。

5、跨模的工艺变化。工艺变化的示例包括:内在变化,诸如MOSFET的沟道区中的随机掺杂物波动;和外在变化,诸如沟道长度或氧化物厚度变化。此外,在化学机械平面化(CMP)工艺中,互连的宽度、厚度、间隔和高度可能与预期值差别很大。这些变化使得门延迟或接线延迟偏离了它们的期望值。难以预测变化的准确大小,因此也难以在制造之后预测接线延迟和门延迟的确切值。在偏差中不能捕获该现象。一旦制造出芯片之后,即使三极管或互连的尺寸没有显著的依赖时间的改变,将其作为抖动进行建模也更方便。

如图2所示,假设从触发器FFs开始的数据路径通过组合逻辑并在FFe结束。as和ae分别是时钟到达FFs和FFe的时间。这些到达时间包括标称延迟和抖动。τ是PLL时钟周期时间。在特定实施例中,STA的两个基本函数用于检测长路径和检测竞态。

1、检测长路径。在该分析中,分别给定起点FFs和终点FFe,如果dmax是组合逻辑中的最大路径延迟(包括通过FFs的延迟),则应该满足以下不等式,以使电路正确工作。

            as+dmax≤ae+τ-tset-up     (1)

STA工具找出τavail(s,e),这两个FF之间的最小可用周期时间,

即:

           τavail(s,e)=τ+ae-as.    (2)

为了简化,等式2假设FFe的准备时间是零。然后,STA确定dmax是否至多为τavail(s,e)。对于此分析,接收触发器捕捉的时钟沿在发送触发器时钟沿之后的一个周期。因此,应该将PLL(或者其它时钟源)周期抖动包括在该分析中。

2、检测竞态。在该分析中,STA工具找出FFs和FFe之间相同时钟沿的最大时钟到达时间差。然后,该分析确定dmin(触发器中间的最小逻辑延迟)是否足够小而侵扰(violate)接收触发器的保持时间(thold)使其小于时钟到达时间差。换句话说,对于正确的操作:

         as+dmin≥ae+thold             (3)

诸如PrimeTime的传统STA工具通过为时钟树中的各缓冲器保留保守的延迟裕量来处理时钟抖动。该裕量取决于技术、工艺、设计中的切换活动、Vdd、布局等。例如,让缓冲器的标称延迟为100ps并且用于应付变化的裕量为15%。那么,缓冲器的最小延迟为85ps且最大延迟为115ps。在长路径分析期间,STA工具从位于从时钟源clk到FFe的路径上的缓冲器的标称延迟中减去裕量,并将裕量加到从时钟源clk到FFs的路径上的缓冲器。图2示出延迟。虽然将这两条时钟路径设计成具有零偏差,但是总的抖动裕量结果是60ps。这样的最差情况分析过于悲观。这是因为该分析为从clk到FFs的路径上的各缓冲器假设了最大延迟条件(即,最大温度、最小供电电压、最大沟道长度、以及最大阈值电压)并为从clk到FFe的路径上的缓冲器假设了最小延迟条件(即,最小温度、最大供电电压、最小沟道长度、以及最小阈值电压)。

特定实施例用统计学分析代替过于悲观的最差情况分析。具体实施例还使用SPICE和蒙特卡罗分析来计算树段的抖动,而不是使用保守的裕量。

图3示出了用于时钟树的段的抖动的示例仿真模型10。在具体实施例中,反相缓冲器12通过接线驱动反相器14。

1、供电噪声V:通过向设计中的各缓冲器提供独立电源并使它们能够根据噪声模型随机变化,可对供电噪声建模。可由用户输入的参数supply_tolerance控制变化量。

2、温度变化T:温度升高使CMOS电路工作得更慢,并使布线电阻增加。通过指定整个芯片的基本温度(underlyingtemperature)并且随后将随机的局部温度变化施加于各时钟缓冲器和互连,来对三极管的温度变化建模。可由用户输入的参数max_deltemp给出要施加的变化。

3、串扰噪声X:通过将外部噪声源附于图3中的接线模型并且通过基于一些概率分布在这些源处应用随机输入,可对串扰噪声建模。每当接线被实例化时,还应当定义与这些实例相关的串扰因子。串扰因子是各设计的独特属性并因而由用户使用参数xtfactor提供。

4、PLL抖动:具体实施例假设最大PLL抖动为3σPLL

5、工艺变化Y:如图3所示,仅使用沟道长度(对于PMOS和NMOS三极管来说分别为lp和ln)和阈值电压(delvtn和delvtp),就可对三极管的工艺变化建模。其它变化(诸如氧化物厚度和掺杂物浓度)具有改变阈值电压的总体效果,并因此被包括在模型10中。可将阈值电压和沟道长度的变化传递给缓冲器子电路模型的各实例。通过将随机工艺因子应用于接线模型中的布线电容和电阻(pfc和pfr),可对布线的工艺变化建模。工艺变化的量是被使用的工艺的属性并且不可由用户改变。

在实际的芯片中,彼此位置靠近的部件的供电电压(以及温度)可能相关。例如,如果两个缓冲器物理上彼此相邻并与相同的电源线相连,则它们的Vdd和温度值几乎相同。可将这样的相关性并入模型10中。例如,一种方案可以是基于Vdd/Vss分布架构和布局将芯片分为区Ri。各区Ri可具有平均电压值Vdd,其是根据该区中的功率架构和切换活动而计算的。对于每次仿真,用随机变量计算该区的中心的ΔVddi。然后,可使用基于距离的相关性函数f(Vddi+ΔVddi,l)计算该区中各缓冲器的电压,其中l是缓冲器距Ri的中心的距离。特定实施例不使用最差情况的范例,而是使用更现实的一个。用户可自由提供这样的模型,并可将模型并入所述方法中。

假设该统一的统计学模型包含PVTX变化,特定实施例利用SPICE使用蒙特卡罗仿真(MCS),来产生延迟的平均t和标准差σ。如果MCS针对芯片级设计的整个时钟树运行,则存储器将可能装不下该模型或者MCS可能会花费相当长时间来完成。特定实施例使用这样的方法:其中针对树的小部分或段执行MCS。如图3所示,树的段(或部)的一种自然定义是树上通过接线驱动另一缓冲器或FF的时钟缓冲器。虽然图3中未示出,但是沿着下一段缓冲器或FF的接线上的分支点也被包括在该段中。时钟树被这样分为多个段,用SPICE对每段执行MCS。在每次仿真,可从高斯分布函数中随机选择各参数Δvtni、Δvtpi、lpi、lni、Vddi、Ti(i=1,2)、T、pfc、pfr以及串扰电压源自身(如图3所示)。然后,可计算从驱动缓冲器12的输入到被驱动缓冲器13的输入的延迟。根据要求的精确度,可重复仿真大约100-1000次。从这些仿真中,SPICE可自动计算每一段的平均延迟t和标准差σ。可将一段的抖动定义为3σ。

在为时钟树的所有段计算了平均延迟和抖动值之后,可为时钟树上的路径或路径对计算抖动值。为此,考虑图4所示的示例时钟树。存在三个数据路径:从FF1到FF2、从FF1到FF3、以及从FF4到FF5。各时钟反相器段标有其标称延迟ti和标准差σi。每个σi考虑所有的四个源:工艺(P)、供电电压(V)、温度(T)和串扰(X)。另一抖动分量σiVX,是仅仅由于供电电压和串扰的变化而引起的延迟的标准差。让PLL循环时间为τ,其抖动为3σPLL。特定实施例依赖这样的假设:对于每一段,延迟与其它任何段不相关(或者独立于其它任何段)并且对于连续的周期与其自身不相关。通过用图5所示的参数变量计算两个连续段的延迟的标准差σ1和σ2以及由这两段组成的链的延迟σ,可验证该假设。在特定实施例中,σ1=0.73ps/mm,σ2=0.7ps/mm,并且σ=1.17ps/mm。那么 > >σ>12>>=>>>(>>σ>1>2sup>>+>>σ>2>2sup>>)>>>=>1.01>.> >虽然σ12相对于σ的百分数误差是14%,但是绝对西格马值的差(即,0.16ps/mm)仅为平均延迟(83.38ps/mm)的0.19%。如果PVTX变化增加,则该误差将进一步下降,加强了该假设。可如下组合构成路径的多个段的标准差。如果S1至Sn是路径上的段并且分别具有标准差σ1至σn,则可按给出该路径的抖动。传统STA按计算路径抖动,其比高得多。例如,假设时钟路径具有10个相同的段,每一段σ=10ps。传统STA将计算出300ps作为路径抖动,然而,在特定实施例中,统计学技术将其计算为 >>3>×>>10>×>100>>=>94.87>ps>.> >

特定实施例采用用于定时分析(例如,长路径和竞态分析)的统计学抖动方法。对于长路径分析,可以计算与图4的各数据路径(FFs,FFe)相对应的长路径分析的最小可用周期时间τavail(s,e)。τavail(s,e)是(FFs,FFe)路径的组合逻辑的最大延迟的上限。针对给定起始和结束触发器,使用等式2计算出τavail,即,通过从标称时钟周期时间τ减去起始触发器的标称(平均)时钟树延迟,并且将结束触发器的标称(平均)时钟树延迟加到标称时钟周期时间τ,然后减去该路径涉及的所有部件的抖动的平方和的根,计算出τavail。可减去抖动以计算可用周期时间的最小值。平方根符号前的项3表示使用了抖动的3σ析。应该注意,如果起始和结束FF之间存在多个时钟路径所共有的缓冲器,例如,对于起始触发器为FF1和结束触发器为FF2的缓冲器12和14,则它们的平均延迟之和(t1+t2)出现在两条路径中并且抵消。然而,缓冲器12和14对抖动的贡献分别是3×(2σ1VX2)和3×(2σ2VX2)。共享缓冲器的抖动贡献不是零。这是因为在长路径分析中,各共享缓冲器在一个周期中将其延迟贡献给as并在下一时钟周期中共献给ae。由于参数随着时间改变,所以这两个延迟可能不同。对于共享缓冲器,特定实施例仅包括因VX的变化,这是因为对于给定的缓冲器,没有工艺变化并且从一个周期到下一周期温度不应改变。此外,公共缓冲器出现两次:一次是对于起始触发器,一次是对于结束触发器。因此,将它们的平方的抖动分量乘以2。还可以包括PLL抖动3σPLL。相反,诸如PrimeTime的STA工具将起始触发器FF1和结束触发器FF2的τavail计算为τ-3(2σPLL +2σ1+2σ234)。

对于竞态分析,可针对图4的每条路径,计算结束触发器和起始触发器之间的同沿时钟到达时间的最大差。图7示出了所述计算。通过以下步骤可计算出它们:从到结束触发器的非共享时钟树段的时钟延迟中减去到起始触发器的非共享时钟树段的标称时钟延迟,并且随后加上这两条路径之间所有非共享时钟树段的抖动的平方和的根。对于竞态分析来说,共享缓冲器的抖动贡献为零,这是因为分析中仅涉及一个时钟周期。给定时钟树Q,以上方法需要识别Q的所有段,并利用SPICE使用蒙特卡罗仿真为各段计算平均延迟值和抖动延迟值。虽然非常精确,但是该方法通常计算强度大。在典型的设计中,在时钟树上有几十万个FF以及几千个缓冲器。各缓冲器与段对应。从计算上讲,对数以千计的段执行MCS可能是不可行的。在特定实施例中,一种树合成方法解决了该问题。

图8示出了时钟树合成和分析的示例方法。该方法是抖动和偏差意识的(jitter and skew aware)。该方法使用一个或更多个芯片规格(例如,芯片尺寸)、FF位置、以及一个或更多个变量模型。虽然在图8中示出的该方法的特定步骤是按照发生的特定顺序示出和描述的,但是图8中示出的该方法的任何适合的步骤可以按任何适合的顺序发生。一个或更多个计算机系统可帮助图8所示的方法中的一个或更多个步骤的执行。一般而言,使用现有技术的时钟树Q的抖动分析的计算强度大。然而,如果Q是完全对称的,则该分析会更高效。在这样的树中,就缓冲器的大小和它们之间的接线长度来说,从时钟源到FF的任意两条路径都基本相同。那么针对平均延迟和西格马延迟,仅辨别树的一条路径上的缓冲器段的特点就足够了。特定实施例假设PVTX参数的变化不是芯片上的位置的函数。对于特定变化模型,这是成立的。如果在特定变化模型的情况下该假设不成立,则可对时钟树中多于一条的路径上的缓冲器执行段抖动分析。因此,代替针对整个树的数以千计的段执行MCS,该问题减小到至多约二十或三十个段(即,路径中最大段数)的MCS。完全对称的树的另一优点在于,它具有零偏差。因此,特定实施例采用其中产生对称树的合成方法。特定实施例采用如下算法来合成对称时钟树。

触发器在芯片上的不均匀(空间)分布易于引起时钟分布的不对称。特定实施例通过产生由位于芯片中心的时钟源驱动的对称全局H树,接着从该H树的汇点(sink)等长连接到FF,来解决所述不均匀性。特定实施例将至多一个FF分配给各汇点。这确定了H树的级数l。例如,图9示出了从时钟源到FF的路径的示例段。更具体地,图9示出了具有16个汇点的二级树。如果n是设计中的FF的数量,4l≥n,则4l是H树的汇点的数量。FF到汇点的分配的目的在于使任何汇点s与分配给s的FF之间的最大距离最小化。设该最大距离为D。最终,各汇点通过长度为D的互连连接到分配的FF。如果一些FF到其汇点的距离小于D,则特定实施例使用迂回(detour)或转弯(jog)以使互连长度为D。如果存在没有分配的FF的汇点,则将长度为D的哑线与其连接,哑电容cf被附在该互连的末端,其中cf是FF是时钟针脚的输入电容。为了简化,特定实施例假设:cf对于各FF是相同的。通过使汇点与分配的FF之间的最大距离最小化,从汇点到FF的总互连长度也被最小化。

在特定实施例中,通过将至多一个FF分配给各汇点并使从各汇点到分配的FF的接线的长度相等,所有H树汇点呈现出相似的下行拓扑结构:连接到电容cf的长度为D的接线。这使得能够在树上产生相同的部,即,给定任何两个H树汇点si和sj,从时钟源到si和sj的路径相同,包括缓冲器和转发器的数量、位置和大小。

在特定实施例中,事先已知FF和H树汇点的位置。从配置数据(placement data)中读取FF的位置。根据芯片尺寸(高度和宽度)和树的级数l,可容易地计算出H树汇点的位置。顶级H以芯片的中心为中心,其宽度和高度分别是芯片宽度和高度的一些分数α。在较低级的H的宽度和高度等于父级宽度和高度的α倍。典型地,α=0.5。

在特定实施例中,通过解决双向图G中的完全瓶颈匹配问题,可确定FF对于H树汇点的确切分配。双向图包括两个不相交顶点集F和S,从而边只在F和S之间。各边e具有权值w(e)。匹配是该图的边的子集,这些边都不共享端点。完全匹配是这样的匹配:其中图的各顶点是匹配中的一些边的顶点。换句话说,完全匹配覆盖了所有顶点。图中存在完全匹配的条件是两个集合F和S具有相同的基数。瓶颈匹配问题旨在产生其最大权值为最小的匹配。图10示出了具有两个集合F和S以及带有权值的边的完全双向图G。粗体显示出匹配。它包括分别具有权值1、2和3的三个边(f1,s1)、(f2,s3)和(f3,s2)。该匹配也正好是瓶颈匹配问题的解。该匹配中的最大权值边的权值为3。该图中的任何其它完全匹配不能具有权值小于3的最大权值边。通过循环地调用完全匹配算法正好可解决瓶颈匹配问题。在循环i中,去除图中权值大于Wi-1的所有边,其中Wi-1是在循环(i-1)中获得的最大权值边。在新图中可获得完全匹配。在特定实施例中,算法终止,如果不能找到完全匹配的话,即,最后一个完全匹配产生了瓶颈匹配问题的解。除了线性查找之外,可以对边的权值使用折半查找,或者折半查找可以作为另选例。

在特定实施例中,在FF和H树汇点配对问题的情况下,可如下定义集合F和S。集合F对应于所有FF,集合S对应于H树汇点。将哑FF顶点添加到F以使这两个集合具有相同的基数,从而存在完全匹配的解。给定FFf和H树的汇点s,f和s之间有边,边的权值是f和s之间的曼哈顿距离(Manhattan distance)。入射哑FF的边的权值为零。图G的瓶颈匹配问题的解将产生期望的FF与汇点的配对。

由于大尺寸的G,存储边所需的存储器超过工作站的存储器限制。对于现实的设计,S可能具有多于1百万个顶点。这意味着图G中的边多于1万亿条。因此,特定实施例使用不明确存储图的边的启发式方法。该启发式方法通过对所有FF(按某顺序)进行循环并将FF与最近的未配对汇点进行配对,来进行初始匹配。然后,该启发式方法进入迭代的改进阶段,其中它尝试代替匹配中的最大权值边e1=(f1,s1)。通过将属于该匹配的另一边e2=(f2,s2)定位为使边e3=(f1,s2)和e4=(f2,s1)的权值小于e1的权值,来这样做。如果找到这样的边e2,则从匹配中去除e1和e2,并添加e3和e4

特定实施例使用H树产生程序,该程序还将转发器插入树中。可修改该程序来产生对称树,从而就缓冲器和转发器的相对位置、大小和数量以及互连的长度而言,从时钟源到FF的每条路径都相同。

在特定实施例中,由上述算法产生的对称时钟树Q执行抖动分析算法。在下面的第四和第五步,还可将使用统计学地计算的Q中的抖动对设计的关键路径(由传统STA提供)进行重新分析的后处理方案嵌入到所述分析中。

1、对Q执行SPICE分析以确定所有FF的时钟针脚的转换时间。

2、如上所述,时钟树Q是对称的。因此,对于抖动分析,只考虑Q中的一条路经P就够了。P从时钟源起始,并在任意选择的FF结束。P被分解为段或部。段Si从P上的缓冲器或转发器的输入针脚pi起始,并在P上第一个下游的缓冲器、转发器或FFpi+1终止。段Si还包括直至第一缓冲器/转发器/FF的pi和pi+1之间的分支(如果有的话)。图9示出了从时钟源pi起始并在FFp5终止的路径P的多个段。为了简化,将FF显示得与H树汇点重合。P具有四段。对于从1至4的每个i,段Si从pi起始并在pi+1结束,并且还包括直至pi+1的扇出分支。给出该时钟树,确定路径的段Si,对各Si执行MCS,并确定平均延迟和西格马延迟(ti,σi)。如果Si具有没有缓冲器的分支节点n,则计算Si中所有子段的延迟,包括从驱动缓冲器直至n的延迟以及从n至其扇出的延迟。段Si的延迟是在pi+1的电容负载和在pi的输入偏差的函数。不应忽略偏差变化。因此,对于每一段,在MCS期间计算偏差分布(就像延迟分布一样)并将其用作当对下一段刻画延迟和偏差特点时的输入(就像PVTX变化一样)。为了传播偏差分布,按这样的拓扑顺序对多个段进行遍历并刻画特点:从时钟根到汇点。此外,对于各Si可执行两种MCS:一种包括所有PVTX变化,另一种仅有VX变化。

3、使用(ti,σi),将Si的最小延迟设置为ti-k×σi,并将其最大延迟设置为ti+k×σi(k通常在3和6之间)。对树执行最小-最大分析以确定在所有FF时钟针脚的最小以及最大延迟。通过将各路径上的段延迟相加可完成该分析。这可以模仿PrimeTime的延迟计算。特定实施例可使用k=3。

4、使用在最后三步中计算出的在FF时钟针脚的最小和最大延迟以及转换时间来调用静态定时分析工具(诸如PrimeTime)。产生所有关键数据路径。

5、对于每条从FF起始并在FF终止的关键路径,使用上述抖动方法对到对应的源FF和目标FF的时钟路径进行重新分析。该方法使用统计学分析(代替诸如PrimeTime之类的工具中的最差情况分析)来计算在两个FF的时钟针脚处的到达时间。如果使用了新的到达时间该路径仍为关键路径,则重新估计,如果不是,则从考虑范围中将其去除。

在特定实施例中,全配对抖动分析程序为时钟树Q中的所有FF对计算3σ抖动值。给定从FFs起始在FFe结束的数据路径P,分别识别在Q中从时钟根到FFs和FFe的两条路径Ps和Pe。从时钟根开始,Ps和Pe将共享一些段,然后分叉。Q是对称的,就反相器的数量、它们的大小以及对应线段的长度而言,非共享路径是相同的。然后,在与图6所示的表达式相似的表达式中,为每一段插入σ值,特定实施例可计算P的总时钟抖动。如果q是Q中路径上的段的数量,则仅存在(q+1)个不同的抖动值。这些值对应于共享i个段的Ps和Pe,i=0到q。由于Q的对称性以及使用了独立于位置的变化模型,所以所有共享头i个段的FF对具有相同的抖动值。由于Q的对称性,该利用可被快速地执行。可将相似的利用用于竞态分析。

特定实施例提供时钟树分析方法,该方法包括抖动源(诸如Vdd、温度、工艺和串扰噪声的变化)的效果。特定实施例依赖于使用所包括的所有抖动源模型用SPICE以蒙特卡罗分析来精确地分析各缓冲器段的平均延迟和抖动。特定实施例与最差情况相反,是统计学的,并将单个段的抖动组合为平方和的根,而不是简单地将它们相加(如STA工具所做的)。特定实施例提出一种用于产生完全对称树的合成算法,对于所述完全对称树,可以极高效地计算出段和路径的抖动。

可将P、V和T变化的更现实的模型并入特定实施例。上面描述了一种改进V和T建模的方式。可将工艺变化首先分为系统的和随机的,然后适当地对其建模。

特定实施例给各H树汇点分配了一个FF。如果未分配汇点的数量较大,则浪费了显著的布线资源和电力。一种方法可聚合多个FF并将其分配给一个汇点,但是仍然产生几乎对称的树。

在特定实施例中,虽然对称树对于低偏差和高效抖动分析是有益的,但是它可能浪费了布线和电力。此外,难以产生完全的对称树,例如,在存在诸如RAM和第三方IP的障碍的情况下。而且,如果PVTX变化中的任一个是器件在芯片上的位置的函数(例如,串扰噪声),则特定实施例可适合这样的变化。可以使用在更宽泛的PVTX变化模型下对普通时钟树进行抖动分析的有效和精确的方法。

已将特定实施例用于描述本发明,本领域的技术人员可以理解在所附权利要求的范围内的一种或更多种改变、替换、变化、变更或变型。本发明包括所有这样的改变、替换、变化、变更和变型。

本发明要求2005年6月6日提交的名称为“An Efficient Jitter-andand Skew-Aware Methodology for Clock Tree Synthesis and Analysis”的美国临时专利申请60/687,740号的优先权。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号