一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集成电路设计中的全局误跟踪分析的制作方法

2022-02-24 12:42:39 来源:中国专利 TAG:

集成电路设计中的全局误跟踪分析
1.相关申请
2.本技术要求于2020年8月14日提交的美国临时申请序列号63/065,780的权益,出于所有目的,其内容通过引用整体并入本文。
技术领域
3.本公开涉及集成电路(ic)设计。更具体地,本公开涉及ic设计中的全局误跟踪分析。


背景技术:

4.工艺技术中的进步以及对计算和存储的日益增长的需求已经推动了ic设计的尺寸和复杂性的增加。静态时序分析(sta)是ic设计流程中的重要步骤,其中可以检查ic设计的时序约束,以确保当制造ic设计时ic设计按预期操作。


技术实现要素:

5.本文描述的实施例的特征在于用于在ic设计中执行全局误跟踪分析的技术和系统。对于发射路径和捕获路径对中的每个电路元件,电路元件的参数值可以被修改被分配给该电路元件所属的电路元件的类别的变化量。接下来,可以计算时序松弛用于发射路径和捕获路径对。
6.在本文描述的一些实施例中,电路元件的每个类别具有对应的变化模型,该变化模型被用于将变化量分配给电路元件的类别。在本文描述的一些实施例中,变化模型是基于拐角的模型。在本文所述的一些实施例中,变化模型是统计模型。
7.在本文描述的一些实施例中,电路元件的每个类别对应于掩模集合,其中使用对应于电路元件的给定类别的掩模集合来制造在电路元件的给定的类别中的每个电路元件。
8.在本文描述的一些实施例中,电路元件的至少一个类别包括具有相同阈值电压的晶体管。在本文描述的一些实施例中,电路元件的至少一个类别包括具有相同掺杂类型的晶体管。在本文描述的一些实施例中,电路元件的至少一个类别包括具有相同沟道长度的晶体管。在本文描述的一些实施例中,电路元件的至少一个类别包括相同金属层上的互连。
9.在本文描述的一些实施例中,可以基于变化模型来生成分配,其中每个分配包括用于电路元件的每个类别的参数变化量。接下来,可以基于分配在变化模型之间决定相关性。可以构建时序-松弛-敏感性模型,该模型计算分配对时序松弛的影响。接下来,时序-松弛-敏感性模型可以被用于计算与相关的分配的集合相对应的时序松弛的集合,该集合是基于变化模型之间的相关性生成的。
附图说明
10.基于以下给定的详细描述和附图可以理解本公开。附图用于说明目的,并不限制本公开的范围。此外,附图不一定按比例绘制。
11.图1图示了根据本文描述的一些实施例的通过对全局误跟踪进行建模来计算时序松弛的过程。
12.图2图示了根据本文描述的一些实施例的用于分析时序路径的过程。
13.图3图示了根据本文描述的一些实施例的基于拐角的时序签收和基于区域的时序签收。
14.图4图示了根据本文描述的一些实施例的基于拐角的模型。
15.图5图示了根据本文描述的一些实施例的统计模型。
16.图6图示了根据本文描述的一些实施例的基于拐角的模型的覆盖范围和统计模型的覆盖范围。
17.图7图示了根据本文描述的一些实施例的用于基于蒙特卡洛(mc)的全局误跟踪分析的过程。
18.图8图示了根据本文描述的一些实施例的时序松弛的分布。
19.图9图示了在制品(诸如,集成电路)的设计、验证和制造期间使用的工艺的示例集合,以转换和验证代表集成电路的设计数据和指令。
20.图10图示了计算机系统的示例机器,在该计算机系统内可以执行用于导致机器执行本文讨论的任何一个或多个方法的指令。
具体实施方式
21.可以通过使用半导体制造工艺来制造ic芯片。半导体制造工艺中的每一步都可以使用复杂的物理和/或化学工艺。术语“工艺变化”可以指在半导体制造期间发生的一个或多个随机和/或系统变化,该变化导致在所制造的ic芯片中的电路元件的特性和/或行为中的变化。术语“误跟踪(mistracking)”可以指不同的电路元件受到给定的工艺变化的不同地影响。例如,给定工艺变化可以导致一种类型的晶体管开关速度更快,但是导致另一种类型的晶体管开关速度更慢。术语“工艺拐角(process corner)”或“拐角”可以指与工艺变化的相对应的电路元件的电气属性的值。例如,给定的工艺拐角可以对应于特定的晶体管阈值电压值。
22.随着技术节点的不断缩小,ic设计对于变化(诸如,阈值电压变化、掺杂密度变化和几何变化)变得越来越敏感。术语“技术节点”可以指能够通过半导体制造工艺可靠地制造的最小特征尺寸。例如,术语“5nm节点”可以指可以可靠地制造5nm特征的半导体制造工艺。术语“高级技术节点”可以指当前正在使用的最小技术节点。
23.工艺变化通常可以被分类为全局变化和局部变化。术语“全局”可以指整个ic设计,而术语“局部”可以指电路元件周围的邻域。具体地,全局变化可以影响整个ic设计中属于电路元件的相同类别的电路元件。属于不同类别的电路元件可能受到全局变化的影响不同。这可能导致全局误跟踪,如果建模不准确,则可能导致严重的时序问题并且导致芯片故障。
24.本文描述的实施例通常适用于任何电路元件中的全局变化。全局变化的一个示例是可能由晶体管阈值电压中的变化导致的阈值电压(vt)误跟踪。全局变化的另一示例是可以由金属层中的金属线之间的宽度、电阻率、厚度和/或间距的变化导致的互连误跟踪。
25.掩模的不同集合可以被用于制造属于不同vt类别的晶体管,这可以导致晶体管阈
值电压变化在一个vt类别内强烈地相关,但是在不同的vt类别之间较弱地相关。同样,掩模的不同集合可以被用于制造不同的金属层,这可以导致电阻率和/或电容变化在一个金属层内强烈地相关,但是在不同的金属层之间较弱地相关。
26.通过假设所有晶体管和/或互连具有基于相同拐角的变化来执行ic设计时序签收分析会导致不准确。用户可以利用基于裕量的方法来实现时序安全。例如,可以使用时序降额(例如通过在捕获路径中施加最小时序降额并且在发射路径中施加最大时序降额)来限制vt误跟踪影响。术语“降额(derate)”可以指为了安全被添加到参数值的误差裕量。
27.这种基于捕获路径上最小和发射路径上最大的时序降额的方法可以实现签收安全。然而,这种方法过于悲观,导致在性能、功率和面积(ppa)方面的过度设计。如果该方法报告的ppa相关值(例如,路径的时序松弛、ic设计的面积、ic设计的泄漏功率)比在实际制造的ic芯片中可能发生的ppa相关的值的范围更差,则该方法是“悲观的”。如果在这些方法中的签收期间没有悲观地执行降额,则可以导致不安全的签收。
28.误跟踪还可以对ic设计施加其它限制。例如,ic设计可能被迫在时钟网络中仅使用一个vt分类,以使电路行为更加一致。在使用许多vt类别的高级技术节点处,该约束可以变得更加有限。
29.因此,需要能够准确地对电路元件中的全局误跟踪进行建模并且减少时序悲观的解决方案。具体地,需要在sta期间减小时序悲观,以便ic设计可以实现安全时序签收并且以更高的时钟速度操作。
30.本文描述的实施例可以准确地并且有效地为全局变化对电路元件的影响进行建模,并且准确地并且有效地预测全局变化对时序松弛的影响。本文公开的一些实施例为工艺变化对电路元件的影响全局地建模,并且对ic设计执行有效的全局误跟踪分析,以在显著降低的悲观的情况下确保签收安全。具体地,本文描述的一些实施例以用于晶体管和互连的全局误跟踪分析的技术和系统为特征。本文描述的一些实施例以准确且高效的基于mc的分析引擎为特征。
31.本文公开的实施例的特征和优点包括但不限于:(1)将一个基于拐角的sta延伸到基于区域的分析以改善签收安全,(2)显著地降低悲观,从而使电路设计更加具有竞争力,(3)对在发射路径和捕获路径两者中的电路元件的相同类别施加相同的全局变化,(4)明确地对电路元件的不同类别之间的相关性进行建模,以及(5)对各种类型的全局误跟踪问题的普遍适用性。发射路径和捕获路径是用于计算延迟的时序路径。发射路径和捕获路径在时钟树上的相同点处开始。发射路径对应于从第一寄存器“发射的”信号。发射路径穿过第一寄存器的时钟引脚、第一寄存器的输出,并且在第二寄存器的输入处结束。捕获路径对应于在第二寄存器处“捕获的”信号。捕获路径穿过时钟树并且在第二寄存器的时钟引脚处结束。
32.图1图示了根据本文描述的一些实施例的通过对全局误跟踪进行建模来计算时序松弛的过程。
33.可以(在102处)接收用于电路元件的类别的变化模型。接下来,可以(在104处)基于变化模型分配对电路元件的类别的变化量。变化量的示例包括但不限于,(1)晶体管的阈值电压中的变化,(2)晶体管的开关延迟中的变化,(3)金属互连的寄生电阻中的变化,以及(4)金属互连的寄生电容中的变化。具体地,可以生成分配118的集合,其中在每个分配中,
电路元件的类别基于变化模型被分配变化量。
34.对于给定的分配,电路元件的参数值可以(在106处)被修改被分配给电路元件所属的电路元件的类别的变化量。参数的示例包括但不限于,(1)晶体管的阈值电压,(2)晶体管的开关延迟,(3)金属互连的寄生电阻,以及(4)金属互连的寄生电容。可以通过变化量来增加或减少参数值。例如,如果参数值为1.0,并且变化量为-0.1,则经修改的参数值为0.9。
35.例如,发射路径114可以包括电路元件110,并且捕获路径116可以包括电路元件112。电路元件110和112可以属于电路元件的相同类别,例如,电路元件的类别使用低电压阈值晶体管(在图1中示出为“lvt”)。对于分配118的集合中的给定的分配,电路元件110和112中的晶体管的电压阈值被修改相同的变化量。发射路径14和捕获路径16中的其它电路元件可以属于电路元件的其它类别,该电路元件在图1中被示出作为标准电压阈值(svt)、超低电压阈值(ulvt)和极低电压阈值(elvt)。被分配给电路元件属于svt类别、ulvt类别和elvt类别的电路元件的变化量可以不同于被分配给属于lvt类别的电路元件110和112的变化量。接下来,对于给定的分配,可以(在108处)为每对发射路径和捕获路径计算时序松弛。然后,可以识别导致时序松弛的最坏的集合的分配。电路元件的参数值中的变化可以影响电路元件的延迟。例如,阈值电压中的降低可以导致晶体管开关更快(即,具有更低的延迟)。因此,一旦电路元件的参数值已经在106处被修改,则可以通过聚合对应于被修改的参数值的各个电路元件延迟值来计算时序路径的延迟。接下来,可以使用新的时序路径来计算时序松弛。
36.在本文描述的一些实施例中,电路元件的每个类别可以对应于被用于制造电路元件的类别的掩模的集合。例如,掩模的第一集合可以被用于制造低电压阈值晶体管,并且掩模的第二集合可以被用于制造超低电压阈值晶体管。因此,低电压阈值晶体管可以属于电路元件的第一类别,并且超低电压阈值晶体管可以属于电路元件的第二类别。此外,掩模的第三集合可以被用于在第一金属层上制造互连,并且掩模的第四集合可以被用于在第二金属层上制造互连。因此,第一金属层上的互连可以属于电路元件第三类别,并且第二金属层上的互连可以属于电路元件的第四类别。
37.电路元件的每个类别对应于掩模的不同集合。如果掩模的两个集合相差至少一个掩模,则它们是不同的。因此,掩模的集合{m-1,m-2,m-3}和掩模的集合{m-1,m-2,m-4}是不同的掩模的集合。电路元件的类别与掩模的集合之间的对应关系至少基于以下非显而易见的见解:由相同的掩模集合制造的电路元件预计具有相似的参数变化。换句话说,如果相同的掩模集合被用于制造晶体管的集合,则晶体管的集合中的每个晶体管的参数(例如,电压阈值)预计变化相同的量。因此,本文描述的实施例可以(1)将变化量分配给电路元件的类别,其中电路元件的每个类别可以对应于掩模的集合,并且(2)将电路元件的参数值修改被分配给电路元件所属的电路元件的类别的变化量。
38.图1图示的过程通常可以被用于准确地分析用于任何类型的电路元件的任何类型的误跟踪。误跟踪的类型包括但不限于,晶体管阈值电压误跟踪、晶体管掺杂误跟踪、晶体管沟道长度误跟踪、金属层电阻率误跟踪、金属层轨迹宽度误跟踪、以及金属层厚度误跟踪。电路元件的类型包括但不限于晶体管和金属互连。
39.图2图示了根据本文描述的一些实施例的用于分析时序路径的过程。在本文描述的一些实施例中,可以(在202处)对ic设计执行静态时序分析以识别具有临界时序松弛的
发射路径和捕获路径对204。接下来,可以(在206处)对每对发射路径和捕获路径执行全局误跟踪分析(例如,图1中所示的过程)。
40.图3图示了根据本文描述的一些实施例的基于拐角的时序签收和基于区域的时序签收。可以在几个拐角处(例如,在快速-快速(ff)拐角处,在典型-典型(tt)拐角处,以及慢速-慢速(ss)拐角处)执行时序签收。tt拐角对应于导致n型金属氧化物半导体(nmos)晶体管和p型金属氧化物半导体(pmos)晶体管以典型的速度开关的半导体制造条件。tt中的第一“t”对应于nmos晶体管的开关速度并且tt中的第二“t”对应于pmos晶体管的开关速度。同样,ff拐角对应于比典型更快的开关速度,并且ss拐角对应于比典型更慢的开关速度。“ ”或
“‑”
下标是指相对于拐角值的变化。因此,“t ”指的是相对于典型开关速度的开关速度中的变化,并且“f ”指的是相对于快速开关速度的开关速度中的变化。
41.在一些sta方法中,在签收期间仅可以分析ff拐角、tt拐角和ss拐角。在本文描述的一些实施例中,可以在签收期间分析与ff拐角302、tt拐角304和ss拐角306相对应的阴影区域的参数变化。因此,本文描述的实施例可以通过覆盖参数变化的区域而不是仅覆盖拐角的集合来改善签收安全性。本文描述的实施例在物理上是现实的并且比基于裕量的签收方法更准确。
42.变化模型
43.变化模型包括基于拐角的模型和统计模型。图4图示了根据本文描述的一些实施例的基于拐角的模型。可以通过偏斜晶体管参数来获得基于拐角的模型,以便最大化或最小化对时序的影响。例如,可以改变晶体管的阈值电压、掺杂和/或沟道长度以获得三个开关速度拐角,即慢速拐角、典型拐角和快速拐角。术语“开关速度”指的是晶体管在关断状态与导通状态之间切换所需的时间,其中较高的切换速度对应于在两个状态之间切换所需的较短的时间量。
44.基于拐角的模型402通过使用最小/最大时序降额对时序影响建模。例如,对于svt晶体管的类别,在tt拐角处的最小开关延迟由降额因子0.94表示,并且最大开关延迟由降额因子1.06表示。同样,基于拐角的模型402定义了用于晶体管的其它类别的最小降额和最大降额。
45.在基于拐角的模型402中的晶体管的每个类别在tt拐角处具有两个时序降额。因此,如果存在n个类别,则可以通过枚举n个类别的时序降额的组合在tt拐角处生成2n个时序影响分配。在基于拐角的模型402中,n=4,并且可以生成总共16个分配,其中每个分配包括四个时序影响,每个类别一个时序影响。例如,可以基于基于拐角的模型402生成分配404,其中晶体管的每个类别已经被分配了最小时序降额值或最大时序降额值。
46.图5图示了根据本文描述的一些实施例的统计模型。
47.统计模型提供了当晶体管的参数变化时产生的时序值的分布。例如,统计模型可以将晶体管的开关速度建模为概率分布(例如,具有平均值和标准偏差的正态分布),其中给定的开关速度与在制造期间预期出现的开关速度的概率值相关联。通常,统计模型比基于拐角的模型更准确。
48.统计模型502通过使用时序降额的分布来对时序影响进行建模。例如,为svt晶体管的类别提供时序降额分布。同样,统计模型402可以为晶体管的其它类别定义时序降额分布。可以从每个分布随机采样时序降额值以生成一个分配。例如,可以基于统计模型502生
成分配504,其中基于对相对应的时序降额分布的采样,已经为晶体管的每个类别分配了时序降额值。
49.图6图示了根据本文描述的一些实施例的基于拐角的模型的覆盖范围和统计模型的覆盖范围。考虑具有两个阈值类别的情况:vt1和vt2。基于拐角的模型可以通过枚举最大时序降额值和最小时序降额值来覆盖拐角602、604、606和608。换句话说,统计模型可以覆盖参数空间中的区域610。例如,可以通过对用于vt1和vt2的分布进行采样来获得分配612。可以通过重复地对用于vt1和vt2的分布进行采样来覆盖区域610。
50.可以通过使用统计模型而不是基于拐角的模型来减少时序悲观。在图6所示的示例中,时序悲观的减少可以对应于区域610与由拐角602、604、606和608形成的正方形之间的面积。
51.基于mc的全局误跟踪分析
52.图7图示了根据本文描述的一些实施例的基于mc的全局误跟踪分析的过程。
53.可以基于变化模型生成分配,其中每个分配包括(在702处)用于电路元件的每个类别的参数变化量以获得独立分配710的集合。参数变化量是参数值中的变化。例如,如果参数值为1.0,并且变化量为-0.1,则将参数变化量施加到参数值导致0.9的修改的参数值。接下来,可以(在704处)基于独立分配的集合来决定变化模型之间的相关性以获得相关的分配的集合712。
54.电路元件的不同类别可以部分地相关。可以通过使用如下所示的相关性矩阵c来表示相关性:
[0055][0056]
其中,di是用于电路元件的第i类别的统计模型,《di,dj》是di与dj之间的相关性,并且p是电路元件的类别的数目。
[0057]
考虑随机采样的向量x1,x2,
……
,x
p
,其中每个向量包含n个元素,其中n是采样的分配的数目。可以使用矩阵将随机向量表示如下:
[0058]
x=[x1,x2,

,x
p
],
[0059]
并且相关矩阵c与x之间的关系可以表示如下:
[0060][0061]
其中,《xi,xj》是xi与xj之间的相关性
[0062]
可以对矩阵c执行主成分分析(pca)以生成特征向量v和对角矩阵σ。具体地,在一些实施例中,奇异值分解(svd)可以被用于该目的。因此,矩阵c可以被表示为:
[0063]
c=vσv
t
[0064]
其中,v是由x的独立向量空间组成的矩阵
[0065]
σ是由x的奇异值的平方组成的对角矩阵
[0066]
映射矩阵vσ
1/2
可以被用于将独立的随机变量投影到相关的随机变量。具体地,映射矩阵可以被用于将独立的随机采样的分配映射到相关的采样的分配。
[0067]
接下来,参考图7,可以构建时序-松弛-敏感性模型,该模型可以被用于(在706处)决定用于分配的集合中的每个分配的时序松弛。
[0068]
当使用大量的分配时,执行mc分析在计算上可能是昂贵的。一些实施例构建时序-松弛-敏感性模型以执行有效的mc分析。具体地,本文描述的一些实施例可以执行敏感性分析以构建时序-松弛-敏感性模型。例如,单个参数可以被少量变化,并且可以计算变化对时序松弛的影响。接下来,可以将时序松弛中的变化与参数中的变化之间的比率存储作为用于参数的敏感性系数。
[0069]
例如,对于电压阈值类别的给定的集合,可以构建以下时序松弛敏感性模型:
[0070][0071]
其中,s是路径松弛
[0072]
s0是标称路径松弛
[0073]
xi由降额因子决定
[0074]ai
是敏感性系数
[0075]
在上述等式中,基于给定的分配决定xi值。ai值是当构建时序-松弛-敏感性模型时决定的常数。在上述模型中,标称路径松弛是用于给定的时序路径的松弛,例如从发射点开始,穿过组合云,并且在捕获点处结束的路径。时序路径还可以包括发射和捕获寄存器的任何时钟偏差和延迟。由于工艺变化,给定的时序路径的松弛可能改变。敏感性系数捕获特定变化对整体松弛的影响。电路元件的给定类别的敏感性系数可以由以下方式计算:(1)将电路元件的给定类别的时序修改增量的量,(2)当电路元件的给定类别的时序被修改该增量的量时计算标称路径松弛s0中的改变,以及(3)将标称路径松弛s0中的变化除以增量的量。出于说明目的,已经示出了上述时序-松弛-敏感性模型。通常,时序-松弛-敏感性模型可以被构建用于电路元件的类别的任何集合,并且可以包括线性项和/或非线性项。
[0076]
接下来,参考图7,时序松弛敏感性模型可以被用于(在708处)基于相关的分配的集合计算时序松弛的集合。具体地,可以通过对独立的随机变量进行采样并且将映射矩阵vσ
1/2
施加到随机采样来生成相关的分配的集合。接下来,时序-松弛-敏感性模型可以被用于有效地决定与相关的分配的集合相对应的时序松弛的集合。可以基于时序约束的临界松弛阈值过滤时序松弛以获得对应于不满足时序约束的时序松弛的临界分配714的集合。
[0077]
图8图示了根据本文描述的一些实施例的时序松弛的分布。可以基于时序松弛的集合创建时序松弛的分布。具体地,x轴可以对应于时序松弛,并且y轴可以对应于分配的计数,该分配的计数对应于给定的时序松弛值。接下来,可以选择对应于比临界松弛阈值802更差的时序松弛的分配。在一些实施例中,如果松弛分布是具有平均值μ和标准偏差σ的正态分布,则临界时序松弛阈值可以是(μ-3σ)。所选择的分配可以被称为临界分配。
[0078]
然后可以使用图1中的过程来决定用于临界分配的集合的时序松弛。具体地,对于每个临界分配,电路元件的参数值可以被修改被分配给电路元件所属的电路元件的类别的变化量。接下来,可以计算用于每对发射路径和捕获路径的时序松弛。然后,可以使用这些时序松弛来签收ic设计。
[0079]
图9图示了在制品(诸如,集成电路)的设计、验证和制造期间使用的工艺900的示例集合,以转换和验证代表集成电路的设计数据和指令。这些工艺中的每个工艺都可以作为多个模块或操作被构建和使能。术语“eda”表示术语“电子设计自动化”。eda可以使用一个或多个cad工具。这些工艺开始于利用由设计师提供的信息创建产品创意910,该信息被转换以创建使用eda工艺912的集合制造的产品。当设计完成时,设计被流片934,这是当用于集成电路的艺术品(例如,几何图案)被发送到制造设施以制造掩模集合时,然后掩模集合被用于制造集成电路。在流片之后,制造半导体管芯936并且执行封装和组装工艺938以生产完成的集成电路940。
[0080]
用于电路或电子结构的规范范围可以从低级晶体管材料布局到高级描述语言。高级表示可以被用于使用硬件描述语言(“hdl”)(诸如,vhdl、verilog、systemverilog、systemc、myhdl或openvera)设计电路和系统。hdl描述可以被转换为逻辑级寄存器传输级(“rtl”)描述、门级描述、布局级描述或掩码级描述。作为更具体描述的每个较低表示级向设计描述添加更多有用的细节,例如,针对包括描述的模块的更多细节。可以由计算机生成、从设计库派生或由另一设计自动化过程创建作为更具体描述的较低级的表示。用于指定更详细描述的在较低级的表示语言处的规范语言的示例是spice,该规范语言被用于具有许多模拟部件的电路的详细描述。每一级的表示处的描述被使能用于由该层的对应的工具(例如,形式验证工具)使用。设计工艺可以使用图9中描绘的序列。由eda产品(或工具)使能所描述的工艺。
[0081]
在系统设计914期间,指定要被制造的集成电路的功能。可以针对期望的特性(诸如,功率消耗、性能、面积(物理和/或代码行)和成本降低等)优化设计。在该阶段处可以将设计划分为不同类型的模块或部件。
[0082]
在逻辑设计和功能验证916期间,以一种或多种描述语言指定电路中的模块或部件,并且检查用于功能准确性的规范。例如,可以验证电路的部件以生成与正在被设计的电路或系统的规范的要求相匹配的输出。功能验证可以使用模拟器和其它程序(诸如,测试台生成器、静态hdl检查器和形式验证器)。在一些实施例中,被称为“模拟器”或“原型系统”的部件的特定系统被用于加速功能验证。
[0083]
在用于测试的综合和设计918期间,hdl代码被转换为网表。在一些实施例中,网表可以是图表结构,其中图表结构的边沿表示电路的部件,并且其中图表结构的节点表示部件之间如何互连。hdl代码和网表两者都是分层的制造产品,eda产品可以使用分层的制造产品来验证当被制造时集成电路根据指定的设计执行。可以针对目标半导体制造技术优化网表。附加地,可以测试完成的集成电路以验证集成电路满足规范的要求。
[0084]
在网表验证920期间,检查网表符合时序约束以及与hdl代码的对应性。在设计规划922期间,针对时序和顶层布线构建和分析用于集成电路的总体平面图。
[0085]
在布局或物理实现924期间,发生物理放置(定位诸如晶体管或电容器之类的电路部件)和布线(通过多个导体连接电路部件),并且从库中选择单元以使能可以执行的特定
逻辑功能。如本文使用的,术语“单元”可以指定提供布尔逻辑功能(例如,and、or、not、xor)或存储功能(诸如,触发器或锁存器)的晶体管的集合、其它部件和互连。如本文使用的,电路“块”可以指两个或多个单元。单元和电路块两者可以被称为模块或部件,并且既可以作为物理结构被使能又可以在模拟中使用。为所选择的单元(基于“标准单元”)指定参数(诸如,大小),并且可在数据库中访问以供eda产品使用。
[0086]
在分析和提取926期间,在布局级处验证电路功能,这允许布局设计的细化。在物理验证928期间,检查布局设计以确保制造约束(诸如,drc约束、电气约束、光刻约束)是正确的,并且电路功能与hdl设计规范相匹配。在分辨率增强930期间,布局的几何形状被转换以改进如何制造电路设计。
[0087]
在流片期间,创建(如果合适的话,在施加光刻增强之后)要被用于光刻掩模的生产的数据。在掩模数据准备932期间,“流片”数据被用于生产光刻掩模,该光刻掩模被用于生产完成的集成电路。
[0088]
计算机系统(诸如,图10的计算机系统1000)的存储子系统可以被用于存储由本文描述的eda产品中的一些或全部eda产品使用的程序和数据结构,以及被用于针对库的单元的开发的产品和用于使用该库的物理和逻辑设计。
[0089]
图10图示了计算机系统1000的示例机器,在计算机系统1000内可以执行用于导致机器执行本文讨论的方法中的任何一个或多个方法的指令的集合。在备选的实现中,机器可以被连接(例如,联网)到lan、内联网、外联网和/或互联网中的其它机器。该机器可以在客户端-服务器网络环境中作为服务器或客户端机器运行,在对等(或分布式)网络环境中作为对等机器运行,或者在云计算基础设施或环境中作为服务器或客户端机器运行。
[0090]
机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络应用、服务器、网络路由器、交换机或网桥、或能够执行指定该机器要采取的行动的(顺序的或以其它方式的)指令的集合的任何机器。此外,尽管示出了单个机器,但是术语“机器”也应被认为包括单独或联合执行指令的集合(或多个集合)以执行本文讨论的方法中的任何一个或多个方法的机器的任何收集。
[0091]
示例计算机系统1000包括处理设备1002、主存储器1004(例如,只读存储器(rom))、闪速存储器、动态随机存取存储器(dram)(诸如,同步dram(sdram))、静态存储器1006(例如,闪速存储器、静态随机存取存储器(sram)等)、以及数据存储设备1018,这些存储器经由总线1030相互通信。
[0092]
处理设备1002表示一个或多个处理器,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集合计算(cisc)微处理器、精简指令集合计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其它指令集合的处理器、或实现指令集合的组合的处理器。处理设备1002还可以是一个或多个专用处理设备,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理设备1002可以被配置为执行用于执行本文描述的操作和步骤的指令1026。
[0093]
计算机系统1000可以进一步包括网络接口设备1008以在网络1020之上通信。计算机系统1000还可以包括视频显示单元1010(例如,液晶显示器(lcd)或阴极射线管(crt))、文字数字式输入设备1012(例如,键盘)、光标控制设备1014(例如,鼠标)、图形处理单元1022、信号生成设备1016(例如,扬声器)、图形处理单元1022、视频处理单元1028、和音频处
理单元1032。
[0094]
数据存储设备1018可以包括机器可读存储介质1024(也被称为非暂态计算机可读介质),在机器可读存储介质上存储指令1026的一个或多个集合或体现本文描述的方法或功能中的任何一个或多个方法或功能的软件。指令1026还可以在由计算机系统1000执行期间完全地或至少部分地驻留在主存储器1004内和/或处理设备1002内,主存储器1004和处理设备1002还构成机器可读存储介质。
[0095]
在一些实现中,指令1026包括实现与本公开相对应的功能的指令。尽管机器可读存储介质1024在示例实现中被示出为单个介质,但是术语“机器可读存储介质”应当被视为包括存储指令的一个或多个集合的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。术语“机器可读存储介质”还应当被视为包括能够存储或编码用于由机器执行的指令的集合并且导致机器和处理设备1002执行本公开的方法中的任何一个或多个方法的任何介质。因此,术语“机器可读存储介质”应被视为包括但不限于固态存储器、光学介质和磁性介质。
[0096]
已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地向本领域的其他技术人员传达他们工作的实质的方式。算法可以是导致期望的结果的一系列操作。这些操作是那些需要对物理量进行物理操作的操作。这些量可以采用能够被存储、组合、比较和以其它方式操纵的电信号或磁信号的形式。这种信号可以被称为位、值、元素、符号、字符、术语、数字等。
[0097]
然而,应当记住,这些和类似的术语中的所有的术语都将与适当的物理量相关联并且仅仅是施加到这些量的方便的标签。除非从本公开清楚地另有说明,否则应当理解,在整个描述中,某些术语是指计算机系统或类似的电子计算设备的动作和过程,将在计算机系统的寄存器和存储器内表示为物理(电子)量的数据操作和转换为类似地表示为在计算机系统存储器或寄存器或其它这种信息存储设备内的物理量的其它数据。
[0098]
本公开还涉及用于执行本文的操作的装置。该装置可以为预期目的而被专门构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这种计算机程序可以被存储在计算机可读存储介质中,诸如但不限于任何类型的磁盘,包括软盘、光盘、cd-rom、和磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡、或适用于存储电子指令的任何类型的介质,每个介质都被耦合到计算机系统总线。
[0099]
本文呈现的算法和显示与任何特定计算机或其它装置没有固有的相关性。各种其它系统可以与根据本文的教导的程序一起使用,或者构造更专门的装置来执行该方法可以证明是方便的。此外,本公开没有参照任何特定的编程语言进行描述。应当理解,可以使用多种编程语言来实现如本文描述的公开的教导。
[0100]
本公开可以作为计算机程序产品或软件被提供,该计算机程序产品可以包括其上存储有指令的计算机可读介质,该指令可以被用于对计算机系统(或其它电子设备)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光学存储介
质、闪速存储器设备等。
[0101]
在前述公开中,已经参考本公开的具体示例实现描述了本公开的实现。很明显,在不脱离如以下权利要求中阐述的本公开的实现的更广泛精神和范围的情况下,可以对其进行各种修改。在本公开以单数时态指代一些元件的情况下,可以在图中描绘多于一个元件并且相似的元件用相似数字标记。因此,本公开和附图被认为是说明性而不是限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献