首页> 中国专利> 在芯片设计中改善时序收敛的方法和系统

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

摘要

公开了一种在芯片设计中改善时序收敛的方法和系统,该方法包括步骤:识别芯片设计图中的关键时序路径,其中关键时序路径的时序窗口小于预定时序窗口;确定关键时序路径的各段的差异度,其中差异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的不确定性;根据关键时序路径的各段的差异度,改变关键时序路径的至少一段,以增大关键时序路径的时序窗口。本方法和系统能够通过降低关键时序路径的差异度来扩大其时序窗口,从而达到芯片设计图的时序收敛。

著录项

  • 公开/公告号CN102479277A

    专利类型发明专利

  • 公开/公告日2012-05-30

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201010577022.6

  • 发明设计人 牛佳;戴红卫;何仙娥;杜晨;

    申请日2010-11-29

  • 分类号G06F17/50(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人酆迅;黄倩

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-18 05:25:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-08

    专利权的转移 IPC(主分类):G06F17/50 登记生效日:20171120 变更前: 变更后: 申请日:20101129

    专利申请权、专利权的转移

  • 2017-12-01

    专利权的转移 IPC(主分类):G06F17/50 登记生效日:20171114 变更前: 变更后: 申请日:20101129

    专利申请权、专利权的转移

  • 2014-06-11

    授权

    授权

  • 2012-07-11

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20101129

    实质审查的生效

  • 2012-05-30

    公开

    公开

说明书

技术领域

本发明的各实施方式一般涉及集成电路芯片设计,并且更具体地 涉及在芯片设计中改善时序收敛的方法和系统。

背景技术

时序分析通常是指设计者提出一些特定的时序要求或时序约束, 使用特定的时序模型来针对芯片设计布图文件进行分析。在芯片设 计中,时序分析问题是至关重要的,尤其是随着时钟频率的提高, 留给数据传输的有效读写时序窗口越来越小。如果希望在很短的时 间中使数据从发送端完整地传送到接收端,就必须进行精确的时序 分析。

芯片设计中的时序收敛通常是指前后端设计时序一致,即对于 设计者在设计阶段规定的特定时序要求,在完成布局布线和寄生参 数提取之后芯片仍能满足所设计的时序要求。然而,一般情况下, 在芯片设计中,设计者在设计阶段没有或者无法考虑到精确的连线 和器件延迟信息,所以很容易造成布图后的时序不收敛。能够实现 时序收敛的芯片设计布图,可以通过验收(sign off),并交由芯片 制造厂用于生产芯片。

近年来,随着工艺的进步,连线和器件延迟越来越占据主导地位, 时序收敛问题则越来越多并且越来越严重。在32纳米、45纳米等制 造工艺中,裸片间违例以及裸片内违例的影响已经变得显著。然而, 现有技术的芯片设计方法在时序收敛方面的速度和效率并不如人所 愿,由此造成了芯片设计成本增大以及可能的其他相关问题。

发明内容

因此,需要一种在芯片设计中能够高效和快速改善时序收敛的 方法和系统。

在一个实施方式中,提供了一种在芯片设计中改善时序收敛的 方法。该方法包括步骤:识别芯片设计图中的关键时序路径,其中 关键时序路径的时序窗口小于预定时序窗口;确定关键时序路径的 各段的差异度,其中差异度描述由于一种或多种因素影响而导致的 器件和/或连线的延时的不确定性;根据关键时序路径的各段的差异 度(variation),改变关键时序路径的至少一段,以增大关键时序路 径的时序窗口。

在另一个实施方式中,提供了一种在芯片设计中改善时序收敛 的系统。该系统包括:关键路径识别装置,用于识别芯片设计图中 的关键时序路径,其中关键时序路径的时序窗口小于预定时序窗口; 差异度确定装置,用于确定关键时序路径的各段的差异度,其中差 异度描述由于一种或多种因素影响而导致的器件和/或连线的延时的 不确定性;路径改变装置,用于根据关键时序路径的各段的差异度, 改变关键时序路径的至少一段,以增大关键时序路径的时序窗口。

在另一个实施例中,提供了一种计算机可读介质,其中有形地 载有用于实现本发明的在芯片设计中改善时序收敛的方法的计算机 程序。

本发明的各实施方式,在芯片设计过程中,可以加快时序收敛 速度、提高时序收敛效率。通过以下结合附图对本发明诸多实施方 式的描述,本发明的其他特征和优点将会更加明显。

附图说明

通过以下结合附图的说明,并且随着对本发明的更全面了解,本 发明的其他目的和效果将变得更加清楚和易于理解,其中:

图1是按照本发明的一个实施例的在芯片设计中改善时序收敛 的方法的流程图;

图2是按照本发明的另一个实施例的在芯片设计中改善时序收 敛的方法的流程图;

图3是一个芯片设计图的局部形象化示意图;

图4是按照本发明的一个实施例的时序窗口的示意图;

图5是按照本发明的另一个实施例的在芯片设计中改善时序收 敛的系统的方框图;以及

图6是在半导体设计、制造和/或测试中使用的典型设计流程的 框图。

附图中,相同的标号表示相同、相似或相应的特征或功能。

具体实施方式

将参照附图更加详细地描述本发明的诸多实施方式。附图中的 流程图和框图,图示了按照本发明各种实施例的系统、方法和计算 机程序产品的可能实现的体系架构、功能和操作。在这点上,流程 图或框图中的每个方框可以代表一个模块、程序段、或代码的一部 分,所述模块、程序段、或代码的一部分包含一个或多个用于实现 规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实 现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发 生。例如,两个接连地表示的方框实际上可以基本并行地执行,它 们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注 意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的 方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系 统来实现,或者可以用专用硬件与计算机指令的组合来实现。

在一个实施方式中,从等待验收(sign off)的芯片设计图文件 中识别该芯片设计布图中的关键时序路径,其中关键时序路径是指 其时序窗口小于预定时序窗口的时序路径;确定关键时序路径各段 的差异度;以及根据关键时序路径的各段的差异度,改变关键时序 路径的至少一段(例如一个器件或者一条连线),以增大关键时序 路径的时序窗口。上述过程可以重复进行,直至该芯片设计布图中 不再存在关键时序路径,从而完成对该芯片设计布图的验收。在另 一个实施方式中,在生成的网表设计图、布局设计图和布线设计图 中,都可以识别关键时序路径,采用上述方法修改该关键时序路径 中的一段,以改善时序收敛。

为更好地描述本发明的实施方式,先对一些概念进行说明如下。

芯片设计图,例如是一个以硬件描述语言编写的文件,包括网 表设计图、布局设计图和布线设计图等;它可以具有多条“路径”, 每条路径包括一个或多个段,每个“段”包括一个器件或者一条连 线等。路径的起点和终点分别是两个不同的寄存器。图3给出了一 个芯片设计图的局部形象化示意图。在图3所示的例子中,寄存器1 与寄存器2之间示例性地描绘了一条路径,该路径包括连线AB、器 件G1、G2、G3以及连线CD。

假设图3中的寄存器1发送数据,寄存器2接收数据并根据本 地时钟对接收的数据进行采样,由于数据在从寄存器1至寄存器2 的传输过程中会经过器件G1、G2、G3以及连线,所以会造成延时 并影响数据的稳定传输。

数据稳定传输必须满足建立时间(setup time)和保持时间(hold time)的要求。建立时间是指在寄存器的时钟信号上升沿到来以前, 数据达到稳定不变的时刻与时钟信号上升沿之间的时段;如果建立 时间不够,数据将不能在这个时钟上升沿被打入寄存器。保持时间 是指在寄存器的时钟信号上升沿到来以后,数据保持稳定不变的时 段;如果保持时间不够,数据同样不能被打入寄存器。

由于生产工艺存在不确定性,电路中的每一个器件或连线的延 迟都有一个取值范围,而非是一个确定的值。早模式延迟,是指器 件或连线在生产工艺下“最快”的模式下的延迟;迟模式延迟,是指 器件或连线在生产工艺下“最慢”的模式下的延迟。迟模式延迟值一 般大于早模式延迟值。早模式延迟值和迟模式延迟值可以从时序分 析结果中得到。例如,可以得到寄存器2处的以下六个值:数据迟 模式到达时间AT(arrival time)(也即,数据最晚到达时间)、数 据早模式到达时间(也即,数据最早到达时间)、时钟迟模式到达 时间、时钟早模式到达时间、建立保护时间(guard time)、保持保 护时间。以下示例性地描述了怎样使用这六个值判断是否满足建立 时间和保持时间的要求。

(1)建立检查:判断数据迟模式到达时间是否比时钟早模式到达 时间(也即,时钟上升沿到达时间,其等于数据早模式到达时间) 早一个建立保护时间;如果是,则确定满足建立时间要求;否则, 则确定不满足建立时间要求。

(2)保持检查:判断数据早模式到达时间是否比时钟迟模式到达 时间(也即,时钟上升沿到达时间,其等于数据迟模式到达时间) 早一个保持保护时间;如果是,则确定满足保持时间要求;否则, 则确定不满足保持时间要求。

下面说明本发明的实施方式中使用的时序窗口的概念。图4是 按照本发明的一个实施例的时序窗口的示意图。在数字电路中,时 钟信号是一拍一拍连续的周期信号,假设寄存器1在第一拍时钟上 升沿发送数据信号,则在寄存器2第一拍时钟上升沿进行保持检查 (数据不能早过T2),在寄存器2第二拍时钟上升沿进行建立检查 (数据不能迟于T3),T2至T3这段时间内数据可以变化,从T1 到T2这段时间称为时序上数据可被采样的窗口,又称为时序窗口。 时序窗口越大越好,理想情况是电路延迟的迟模式延迟与早模式延 迟完全一样;此时,时序窗口可以达到最大,例如一个时钟周期。 但是,实际芯片中时序窗口通常较小,甚至小到时钟无法采集数据。

在本发明的实施方式中,将数据可以进行稳定传输所需的时序 窗口设定为预定时序窗口。如果芯片设计图中的路径的时序窗口小 于预定时序窗口,则其不能保证数据的稳定传输,此时将该路径称 为关键时序路径,也叫时序窗口不足(no timing window,NTW)路 径。

在本发明的实施方式中,差异度用于描述由于至少一种因素影 响而导致的器件和/或连线的延时的不确定性,这些因素例如是电压、 温度、生产等因素。在本发明中,可以通过若干方式来计算关键时 序路径的各段的差异度,例如可以通过计算期间参数,或者通过工 具模拟等,在本发明的优选实施方式中,是通过得到关键时序路径 的各段的旱模式延迟值和迟模式延迟值、然后确定各段的迟模式延 迟值与早模式延迟值之间的差别来作为各段的差异度。迟模式延迟 值与早模式延迟值之间的差别可以通过多种方式来得到,例如该差 别可以是迟模式延迟值与早模式延迟值之差或者迟模式延迟值与早 模式延迟值之比。

图1是按照本发明的一个实施例的在芯片设计中改善时序收敛 的方法的流程图。

在步骤101,识别芯片设计图中的关键时序路径,其中关键时序 路径是指其时序窗口小于预定时序窗口的路径。根据前述,如果芯 片设计图中的路径的时序窗口小于预定时序窗口,则这样的路径是 一条关键时序路径。在一个芯片设计图中,通常包括一条或多条路 径,可以逐一判断每条路径是否是关键时序路径。由此,当判断完 整个芯片设计图时,可能得到一个关键路径集合,该集合可能包括 若干条关键路径,也可能不包含任何关键路径。

在一个实施例中,可以基于对芯片设计图的时序分析结果来确 定所述芯片设计图中的路径是否是关键时序路径。可以采用各种现 有的时序分析工具来得到时序分析结果,这种时序分析工具例如是 可从美国加利福尼亚州的新思科技公司购得的PrimeTime等。所生 成的时序分析结果可以包括多种时序信息,例如,芯片设计图中包 含哪些路径、每条路径的早模式时序余量(slack)和迟模式时序余 量、每条路径包含哪些段、每个段的早模式延迟值和迟模式延迟值, 等等。早模式时序余量是指早到达时间的量化值;迟模式时序余量 是指晚到达时间的量化值。正的时序余量值表明给定节点的当前到 达时间满足所有下行时序约束;负的时序余量值表明该到达时间不 能满足至少一个下行时序约束。可以根据时序分析结果得到芯片设 计图中各条路径的早模式时序余量和迟模式时序余量,从而可以根 据预定策略逐一判断每条路径是否是关键时序路径。

在另一个实施例中,可以预先准备一个器件库及其描述信息, 该器件库的描述信息中存储有各种器件的差异度范围和排序。器件 库可以是从器件的制造商或销售商处得到的,也可以是技术人员根 据器件的特性而自行得到的,还可以根据本领域技术人员公知的任 何其他方法得到。根据该器件库和网表,可以得到芯片设计图中各 条路径的早模式时序余量和迟模式时序余量,从而可以根据预定策 略逐一判断每条路径是否是关键时序路径。

预定策略例如可以是:对迟模式时序余量加权;将加权后的迟 模式时序余量与早模式时序余量求和;以及当求和结果小于预定时 序余量阈值并且迟模式时序余量为负时,将路径确定为关键时序路 径。再例如,预定策略可以是:对早模式时序余量加权;将加权后 的早模式时序余量与迟模式时序余量求和;以及当求和结果小于预 定时序余量阈值并且早模式时序余量为负时,将路径确定为关键时 序路径。可以通过任何适当地方式或形式预先定义预定策略,而不 限于上述的例子。

在步骤102,确定关键时序路径的各段的差异度。差异度的确定 方法前面已经陈述,这里不再赘述。

在步骤103,以与关键时序路径的各段的差异度相应的方式,改 变关键时序路径的至少一段,以增大关键时序路径的时序窗口。在 一个实施方式中,根据步骤102得到的各条关键时序路径的各段的 差异度,对各条关键时序路径逐一进行处理。

对于一条关键时序路径而言,首先需要知道关键时序路径中哪 个或哪些段的差异度较大。如果将这种差异度较大的段替换为具有 更低差异度的段,则可以降低整条路径的差异度,增加该路径的时 序窗口宽度。因此,可以将具有较大差异度的段确定为需要进行改 变的段,然后将确定的段改变为具有更低差异度的、实现相同功能 的段。在改变一个或多个段之后,关键时序路径的功能不会发生任 何变化,但是其差异度得以降低,从而可以保证数据的稳定传输。

在一个实施方式中,可以预先准备一个器件库及其描述信息, 所述器件库的描述信息中存储有各种器件的差异度范围和排序。当 在步骤103中改变关键时序路径的段时,首先可以确定要进行改变 的段的差异度,然后可以根据器件库的描述信息来从器件库中查找 具有低于该差异度的器件。器件库可以是从器件的制造商或销售商 处得到的,也可以是技术人员根据器件的特性而自行得到的,还可 以根据本领域技术人员公知的任何其他方法得到。

图2是按照本发明的另一个实施例的在芯片设计中改善时序收 敛的方法的流程图。

如图2所示,在步骤201,对芯片设计图进行时序分析,生成时 序分析结果。在本领域中,存在多种对芯片设计图进行时序分析的 方法和工具,本领域技术人员可以根据现有的任何方法来生成时序 分析结果。

应该注意的是,步骤201是可选的,对芯片设计图进行时序分 析方便了识别芯片设计图中的关键时序路径和确定所述关键时序路 径的各段的差异度。但是,在其他实施例中,也可以根据预先准备 的器件库和网表来识别芯片设计图中的关键时序路径和确定所述关 键时序路径的各段的差异度。此外,还可以使用本领域技术人员公 知的任何其他适当方法来识别品牌设计图中的关键时序路径。这里 的芯片设计图包括网表建立、布局或布线之后的生成结果,不单指 交予验收之前的芯片设计文件。

在步骤202,从时序分析结果获取芯片设计图中的路径的早模式 时序余量和迟模式时序余量。在此步骤中,可以从步骤201生成的 时序分析结果中查找芯片设计图中各条路径的早模式时序余量和迟 模式时序余量,所查找到的早模式时序余量和迟模式时序余量可以 用于判断相应路径是否是关键时序路径。

在步骤203,根据所得到的早模式时序余量和迟模式时序余量, 确定芯片设计图中的路径是否是关键时序路径。在以下描述中,为 了便于说明,将早模式时序余量记为Se,将迟模式时序余量记为Sl。 可以通过判断早模式时序余量Se和迟模式时序余量Sl是否满足预定 策略来确定一条路径是否为关键时序路径。

在一个例子中,预定策略可以是:对迟模式时序余量加权;将 加权后的迟模式时序余量与早模式时序余量求和;当所述求和结果 小于预定时序余量阈值并且迟模式时序余量为负时将该路径确定为 关键时序路径。该预定策略可以用以下式(1)表示:

Sl<0并且a×Sl+Se<M    (1)

其中,a是时序环境中的通用差异度,取决于电压、温度等,而 M是预定义的参数,根据工艺环境(如多少纳米)确定,通常将M 设定为0。

例如,设定a=2,M=0。如果一条路径的早模式时序余量 Se=0.100且迟模式时序余量S1=-0.100,则由于a×Sl+Se= 2×(-0.100)+0.100<0,并且由于Sl<0,所以满足式(1)的要求,由 此可以判断该路径是关键时序路径。如果一条路径的早模式时序余 量Se=0.300且迟模式时序余量S1=-0.100,则由于a×Sl+Se= 2×(-0.100)+0.300>0,所以不满足式(1)中的a×Sl+Se<M,由此可 以判断该路径不是关键时序路径。

在另一个例子中,预定策略也可以是:对早模式时序余量加权; 将加权后的早模式时序余量与迟模式时序余量求和;当求和结果小 于预定时序余量阈值并且早模式时序余量为负时,将路径确定为关 键时序路径。该预定策略可以用以下式(2)表示:

Se<0并且Sl+b×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中的器件G1 的迟模式延迟值是600ps,早模式延迟值是400ps,则可以得到器件 G1的差异度是600ps-400ps=200ps。

应该注意的是,可以使用除了式(3)之外的方式来计算段的差 异度,例如可以通过将早模式延迟值或迟模式延迟值加权再求差, 或者可以通过任何其他适当的方式来计算该段的差异度。

在步骤207,基于关键时序路径的各段的差异度,确定该关键时 序路径中的需要改变的段。存在多种方法确定关键时序路径中需要 改变哪个或哪些段。

在一个例子中,可以对关键时序路径中的各段的差异度进行排 序;然后,将与该关键时序路径的最大差异度相对应的段确定为需 要进行改变的段。

例如,假设图3中的路径(A-D)是一条关键时序路径,则从图 3中可知,该关键时序路径A-D包括5个段:连线AB、器件G1、 器件G2、器件G3、连线CD。假设各段的差异度如以下表1所示:

表1:关键时序路径A-D各段的差异度

 路径A-D   连线AB   器件G1   器件G2   器件G3   连线CD  差异度   50ps   200ps   100ps   130ps   20ps

通过对上述各段的差异度进行排序可知,器件G1的差异度最 大,因此将器件G1确定为需要进行改变的段。

在另一个例子中,可以通过对该关键时序路径的各段的差异度 求和,从而得到该关键时序路径的差异度;计算各段的差异度相对 于所述关键时序路径的差异度的差异度比例;并将该关键时序路径 中的差异度比例高于预定阈值的段确定为需要进行改变的段。

例如,假设图3中的路径(A-D)是一条关键时序路径,则从图 3中可知,该关键时序路径A-D包括5个段:连线AB、器件G1、 器件G2、器件G3、连线CD。假设各段的差异度及其比例如以下表 2所示:

表2:关键时序路径A-D各段的差异度及其比例

 路径A-D   连线AB   器件G1   器件G2   器件G3   连线CD  差异度   50ps   200ps   100ps   130ps   20ps  比例   10%   40%   20%   26%   4%

在本例子中假设差异度比例的预定阈值是25%,因此差异度比 例大于该预定阈值的段有两个,分别是器件G1和器件G2,因此可 以将器件G1和器件G2都确定为需要改变的段。在另一实施例中, 也可以通过对差异度比例进行排序后,仅将与最大差异度比例相对 应的段确定为需要改变的段。

应该注意的是,除了以上所示的具体例子之外,还可以利用多 种其他适当的方式来确定需要进行改变的段。举例而言,还可以对 关键时序路径中的各段的差异度进行排序,例如共有3个段,其中 两个是连线,一个是器件;然后将差异度大于预定阈值的段都确定 需要进行改变的段,例如这3个段中有一个器件和一个连线的差异 度都大于预定阈值,则此时可以将这个器件和这个连线都确定为需 要进行改变的段。

在步骤208,将所确定的段替换为实现相同功能并具有更低差异 度的段。此步骤的目的之一是将差异度高的段替换为差异度低的段, 同时不影响实现该段的功能。当步骤207确定的要进行改变的段是 器件时,可以将所述器件替换为具有更低差异度的器件;在某些例 子中,在不影响电路功能的情况下也可以将该器件替换为连线。

当步骤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以用于集成电路的布图数据交换的数据格式(例如以 GDSII(GDS2),GL1,OASIS或存储这种设计结构的任何其他适合的 格式存储的信息)存储在存储介质上。设计结构690可以包括如下 信息,例如测试数据文件、设计内容文件、制造数据、布图参数、 布线、金属级别、过孔、形状、用于通过生产线寻径的数据以及半 导体制造商生产本发明的实施例所需的任何其他数据。然后设计结 构690可以前进到步骤695,这里设计结构690例如:进行流片,交 付制造,交付掩模室,被送到另一个设计室,返回到客户等。

根据上述描述,所属技术领域的技术人员知道,本发明可以体 现为装置、方法或计算机程序产品。因此,本发明可以具体实现为 以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留 软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软 件部分与硬件部分的组合。此外,本发明还可以采取体现在任何有 形的表达介质(medium of expression)中的计算机程序产品的形式, 该介质中包含计算机可用的程序码。

可以使用一个或多个计算机可用的或计算机可读的介质的任何 组合。计算机可用的或计算机可读的介质例如可以是——但不限 于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、 装置、器件或传播介质。计算机可读介质的更具体的例子(非穷举 的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁 盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式 可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存 储器(CD-ROM)、光存储器件、诸如支持因特网或内部网的传输介质、 或者磁存储器件。注意计算机可用的或计算机可读的介质甚至可以 是上面印有程序的纸张或者其它合适的介质,这是因为,例如可以 通过电扫描这种纸张或其它介质,以电子方式获得程序,然后以适 当的方式加以编译、解释或处理,并且必要的话在计算机存储器中 存储。在本文件的语境中,计算机可用的或计算机可读的介质可以 是任何含有、存储、传达、传播、或传输供指令执行系统、装置或 器件使用的或与指令执行系统、装置或器件相联系的程序的介质。 计算机可用的介质可包括在基带中或者作为载波一部分传播的、由 其体现计算机可用的程序码的数据信号。计算机可用的程序码可以 用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等。

用于执行本发明的操作的计算机程序码,可以以一种或多种程 序设计语言的任何组合来编写,所述程序设计语言包括面向对象的 程序设计语言,诸如Java、Smalltalk、C++之类,还包括常规的过程 式程序设计语言,诸如”C”程序设计语言或类似的程序设计语言。程 序码可以完全地在用户的计算机上执行、部分地在用户的计算机上 执行、作为一个独立的软件包执行、部分在用户的计算机上部分在 远程计算机上执行、或者完全在远程计算机或服务器上执行。在后 一种情形中,远程计算机可以通过任何种类的网络,包括局域网(LAN) 或广域网(WAN),连接到用户的计算机,或者,可以(例如利用因 特网服务提供商来通过因特网)连接到外部计算机。

此外,本发明的流程图和/或框图的每个方框以及流程图和/或框 图中各方框的组合,都可以由计算机程序指令实现。这些计算机程 序指令可以提供给通用计算机、专用计算机或其它可编程数据处理 装置的处理器,从而生产出一种机器,使得通过计算机或其它可编 程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方 框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在能指令计算机或其它可编 程数据处理装置以特定方式工作的计算机可读介质中,这样,存储 在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的 方框中规定的功能/操作的指令装置的制造品,

也可以把计算机程序指令加载到计算机或其它可编程数据处理 装置上,使得在计算机或其它可编程数据处理装置上执行一系列操 作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装 置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能 /操作的过程。

虽然这里参照附图描述了本发明的示例性实施例,但是应该理 解本发明不限于这些精确的实施例,并且在不背离本发明的范围和 宗旨的情况下,本领域普通技术人员能对实施例进行各种变化的修 改。所有这些变化和修改意欲包含在所附权利要求中限定的本发明 的范围中。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号