设计集成电路的计算机实现的方法和计算系统与流程

文档序号:16534103发布日期:2019-01-05 11:02阅读:465来源:国知局
设计集成电路的计算机实现的方法和计算系统与流程

本申请要求于2017年6月15日向韩国知识产权局提交的韩国专利申请第10-2017-0076012号的优先权以及权益,其全部内容通过引用并入本文。

本发明构思的实施例针对集成电路,并且更具体地涉及用于通过考虑线的工艺变异(processvariation)来设计集成电路的计算机实现的方法和计算系统。



背景技术:

集成电路可以基于标准单元来设计。具体而言,集成电路的布局可以通过放置定义集成电路的标准单元并路由(route)放置的标准单元来生成。随着半导体器件的小型化,布局中包括的图案的尺寸逐渐减小,并且因此设计图案的尺寸与通过硬件实现的图案的尺寸之间的微小差异导致集成电路的成品率劣化。线工艺变异包括金属层或通孔中的电阻/电容变化。当金属层的电阻大于标称值时,时钟延迟可能增加,并且因此可能发生时序违规(timingviolation)。传统的寄生分量描述文件包括每个节点的电阻灵敏度和电容灵敏度。结果,寄生分量描述文件的大小非常大,并且在时序分析操作中,计算所需的复杂度和时间可能大大增加。具体而言,由于与线后端(back-end-of-line,beol)相对应的线工艺变异,通过包括线的时序路径的延迟可能增加,并且因此在时序路径中可能发生时序约束违规。



技术实现要素:

根据本发明构思的实施例,提供了一种设计集成电路的计算机实现的方法,所述计算机实现的方法包括:接收所述集成电路的布局数据和包括在所述集成电路中包含的多个层中的每一个的寄生分量的角(corner)的技术文件;通过对集成电路的网上的时序弧(timingarc)中的层的寄生分量的角执行寄生分量提取操作来生成寄生分量数据,所述寄生分量数据包括由于层的工艺变异而导致的时序弧的延迟变化数据层;以及通过基于寄生分量数据对集成电路执行时序分析来生成时序分析数据。

根据本发明构思的另一实施例,提供了一种制造集成电路的方法,所述方法包括:通过使用集成电路的布局数据和包括集成电路中的每个层的寄生分量的角的技术文件,对集成电路的网上的时序弧中的层的寄生分量的角执行寄生分量提取操作,来生成寄生分量数据,其中,所述寄生分量数据包括由于时序弧的层的工艺变异而导致的时序弧的延迟变化数据;通过基于寄生分量数据对集成电路执行时序分析来生成时序分析数据;以及基于布局数据和时序分析数据来制造集成电路。

根据本发明构思的另一实施例,提供了一种用于设计集成电路的计算系统,所述计算系统包括:存储器,存储设计集成电路的过程;以及处理器,连接到存储器并执行该过程,其中所述集成电路的网对应于多个时序弧,并且所述多个时序弧中的每一个包括多个层,其中所述过程包括:寄生分量提取器,通过对于每个时序弧的第i层的每个角执行寄生分量提取操作来生成寄生分量数据,所述寄生分量数据包括当第i层的寄生分量移位到第j角时的线延迟灵敏度系数,其中i和j是自然数;以及时序分析器,通过基于寄生分量数据对集成电路执行时序分析来生成时序分析数据。

附图说明

图1是根据实施例的设计集成电路的方法的流程图。

图2示出了根据实施例的集成电路的示例。

图3示出了根据实施例的第i金属层的工艺变异。

图4是图3中的第i金属层的寄生电阻和寄生电容的分布图。

图5是根据实施例的更详细地设计集成电路的方法的流程图。

图6是根据实施例的提取寄生分量的方法的流程图。

图7a示出了根据实施例的集成电路。

图7b示出了图7a中的第一时序弧的布线结构。

图7c示出了图7a中的第二时序弧的布线结构。

图8a和图8b示出了根据实施例的技术文件。

图9示出了根据实施例的表征线延迟灵敏度系数的操作。

图10a和图10b示出了表征图9中的线延迟灵敏度系数的操作。

图11示出了根据实施例的表征电容灵敏度系数的操作。

图12示出了根据实施例的寄生分量描述文件。

图13示出了根据实施例的寄生分量描述文件。

图14是根据实施例的执行时序分析的方法的流程图。

图15示出了根据实施例的集成电路。

图16是根据实施例的执行时序分析的方法的流程图。

图17示出了图16的时序分析方法的示例。

图18是根据实施例的执行时序分析的方法的流程图。

图19是根据实施例的用于设计集成电路的计算系统的框图。

图20示出了根据实施例的存储在图19的存储器中的程序的示例。

图21是根据实施例的制造半导体器件的方法的流程图。

图22示出了根据实施例的计算机可读存储介质。

具体实施方式

图1是根据实施例的设计集成电路的方法的流程图。

参考图1,为了设计集成电路布局,可以使用用于设计集成电路的工具来执行设计集成电路的方法。在这种情况下,根据实施例,用于设计集成电路的工具是包括由处理器执行的多个指令的程序。因此,设计集成电路的方法可以被称为设计集成电路的计算机实现的方法。

根据实施例,在操作s110中,执行综合操作。例如,操作s110由处理器使用综合工具来执行。具体而言,通过使用标准单元库将由寄存器传送语言(registertransferlanguage,rtl)定义的输入数据相对于集成电路进行综合来生成门级网表(netlistofgatelevel)。

根据实施例,在操作s130中,用于集成电路的布局数据——以下称为“布局数据——通过放置和路由——以下称为“p&r”——标准单元来生成,所述标准单元基于网表定义来集成电路。例如,操作s130由处理器使用p&r工具执行。例如,布局数据可以是图形设计系统(graphicdesignsystem,gds)ii格式数据。

根据实施例,在操作s150中,通过从布局数据中提取寄生分量来生成寄生分量描述文件。例如,操作s150由处理器使用寄生提取(parasiticextract,pex)工具执行。对在包含在布局数据中的网上的时序弧中包括的层的多个角提取寄生分量。在下文中,术语“层”对应于线,并且可以指金属层或通孔。寄生分量描述文件被生成为标准寄生参数提取格式(standardparasiticextractionformat,spef)文件。布局数据作为输入文件被提供给pex工具,并且spef文件作为输出文件从p&r工具输出。将参考图2至图13更详细地描述操作s150。

根据实施例,在操作s170中,通过执行集成电路的时序分析来生成时序分析数据。例如,操作s170由处理器使用静态时序分析(statictiminganalysis,sta)工具来执行。术语“时序分析”是指确定在集成电路中包括的时序路径是否满足时序约束、并且根据确定结果从时序路径中选择其中从输入(即,起点)到输出(即,结束点)的总时序延迟超过时序要求的时序关键路径(timingcriticalpath)的操作。例如,时序约束包括设置时序约束(setuptimingconstraints和保持时序约束(holdtimingconstraints)。根据实施例,寄生分量描述文件作为输入文件被提供给sta工具,并且时序分析数据作为输出文件从sta工具输出。将参考图14至图18更详细地描述操作s170。

在实施例中,设计方法还包括基于时序分析数据执行工程变更单(engineeringchangeorder,eco)的操作。设计方法还包括使用时序分析数据执行在p&r操作中包括的时钟树综合(clocktreesynthesis,cts)或优化的操作。设计方法还包括使用时序分析数据修改在p&r操作中包括的金属路由的操作。例如,基于时序分析数据,可以修改一些线的长度,或者将一些水平的线修改成另一个水平的线。

图2示出根据实施例的集成电路20。

参考图2,根据实施例,集成电路20包括网21。网21表示集成电路20的等效电路图中的等电位,并且对应于集成电路20的布局中的互连。互连对应于包括电连接到至少一个通孔的至少一个金属层的布线结构。在下文中,术语“层”是指在布线结构中包括的金属层或通孔。在下文中,将着重于通过考虑金属层的工艺变异来设计集成电路的方法而描述线的工艺变异的影响。然而,本发明构思的实施例不限于此,并且本发明构思的实施例还可以包括设计考虑通孔的工艺变异的集成电路的方法。

根据实施例,网21对应于第一时序弧arc1到第三时序弧arc3。术语“时序弧”是指从网21的驱动引脚到网21的加载引脚的路径。例如,第一时序弧arc1对应于从驱动引脚dp到第一加载引脚lp1的路径,第二时序弧arc2对应于从驱动引脚dp到第二加载引脚lp2的路径,并且第三时序弧arc3对应于从驱动引脚dp到第三加载引脚lp3的路径。如此,网21中的时序弧的数量对应于加载引脚的数量。

图3示出了根据实施例的第i金属层mi的工艺变异,并且图4是图3中的第i金属层mi的寄生电阻和寄生电容的分布图。例如,图3示出沿集成电路的堆叠方向上的截面。

参考图3和图4,根据实施例,集成电路30包括第一图案31和第二图案32,并且第一图案31和第二图案32由金属层实现在相同的水平上,例如,第i金属层mi,其中i是自然数。第一图案31和第二图案32具有根据布局数据的尺寸,因此,第i金属层mi具有标称电阻和标称电容。在下文中,当第i金属层mi具有标称电阻和标称电容时,第i金属层mi将被称为对应于标称角c0。

根据实施例,集成电路30'包括第一图案31'和第二图案32',并且由于第i金属层mi的工艺变异,第一图案31'和第二图案32'具有比根据布局数据的尺寸更大的尺寸,诸如高度。集成电路30'内的虚线对应于第一图案31和第二图案32。因此,第i金属层mi具有比标称电阻更低的电阻和比标称电容更高的电容。在下文中,当第i金属层mi具有最小电阻和最大电容时,第i金属层mi将被称为对应于第一角c1。

根据实施例,集成电路30”包括第一图案31”和第二图案3”,并且由于第i金属层mi的工艺变异,第一图案31”和第二图案32”具有比根据布局数据的尺寸更小的尺寸,诸如高度。集成电路30”内部的虚线对应于第一图案31和第二图案32。因此,第i金属层mi具有比标称电阻更高的电阻和比标称电容更低的电容。在下文中,当第i金属层mi具有最大电阻和最小电容时,第i金属层mi将被称为对应于第二角c2。

以下,将描述对第i金属层mi的第一角c1和第二角c2中的每一个执行寄生分量提取操作的实施例。另外,将描述对第i金属层mi的第一角c1和第二角c2中的每一个执行时序分析操作的实施例。然而,本发明构思的实施例不限于此,并且根据其它实施例,对应于第i金属层mi的角的数量可以变化。

图5是根据实施例的更详细地设计集成电路的方法的流程图。参考图5,根据本实施例的集成电路设计方法是从布局数据提取寄生分量并执行时序分析的方法,并且例如对应于图1中的操作s150和s170。因此,上面参考图1给出的描述可以应用于本实施例。

根据实施例,在操作s210中,接收布局数据和技术文件。技术文件包括与制造包含集成电路的半导体器件的工艺有关的信息。技术文件包括每层的寄生分量的角(corner)。具体而言,寄生分量的角包括从寄生电阻和寄生电容的分布获得的多个角值。例如,技术文件包括图4中的第i金属层mi的标称角c0、第一角c1和第二角c2中的每一个处的寄生电阻和寄生电容。

根据实施例,在操作s230中,通过对每层的寄生分量的角执行寄生分量提取操作来生成寄生分量数据。寄生分量数据包括时序弧的延迟变化数据。例如,延迟变化数据可以是时序弧的线延迟灵敏度系数或者随机线延迟灵敏度系数。寄生分量数据还包括网的延迟变化数据。例如,延迟变化数据可以是网的电容灵敏度系数或随机电容灵敏度系数。将参考图6至图13更详细地描述操作s230。在操作s250中,基于寄生分量数据执行静态时序分析。将参考图14至图18更详细地描述操作s250。

图6是根据实施例的提取寄生分量的方法的流程图。参考图6,根据本实施例的寄生分量提取方法对应于例如图1中的操作s150或图5中的操作s230。因此,上面参考图1至图5给出的描述适用于本实施例。

根据实施例,在操作s300中,通过基于在图5的操作s210中接收的布局数据100和技术文件200,对在时序弧中包括的每个层的角执行寄生分量提取操作来生成多个寄生分量描述文件300。例如,多个寄生分量描述文件300是针对多个网生成的,并且对应于参考图5描述的寄生分量数据。寄生分量描述文件300中的每个包括关于网的寄生分量数据和关于与网对应的时序弧的寄生分量数据。

在实施例中,一个网对应于多个时序弧,并且对多个时序弧中的每一个执行寄生分量提取操作。一个时序弧包括多个层,并且可以对时序弧的多个层中的每个层执行寄生分量提取操作。寄生分量描述文件300中的每个包括由于层的工艺变异而导致的时序弧的延迟变化数据和网的延迟变化数据。根据实施例,延迟变化数据可以变化。

在实施例中,延迟变化数据包括线延迟灵敏度系数。线延迟灵敏度系数是针对每个时序弧获得的,并且对应于由于全局变异而导致的线延迟变化。全局变异是指由于芯片之间的变化、晶片之间的变化或批次之间的变化而导致的芯片的平均变化。具体而言,对于在时序弧中包括的所有层和所有角获得线延迟灵敏度系数。在时序分析操作中,通过使用线延迟灵敏度系数执行时序分析,计算由于线的全局工艺变异导致的时序弧的线延迟灵敏度。因此,可以获得基于全局变异的时序路径的延迟差。这将在下面参考图10a至图11进行描述。

在实施例中,延迟变化数据包括线延迟灵敏度系数和电容灵敏度系数。电容灵敏度系数是对于每个网获得的,并对应于由于全局变异而导致的单元延迟变化。具体而言,对于在网中包括的所有层和所有角获得电容灵敏度系数。在时序分析操作中,通过使用线延迟灵敏度系数和电容灵敏度系数执行时序分析,计算由于线的全局工艺变异而导致的包括时序弧的线延迟灵敏度和单元的延迟灵敏度的单元/线延迟灵敏度。因此,获得根据全局变异的时序路径的延迟差异。这将在下面参考图12来描述。

在实施例中,延迟变化数据包括线延迟灵敏度系数、电容灵敏度系数、随机线延迟灵敏度系数和随机电容灵敏度系数。随机线延迟灵敏度系数是对每个时序弧获得的,并且对应于由局部随机变异而导致的线延迟变化。局部随机变异是指芯片内部的变化,诸如时序弧或芯片中的晶体管之间的变化。随机电容灵敏度系数是对每个网获得的,并对应于由局部随机变异导致的单元延迟变化。在时序分析操作中,通过使用线延迟灵敏度系数、电容灵敏度系数、随机线延迟灵敏度系数和随机电容灵敏度系数执行时序分析,计算包括由于线的全局工艺变异和局部随机工艺变异而导致的包括时序弧的线延迟灵敏度和单元的延迟灵敏度的总延迟灵敏度。因此,可以获得基于全局变异和局部随机变异的时序路径的延迟差异。

图7a示出了根据实施例的集成电路70,图7b示出了图7a中的第一时序弧arc1的布线结构71并且图7c示出了图7a中的第二时序弧arc2的布线结构72。在下文中,将参考图7a至图7c描述在图6的布局数据100中包括的信息。

参考图7a,根据实施例,根据用于集成电路70的布局数据100,集成电路70包括第一时序弧arc1和第二时序弧arc2。第一时序弧arc1对应于从驱动引脚dp到第一加载引脚lp1的路径,并且包括第一节点n1到第三节点n3。第二时序弧arc2对应于从驱动引脚dp到第二加载引脚lp2的路径,并且包括第一节点n1和第四节点n4。

参考图7b,根据实施例,根据集成电路70的布局数据100,在第一时序弧arc1的布线结构71中,第一节点n1用第一金属层m1实现,并具有第一电阻r1和第一电容c1。第二节点n2用第二金属层m2实现,并具有第二电阻r2和第二电容c2。第三节点n3用第一金属层m1实现,并具有第三电阻r3和第三电容c3。

参考图7c,根据实施例,根据用于集成电路70的布局数据100,在第二时序弧arc2的布线结构72中,第一节点n1用第一金属层m1实现,并具有第一电阻r1和第一电容c1。第四节点n4用第二金属层m2实现,并具有第四电阻r4和第四电容c4。

图8a和图8b示出了根据实施例的技术文件200a和200b。

参考图8a,根据实施例,技术文件200a包括第一金属层m1的寄生分量的多个角值,即多个寄生角值。例如,多个寄生角值对应于图4中的标称角c0以及第一角c1和第二角c2。换句话说,在标称角c0的情况下,第一金属层m1的寄生分量对应于标称电阻r10和标称电容c10。在第一角c1的情况下,第一金属层m1的寄生分量对应于第一电阻r11和第一电容c11。在第二角c2的情况下,第一金属层m1的寄生分量对应于第二电阻r12和第二电容c12。

参考图8b,根据实施例,技术文件200b包括第二金属层m2的寄生分量的多个角值,即多个寄生角值。例如,多个寄生角值对应于图4中的标称角c0以及第一角c1和第二角c2。换句话说,在标称角c0的情况下,第二金属层m2的寄生分量对应于标称电阻r20和标称电容c20。在第一角c1的情况下,第二金属层m2的寄生分量对应于第一电阻r21和第一电容c21。在第二角c2的情况下,第二金属层m2的寄生分量对应于第二电阻r22和第二电容c22。

图9示出根据实施例的表征线延迟灵敏度系数sij的操作。

参考图6和图9,根据实施例,在寄生分量提取操作s300中,基于布局数据100和技术文件200,可以表征对应于网的多个时序弧中的每一个的线延迟灵敏度系数。对于每个时序弧、对于每个层li、并且对于每个角cj,表征线延迟灵敏度系数,其中i是自然数,其中j是大于或等于2的自然数。因此,与时序弧对应的线延迟灵敏度系数的数量对应于时序弧中的层数和角的数量的乘积。

根据实施例,可以基于例如elmore延迟模型来表征线延迟灵敏度系数。可以从等式1获得当第i层的寄生分量由于全局变异而移位到第j角时的线延迟灵敏度系数sij。

等式1:

这里,i是层索引,j是角索引,li@cj表示第i层移动到第j角的情况,并且α是缩放因子。线延迟灵敏度系数sij对应于通过从角线延迟wd_ij中减去标称线延迟wd_nom获得的延迟差δwd_ij,即δwd_ij=wd_ij-wd_nom。具体而言,线延迟灵敏度系数sij对应于延迟差δwd_ij与标称线延迟wd_nom之比。角线延迟wd_ij指的是当只有时序弧中的第i层li对应于第j角cj且其他层对应于标称角c0时的线延迟wd(l1@c0,l2@c0,…,li@cj,…)。标称线延迟wd_nom是指当时序弧中的所有层对应于标称角c0时的线延迟wd(l1@c0,l2@c0,…,li@c0,…)。

图10a和图10b示出表征图9中的线延迟灵敏度系数sij的操作。图10a是使用图8a和图8b所示的技术文件200a和200b从对应于图7a至图7c的布局数据100中提取的寄生分量的表格。图10b是分别对应于第一时序弧arc1的金属层的线灵敏度系数的表格。在下文中,将描述表征第一时序弧arc1的线延迟灵敏度系数sij的操作。

根据实施例,当包括在第一时序弧arc1中的第一金属层m1和第二金属层m2对应于标称角c0时,使用寄生电阻r1、r2和r3以及寄生电容c1、c2和c3获得第一时序弧arc1的标称线延迟wd_nom。例如,当使用elmore延迟模型时,标称线延迟wd_nom=r1(c1+c2+c3+c4)+r2(c2+c3)+r3(c3),例如18。

根据实施例,当用第一金属层m1实现的第一节点n1和第三节点n3对应于第j角cj、并且用第二金属层m2实现的第二节点n2对应于标称角c0时,使用寄生电阻r1'、r2和r3'以及寄生电容c1'、c2和c3'获得第一金属层m1的角线延迟wd_1j。例如,当使用elmore延迟模型时,第一金属层m1的角线延迟wd_1j等于r1'(c1'+c2+c3'+c4)+r2(c2+c3')+r3'(c3'),例如,20。因此,与第一金属层m1对应的延迟差δwd_1j为2,并且第一金属层m1的线延迟灵敏度系数s1j为2/18,即0.11。因此,由于第一金属层m1的工艺变异,与第一金属层m1对应于标称角c0的情况相比,当第一金属层m1对应于第j角cj时,第一时序弧arc1的线延迟增加了11%。

根据实施例,当用第二金属层m2实现的第二节点n2对应于第j角cj、并且用第一金属层m1实现的第一节点n1和第三节点n3对应于标称角c0时,使用寄生电阻r1、r2'和r3以及寄生电容c1、c2'和c3获得第二金属层m2的角线延迟wd_2j。例如,当使用elmore延迟模型时,第二金属层m2的角线延迟wd_2j等于r1(c1+c2'+c3+c4')+r2'(c2'+c3)+r3(c3),例如19。因此,对应于第二金属层m2的延迟差δwd_2j是1,并且第二金属层m2的线延迟灵敏度系数s2j是1/18,即0.06。因此,由于第二金属层m2的工艺变异,与当第二金属层m2对应于标称角c0时相比,当第二金属层m2对应于第j角cj时,第一时序弧arc1的线延迟增加了6%。

根据实施例,在寄生分量提取操作s300中,可以基于线延迟灵敏度系数sij通过考虑局部随机变异来表征随机线延迟灵敏度系数rs。随机线延迟灵敏度系数rs针对每个时序弧来表征。因此,与时序弧对应的随机线延迟灵敏度系数rs的数量是1。随机线延迟灵敏度系数rs可由等式2计算。

等式2:

这里,β是缩放因子。

图11示出根据实施例的表征电容灵敏度系数cij的操作。

参考图6和图11,在寄生分量提取操作s300中,可以基于布局数据100和技术文件200来表征网的电容灵敏度系数。电容灵敏度系数针对每个层li、且针对每个角cj来表征,其中i是自然数,其中j是大于或等于2的自然数。因此,对应于网的电容灵敏度系数的数量对应于网中的层数和角数的乘积。

根据实施例,类似于延迟灵敏度系数,电容灵敏度系数也可以通过基于角来计算网的电容差来获得。使用等式3来获得当由于全局变异第i层的寄生分量移位到第j角时的电容灵敏度系数csij。

等式3:

电容灵敏度系数csij对应于通过从角电容ctotal_ij中减去标称电容ctotal_nom而获得的电容差δctotal_ij,即δctotal_ij=ctotal_ij-ctotal_nom。具体而言,电容灵敏度系数csij对应于电容差δctotal_ij与标称电容ctotal_nom之比。角电容ctotal_ij是指当网中只有第i层li对应于第j角cj且其他层对应于标称角c0时的总电容ctotal(l1@c0,l2@c0,...,li@cj,...)。标称电容ctotal_nom是指当网中的所有层对应于标称角c0时网的总电容ctotal(l1@c0,l2@c0,…,li@c0,…)。

根据实施例,在寄生分量提取操作s300中,基于电容灵敏度系数csij,通过考虑局部随机变异来表征随机电容灵敏度系数rcs。随机电容灵敏度系数rcs针对每个网进行表征。因此,对应于网的随机电容灵敏度系数rcs的数量是1。随机电容灵敏度系数rcs可由等式4计算。

等式4:

图12示出根据实施例的寄生分量描述文件300a。

参考图12,根据实施例,为集成电路中的多个网中的每一个生成寄生分量描述文件300a。例如,如图7a至图7c所示,网对应于第一时序弧arc1和第二时序弧arc2,并且第一时序弧arc1和第二时序弧arc2中的每一个包括第一金属层m1和第二金属层m2。寄生分量描述文件300a包括网的电容灵敏度系数csij、第一时序弧arc1的线延迟灵敏度系数sij以及第二时序弧arc2的线延迟灵敏度系数sij。针对第一金属层m1和第二金属层m2中的每一个,对于第一角c1和第二角c2生成线延迟灵敏度系数sij。例如,对于第一时序弧arc1,线延迟灵敏度系数sij的数量是四,且对于第二时序弧arc2,线数延迟灵敏度系数sij的数量是四。

图13示出根据实施例的寄生分量描述文件300b。图13对应于图12的详细实施例,并且可以例如用spef文件生成。

参考图13,寄生分量描述文件300b包括寄生分量数据310,并且寄生分量数据310包括电容灵敏度系数311、第一时序弧的线延迟灵敏度系数312以及第二时序弧的线延迟灵敏度系数313。例如,当第一层对应于第二角时,网的电容灵敏度系数cs12为-0.01。例如,当第二层对应于第一角时,第一时序弧的线延迟灵敏度系数s21是0.02。例如,当第三层对应于第一角时,第二时序弧的线延迟灵敏度系数s31是0.08。

另外,根据实施例,寄生分量数据310还包括随机电容灵敏度系数314、第一时序弧的随机线延迟灵敏度系数315以及第二时序弧的随机线延迟灵敏度系数316。例如,随机电容灵敏度系数314为0.01,第一时序弧的随机线延迟灵敏度系数315为0.01,并且第二时序弧314的随机线延迟灵敏度系数316为0.01。

图14是根据实施例的执行时序分析的方法的流程图。

参考图14,根据实施例,根据本实施例的时序分析方法对应于例如图1中的操作s170或图5中的操作s250。另外,在图6的寄生分量提取方法之后,执行根据本实施例的时序分析方法。因此,以上参考图1至图13给出的描述适用于本实施例。在操作s400中,基于多个寄生分量描述文件300来执行静态时序分析操作,由此生成包括基于全局变异的线延迟变化的时序报告400。操作s400包括操作s410和s430。

在操作s410中,根据实施例,计算时序弧的线延迟灵敏度。短语线延迟灵敏度是指由于线变化而导致的延迟灵敏度。具体而言,线延迟灵敏度是指当层的寄生分量具有角值时,即当层对应于角时,由于层的工艺变异而导致的延迟效应。具体而言,线延迟灵敏度aij表示关于第i层li的、第j角cj与标称角c0之间的线延迟差。在实施例中,线延迟灵敏度aij从标称线延迟wd_nom和线延迟灵敏度系数sij的乘积获得,即aij=wd_nom*sij。

具体地,根据实施例,通过计算对于所有层和所有角的线延迟灵敏度,线延迟灵敏度的规范格式可以被表示为线延迟灵敏度向量δwd,如等式5所示。

等式5:

这里,i是层索引,j是角索引,并且li是具有0或1的值的层变量。当没有线变化发生时,li为0,并且当发生线变化时,li为1。例如,当第一金属层不发生变化时,l1为0,并且当发生第一金属层的变化时,l1为1。j为角索引,cj为值为0或者1的变量,并且cj之和为1,即∑jcj=1。当寄生分量由于全局变异而移位到第j角时,cj为1,并且当没有寄生分量移位到第j角时,cj为0。

根据实施例,在操作s430中,通过经由时序路径传播线延迟灵敏度来计算时序路径的松弛(slack)。例如,当时序路径包括第一网和第二网时,通过将第一网的第一线延迟灵敏度向量a与第二网的第二线延迟灵敏度向量b相加、或者通过从第一网的第一线延迟灵敏度向量a中减去第二网的第二线延迟灵敏度向量b,执行线延迟灵敏度向量的传播。因此,通过第一线延迟灵敏度向量a和第二线延迟灵敏度向量b的相加/相减得到传播的线延迟灵敏度向量z,即z=a±b。传播的线延迟灵敏度向量z由等式6表示。

等式6:

根据实施例,根据等式7获得表示当由于线变化而通过时序路径传播的线延迟最慢时的线延迟灵敏度的最差线延迟灵敏度。

等式7:

另一方面,根据实施例,根据等式8获得表示当由于线变化而通过时序路径传播的线延迟最快时的线延迟灵敏度的最佳线延迟灵敏度。

等式8:

接下来,根据实施例,从传播的线延迟灵敏度向量z来计算统计上的悲观松弛。在计算时序路径的松弛时,最佳值是从根据捕捉路径的所需时间和发射路径的到达时间之间的差确定的延迟灵敏度向量获得的。具体而言,松弛由等式9计算。

等式9:

δwd=∑i(∑jaijcj)li=∑i(∑j(arrij-reqij)cj)li

这里,arrij是发射路径的到达时间,reqij是捕获路径所需时间。例如,根据等式10获得对应于3-sigma标准偏差的松弛。

等式10:

slack3sigma=slacku+3*δwd,bst

对应于3-sigma标准偏差的松弛对应于反映3-sigma水平对松弛的平均值、即标称值slacku的最佳灵敏度的值。因此,对应于n-sigma标准偏差的松弛对应于反映n-sigma水平对松弛的平均值、即标称值slacku的最佳灵敏度的值,即n*δwd,bst。以这种方式,基于计算的松弛,可以确定时序路径是否满足时序要求。

图15示出了根据实施例的集成电路150。

参考图15,根据实施例,集成电路150包括作为驱动单元的第一单元cell1以及第一时序弧arc1和第二时序弧arc2。例如,第一时序弧arc1和第二时序弧arc2对应于图7a至图7c中所示的时序弧。在下文中,将参考图7a至图7c和图15来描述集成电路150。

根据实施例,从第一单元cell1至第一加载引脚lp1的延迟对应于在第一单元cell1中生成的单元延迟151和在第一时序弧arc1生成的线延迟152的总和。线变化不仅可以影响线延迟152,还可以影响单元延迟151。例如,当发生第一金属层m1的工艺变异时,第一时序弧arc1的线延迟152和单元延迟151都可以改变。在下文中,将参考图16描述通过考虑由于线变化引起的单元延迟变化来执行时序分析的方法。

图16是示出根据实施例的执行时序分析的方法的流程图。图17示出了图16的时序分析方法的示例。在下文中,将参考图15至图17描述根据本实施例的时序分析方法。

根据本实施例的时序分析方法对应于图14的时序分析方法的修改。因此,上面参考图14和图15给出的描述适用于本实施例。在操作s500中,基于多个寄生分量描述文件300来执行静态时序分析操作,以基于全局变异来生成包括线延迟变化和单元延迟变化的时序报告400a。操作s500包括操作s510至s570。

根据实施例,在操作s510中,计算时序弧的线延迟灵敏度。例如,通过将标称线延迟wd_nom乘以线延迟灵敏度系数sij来计算第一时序弧arc1的线延迟灵敏度aij。例如,第一时序弧arc1的标称线延迟wd_nom是5皮秒(ps)。因此,第一金属层m1的线延迟灵敏度在第一角c1处为1ps,并且在第二角c2处为-1ps。第二金属层m2的线延迟灵敏度在第一角c1为-0.5ps,并且在第二角c2为2.5ps。

根据实施例,在操作s530中,计算单元延迟灵敏度。例如,使用标准单元库中的单元表征函数来计算单元延迟灵敏度a'ij。具体地,通过使用单元的输入斜率和连接到单元的输出端子的时序弧的电容ctotal,如等式11中所示地计算单元延迟灵敏度a'ij。

等式11:

a′ij=f(slew,ctotal*csij)-f(slew,ctotal)

例如,第一单元cell1的标称单元延迟cd_nom是10ps。在这种情况下,第一金属层m1的单元延迟灵敏度在第一角c处1为3ps,并且在第二角c2处为-3ps。第二金属层m2的单元延迟灵敏度在第一角c1处为1ps,并且在第二角c2处为-1ps。

根据实施例,在操作s550中,通过合并线延迟灵敏度aij和单元延迟灵敏度a'ij来计算单元/线延迟灵敏度a"ij。单元/线延迟灵敏度a"ij对应于由于线的全局变化导致的全局延迟变化,并且被称为全局延迟灵敏度。具体而言,单元/线延迟灵敏度a"ij由等式12计算。

等式12:

a"ij=wd_nom*sij+f(slew,ctotal*csij)-f(slew,ctotal)

这里,i是层索引,并且j是角索引。单元/线延迟灵敏度a"ij表示第i层的第j角cj与标称角c0之间的单元/线延迟差,单元/线延迟灵敏度向量δw'd通过计算相对于所有层和所有角的单元/线延迟灵敏度a"ij而由等式13表示。

等式13:

根据实施例,由于单元/线延迟灵敏度a"ij包括单元的延迟灵敏度和由于任何线变化而导致的线的延迟灵敏度,所以单元/线延迟灵敏度被称为总冲击(impact)。例如,第一金属层m1的总冲击在第一角c1处为4ps,在第二角c2处为-4ps。第二金属层m2的总冲击在第一角c1处为0.5ps,并且在第二角c2处为1.5ps。

根据实施例,在操作s570中,通过经由时序路径传播单元/线延迟灵敏度a"ij来计算时序路径的松弛。使用等式6来执行单元/线延迟灵敏度a"ij的传播。基于传播的单元/线延迟灵敏度,将对于每层具有最大灵敏度的角选为最差角。例如,在第一金属层m1的情况下,第一角c1被选为最差角,并且在第二金属层m2的情况下,第二角c2被选为最差角。

接着,根据实施例,通过在最大灵敏度之间执行均方根(rootsumsquare,rss)来计算统计最差灵敏度。例如,通过在作为第一金属层m1的最差角c1处的最大灵敏度的4ps和作为在第二金属层m2的最差角c2处的最大灵敏度的1.5ps之间执行rss,统计最差灵敏度被计算为4.3ps。

图18是根据实施例的执行时序分析的方法的流程图。

参考图18,根据本实施例的时序分析方法对应于图16的时序分析方法的变型。因此,上面参考图16和图17给出的描述适用于本实施例。在操作s600中,基于多个寄生分量描述文件300执行静态时序分析操作,以生成包括基于全局变异和局部随机变异的延迟变化的时序报告400b。操作s600包括操作s610至s690。

根据实施例,在操作s610中,计算时序弧的线延迟灵敏度。在操作s630中,计算单元延迟灵敏度。在操作s650中,通过合并线延迟灵敏度和单元延迟灵敏度来计算单元/线延迟灵敏度,即全局延迟灵敏度。该过程可以类似地用于计算局部随机延迟灵敏度度。操作s610至s650分别对应于图16中的操作s510至s550。

根据实施例,具体地,根据等式14来计算局部随机延迟灵敏度ar。

等式14:

根据实施例,在操作s660中,延迟灵敏度通过时序路径传播。具体而言,通过时序路径传播全局延迟灵敏度和局部随机延迟灵敏度。在传播操作中,包括全局延迟灵敏度和局部随机延迟灵敏度的总延迟灵敏度向量δw"d由等式15表示。

等式15:

这里,a"ij是根据等式12计算的单元/线延迟灵敏度,并且xr是关于随机变化的随机变量。

根据实施例,在操作s670中,通过将全局延迟灵敏度与局部随机延迟灵敏度合并来计算总延迟变化。在这种情况下,可以从等式16获得最差延迟灵敏度。

等式16:

另一方面,根据实施例,从等式17获得最佳延迟灵敏度。

等式17:

根据实施例,在操作s690中,计算时序路径的松弛。根据总延迟灵敏度向量来计算统计悲观松弛。在计算时序路径的松弛中,根据从捕捉路径的所需时间和发射路径的到达时间之间的差确定的延迟灵敏度向量来获得最佳值。例如,从上述等式10获得对应于3-sigma标准偏差的松弛。

图19是根据实施例的用于设计集成电路的计算系统500的框图。

参考图19,用于设计集成电路的计算系统、以下称为“集成电路设计系统”500包括处理器510、存储器530、输入/输出(i/o)设备550、存储设备570和总线590。集成电路设计系统500设计集成电路并且包括图1的操作s110到s170、图5的操作s210至s250、图6的操作s300、图14的操作s400、图16的操作s500或者图18的操作s600。在实施例中,集成电路设计系统500被实现为集成设备,因此也可以被称为集成电路设计装置。集成电路设计系统500可以被提供为用于设计半导体器件的集成电路的专用装置,或者可以是运行各种仿真工具或设计工具的计算机。

根据实施例,处理器510可以运行执行用于设计集成电路的各种操作中的至少一个的指令。处理器510通过总线590与存储器530、i/o设备550和存储装置570通信。处理器510通过运行加载在存储器530中的pex模块531和sta模块532来运行集成电路设计操作。

根据实施例,存储器530存储pex模块531和sta模块532。另外,存储器530存储综合模块和p&r模块。pex模块531和sta模块532从存储设备570被加载到存储器530中。存储器530可以是例如诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)的易失性存储器,或诸如pram、mram、reram、fram或nor闪存的非易失性存储器。

根据实施例,pex模块531是例如包括基于图1的操作s150、图5的操作s230或者图6的操作s300来执行寄生提取操作的多个指令的程序。sta模块532例如是包括基于图1的操作s170、图5的操作s250、图14的操作s400、图16的操作s500或图18的操作s600来执行时序分析操作的多个指令的程序。

根据实施例,i/o设备550控制来自用户界面设备的用户输入和输出。例如,i/o设备550包括用于接收定义集成电路的输入数据的输入设备,诸如键盘、鼠标和/或触摸板。例如,i/o设备550包括显示放置结果、路由结果和/或时序分析结果的输出设备,诸如显示器和/或扬声器。

根据实施例,存储设备570存储与pex模块531和sta模块532相关的各种数据。存储设备570可以是例如存储卡,诸如mmc、emmc、sd或microsd、固态驱动器或硬盘驱动器。

图20示出了根据实施例存储在图19的存储器530中的程序的示例。

参考图19和图20,存储在存储器530中的程序包括多个过程prc,并且每个过程包括用于执行特定任务的一系列指令。过程也可以被称为功能、例程、子例程或子程序。根据本实施例,过程prc包括寄生分量提取器prc1和静态时序分析器prc2。具体地,pex模块531包括寄生分量提取器prc1,并且sta模块532包括静态时序分析器prc2。在本说明书中,通过图19的处理器510运行诸如寄生分量提取器prc1或静态时序分析器prc2的过程来执行操作被表示为通过诸如寄生分量提取器prc1或静态时序分析器prc2的过程执行操作。

根据实施例,存储设备570包括单元库数据库(db)571、布局db573和技术文件db575。单元库db571存储关于用于生成集成电路的布局的标准单元的信息,并被称为标准单元库db。布局db573存储关于由过程生成的布局的信息,例如关于布局的物理信息。技术文件db575存储指定在集成电路制造过程中使用的材料和规则的技术文件。技术文件db575存储例如层定义、设备定义或设计规则。在本实施例中,技术文件db575存储分别对应于多个金属层的寄生分量的角值。

根据实施例,寄生分量提取器prc1通过基于布局数据和技术文件200对每一层的角执行寄生分量提取操作来生成包括时序弧的延迟变化信息的寄生分量描述文件300。静态时序分析器prc2通过基于寄生分量描述文件300执行静态时序分析操作来生成时序报告。

图21是根据实施例的制造半导体器件的方法的流程图。

参考图21,根据实施例,半导体器件制造方法被分成集成电路设计处理和集成电路制造处理。集成电路设计处理包括操作s710和s730,并且集成电路制造处理包括操作s750和s770,并且在基于布局数据、基于集成电路制造半导体器件的半导体处理模块中执行。根据本实施例的半导体器件制造方法通过执行上面参考图1至图20描述的集成电路设计方法来制造半导体器件。具体地,操作s710和s730分别对应于图1的操作s150和s170,并且参考图1至图20在上面描述的实施例适用于本实施例。

根据实施例,在操作s750中,基于布局数据生成掩模。基于在操作s730中生成的时序分析数据来修改布局数据,并且基于修改的布局数据来生成掩模。具体而言,首先基于布局数据执行光学邻近校正(opc),其中opc指的是通过反映由于光学邻近效应引起的错误来修改布局的处理。随后,根据基于opc执行结果修改的布局来制造掩模。在这种情况下,使用opc修改的布局、例如反映opc的图形数据系统(gds)ii来制造掩模。

根据实施例,在操作s770中,使用掩模来制造包括集成电路的半导体器件。具体而言,包括集成电路的半导体器件通过使用多个掩模在诸如晶片的半导体基底上执行各种半导体处理而形成。例如,使用掩模的处理可以包括光刻图案化处理。通过图案化处理,在半导体基底或材料层上形成期望的图案。半导体处理包括沉积处理、蚀刻处理、离子处理和清洁处理。另外,半导体处理包括半导体器件被安装在pcb上并用密封剂密封的封装处理,并且包括测试半导体器件或封装的测试处理。

图22示出根据实施例的计算机可读存储介质1000。

参考图22,根据实施例,存储介质1000存储布局数据1100、技术文件1200、pex程序1300和sta程序1400。存储介质1000是计算机可读存储介质,并且包括在用于向计算机提供指令或数据时由计算机读取的存储介质。例如,计算机可读存储介质1000可以是诸如磁盘、磁带、cd-rom、dvd-rom、cd-r、cd-rw、dvd-r或磁盘dvd-rw的磁或光介质,诸如ram、rom或闪存的易失性或非易失性存储器,通过usb接口或微机电系统(mems)可访问的非易失性存储器。计算机可读存储介质可以被插入计算机中、集成到计算机中、或者通过诸如有线或无线网络的通信介质与计算机连接。

根据实施例,布局数据1100包括关于由p&r操作生成的布局的物理信息。例如,布局数据1100对应于图6的布局数据100。例如,技术文件1200对应于图6的技术文件200或者图8a或图8b的技术文件200a或200b。

根据实施例,pex程序1300包括执行根据实施例的寄生分量提取方法的多个指令。例如,pex程序1300被用于执行图1的操作s150、图5的操作s230或者图6的操作s300。sta程序1400包括执行根据实施例的时序分析方法的多个指令。例如,sta程序1400被用来执行图1的操作s170、图5的操作s250、图4的操作s400、图16的操作s500或者图18的操作s600。

虽然已经参考其示例性实施例具体示出和描述了本发明构思的实施例,但是将理解的是,在不脱离所附权利要求的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1