用于集成电路的基于神经网络的掩模综合的制作方法

文档序号:29712559发布日期:2022-04-16 18:03阅读:107来源:国知局
用于集成电路的基于神经网络的掩模综合的制作方法
用于集成电路的基于神经网络的掩模综合
1.相关申请的交叉引用
2.本技术要求于2019年8月29日提交的美国专利申请号62/893,214的权益,上述申请的内容通过引用并入本文。
技术领域
3.本公开总体上涉及电子设计自动化领域,并且更具体地,涉及基于诸如神经网络的基于机器学习的模型的集成电路的掩模综合。


背景技术:

4.在半导体处理中,光致抗蚀剂掩模用于定义半导体器件的各个层的图案。光致抗蚀剂掩模通过以下方式形成:在半导体结构之上沉积光敏材料(即,光致抗蚀剂)的层,通过图案化光刻掩模(

光掩模’)将光致抗蚀剂层暴露于照明源,并且然后去除光致抗蚀剂层的未曝光(或经曝光)的部分。通过光掩模暴露的材料(例如金属)可以被蚀刻,从而将光掩模上的图案转移到半导体器件上。干扰和其他处理效应可能导致所期望的图案与转移到光致抗蚀剂材料的实际图案之间的不期望偏差。这些不期望偏差可以显著影响所得到的半导体器件的性能。为了使这些偏差最小化,已经实施了各种补偿方案,包括使用光学邻近校正(opc)方法修改被设置在光掩模上的图案。在掩模综合opc中涉及的各种过程在计算上是昂贵的,从而使设计过程缓慢并且昂贵。


技术实现要素:

5.公开了一种用于生成针对电路设计的掩模设计的配置(例如,系统、方法、存储可由处理器执行的指令的非暂态计算机可读存储介质)。系统接收包括电路设计多边形的电路设计。系统访问神经网络,该神经网络被配置成:接收描述在输入位置邻域内的电路设计的特征作为输入,并且输出距电路设计多边形的边的偏移距离。系统使用神经网络来确定与电路设计多边形相关联的位置的偏移距离。例如,系统可以沿着电路设计多边形的边选择位置,并且生成距多边形的边的偏移距离。系统基于偏移距离生成掩模设计多边形。掩模设计多边形可以表示与电路设计多边形相对应的特征,例如主要特征或辅助特征。系统使用掩模设计多边形生成针对电路设计的掩模设计。
6.对应于电路设计的位置的特征可以包括在该位置的邻域中的电路设计多边形的宽度、在该位置的邻域中的电路设计多边形的曲率、多边形和相邻的多边形之间的空间深度,等等。系统可以选择在该位置的邻域中的采样点,并且使用描述采样点处的电路设计的值。例如,系统可以对距离进行采样以设计边,或对电路设计执行光刻仿真以生成抗蚀剂图像,并且使用抗蚀剂图像在各个采样点处的特征,例如抗蚀剂图像的最大值、最小值或斜率。
7.神经网络使用基于先前生成的掩模设计的经标记的数据集而被训练。
8.在本发明内容和以下具体实施方式中描述的特征和优点不是包罗万象的。鉴于附
图、说明书和权利要求,对于本领域普通技术人员而言,许多附加特征和优点将是明显的。
附图说明
9.根据下面给出的具体实施方式以及根据本公开的实施例的附图,本公开将更全面地被理解。附图用于提供对本公开的实施例的知识和理解,并不将本公开的范围限制于这些特定实施例。此外,附图不一定按比例绘制。
10.图1图示了根据一个实施例的用于电路设计的掩模综合的整体过程。
11.图2示出了根据一个实施例的示例掩模设计,该掩模设计具有从针对掩模特征的电路设计的偏移。
12.图3示出了根据一个实施例的掩模综合中的目标优化的示例。
13.图4示出了根据一个实施例的掩模综合系统的系统架构的框图。
14.图5描绘了根据一个实施例的用于执行电路设计的掩模综合的过程的流程图。
15.图6图示了根据一个实施例的使用位置的邻域中的采样点的特征提取。
16.图7图示了根据一个实施例的基于布局的水平集变换的特征提取。
17.图8图示了根据一个实施例的基于布局的抗蚀剂图像的特征提取。
18.图9图示了根据一个实施例的基于布局的中轴线的特征提取。
19.图10图示了根据一个实施例的针对目标位置集合的神经网络输出。
20.图11图示了根据一个实施例的基于偏移距离来生成辅助特征。
21.图12图示了根据一个实施例的基于偏移距离来生成掩模设计多边形。
22.图13图示了根据一个实施例的基于偏移距离的目标优化。
23.图14图示了根据一个实施例的用于掩模设计的神经网络的架构。
24.图15图示了根据一个实施例的神经网络的架构,该神经网络具有用于掩模设计的多个输出。
25.图16图示了根据一个实施例的神经网络的架构,该神经网络向用于掩模设计的另一个神经网络提供输入。
26.图17描绘了根据一些实施例的在集成电路的设计和制造期间使用的各种过程的流程图。
27.图18描绘了实施例可以在其中操作的示例计算机系统的抽象图。
具体实施方式
28.电子设计自动化(eda)过程包括流片阶段,该流片阶段创建用于生产光刻掩模的数据。在掩模综合期间,流片数据用于生产光刻掩模,该光刻掩模用于生产成品集成电路。由于光刻系统与不断缩小的特征尺寸之间的不匹配,掩模优化是超大规模集成(vlsi)设计流程中的一个重要问题。光学邻近校正(opc)是一种用于改进掩模可印刷性的分辨率增强技术(ret)。然而,由于芯片尺寸的缩小和电路复杂性的增加,掩模优化过程消耗越来越多的计算资源。
29.用于掩模设计的一些方法利用卷积神经网络,卷积神经网络将掩模和电路设计表示为像素化图像。掩模综合最佳邻近连接(opc)问题不是根据像素化图像被制定。掩模综合opc问题根据从主要特征的设计布局的增量边偏移以及针对辅助特征(af)放置的较大边偏
移而被制定。因此,基于像素的卷积神经网络掩模综合需要执行从网格到多边形的数据转换的计算量密集的步骤,导致运行时性能缓慢和结果质量差。
30.相反,根据各种实施例公开的神经网络不需要从/到像素化表示的转换。所公开的神经网络接收描述在位置的邻域中的电路设计的特征作为输入,并且输出偏移距离值。偏移距离值用于生成表示掩模设计特征的掩模设计多边形。所公开的模型天然地适合基于边的opc框架,从而在运行时执行中轻松且高效地与框架集成。
31.某些基于像素的解决方案遇到另一个问题,因为当设计间距与像素间距未对齐时,像素网格相对于设计边的放置不一致。这是因为设计间距小于像素的尺寸。作为结果,将数据转换为像素表示并且将像素表示转换回数据会导致准确性损失,从而提供质量较差的结果。相反,所公开的实施例处理不需要转换为基于像素的表示/从基于像素的表示转换的多边形边,因此不面临该问题。
32.此外,本文公开的技术使用电路设计多边形而不是基于像素的解决方案,从而将问题从二维网格减少到一维边集合。这通过有效地获得最终掩模解决方案或中间掩模解决方案,改进了对电路设计生成掩模的过程的运行时间。此外,对于给定的使用计算资源量,这些技术通过用计算成本较低的技术代替计算成本高的技术(诸如迭代目标优化或逆光刻(ilt)技术),改进了结果的质量。
33.整体系统环境
34.图1图示了根据一个实施例的用于电路设计的掩模设计的整体过程。掩模设计系统100接收电路设计110作为输入,并且生成掩模设计。掩模设计系统100使用机器学习模型来确定从电路设计的几何形状的边的偏移,以生成掩模设计的对应几何形状。掩模设计系统基于由机器学习模型输出的偏移来生成掩模设计的特征。掩模设计系统100的细节在图2中被示出并且结合图2被描述。
35.图2示出了根据一个实施例的示例掩模设计,该掩模设计具有从针对掩模特征的电路设计的偏移。多边形210表示电路设计的几何形状。多边形220表示如由掩模设计系统100从电路设计生成的掩模的主要特征。表示主要特征的多边形220的边基于从电路设计的多边形210的对应边的偏移240而被确定。由多边形230表示的辅助特征的位置使用从表示电路设计的多边形210的边的偏移250而被确定。
36.用于掩模综合的被称为目标优化的技术允许电路设计被修改。该技术用于过度受限的情况,如所绘制的,这些情况可能难以制造,但可以被扰动以利于制造。与opc掩模优化类似,目标优化被制定为对电路设计中的边偏移进行求解,并且取决于每个目标边的局部几何环境。
37.图3示出了根据一个实施例的掩模综合中的目标优化的示例。多边形310表示电路设计的几何形状。这些多边形根据目标优化被修改以获得多边形320。例如,多边形310a被修改以获得多边形320a,多边形310b被修改以获得多边形320b,并且多边形310c被修改以获得多边形320c。使用偏移330确定对多边形310的修改,以获得经修改的多边形。
38.因此,特征包括主要特征和辅助特征,特征的规范以及针对目标优化的电路设计的修改使用从电路设计的多边形的边的偏移而被确定。掩模设计系统100使用基于机器学习的模型来确定用于这些技术的偏移。
39.本文公开的基于机器学习的方法允许在由机器学习模型提供的结果上进行附加
的opc校正,从而允许机器学习模型的输出进一步被改进以生成最终掩模解决方案。因此,基于机器学习的掩模生成充当了使掩模更接近最终解决方案并且让opc以更少的努力完成校正的捷径。这加速了整体设计过程。一些实施例通过应用基于机器学习的模型来执行目标优化,以确定用于调整电路设计多边形的偏移,并且然后执行opc以使用标准opc方法基于该新目标来校正掩模。与常规技术相比,所得到的掩模解决方案以改进的运行时效率被获得,并且还具有更高的准确性。
40.掩模综合系统
41.图4示出了根据一个实施例的掩模综合系统的系统架构的框图。掩模设计系统100包括神经网络410、训练部件420、特征提取部件430、掩模综合部件440、电路设计数据库450和掩模设计数据库460。其他实施例可以包括比本文指出的那些部件更多或更少的部件。本文指示为由特定模块执行的功能可以由除了本文指出的那些模块之外的其他模块来执行。
42.电路设计数据库460存储由掩模设计系统100处理以生成掩模的电路设计。在一个实施例中,由掩模设计系统100处理的电路设计的表示是基于图形设计系统(gds)格式,例如,gdsii格式或开放原图系统交换标准(oasis)格式。其他实施例可以使用其他格式来表示电路设计。所生成的掩模被存储在掩模设计数据库460中。
43.神经网络410被配置成接收描述电路设计的特征作为输入。特征描述了与特定电路设计多边形相关联的位置的邻域中的电路设计。例如,该位置可以表示多边形的边上的点、多边形内的点或多边形外的点。神经网络410生成距电路设计多边形的一个或多个偏移距离。偏移距离可以是沿着电路设计多边形的边的法线的距离。偏移距离可以用于生成掩模设计的主要特征、掩模设计的辅助特征或目标电路设计,目标电路设计通过修改电路设计以获得目标优化而被获得。对于主要特征和辅助特征两者,偏移距离可以为正或负,这对应于外部和内部辅助特征多边形创建。针对目标设计的偏移也可以被输出。在一个实施例中,神经网络410是多层感知器。尽管本文描述的实施例是基于神经网络,但本文公开的技术适用于其他类型的基于机器学习的模型。
44.训练部件420使用经标记的训练数据集来训练神经网络,经标记的训练数据集从先前生成的针对电路设计的掩模设计(例如,使用常规设计工具生成的掩模设计)被生成。训练部件420将神经网络应用于训练数据集,并且基于损失函数来调整神经网络的权重,损失函数测量神经网络的预测输出与经标记的数据之间的差异。训练部件420应用反向传播以基于损失函数(例如,使用梯度下降)来调整神经网络的权重。
45.特征提取部件430提取电路设计的各种特征,以作为输入提供给神经网络410。特征提取部件430基于电路设计中的多边形的几何测量结果(例如,一位置附近的宽度、空间、曲率等)来提取特征。特征可以使用局部几何形状的函数而被确定,函数诸如是水平集字段值、维诺(voronoi)图、栅格化设计多边形的卷积和其他变换。特征提取部件430还根据基于光刻仿真的测量结果(诸如,一位置附近的空中图像值或抗蚀剂图像值)来提取特征,例如,根据基于光刻仿真的测量结果的值(诸如斜率、最小值、最大值等)的函数。尽管本文公开的实施例描述了多边形的特征,但所公开的技术适用于其他类型的几何形状,例如弯曲形状。
46.掩模综合部件440调用掩模设计系统100的各种部件来生成针对电路设计的掩模。因此,掩模综合部件440从电路设计数据库450加载电路设计,选择电路设计的部分(例如,来自电路设计的多边形),选择与每个多边形相关联的位置,使用特征提取部件提取特征,
将神经网络410应用于提取的特征以生成偏移距离,以及基于偏移距离生成掩模。
47.在一些实施例中,掩模设计系统100被实现为分布式系统,该分布式系统具有并行处理电路设计的不同部分的多个计算机处理器。例如,掩模综合部件230可以并行处理电路设计的不同部分,并且并行生成针对电路设计的不同部分的掩模。
48.下面详细描述由掩模设计系统100的部件执行的过程。
49.掩模综合的整体过程
50.图5描绘了根据一个实施例的用于执行电路设计的掩模综合的过程的流程图。图5的流程图中所示的步骤可以以与流程图中指示的顺序不同的顺序而被执行。例如,某些步骤可以与其他步骤并行执行。此外,流程图中所示的各种步骤可以使用并行或分布式系统而被执行。
51.掩模设计系统100接收510表示电路的物理布局的电路设计。掩模设计系统100访问神经网络410。掩模设计系统100对从电路设计获得的电路设计多边形的集合中的每个电路设计多边形重复以下步骤。对于每个电路设计多边形,掩模设计系统100标识与电路设计多边形相关联的一个或多个位置。该位置可以表示多边形的边上的点或多边形内部或多边形外部的点。
52.掩模设计系统100对每个位置重复步骤520、530、540和550。掩模设计系统100选择520与电路设计多边形相关联的位置以进行处理。掩模设计系统100确定530描述所选择位置的邻域内的电路设计的特征集合。邻域可以被定义为电路设计的在该位置的阈值距离内的部分。掩模设计系统100将该特征集合作为输入提供540给神经网络410。掩模设计系统100执行550神经网络410,以确定距电路设计多边形的边的偏移距离。
53.基于偏移距离,掩模设计系统100生成560对应于电路设计多边形的掩模设计多边形。掩模设计多边形可以表示掩模设计的主要特征或辅助特征。例如,掩模设计系统100可以将电路设计多边形的边移动偏移距离,以获得主要特征的边。备选地,掩模设计系统可以生成表示在距电路设计多边形的边偏移距离处的辅助特征的掩模设计多边形。在一个实施例中,掩模设计系统100使用偏移距离来修改电路设计多边形,以获得用于生成掩模的新目标多边形。
54.掩模设计系统100使用所生成的掩模设计多边形,来生成570针对电路设计的掩模设计。例如,掩模设计系统100可以将所获得的不同掩模设计多边形组装,以生成整体掩模设计。
55.图5中图示的过程的不同步骤可以使用多个处理器而被执行,例如,使用分布式架构而被执行。例如,电路设计的不同部分可以被并行处理以生成掩模设计的对应部分。因此,可以跨大量处理器拆分大型电路设计以加速过程的执行。
56.特征提取
57.特征提取部件430提取针对每个位置x的各种特征,以作为输入提供给神经网络410。假设位置x与电路设计多边形c的边e相关联。例如,如果位置x在c内部或外部,则边e可以是位置x所在的边或最接近位置x的边。特征提取部件对在位置x的邻域中的点pi的集合进行采样。
58.图6图示了根据一个实施例的使用位置的邻域中的采样点的特征提取。掩模设计系统100选择在位置x的邻域中的点pi的集合。邻域可以表示在位置x的阈值距离内的电路
设计区域。掩模设计系统100对这些点进行排序,使得在神经网络的训练期间和推理时(即,在对新电路设计执行神经网络时的运行时),对采样点使用相同的排序。
59.根据一个实施例,掩模设计系统100沿着电路设计多边形c的边e的法线行进距离d1。从距边e距离d1处的点开始,掩模设计系统100以圆形方式行进(按顺时针或逆时针方向),并且以一致的距离对点进行采样。图6示出了掩模设计系统100以逆时针方向移动以对点p1、p2、p3…
等进行采样。当掩模设计系统100在距离d1处完成一整圈时,掩模设计系统100移动到垂直于边e的增加的距离d2。掩模设计系统100在距离d2处重复逆时针旋转,完成在距离d2处的另一整圈,并且以一致的距离对点进行采样。掩模设计系统重复该过程,直到达到定义邻域的阈值距离。这是对位置x的邻域中的点进行一致排序的示例机制,并且掩模设计系统100可以使用其他机制来对采样点进行排序。
60.特征提取部件430提取表示与点p相关联的多边形的宽度的特征,点p可以表示位置x或采样点pi。特征提取部件430可以在边e的法线方向上行进,使得法线id指向多边形内部以确定多边形c的其他边。特征提取部件430使用所经过的距离作为多边形的宽度。例如,如果点p在多边形的两个边相交的拐角处或靠近该拐角,则特征提取部件430可以在与边e的法线不同的方向上穿过,以确定在角度下的宽度。
61.特征提取部件430可以通过沿着指向多边形c外部的边e的法线穿过,来提取表示多边形之间的空间的特征,以找到最近的相邻多边形。到达最近多边形所经过的距离表示多边形周围空间的宽度。特征提取部件430可以沿着与法线不同的方向穿过,例如,以到达电路设计多边形c的两个边的交点附近的点。
62.特征提取部件430可以提取表示在点p的邻域中的多边形曲率的特征。特征提取部件430可以拟合通过多边形c的边的集合的圆,并且使用圆的半径的倒数作为曲率的量度。
63.图7图示了根据一个实施例的基于布局的水平集变换(levelset transformation)的特征提取。如图6中所示,特征提取部件430对在位置x的邻域中的点pi的集合进行采样。在一个实施例中,水平集利用距离函数而被生成,其中每个像素的值表示该像素到在电路设计多边形的边上的点的最小距离。特征提取部件430使用在每个采样点处的水平集值作为特征。因此,对应于采样点的特征值表示从该点到电路设计多边形的最近边的距离。图7示出了阈值710,使得水平集值低于阈值的采样点在电路设计多边形内部,并且水平集值高于阈值的采样点在电路设计多边形外部,并且具有等于阈值的值的采样点在电路设计多边形的边上。其他实施例可以使用基于任何技术(例如,使用几何搜索)确定采样点到电路设计形状的边的距离的特征。
64.图8图示了根据一个实施例的基于布局的抗蚀剂图像的特征提取。特征提取部件430可以使用抗蚀剂图像在各个采样点处的值作为特征。在一个实施例中,特征提取部件430使用基于光刻仿真的测量结果作为特征。特征提取部件430使用初始掩模,例如,电路设计多边形作为掩模的初始近似。初始掩模可以包括电路设计多边形以及基于电路设计多边形确定的一些辅助特征。
65.特征提取部件430使用初始掩模来执行光刻仿真,以生成空中图像值或抗蚀剂图像值。特征提取部件430使用位置x附近的空中图像值或抗蚀剂图像值。例如,特征提取部件430可以生成位置x附近的采样点,如图6中所示,并且将图像在采样点处的值确定为特征。特征提取部件430可以使用图像在采样点处的斜率作为特征。特征提取部件430可以使用图
像的其他属性,例如,图像在一点附近的最大值或最小值作为特征。
66.在一个实施例中,特征提取部件430将电路设计的一部分栅格化以生成像素化表示,并且对像素化图像执行卷积,例如,使用高斯内核的卷积。特征提取部件430使用卷积的结果作为特征。
67.图9图示了根据一个实施例的基于布局的中轴线910的特征提取。中轴线表示电路设计中的多个点,这些点在电路设计的一个或多个多边形的边界上具有至少两个最近点,例如,如中轴线的部分910a中所示,两个点在相同的多边形上的,或如中轴线的部分910b中所示,一个点在一个多边形上,第二个点在另一个多边形上。因此,中轴线上的每个点与至少两个点(每个点在最接近中轴线上的每个点的多边形上)等距。特征提取部件430确定针对电路设计的中轴线,并且使用中轴线与电路设计多边形的最近边之间的距离作为特征。特征提取部件430提取表示在各个采样点处确定的距中轴线的距离的特征。例如,特征提取部件430可以将中轴线转换为像素化表示,例如,通过在域中的每个像素处计算到中轴线的距离。特征提取部件430使用采样点距中轴线的像素化表示的距离值作为特征。
68.基于偏移距离的掩模生成
69.图10图示了根据一个实施例的针对目标位置集合的神经网络输出。如图10中所示,神经网络410的输出可以针对点的集合被参数化,例如,图10中所示的x0、x1、x2。掩模综合部件440将垂直于电路设计多边形的边1010的垂直射线1020延伸。掩模综合部件440标识在由神经网络410沿射线1020输出的偏移距离d1和d2处的点1040。掩模综合部件440基于这些点1040生成主要特征和辅助特征,并且还将这些点用于目标优化。
70.图11图示了根据一个实施例的基于偏移距离来生成辅助特征。掩模综合部件440可以连接对应点1040,来确定主要特征的边或辅助特征的边。例如,掩模综合部件440可以通过连接在距边1010相同距离d1处的点来生成边,以生成针对主要特征的边。掩模综合部件440可以将通过连接距离d1处的点形成的边与通过连接距离d2处的点形成的边组合,来生成辅助特征。如图11中所示那样形成的边被提供为对多边形进行后处理的工具的输入。
71.图12图示了根据一个实施例的基于偏移距离来生成掩模设计多边形。对于为电路设计边的每个子段存储偏移的常规opc输出,掩模综合部件440将由神经网络410输出的偏移距离d提供给opc工具,该opc工具使用偏移距离d1来从电路设计多边形1210生成掩模多边形1220。opc工具可以使用偏移距离d2来从电路设计多边形1210生成辅助特征多边形1230。opc工具可以通过组合通过将电路设计多边形1210的边的段移动偏移距离而获得的边,来获得掩模设计多边形1220和1230。
72.图13图示了根据一个实施例的基于偏移距离的目标优化。对于在其中也为设计边的每个子段存储偏移的目标优化,掩模综合部件440将由神经网络410输出的偏移距离d提供给opc工具,该opc工具通过修改输入电路设计多边形1310来创建目标多边形1320。opc工具可以通过组合通过将电路设计多边形1310的边的段移动偏移距离而获得的边,来获得目标电路设计多边形1320。
73.神经网络架构
74.图14图示了根据一个实施例的用于掩模设计的神经网络的架构。如图14中所示,神经网络410是多层连接神经网络,例如多层感知器。神经网络包括输入层1410、一个或多个隐藏层1420和输出层1430。该实施例对生成的掩模设计的每种几何类型使用不同的神经
网络。例如,一个神经网络可以输出用于生成主要特征的偏移距离,另一个神经网络可以输出用于生成辅助特征的偏移距离,并且另一个神经网络可以输出用于目标优化的偏移距离。
75.图15图示了根据一个实施例的具有用于掩模设计的多个输出1510的神经网络的架构。在该实施例中,相同的神经网络生成多个输出1510,针对生成的掩模设计的每种几何类型有一个输出。因此,神经网络可以生成表示用于生成主要特征的偏移距离的一个输出,表示用于生成辅助特征的偏移距离的另一个输出,以及表示用于目标优化的偏移距离的另一个输出。
76.图16图示了根据一个实施例的神经网络的架构,该神经网络向用于掩模设计的另一个神经网络提供输入。例如,神经网络1610输出偏移距离以用于目标优化。目标优化的结果作为输入被提供给神经网络1620,该神经网络1620进一步生成用于生成主要特征和辅助特征的偏移距离。
77.电子设计自动化过程
78.图17图示了在诸如集成电路的制品的设计、验证和制造期间使用的过程的示例集合1700,其用于转换和验证表示集成电路的设计数据和指令。这些过程中的每个过程可以被结构化和实现为多个模块或操作。术语

eda’表示术语

电子设计自动化’。这些过程从利用设计师提供的信息创建产品构思1710开始,该信息被转换以使用eda过程1712的集合来产生制品。在完成设计时,设计被流片1734,这是将集成电路的原图(例如,几何图案)发送到制造工厂以制造掩模组的时间,然后掩模组被用来制造集成电路。在流片之后,制造1736半导体裸片,并且执行封装和组装过程1738以生产成品集成电路1740。
79.电路或电子结构的规格范围可能从低级晶体管材料布局到高级描述语言。通过使用诸如vhdl、verilog、systemverilog、systemc、myhdl或openvera的硬件描述语言(

hdl’),可以使用高级抽象来设计电路和系统。hdl描述可以被转换为逻辑水平的寄存器传输级(

rtl’)描述、门级描述、布局级描述或掩模级描述。每个较低的抽象级别(即不太抽象的描述)将更多有用的细节添加到设计描述中,例如,针对包括该描述的模块的更多细节。较低的抽象级别(即不太抽象的描述)可以由计算机生成,从设计库导出或由另一个设计自动化过程创建。用于指定更多详细描述的较低抽象语言级别的规范语言的一个示例是spice,它用于具有许多模拟部件的电路的详细描述。在每个抽象级别处的描述被实现,以供该层的对应工具使用(例如形式验证工具)。设计过程可以使用图17中描述的序列。所描述的过程由eda产品(或工具)实现。
80.在系统设计1714期间,指定要制造的集成电路的功能。可以针对诸如功耗、性能、面积(物理和/或代码行)以及成本降低等的期望特性来优化设计。在这个阶段,可以将设计划分为不同类型的模块或部件。
81.在逻辑设计和功能验证1716期间,以一种或多种描述语言指定电路中的模块或部件,并且检查该规格的功能准确性。例如,可以验证电路的部件以生成与正在设计的电路或系统的规格的要求相适配的输出。功能验证可以使用模拟器和其他程序,诸如测试台生成器、静态hdl检查器和形式验证器。在一些实施例中,被称为“仿真器”或“原型系统”的部件的特殊系统被用于加速功能验证。
82.在用于测试的综合和设计1718期间,hdl代码被转换成网表。在一些实施例中,网
表可以是图结构,其中图结构的边表示电路的部件,并且其中图结构的节点表示部件如何互连。hdl代码和网表都是分级制品,该分级制品可以由eda产品用来验证集成电路在制造时是否根据指定设计运行。可以针对目标半导体制造技术优化网表。另外,可以测试完成的集成电路以验证集成电路是否满足规格的要求。
83.在网表验证1720期间,检查网表与时序约束的一致性以及网表与hdl代码的对应性。在设计规划1722期间,构造并分析集成电路的总体布局图以用于时序和顶层布线。
84.在布局或物理实现1724期间,进行物理放置(诸如晶体管或电容器之类的电路部件的定位)和布线(通过多个导体连接电路部件),并且可以执行从库中选择单元以实现特定逻辑功能。如本文所使用的,术语“单元”可以指定提供布尔逻辑功能(例如,与、或、非、异或)或存储功能(诸如触发器或锁存器)的一组晶体管、其他部件和互连。如本文所使用,电路“块”可以指代两个或更多个单元。单元和电路块都可以被称为模块或部件并且被实现为物理结构和在仿真中实现。为被选择的单元(基于“标准单元”)指定参数,诸如尺寸,并且使参数在数据库中可访问以供eda产品使用。
85.在分析和提取1726期间,在布局级验证电路功能,这允许布局设计的精细化。在物理验证1728期间,检查布局设计以确保制造约束是正确的,诸如drc约束、电气约束、光刻约束,并且确保电路功能与hdl设计规格适配。在分辨率增强1730期间,转换布局的几何形状以改进电路设计的制造方式。
86.在流片期间,创建数据以用于(在适当的情况下应用光刻增强之后)光刻掩模的生产。在掩模数据准备1732期间,“流片”数据用于产生光刻掩模,该光刻掩模用于产生完成的集成电路。
87.计算机系统(诸如图1的掩模设计系统100)的存储子系统可以用于存储由本文描述的eda产品中的一些或全部eda产品使用的程序和数据结构、以及用于开发库的单元和用于使用库的物理和逻辑设计的产品。
88.实施例可以用于在存储电路布局的电子设计自动化过程的各个阶段期间处理电路设计,例如,在布局或物理实现1724、分析和提取1726、掩模数据准备1732等期间。
89.计算机架构
90.图18示出了计算机系统1800的示例机器,在该示例机器内可以执行用于使该机器执行本文所讨论的方法中的任何一个或多个方法的一组指令。在备选实现方式中,机器可以连接(例如,联网)到lan、内联网、外联网和/或因特网中的其他机器。机器可以作为客户端-服务器网络环境中的服务器或客户端机器、作为对等(或分布式)网络环境中的对等机器、或者作为云计算基础设施或环境中的服务器或客户端机器来操作。
91.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、或者能够执行指定机器要采取的动作的一组指令(顺序的或其他方式)的任何机器。此外,虽然示出了单个机器,但是术语“机器”还应被理解为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或多个方法的机器的任何集合。
92.示例计算机系统1800包括处理装置1802、主存储器1804(例如,只读存储器(rom)、闪存、诸如同步dram(sdram)之类的动态随机存取存储器(dram)、静态存储器1806(例如,闪存、静态随机存取存储器(sram)等)以及数据存储装置1818,它们经由总线1830彼此通信。
93.处理装置1802表示一个或多个处理器,诸如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其他指令集的处理器、或实现指令集的组合的处理器。处理装置1802还可以是一个或多个专用处理装置,诸如专用集成电路(asic)、现场可以编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置1802可以被配置成执行用于执行本文描述的操作和步骤的指令1826。
94.计算机系统1800还可以包括网络接口装置1808,以通过网络1820进行通信。计算机系统1800还可以包括视频显示单元1810(例如,液晶显示器(lcd)或阴极射线管(crt))、字母数字输入装置1812(例如,键盘)、光标控制装置1814(例如,鼠标)、图形处理单元1822、信号生成装置1816(例如,扬声器)、图形处理单元1822、视频处理单元1828、以及音频处理单元1832。
95.数据存储装置1818可以包括机器可读存储介质1824(也称为非暂态计算机可读介质),在该机器可读存储介质上存储有体现本文描述的方法或功能中的任何一项或多项的一组或多组指令1826或软件。指令1826在由计算机系统1800执行期间也可以完全或至少部分地驻留在主存储器1804内和/或处理装置1802内,主存储器1804和处理装置1802也构成机器可读存储介质。
96.在一些实现方式中,指令1826包括用于实现与本公开相对应的功能的指令。虽然机器可读存储介质1824在示例实现方式中被示为单个介质,但是术语“机器可读存储介质”应当被认为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的缓存和服务器)。术语“机器可读存储介质”还应当被理解为包括能够存储或编码用于由机器执行的一组指令并且使机器和处理装置1802执行本公开的方法中的任何一个或多个方法的任何介质。术语“机器可读存储介质”因此应当被理解为包括但不限于固态存储器、光学介质和磁介质。
97.已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的方式。算法可以是导致期望结果的操作序列。这些操作是需要对物理量进行物理操作的操作。这种量可以采取能够被存储、组合、比较和以其他方式操纵的电信号或磁信号的形式。这样的信号可以被称为位、值、元素、符号、字符、项、数字等。
98.然而,应当记住,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从本公开中显而易见的是,应当理解,在整个说明书中,某些术语是指计算机系统或类似的电子计算装置的动作和处理,该动作和处理将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储装置内的物理量的其他数据。
99.本公开还涉及用于执行本文的操作的设备。该设备可以是为预期目的而专门构造的,或者该设备可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于包括软盘、光盘、cd-rom和磁光盘的任何类型的盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡、或适于存储电子指令的任何类型的介质,各自耦合到计算机系统总
线。
100.本文提出的算法和显示与任何特定计算机或其他设备并非本质地相关。各种其他系统可以与根据本文教导的程序一起使用,或者可以证明构造更专用的设备来执行该方法是方便的。另外,本公开不是参考任何特定编程语言来描述的。将理解的是,各种编程语言可以用于实现如本文描述的本公开的教导。
101.本公开可以作为计算机程序产品或软件来提供,计算机程序产品或软件可以包括存储有指令的机器可读介质,该指令可以用于对计算机系统(或其他电子装置)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存装置等。
102.在前述公开中,已经参考其特定示例实现方式描述了本公开的实现方式。显然可以对这些实现方式进行各种修改而不偏离如所附权利要求中阐述的本公开的实施方式的范围和广义精神。在本公开以单数形式提及一些元件的情况下,在附图中可以描绘多于一个的元件,并且相同的元件用相同的数字标记。因此,本公开和附图应被认为是说明性意义的而不是限制性意义的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1