在芯片设计中改善时序收敛的方法和系统的制作方法

文档序号:6337915阅读:337来源:国知局
专利名称:在芯片设计中改善时序收敛的方法和系统的制作方法
技术领域
本发明的各实施方式一般涉及集成电路芯片设计,并且更具体地涉及在芯片设计中改善时序收敛的方法和系统。
背景技术
时序分析通常是指设计者提出一些特定的时序要求或时序约束,使用特定的时序模型来针对芯片设计布图文件进行分析。在芯片设计中,时序分析问题是至关重要的,尤其是随着时钟频率的提高,留给数据传输的有效读写时序窗口越来越小。如果希望在很短的时间中使数据从发送端完整地传送到接收端,就必须进行精确的时序分析。芯片设计中的时序收敛通常是指前后端设计时序一致,即对于设计者在设计阶段规定的特定时序要求,在完成布局布线和寄生参数提取之后芯片仍能满足所设计的时序要求。然而,一般情况下,在芯片设计中,设计者在设计阶段没有或者无法考虑到精确的连线和器件延迟信息,所以很容易造成布图后的时序不收敛。能够实现时序收敛的芯片设计布图,可以通过验收(sign off),并交由芯片制造厂用于生产芯片。近年来,随着工艺的进步,连线和器件延迟越来越占据主导地位,时序收敛问题则越来越多并且越来越严重。在32纳米、45纳米等制造工艺中,裸片间违例以及裸片内违例的影响已经变得显著。然而,现有技术的芯片设计方法在时序收敛方面的速度和效率并不如人所愿,由此造成了芯片设计成本增大以及可能的其他相关问题。

发明内容
因此,需要一种在芯片设计中能够高效和快速改善时序收敛的方法和系统。在一个实施方式中,提供了一种在芯片设计中改善时序收敛的方法。该方法包括步骤识别芯片设计图中的关键时序路径,其中关键时序路径的时序窗口小于预定时序窗口 ;确定关键时序路径的各段的差异度,其中差异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的不确定性;根据关键时序路径的各段的差异度(variation),改变关键时序路径的至少一段,以增大关键时序路径的时序窗口。在另一个实施方式中,提供了一种在芯片设计中改善时序收敛的系统。该系统包括关键路径识别装置,用于识别芯片设计图中的关键时序路径,其中关键时序路径的时序窗口小于预定时序窗口 ;差异度确定装置,用于确定关键时序路径的各段的差异度,其中差异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的不确定性;路径改变装置,用于根据关键时序路径的各段的差异度,改变关键时序路径的至少一段,以增大关键时序路径的时序窗口。在另一个实施例中,提供了一种计算机可读介质,其中有形地载有用于实现本发明的在芯片设计中改善时序收敛的方法的计算机程序。本发明的各实施方式,在芯片设计过程中,可以加快时序收敛速度、提高时序收敛效率。通过以下结合附图对本发明诸多实施方式的描述,本发明的其他特征和优点将会更加明显。


通过以下结合附图的说明,并且随着对本发明的更全面了解,本发明的其他目的和效果将变得更加清楚和易于理解,其中图1是按照本发明的一个实施例的在芯片设计中改善时序收敛的方法的流程图;图2是按照本发明的另一个实施例的在芯片设计中改善时序收敛的方法的流程图;图3是一个芯片设计图的局部形象化示意图;图4是按照本发明的一个实施例的时序窗口的示意图;图5是按照本发明的另一个实施例的在芯片设计中改善时序收敛的系统的方框图;以及图6是在半导体设计、制造和/或测试中使用的典型设计流程的框图。附图中,相同的标号表示相同、相似或相应的特征或功能。
具体实施例方式将参照附图更加详细地描述本发明的诸多实施方式。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。在一个实施方式中,从等待验收(sign off)的芯片设计图文件中识别该芯片设计布图中的关键时序路径,其中关键时序路径是指其时序窗口小于预定时序窗口的时序路径;确定关键时序路径各段的差异度;以及根据关键时序路径的各段的差异度,改变关键时序路径的至少一段(例如一个器件或者一条连线),以增大关键时序路径的时序窗口。上述过程可以重复进行,直至该芯片设计布图中不再存在关键时序路径,从而完成对该芯片设计布图的验收。在另一个实施方式中,在生成的网表设计图、布局设计图和布线设计图中,都可以识别关键时序路径,采用上述方法修改该关键时序路径中的一段,以改善时序收敛。为更好地描述本发明的实施方式,先对一些概念进行说明如下。芯片设计图,例如是一个以硬件描述语言编写的文件,包括网表设计图、布局设计图和布线设计图等;它可以具有多条“路径”,每条路径包括一个或多个段,每个“段”包括一个器件或者一条连线等。路径的起点和终点分别是两个不同的寄存器。图3给出了一个芯片设计图的局部形象化示意图。在图3所示的例子中,寄存器1与寄存器2之间示例性地描绘了一条路径,该路径包括连线AB、器件Gl、G2、G3以及连线⑶。
假设图3中的寄存器1发送数据,寄存器2接收数据并根据本地时钟对接收的数据进行采样,由于数据在从寄存器1至寄存器2的传输过程中会经过器件G1、G2、G3以及连线,所以会造成延时并影响数据的稳定传输。数据稳定传输必须满足建立时间(setup time)和保持时间(holdtime)的要求。 建立时间是指在寄存器的时钟信号上升沿到来以前,数据达到稳定不变的时刻与时钟信号上升沿之间的时段;如果建立时间不够,数据将不能在这个时钟上升沿被打入寄存器。保持时间是指在寄存器的时钟信号上升沿到来以后,数据保持稳定不变的时段;如果保持时间不够,数据同样不能被打入寄存器。由于生产工艺存在不确定性,电路中的每一个器件或连线的延迟都有一个取值范围,而非是一个确定的值。早模式延迟,是指器件或连线在生产工艺下“最快”的模式下的延迟;迟模式延迟,是指器件或连线在生产工艺下“最慢”的模式下的延迟。迟模式延迟值一般大于早模式延迟值。早模式延迟值和迟模式延迟值可以从时序分析结果中得到。例如, 可以得到寄存器2处的以下六个值数据迟模式到达时间AT (arrival time)(也即,数据最晚到达时间)、数据早模式到达时间(也即,数据最早到达时间)、时钟迟模式到达时间、时钟早模式到达时间、建立保护时间(guard time)、保持保护时间。以下示例性地描述了怎样使用这六个值判断是否满足建立时间和保持时间的要求。(1)建立检查判断数据迟模式到达时间是否比时钟早模式到达时间(也即,时钟上升沿到达时间,其等于数据早模式到达时间)早一个建立保护时间;如果是,则确定满足建立时间要求;否则,则确定不满足建立时间要求。(2)保持检查判断数据早模式到达时间是否比时钟迟模式到达时间(也即,时钟上升沿到达时间,其等于数据迟模式到达时间)早一个保持保护时间;如果是,则确定满足保持时间要求;否则,则确定不满足保持时间要求。下面说明本发明的实施方式中使用的时序窗口的概念。图4是按照本发明的一个实施例的时序窗口的示意图。在数字电路中,时钟信号是一拍一拍连续的周期信号,假设寄存器1在第一拍时钟上升沿发送数据信号,则在寄存器2第一拍时钟上升沿进行保持检查 (数据不能早过T2),在寄存器2第二拍时钟上升沿进行建立检查(数据不能迟于T3),T2 至T3这段时间内数据可以变化,从Tl到T2这段时间称为时序上数据可被采样的窗口,又称为时序窗口。时序窗口越大越好,理想情况是电路延迟的迟模式延迟与早模式延迟完全一样;此时,时序窗口可以达到最大,例如一个时钟周期。但是,实际芯片中时序窗口通常较小,甚至小到时钟无法采集数据。在本发明的实施方式中,将数据可以进行稳定传输所需的时序窗口设定为预定时序窗口。如果芯片设计图中的路径的时序窗口小于预定时序窗口,则其不能保证数据的稳定传输,此时将该路径称为关键时序路径,也叫时序窗口不足(no timing window, NTff)路径。在本发明的实施方式中,差异度用于描述由于至少一种因素影响而导致的器件和 /或连线的延时的不确定性,这些因素例如是电压、温度、生产等因素。在本发明中,可以通过若干方式来计算关键时序路径的各段的差异度,例如可以通过计算期间参数,或者通过工具模拟等,在本发明的优选实施方式中,是通过得到关键时序路径的各段的旱模式延迟值和迟模式延迟值、然后确定各段的迟模式延迟值与早模式延迟值之间的差别来作为各段的差异度。迟模式延迟值与早模式延迟值之间的差别可以通过多种方式来得到,例如该差别可以是迟模式延迟值与早模式延迟值之差或者迟模式延迟值与早模式延迟值之比。图1是按照本发明的一个实施例的在芯片设计中改善时序收敛的方法的流程图。在步骤101,识别芯片设计图中的关键时序路径,其中关键时序路径是指其时序窗口小于预定时序窗口的路径。根据前述,如果芯片设计图中的路径的时序窗口小于预定时序窗口,则这样的路径是一条关键时序路径。在一个芯片设计图中,通常包括一条或多条路径,可以逐一判断每条路径是否是关键时序路径。由此,当判断完整个芯片设计图时,可能得到一个关键路径集合,该集合可能包括若干条关键路径,也可能不包含任何关键路径。在一个实施例中,可以基于对芯片设计图的时序分析结果来确定所述芯片设计图中的路径是否是关键时序路径。可以采用各种现有的时序分析工具来得到时序分析结果, 这种时序分析工具例如是可从美国加利福尼亚州的新思科技公司购得的I^rimeTime等。所生成的时序分析结果可以包括多种时序信息,例如,芯片设计图中包含哪些路径、每条路径的早模式时序余量(slack)和迟模式时序余量、每条路径包含哪些段、每个段的早模式延迟值和迟模式延迟值,等等。早模式时序余量是指早到达时间的量化值;迟模式时序余量是指晚到达时间的量化值。正的时序余量值表明给定节点的当前到达时间满足所有下行时序约束;负的时序余量值表明该到达时间不能满足至少一个下行时序约束。可以根据时序分析结果得到芯片设计图中各条路径的早模式时序余量和迟模式时序余量,从而可以根据预定策略逐一判断每条路径是否是关键时序路径。在另一个实施例中,可以预先准备一个器件库及其描述信息,该器件库的描述信息中存储有各种器件的差异度范围和排序。器件库可以是从器件的制造商或销售商处得到的,也可以是技术人员根据器件的特性而自行得到的,还可以根据本领域技术人员公知的任何其他方法得到。根据该器件库和网表,可以得到芯片设计图中各条路径的早模式时序余量和迟模式时序余量,从而可以根据预定策略逐一判断每条路径是否是关键时序路径。预定策略例如可以是对迟模式时序余量加权;将加权后的迟模式时序余量与早模式时序余量求和;以及当求和结果小于预定时序余量阈值并且迟模式时序余量为负时, 将路径确定为关键时序路径。再例如,预定策略可以是对早模式时序余量加权;将加权后的早模式时序余量与迟模式时序余量求和;以及当求和结果小于预定时序余量阈值并且早模式时序余量为负时,将路径确定为关键时序路径。可以通过任何适当地方式或形式预先定义预定策略,而不限于上述的例子。在步骤102,确定关键时序路径的各段的差异度。差异度的确定方法前面已经陈述,这里不再赘述。在步骤103,以与关键时序路径的各段的差异度相应的方式,改变关键时序路径的至少一段,以增大关键时序路径的时序窗口。在一个实施方式中,根据步骤102得到的各条关键时序路径的各段的差异度,对各条关键时序路径逐一进行处理。对于一条关键时序路径而言,首先需要知道关键时序路径中哪个或哪些段的差异度较大。如果将这种差异度较大的段替换为具有更低差异度的段,则可以降低整条路径的差异度,增加该路径的时序窗口宽度。因此,可以将具有较大差异度的段确定为需要进行改变的段,然后将确定的段改变为具有更低差异度的、实现相同功能的段。在改变一个或多个段之后,关键时序路径的功能不会发生任何变化,但是其差异度得以降低,从而可以保证数据的稳定传输。在一个实施方式中,可以预先准备一个器件库及其描述信息,所述器件库的描述信息中存储有各种器件的差异度范围和排序。当在步骤103中改变关键时序路径的段时, 首先可以确定要进行改变的段的差异度,然后可以根据器件库的描述信息来从器件库中查找具有低于该差异度的器件。器件库可以是从器件的制造商或销售商处得到的,也可以是技术人员根据器件的特性而自行得到的,还可以根据本领域技术人员公知的任何其他方法得到。图2是按照本发明的另一个实施例的在芯片设计中改善时序收敛的方法的流程图。如图2所示,在步骤201,对芯片设计图进行时序分析,生成时序分析结果。在本领域中,存在多种对芯片设计图进行时序分析的方法和工具,本领域技术人员可以根据现有的任何方法来生成时序分析结果。应该注意的是,步骤201是可选的,对芯片设计图进行时序分析方便了识别芯片设计图中的关键时序路径和确定所述关键时序路径的各段的差异度。但是,在其他实施例中,也可以根据预先准备的器件库和网表来识别芯片设计图中的关键时序路径和确定所述关键时序路径的各段的差异度。此外,还可以使用本领域技术人员公知的任何其他适当方法来识别品牌设计图中的关键时序路径。这里的芯片设计图包括网表建立、布局或布线之后的生成结果,不单指交予验收之前的芯片设计文件。在步骤202,从时序分析结果获取芯片设计图中的路径的早模式时序余量和迟模式时序余量。在此步骤中,可以从步骤201生成的时序分析结果中查找芯片设计图中各条路径的早模式时序余量和迟模式时序余量,所查找到的早模式时序余量和迟模式时序余量可以用于判断相应路径是否是关键时序路径。在步骤203,根据所得到的早模式时序余量和迟模式时序余量,确定芯片设计图中的路径是否是关键时序路径。在以下描述中,为了便于说明,将早模式时序余量记为Se,将迟模式时序余量记为Si。可以通过判断早模式时序余量义和迟模式时序余量Sl是否满足预定策略来确定一条路径是否为关键时序路径。在一个例子中,预定策略可以是对迟模式时序余量加权;将加权后的迟模式时序余量与早模式时序余量求和;当所述求和结果小于预定时序余量阈值并且迟模式时序余量为负时将该路径确定为关键时序路径。该预定策略可以用以下式(1)表示Sl < 0 并且 aXSl+k < M (1)其中,a是时序环境中的通用差异度,取决于电压、温度等,而M是预定义的参数, 根据工艺环境(如多少纳米)确定,通常将M设定为0。例如,设定a = 2,M = 0。如果一条路径的早模式时序余量k = 0. 100且迟模式时序余量 Sl = -0. 100,则由于 aXSl+k = 2X (-0. 100)+0. 100 < 0,并且由于 Sl < 0,所以满足式(1)的要求,由此可以判断该路径是关键时序路径。如果一条路径的早模式时序余量 k = 0. 300 且迟模式时序余量 Sl = -0. 100,则由于 aXSl+k = 2X (-0. 100)+0. 300 > 0,所以不满足式(1)中的aXSl+Se < Μ,由此可以判断该路径不是关键时序路径。在另一个例子中,预定策略也可以是对早模式时序余量加权;将加权后的早模式时序余量与迟模式时序余量求和;当求和结果小于预定时序余量阈值并且早模式时序余量为负时,将路径确定为关键时序路径。该预定策略可以用以下式( 表示Se < 0 并且 Sl+b X Se < M (2)其中,b是时序环境中的通用差异度,而M是预定义的参数,通常将M设定为0。需要注意的是,上述预定策略仅仅是示例性的,还可以根据任何其他适当的预定策略来判断路径是否为关键时序路径。在步骤204,判断是否处理完所有关键时序路径。在执行完步骤203之后,可以确定芯片设计图中有哪些路径是关键时序路径,从而得到一个关键时序路径集合。由于芯片设计图中的路径中可以存在一条或多条关键时序路径,也可以不存在关键时序路径,因此关键时序路径集合中的路径数目N大于或等于0。当N = 0时,表明关键时序路径集合为空,从而可以认为相当于处理完所有关键时序路径,由此结束整个流程处理。当N > 0时, 表明关键时序路径集合中存在一条或多条关键时序路径,因此开始对每一条关键时序路径逐一执行步骤205-209的处理,直到判断完所有N条路径为止。例如,假设N = 2,这表明步骤203确定芯片设计图中的路径中有两条是关键时序路径。当流程首次执行到步骤204时,也即针对第一条关键时序路径时,路径计数器i = 1, 并且i < N,可以确定此时未处理完所有关键时序路径,所以执行步骤205-209 ;在执行完步骤209之后,如果重新回到步骤204,则此时路径计数器加1,也即i = 2,并且i = N,因此可以确定仍未处理完所有关键时序路径,所以执行步骤205-209 ;在执行完步骤209之后, 如果重新回到步骤204,则此时路径计数器加1,也即i = 3,并且i > N,由此可以确定已处理完所有关键时序路径,从而整个流程结束。在一个实施方式中,对于关键时序路径集合中的每一条关键时序路径,都分别执行步骤205-209。总体而言,步骤205-209是基于时序分析结果来确定所述关键时序路径的各段的差异度、并且以与所述关键时序路径的各段的差异度相应的方式改变关键时序路径的至少一段的处理过程。在步骤205,从时序分析结果得到关键时序路径的各段的早模式延迟值和迟模式延迟值。如前所述,时序分析结果可以包括关键时序路径的各段的早模式延迟值和迟模式延迟值。为了便于说明,下文将早模式延迟值记为DEM,将迟模式延迟值记为DLM。如上文已述,路径中的“段”可以是器件或者连线,因此器件可以具有早模式延迟值DEM和迟模式延迟值DLM,连线也可以具有DEM和DLM。在步骤206,确定各段的迟模式延迟值与早模式延迟值之间的差别作为各段的差异度。如前所述,差异度用于描述由于电压、温度、生产等因素影响而导致的器件和/或连线的延时的不确定性。可以将迟模式延迟值与早模式延迟值之比作为差异度;也可以将迟模式延迟值与早模式延迟值之差作为差异度,例如可以根据下式计算每个段的差异度段的差异度=该段的迟模式延迟值-该段的早模式延迟值(3)由此可知,器件的差异度等于器件的DLM减去DEM,连线的差异度等于连线的DLM 减去DEM。例如,假设图3中的器件Gl的迟模式延迟值是600ps,早模式延迟值是400ps,则可以得到器件Gl的差异度是600ps-400ps = 200ps。应该注意的是,可以使用除了式C3)之外的方式来计算段的差异度,例如可以通过将早模式延迟值或迟模式延迟值加权再求差,或者可以通过任何其他适当的方式来计算该段的差异度。
在步骤207,基于关键时序路径的各段的差异度,确定该关键时序路径中的需要改变的段。存在多种方法确定关键时序路径中需要改变哪个或哪些段。在一个例子中,可以对关键时序路径中的各段的差异度进行排序;然后,将与该关键时序路径的最大差异度相对应的段确定为需要进行改变的段。例如,假设图3中的路径(A-D)是一条关键时序路径,则从图3中可知,该关键时序路径A-D包括5个段连线AB、器件G1、器件G2、器件G3、连线⑶。假设各段的差异度如以下表1所示表1 关键时序路径A-D各段的差异度
路径A-D 连线AB 器件Gl 器件G2 器件G3 连线CD 差异度 50ps200psIOOps130ps20ps通过对上述各段的差异度进行排序可知,器件Gl的差异度最大,因此将器件Gl确定为需要进行改变的段。在另一个例子中,可以通过对该关键时序路径的各段的差异度求和,从而得到该关键时序路径的差异度;计算各段的差异度相对于所述关键时序路径的差异度的差异度比例;并将该关键时序路径中的差异度比例高于预定阈值的段确定为需要进行改变的段。例如,假设图3中的路径(A-D)是一条关键时序路径,则从图3中可知,该关键时序路径A-D包括5个段连线AB、器件G1、器件G2、器件G3、连线⑶。假设各段的差异度及其比例如以下表2所示表2 关键时序路径A-D各段的差异度及其比例
路径A-D 连线AB 器件Gl 器件G2 器件G3 连线CD 差异度 50ps200psIOOps130ps 20ps
比例10%40%20%26%4%在本例子中假设差异度比例的预定阈值是25%,因此差异度比例大于该预定阈值的段有两个,分别是器件Gl和器件G2,因此可以将器件Gl和器件G2都确定为需要改变的段。在另一实施例中,也可以通过对差异度比例进行排序后,仅将与最大差异度比例相对应的段确定为需要改变的段。应该注意的是,除了以上所示的具体例子之外,还可以利用多种其他适当的方式来确定需要进行改变的段。举例而言,还可以对关键时序路径中的各段的差异度进行排序, 例如共有3个段,其中两个是连线,一个是器件;然后将差异度大于预定阈值的段都确定需要进行改变的段,例如这3个段中有一个器件和一个连线的差异度都大于预定阈值,则此时可以将这个器件和这个连线都确定为需要进行改变的段。在步骤208,将所确定的段替换为实现相同功能并具有更低差异度的段。此步骤的目的之一是将差异度高的段替换为差异度低的段,同时不影响实现该段的功能。当步骤207 确定的要进行改变的段是器件时,可以将所述器件替换为具有更低差异度的器件;在某些
1例子中,在不影响电路功能的情况下也可以将该器件替换为连线。当步骤207确定的要进行改变的段是连线时,例如金属线,可以将所确定的连线替换为更宽的连线。具体而言,可以采用多种方式来实现更宽的连线。例如,可以采用更高的金属层,因为金属层较高的连线通常走线通道更宽,同时可走线的通道条数也较少;另外,也可以通过设置连线的属性等方法也可以实现更宽的连线。在步骤209,判断该路径是否仍为关键时序路径。如果判断改变后的路径不再是关键时序路径,则进入步骤204来处理下一条关键时序路径;如果判断改变后的路径仍然还是关键时序路径,则继续执行步骤207-209,再次确定需要改变该路径中的哪个或哪些段 (步骤207),并在改变(步骤208)之后再次进行是否为关键时序路径的判断(步骤209)。图5是按照本发明的另一个实施例的在芯片设计中改善时序收敛的系统的方框图。如图5所示,系统500包括关键路径识别装置501、差异度确定装置502和路径改变装置503。另外,系统500还可以包括时序分析单元。关键路径识别装置501用于识别芯片设计图中的关键时序路径,其中关键时序路径的时序窗口小于预定时序窗口。在一个实施例中,关键路径识别装置501可以包括用于获取芯片设计图中的路径的早模式时序余量和迟模式时序余量的装置;用于对迟模式时序余量加权的装置;用于将加权后的迟模式时序余量与早模式时序余量求和的装置;以及用于当求和结果小于预定时序余量阈值并且迟模式时序余量为负时,将路径确定为关键时序路径的装置。在另一个实施例中,关键路径识别装置501可以包括用于获取芯片设计图中的路径的旱模式时序余量和迟模式时序余量的装置;用于对早模式时序余量加权的装置;用于将加权后的早模式时序余量与迟模式时序余量求和的装置;以及用于当求和结果小于预定时序余量阈值并且早模式时序余量为负时,将路径确定为关键时序路径的装置。差异度确定装置502用于确定关键时序路径的各段的差异度,其中差异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的不确定性。差异度确定装置502 可以包括用于得到关键时序路径的各段的早模式延迟值和迟模式延迟值的装置;以及用于确定迟模式延迟值与早模式延迟值之间的差别作为差异度的装置。其中,迟模式延迟值与早模式延迟值之间的差别可以是以下之一迟模式延迟值与早模式延迟值之差,以及迟模式延迟值与早模式延迟值之比。路径改变装置503,用于根据关键时序路径的各段的差异度,改变关键时序路径的至少一段,以增大关键时序路径的时序窗口。该路径改变装置503可以包括改变确定单元,用于基于关键时序路径的各段的差异度,确定关键时序路径中的需要进行改变的段;以及替换单元,用于将所确定的段替换为实现相同功能并具有更低差异度的段。在一个实施例中,改变确定单元可以包括用于对关键时序路径的各段的差异度进行排序的装置;以及用于将与关键时序路径的最大差异度相对应的段确定为需要进行改变的段的装置。在另一个实施例中,改变确定单元可以包括用于通过对关键时序路径的各段的差异度求和,得到关键时序路径的差异度的装置;用于计算各段的差异度相对于关键时序路径的差异度的差异度比例的装置;以及用于将关键时序路径中的差异度比例高于预定阈值的段确定为需要进行改变的段的装置。在一个实施例中,替换单元可以包括用于当所确定的段是器件时,将器件替换为具有更低差异度的器件或连线,以增大关键时序路径的时序窗口的装置;以及用于当所确定的段是连线时,将所确定的连线替换为更宽的连线,以增大关键时序路径的时序窗口的
直ο另外,在芯片设计中改善时序收敛的系统500还可以包括时序分析单元,该时序分析单元用于对芯片设计图进行时序分析,生成时序分析结果,以便识别芯片设计图中的关键时序路径和确定关键时序路径的各段的差异度。另外,在芯片设计中改善时序收敛的系统500还可以包括器件库,该器件库可以预先得到。该器件库可以具有描述信息,该描述信息中存储有各种器件的差异度范围和排序。在本发明中,“段”可以是器件或连线。在本发明中,差异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的不确定性。图6是在半导体设计、制造和/或测试中使用的典型设计流程的框图。设计流程 600可以根据被设计IC的类型而变化。例如,用于构建特定用途集成电路的设计流程600 可以不同于设计标准元件的设计流程600。设计结构620优选为设计工艺610的输入并且可以来自IP提供者、核心开发者或者其它设计公司,或者可以由设计流程的操作者产生, 或者来自于其它源。设计结构620包括以电路图或者HDL,硬件描述语言(例如Verilog, VHDL,C等)示出本发明的实施例。设计结构620可以包含在一个或者多个机器可读媒介中。例如,设计结构620可以是本发明实施例的文本文件表示或者图形表示。设计工艺610 优选将本发明的实施例综合(或转化)为网表680,这里网表680是例如连线、晶体管、逻辑门、控制电路、I/O、模块等的列表,其描述了集成电路设计中其他元件和电路的连接并且记载在至少一个机器可读介质上。这可以是一个反复的过程,根据电路的设计说明和参数,网表680被再综合一次或多次。设计工艺610可以包括使用各种输入,例如,来自库元件630的输入,该库元件630 可以容纳一组常用的元件、电路和装置,包括模块、布图以及符号表示法,用于给定的制造技术(例如不同的技术节点,32nm、45nm、90nm等),来自设计说明640的输入,来自特征校准数据650的输入,来自验证数据660的输入,来自设计规则670的输入以及来自测试数据文件685(可以包括测试模式和其他测试信息)的输入。设计工艺610还可以包括,例如,诸如时序分析、验证、设计规则检查、布局和布线操作等的标准电路设计工艺。在不脱离本发明的范围和精神的范围内,集成电路设计的本领域普通技术人员可以理解在设计工艺610 中使用的可能的电子设计自动化工具和应用的范围。本发明的设计结构不限于任何特定的设计流程。设计工艺610优选为将本发明的实施例以及任何附加的集成电路设计或数据(如果可适用)转化为第二设计结构690。设计结构690以用于集成电路的布图数据交换的数据格式(例如以⑶SII (⑶S2),GL1,0ASIS或存储这种设计结构的任何其他适合的格式存储的信息)存储在存储介质上。设计结构690可以包括如下信息,例如测试数据文件、设计内容文件、制造数据、布图参数、布线、金属级别、过孔、形状、用于通过生产线寻径的数据以及半导体制造商生产本发明的实施例所需的任何其他数据。然后设计结构690可以前进到步骤695,这里设计结构690例如进行流片,交付制造,交付掩模室,被送到另一个设计室,返回到客户等。
根据上述描述,所属技术领域的技术人员知道,本发明可以体现为装置、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有形的表达介质(medium of expression)中的计算机程序产品的形式,该介质中包含计算机可用的程序码。可以使用一个或多个计算机可用的或计算机可读的介质的任何组合。计算机可用的或计算机可读的介质例如可以是——但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、或者磁存储器件。注意计算机可用的或计算机可读的介质甚至可以是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适当的方式加以编译、解释或处理,并且必要的话在计算机存储器中存储。在本文件的语境中,计算机可用的或计算机可读的介质可以是任何含有、存储、传达、传播、或传输供指令执行系统、装置或器件使用的或与指令执行系统、装置或器件相联系的程序的介质。计算机可用的介质可包括在基带中或者作为载波一部分传播的、由其体现计算机可用的程序码的数据信号。计算机可用的程序码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等。用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk, C++之类,还包括常规的过程式程序设计语言,诸如,,C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算机上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络,包括局域网 (LAN)或广域网(WAN),连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。此外,本发明的流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能 /操作的装置。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的制造品,也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
虽然这里参照附图描述了本发明的示例性实施例,但是应该理解本发明不限于这些精确的实施例,并且在不背离本发明的范围和宗旨的情况下,本领域普通技术人员能对实施例进行各种变化的修改。所有这些变化和修改意欲包含在所附权利要求中限定的本发明的范围中。
权利要求
1.一种在芯片设计中改善时序收敛的方法,包括识别芯片设计图中的关键时序路径,其中所述关键时序路径的时序窗口小于预定时序窗口 ;确定所述关键时序路径的各段的差异度,其中所述差异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的不确定性;以及根据所述关键时序路径的各段的差异度,改变所述关键时序路径的至少一段,以增大所述关键时序路径的时序窗口。
2.根据权利要求1所述的方法,其中确定所述关键时序路径的各段的差异度包括 得到所述关键时序路径的各段的早模式延迟值和迟模式延迟值;以及确定所述迟模式延迟值与所述早模式延迟值之间的差别作为所述差异度。
3.根据权利要求2所述的方法,其中所述迟模式延迟值与所述早模式延迟值之间的差别是以下之一所述迟模式延迟值与所述早模式延迟值之差,以及所述迟模式延迟值与所述早模式延迟值之比。
4.根据权利要求1-3之一所述的方法,其中根据所述关键时序路径的各段的差异度改变所述关键时序路径的至少一段包括基于所述关键时序路径的各段的差异度,确定所述关键时序路径中的需要进行改变的段;以及将所确定的段替换为实现相同功能并具有更低差异度的段。
5.根据权利要求4所述的方法,其中基于所述关键时序路径的各段的差异度确定所述关键时序路径中的需要进行改变的段包括对所述关键时序路径的各段的差异度进行排序;以及将与所述关键时序路径的最大差异度相对应的段确定为所述需要进行改变的段。
6.根据权利要求4所述的方法,其中基于所述关键时序路径的各段的差异度确定所述关键时序路径中的需要进行改变的段包括通过对所述关键时序路径的各段的差异度求和,得到所述关键时序路径的差异度; 计算所述各段的差异度相对于所述关键时序路径的差异度的差异度比例;以及将所述关键时序路径中的差异度比例高于预定阈值的段确定为所述需要进行改变的段。
7.根据权利要求4所述的方法,其中将所确定的段替换为实现相同功能并具有更低差异度的段包括当所确定的段是器件时,将所述器件替换为具有更低差异度的器件或连线,以增大所述关键时序路径的时序窗口 ;以及当所确定的段是连线时,将所确定的连线替换为更宽的连线,以增大所述关键时序路径的时序窗口。
8.根据权利要求1所述的方法,其中识别所述芯片设计图中的关键时序路径包括 获取所述芯片设计图中的路径的早模式时序余量和迟模式时序余量;对所述迟模式时序余量加权;将加权后的迟模式时序余量与早模式时序余量求和;以及当所述求和结果小于预定时序余量阈值并且所述迟模式时序余量为负时,将所述路径确定为关键时序路径。
9.根据权利要求1所述的方法,其中识别所述芯片设计图中的关键时序路径包括 获取所述芯片设计图中的路径的早模式时序余量和迟模式时序余量;对所述早模式时序余量加权;将加权后的早模式时序余量与迟模式时序余量求和;以及当所述求和结果小于预定时序余量阈值并且所述早模式时序余量为负时,将所述路径确定为关键时序路径。
10.根据权利要求1所述的方法,在识别芯片设计图中的关键时序路径之前还包括 对芯片设计图进行时序分析,生成时序分析结果。
11.一种在芯片设计中改善时序收敛的系统,包括关键路径识别装置,用于识别芯片设计图中的关键时序路径,其中所述关键时序路径的时序窗口小于预定时序窗口;差异度确定装置,用于确定所述关键时序路径的各段的差异度,其中所述差异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的不确定性;以及路径改变装置,用于根据所述关键时序路径的各段的差异度,改变所述关键时序路径的至少一段,以增大所述关键时序路径的时序窗口。
12.根据权利要求11所述的系统,其中所述差异度确定装置包括用于得到所述关键时序路径的各段的早模式延迟值和迟模式延迟值的装置;以及用于确定所述迟模式延迟值与所述早模式延迟值之间的差别作为所述差异度的装置。
13.根据权利要求12所述的系统,其中所述迟模式延迟值与所述早模式延迟值之间的差别是以下之一所述迟模式延迟值与所述早模式延迟值之差,以及所述迟模式延迟值与所述早模式延迟值之比。
14.根据权利要求11-13之一所述的系统,其中所述路径改变装置包括改变确定单元,用于基于所述关键时序路径的各段的差异度,确定所述关键时序路径中的需要进行改变的段;以及替换单元,用于将所确定的段替换为实现相同功能并具有更低差异度的段。
15.根据权利要求14所述的系统,其中所述改变确定单元包括 用于对所述关键时序路径的各段的差异度进行排序的装置;以及用于将与所述关键时序路径的最大差异度相对应的段确定为所述需要进行改变的段的装置。
16.根据权利要求14所述的系统,其中所述改变确定单元包括用于通过对所述关键时序路径的各段的差异度求和,得到所述关键时序路径的差异度的装置;用于计算所述各段的差异度相对于所述关键时序路径的差异度的差异度比例的装置;以及用于将所述关键时序路径中的差异度比例高于预定阈值的段确定为所述需要进行改变的段的装置。
17.根据权利要求14所述的系统,其中所述替换单元包括用于当所确定的段是器件时,将所述器件替换为具有更低差异度的器件或连线,以增大所述关键时序路径的时序窗口的装置;以及用于当所确定的段是连线时,将所确定的连线替换为更宽的连线,以增大所述关键时序路径的时序窗口的装置。
18.根据权利要求11所述的系统,其中所述关键路径识别装置包括用于获取所述芯片设计图中的路径的早模式时序余量和迟模式时序余量的装置; 用于对所述迟模式时序余量加权的装置;用于将加权后的迟模式时序余量与早模式时序余量求和的装置;以及用于当所述求和结果小于预定时序余量阈值并且所述迟模式时序余量为负时,将所述路径确定为关键时序路径的装置。
19.根据权利要求11所述的系统,其中所述关键路径识别装置包括用于获取所述芯片设计图中的路径的早模式时序余量和迟模式时序余量的装置; 用于对所述早模式时序余量加权的装置;用于将加权后的早模式时序余量与迟模式时序余量求和的装置;以及用于当所述求和结果小于预定时序余量阈值并且所述早模式时序余量为负时,将所述路径确定为关键时序路径的装置。
20.根据权利要求11所述的系统,还包括时序分析单元,用于对芯片设计图进行时序分析,生成时序分析结果。
全文摘要
公开了一种在芯片设计中改善时序收敛的方法和系统,该方法包括步骤识别芯片设计图中的关键时序路径,其中关键时序路径的时序窗口小于预定时序窗口;确定关键时序路径的各段的差异度,其中差异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的不确定性;根据关键时序路径的各段的差异度,改变关键时序路径的至少一段,以增大关键时序路径的时序窗口。本方法和系统能够通过降低关键时序路径的差异度来扩大其时序窗口,从而达到芯片设计图的时序收敛。
文档编号G06F17/50GK102479277SQ20101057702
公开日2012年5月30日 申请日期2010年11月29日 优先权日2010年11月29日
发明者何仙娥, 戴红卫, 杜晨, 牛佳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1