CN117291137B - 用于生成版图元素的方法、设备和介质 - Google Patents
用于生成版图元素的方法、设备和介质 Download PDFInfo
- Publication number
- CN117291137B CN117291137B CN202311575477.8A CN202311575477A CN117291137B CN 117291137 B CN117291137 B CN 117291137B CN 202311575477 A CN202311575477 A CN 202311575477A CN 117291137 B CN117291137 B CN 117291137B
- Authority
- CN
- China
- Prior art keywords
- point
- sequence
- representation
- target
- layout
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 238000010801 machine learning Methods 0.000 claims abstract description 158
- 238000012549 training Methods 0.000 claims description 196
- 230000008569 process Effects 0.000 claims description 43
- 239000000203 mixture Substances 0.000 claims description 23
- 238000009826 distribution Methods 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 10
- 238000005520 cutting process Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 19
- 230000009286 beneficial effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000006872 improvement Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000010923 batch production Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005468 ion implantation Methods 0.000 description 1
- 238000001459 lithography Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
根据本公开的示例实施例提供了用于生成版图元素的方法、设备和介质。在该方法中,获取用于生成版图元素的至少一组参考点的相应表示,相应表示指示至少一组参考点的相应属性。进一步地,基于至少一组参考点的相应表示,利用机器学习模型来生成针对目标点序列的目标点表示序列。该目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点。每个目标点表示指示对应的目标点与目标点序列中的前一个目标点之间的相对位置和连接状态。此外,基于目标点表示序列,连接目标点序列中的至少一部分目标点,以生成目标版图元素。以此方式,可以更高效地生成版图元素,并且有助于提高版图元素的多样性。
Description
技术领域
本公开的实施例主要涉及计算机辅助设计领域,并且更具体地,涉及用于生成版图元素的方法、设备和介质。本公开的实施例还涉及用于生成训练数据的方法、设备和介质、以及用于训练机器学习模型的方法、设备和介质。
背景技术
在集成电路(Integrated Circuit,IC)制造中,在完成电路设计以后,还需要进行芯片版图设计。将门级网表(Netlist)设计为版图,并通过版图生产版图掩膜,然后进行逐层版图的光刻,以制造芯片。
版图元素是版图生成的基础。在常规的版图生成方案中,需要定义基础版图元素。然而随着芯片工艺的发展,基础版图元素变得越来越复杂。因此,如何更高效地生成版图元素成为亟待解决的问题。
发明内容
在本公开的第一方面中,提供了一种用于生成版图元素的方法。该方法包括:获取用于生成版图元素的至少一组参考点的相应表示,相应表示指示至少一组参考点的相应属性;基于至少一组参考点的相应表示,利用机器学习模型来生成针对目标点序列的目标点表示序列,目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点,每个目标点表示指示对应的目标点与目标点序列中的前一个目标点之间的相对位置和连接状态;以及基于目标点表示序列,连接目标点序列中的至少一部分目标点,以生成目标版图元素。
在本公开的第二方面中,提供了一种用于生成训练数据的方法,该方法包括:基于版图元素的顶点,确定与版图元素相对应的点序列;以及确定针对点序列的点表示序列,以获得用于训练用于生成版图元素的机器学习模型的训练数据,其中点表示序列中的每个点表示对应于点序列中的一个点,每个点表示指示对应的点与点序列中的前一个点之间的相对位置和连接状态。
在本公开的第三方面中,提供了一种用于训练机器学习模型的方法。该方法包括:获取针对训练点序列的训练点表示序列,训练点表示序列所包括的每个训练点表示对应于训练点序列中的一个训练点,每个训练点表示指示对应的训练点与训练点序列中的前一个训练点之间的相对位置和连接状态;基于训练点表示序列,利用机器学习模型来生成针对预测点序列的预测点表示序列,预测点表示序列中的每个预测点表示对应于预测点序列中的一个预测点,每个预测点表示指示对应的预测点与预测点序列中的前一个预测点之间的相对位置和连接状态;以及基于预测点表示序列与训练点表示序列之间的差异,更新用于生成版图元素的机器学习模型的参数值。
在本公开的第四方面中,提供了一种电子设备。该电子设备包括处理器、以及与处理器耦合的存储器。该存储器具有存储于其中的指令,指令在被处理器执行时使电子设备执行根据本公开的第一方面的用于生成版图元素的方法、或者根据本公开的第二方面的用于生成训练数据的方法、或者根据本公开的第三方面的用于训练机器学习模型的方法。
在本公开的第五方面中,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序。计算机程序在被处理器执行时实现根据本公开的第一方面的用于生成版图元素的方法、或者根据本公开的第二方面的用于生成训练数据的方法、或者根据本公开的第三方面的用于训练机器学习模型的方法。
根据本公开的各实施例的方案,通过借助于点表示来描述点的属性,进而利用机器学习模型来处理,从而生成版图元素。通过这种方式,一方面,可以将版图元素抽象为点列,这有利于有效地刻画版图元素的特征,并且便于应用机器学习模型。以此方式,可以快速地学习版图元素的特征,进而生成新的版图元素。另一方面,在引入新版图元素的情况下,借助于机器学习模型,可以快速地学习新版图元素的特征并生成类似的版图元素,而无需像在已有方案中那样修改规则。以此方式,可以更高效地生成版图元素,并且有助于提高版图元素的多样性。
应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的描述而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了本公开的各实施例能够在其中实现的示例环境的示意图;
图2示出了根据本公开的一些实施例的第一版图元素的示意图;
图3示出了根据本公开的一些实施例的第二版图元素的示意图;
图4示出了根据本公开的一些实施例的第三版图元素的示意图;
图5示出了根据本公开的一些实施例的版图元素切分的示意图;
图6示出了根据本公开的一些实施例的利用机器学习模型来生成点表示序列的过程的示意图;
图7示出了根据本公开的一些实施例的候选版图元素生成的示意图;
图8示出了根据本公开的一些实施例的用于过滤异常版图元素的过程的示意图;
图9示出了根据本公开的一些实施例的用于生成版图元素的方法的流程图;
图10示出了根据本公开的一些实施例的用于生成训练数据的方法的流程图;
图11示出了根据本公开的一些实施例的用于训练机器学习模型的方法的流程图;
图12示出了其中可以实施本公开的一个或多个实施例的电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所简要提及的,版图生成是集成电路制造中的重要环节。目前已有的一种方案是基于一些简单的规则,例如将版图中的一些器件定义为一组特定的形状,诸如“工”字形、“Z”字形、“T”字形。采用诸如旋转、缩放等方式进行数据增强,以生成标准单元库。然后基于该标准单元库生成版图元素,以进行版图元素的摆放,从而生成版图。然而,由于预定规则的限制,以这种方式生成的版图元素的多样性较差,无法满足不断发展的芯片工艺的需求。
为此,本公开的一些实施例提出了一种用于生成版图元素的改进方案。在该方案中,基于用于生成版图元素的至少一组参考点的相应表示,利用机器学习模型来生成针对目标点序列的目标点表示序列。该目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点。进而,基于目标点表示序列来连接目标点序列中的至少一部分目标点,以生成目标版图元素。本公开的另一些实施例还提出了一种用于生成训练数据的改进方案、以及一种用于训练机器学习模型的改进方案。基于所提出的改进方案生成的训练数据被用于训练机器学习模型,并且经训练的机器学习模型被用于生成版图元素。
通过下文描述将会更清楚地理解,根据本公开的实施例,通过借助于点表示来描述点的属性,进而利用机器学习模型来处理,从而生成版图元素。通过这种方式,一方面,可以将版图元素抽象为点列,这有利于有效地刻画版图元素的特征,并且便于应用机器学习模型。以此方式,可以快速地学习已有版图元素的特征,进而生成新的版图元素。另一方面,在引入新版图元素的情况下,借助于机器学习模型,可以快速地学习新版图元素的特征并生成类似的版图元素,而无需像在已有方案中那样修改规则。以此方式,可以更高效地生成版图元素,并且有助于提高版图元素的多样性。
以下将参考附图来详细描述所提出的方案的各种示例实现。
首先参见图1,其示出了本公开的各实施例能够在其中实现的示例环境100的示意图。示例环境100总体上可以包括电子设备120。在一些实施例中,电子设备120可以是诸如个人计算机、工作站、服务器等具有计算功能的设备。本公开的范围在此方面不受限制。
电子设备120可以获取参考点表示信息110。参考点表示信息110例如可以包括用于生成版图元素的至少一组参考点的相应表示。在一些实施例中,至少一组参考点中的每组参考点可以包括多个参考点。至少一组参考点的相应表示指示该至少一组参考点的相应属性。作为示例,针对至少一组参考点中的一个参考点的属性包括但不限于该参考点的在相应版图元素中的绝对位置或相对位置、该参考点与相应版图元素中的另外一个或多个参考点的连接状态、参考点在参考点序列中的排位,等等。这将在下文中进一步详细描述。
在一些实施例中,参考点表示信息110可以由用户输入电子设备120。在另一些实施例中,参考点表示信息110可以已经预先被存储在电子设备120中。在又一些实施例中,参考点表示信息110可以由电子设备120生成。在再一些实施例中,电子设备120还可以通信地耦连到其他设备,以从其他设备获取参考点表示信息110。本公开的范围在此方面不受限制。
电子设备120可以利用机器学习模型基于所获取的参考点表示信息110来生成针对目标点序列的目标点表示序列。该目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点。进一步地,电子设备120可以基于目标点表示序列来连接目标点序列中的至少一部分目标点,以生成目标版图元素130。在一些附加的实施例中,电子设备120还可以用于生成训练数据和/或训练机器学习模型。这将在下文中结合图2至图8进一步详细描述。应当理解的是,仅出于示例性的目的描述环境100的结构和功能,而不暗示对于本公开的范围的任何限制。
为了便于理解的目的,首先参考图2至图4来描述本公开的上下文所涉及的与版图元素相关联的点、点表示、点序列、以及点表示序列。首先,与一个版图元素相对应的一组点例如可以包括该版图元素的各个顶点。
图2示出了根据本公开的一些实施例的第一版图元素210的示意图200。如图2中所示,第一版图元素210属于多边形(polygon)类型,并且包括6个顶点,即点P0、P1、P2、P3、P4和P5。因此,与第一版图元素210相对应的一组点包括点P0、P1、P2、P3、P4和P5。
图3示出了根据本公开的一些实施例的第二版图元素310的示意图300。如图3中所示,第二版图元素310同样属于多边形类型,并且更具体地属于嵌套多边形,即由内外两个分离的边框共同围成。第二版图元素310包括8个顶点,即点Q0、Q1、Q2、Q3、Q4、Q5、Q6和Q7。因此,与第二版图元素310相对应的一组点包括点Q0、Q1、Q2、Q3、Q4、Q5、Q6和Q7。
图4示出了根据本公开的一些实施例的第三版图元素410的示意图400。如图4中所示,第三版图元素410属于线条(line)类型,并且包括3个顶点,即点R0、R1和R2。因此,与第三版图元素410相对应的一组点包括点R0、R1和R2。
一组点的相应表示可以包括与该组点相对应的一个点表示序列。在一些实施例中,可以针对一组点执行以下操作来获得相对应的点表示序列:基于该组点在相对应的版图元素中的位置,按照排序规则将该组点排列成点序列;以及基于相对应的版图元素,确定针对点序列的点表示序列。该点表示序列中的每个点表示对应于点序列中的一个点,并且每个点表示指示对应的点与点序列中的前一个点之间的相对位置和连接状态。
作为示例,针对点的排序规则可以是按逆时针顺序、按顺时针顺序、等等。在一些实施例中,针对多边形类型的版图元素,封闭多边形的起始点可以在点序列中出现两次,以指示多边形的封闭性。通过这种方式,可以将版图元素抽象为点列,这有利于有效地刻画版图元素的特征,并且便于后续应用机器学习模型。
在一些实施例中,两个点之间的相对位置可以以这两个点在第一方向上的距离和在第二方向上的距离来表示。例如,相对位置可以以二元组(Dx,Dy)的形式来表示,其中第一元素Dx指示两个点之间在第一方向上的距离,并且第二元素Dy指示两个点之间在不同于第一方向的第二方向上的距离。点序列中的起始点的相对位置例如可以设置为默认值,诸如(0,0)等。在第一方向和第二方向分别对应于直角坐标系下的横坐标轴方向和纵坐标轴方向的情况下,第一元素Dx可以指示两个点之间的横坐标偏移量,并且第二元素Dy可以指示两个点之间的纵坐标偏移量。应当理解的是,两个点之间的相对位置还可以以其他任何合适的方式来表示,例如通过这两个点在极坐标系下的极径偏移量和极角偏移量的形式来表示。本公开的范围在此方面不受限制。
在一些实施例中,连接状态可以包括相连、不相连和结束连接。在此,一点的连接状态为相连可以指示两重信息:一方面,该点与前一点相连;另一方面,全局连接操作尚未结束。一点的连接状态为不相连可以指示两重信息:一方面,该点与前一点不相连;另一方面,全局连接操作尚未结束。一点的连接状态为结束连接可以指示两重信息:一方面,该点与前一点相连;另一方面,全局连接操作到该点处结束。点序列中的起始点的连接状态例如可以设置为默认值,例如相连。
在一些实施例中,点表示还可以包括一组元素,以用于指示该点表示所对应的点与点序列中的前一个点处于多个预定连接状态之一。示例性地,一点的连接状态可以以三元组(S1,S2,S3)的形式来表示,其中第一个元素S1对应于相连,第二个元素S2对应于不相连,并且第三个元素S3对应于结束连接。该三元组的取值例如可以应用独热(one-hot)编码的形式,即任一时刻只有一位有效,例如只有一位为1。示例性地,三元组取值为(1,0,0)指示连接状态为相连,三元组取值为(0,1,0)指示连接状态为不相连,三元组取值为(0,0,1)指示连接状态为结束连接。借助于独热编码,可以将连接状态信息表示为机器学习模型便于处理的数据,从而便于后续应用机器学习模型。应当理解的是,连接状态还可以以任何其他合适的方式来表示或编码,本公开的范围在此方面不受限制。
在一些实施例中,在针对一个点的点表示可以指示相对位置和连接状态的情况下,点表示可以采用五元组(Dx,Dy,S1,S2,S3)的形式,其中前两个元素(Dx,Dy)指示相对位置,并且后三个元素(S1,S2,S3)指示连接状态。通过这种方式可以将各种类型的版图元素以统一的方式表征为适合于机器学习模型处理的特征,从而使得能够将机器学习模型应用于版图元素生成的任务,进而可以有效地提高版图元素生成的效率。
应当理解的是,点表示还可以采用任何其他合适的形式,例如五元组(S1,S2,S3,Dx,Dy),等等。此外,点表示还可以指示除了相对位置和连接状态之外的其他任何合适的信息,例如该点的绝对位置、该点在点序列中的排位,等等。本公开的范围在此方面不受限制。
参考图2,可以将第一版图元素210中的点P0对齐至直角坐标系的坐标原点。然后,根据按逆时针顺序的排序规则,可以生成点序列{P0-1、P1、P2、P3、P4、P5、P0-2},其中P0-1和P0-2均代表点P0,后缀-1和-2仅是为了区分出现在点序列中不同位置处的点P0。可以看到,点P0在该点序列中出现了两次,以指示多边形边框的封闭性。
示例性地,点序列中的起始点P0-1的表示可以是(0, 0, 1, 0, 0)。点P1的表示可以是(5, 0, 1, 0, 0),其中前两个元素(5, 0)指示点P1相对于点P0的位置,并且后三个元素(1, 0, 0)指示点P1与点P0相连。点序列中的末位点P0-2的表示可以是(0, -2, 0, 0,1),其中前两个元素(0,-2)指示点P0相对于点P5的位置,并且后三个元素(0, 0, 1)指示末位点P0-2的连接状态为结束连接,即点P0与点P5连接并且全局连接操作到此结束。电子设备120可以以类似的方式确定针对点序列中的每个点的表示,从而获得点表示序列。
参考图3,可以将第二版图元素310中的点Q0对齐至直角坐标系的坐标原点。然后,根据外圈按逆时针顺序并且内圈按顺时针顺序的排序规则,可以生成点序列{Q0-1、Q1、Q2、Q3、Q0-2、Q4-1、Q5、Q6、Q7、Q4-2}。类似地,Q0-1和Q0-2均代表点Q0,并且Q4-1和Q4-2均代表点Q4,后缀-1和-2仅是为了区分出现在点序列中不同位置处的点Q0和Q4。可以看到,点Q0在该点序列中出现了两次以指示外侧多边形边框的封闭性,并且点Q4在该点序列中出现了两次以指示内侧多边形边框的封闭性。
示例性地,点序列中的起始点Q0-1的表示可以是(0, 0, 1, 0, 0)。点Q1的表示可以是(4, 0, 1, 0, 0),其中前两个元素(4, 0)指示点Q1相对于点Q0的位置,并且后三个元素(1, 0, 0)指示点Q1与点Q0相连。点Q0-2的表示可以是(0, -4, 1, 0, 0),其中前两个元素(0, -4)指示点Q0相对于点Q3的位置,并且后三个元素(1, 0, 0)指示点Q0与点Q3相连。点Q4-1的表示可以是(1, 1, 0, 1, 0),其中前两个元素(1, 1)指示点Q4相对于点Q0的位置,并且后三个元素(0, 1, 0)指示点Q4与点Q0不相连。末位点Q4-2的表示可以是(-2, 0,0, 0, 1),其中前两个元素(-2, 0)指示点Q4相对于点Q7的位置,并且后三个元素(0, 0,1)指示末位点Q4-2的连接状态为结束连接,即点Q4与点Q7连接并且全局连接操作到此结束。电子设备120可以以类似的方式确定针对点序列中的每个点的表示,从而获得点表示序列。
参考图4,可以将第三版图元素410中的点R0对齐至直角坐标系的坐标原点。然后,根据按逆时针顺序的排序规则,可以生成点序列{R0、R1、R2}。示例性地,点序列中的起始点R0的表示可以是(0, 0, 1, 0, 0)。点R1的表示可以是(3, 0, 1, 0, 0),其中前两个元素(3, 0)指示点R1相对于点R0的位置,并且后三个元素(1, 0, 0)指示点R1与点R0相连。点R2的表示可以是(0, 1, 0, 0, 1),其中前两个元素(0, 1)指示点R2相对于点R1的位置,并且后三个元素(0, 0, 1)指示末位点R2的连接状态为结束连接,即点R2与点R1连接并且全局连接操作到此结束。以此方式,电子设备120可以确定针对点序列{R0、R1、R2}的点表示序列是{(0, 0, 1, 0, 0)、(3, 0, 1, 0, 0)、(0, 1, 0, 0, 1)}。
应当理解的是,在针对本公开的各实施例的描述中所提及的数值仅是示例性的而非限制性的。此外,还可以以其他任何合适的方式来获取与一组点相对应的点序列和点表示序列,本公开的范围在此方面不受限制。
此外,取决于具体版图设计而可能会存在超大版图元素。例如,一个多边形类型的版图元素可能会包含大量的(例如,十几万个)边或顶点。这样的版图元素也可以被称为超大版图元素或者巨型版图元素。这样的超大版图元素不利于对机器学习模型的训练和使用。
对此,在一些实施例中,响应于原始版图元素的顶点数目大于顶点数目阈值,可以将该原始版图元素的边缘切割成多个线条,以作为多个版图元素。切割得到的多个线条中的每个线条所包括的顶点数目小于顶点数目阈值。备选地或附加地,响应于原始版图元素的边缘数目大于边缘数目阈值,可以将该原始版图元素的边缘切割成多个线条,以作为多个版图元素。切割得到的多个线条中的每个线条所包括的线段数目小于边缘数目阈值。该顶点数目阈值和/或边缘数目阈值可以预先确定,或者可以基于针对多个版图元素的统计数据来确定。
图5示出了根据本公开的一些实施例的版图元素切分的示意图500。如图5所示,原始版图元素510的顶点数目大于顶点数目阈值。为了图示清楚的目的,在图5的示例中,顶点数目阈值例如可以是10。因此,可以按照图5所示的方式将原始版图元素510的边缘切割成4个线条,即第一线条520、第二线条521、第三线条522、以及第四线条523。应当理解的是,图5所示的切割方式仅是示例性的,还可以以其他任何合适的方式来切割版图元素。本公开的范围在此方面不受限制。
在一些实施例中,针对切割得到的多个线条中的每个线条,可以将该线条作为一个版图元素并借助于上文描述的过程来生成对应的点表示序列。
在本公开的各实施例的描述中,为了区分不同用途而使用“参考”、“目标”和“训练”等词来命名点、点表示、点序列、点表示序列、以及版图元素。应当理解的是,参考点、目标点和/或训练点可以具有相同或相似的形式,并且参考点和训练点可以以相同或相似的方式被确定。参考点表示、目标点表示和/或训练点表示可以具有相同或相似的形式,并且参考点表示和训练点表示可以以相同或相似的方式被确定。参考点序列、目标点序列和/或训练点序列可以具有相同或相似的形式,并且参考点序列和训练点序列可以以相同或相似的方式被确定。参考点表示序列、目标点表示序列和/或训练点表示序列可以具有相同或相似的形式,并且参考点表示序列和训练点表示序列可以以相同或相似的方式被确定。参考版图元素和训练版图元素可以以相同或相似的方式被获取。
下面描述生成训练数据的示例实施例。在一些实施例中,可以从真实的芯片版图中提取版图元素,以构建用于训练机器学习模型的训练集。备选地或附加地,可以从已有的版图学习系统生成的数据中提取版图元素,以构建用于训练机器学习模型的训练集。在本公开的上下文中,用于训练机器学习模型的版图元素也可以被称为训练版图元素。
例如,已有的芯片版图可以存储在诸如开放式图稿系统交换标准(Open ArtworkSystem Interchange Standard,OASIS)文件等的文件中。可以基于对应的文件协议将芯片版图的每一层读取出来,例如栅极或电阻区、金属层、离子注入层,等等。由于版图的每一层往往具备不同的电气特性,因此可以按照不同的应用特性来进行存储。对每一层版图,可以读取该层版图中的版图元素,这些版图元素例如可以为多边形或线条等各种图形。又例如,目前已有的基于规则的版图生成系统也可以生成大量的版图元素数据。对于这些版图元素数据同样可以按照不同的层存储起来。
在一些实施例中,可以针对训练集中的每个版图元素执行以下操作来生成针对该版图元素的一组点及其点表示序列:确定与该版图元素相对应的一组点,该组点包括版图元素的顶点;基于该组点在该版图元素中的位置,按照排序规则将该组点排列成点序列;以及基于该版图元素来确定针对该点序列的点表示序列。该点表示序列中的每个点表示对应于相应点序列中的一个点,并且每个点表示指示对应的点与相应点序列中的前一个点之间的相对位置和连接状态。这与上文中参考图2至图4所描述的过程的类似,本公开在此不再赘述。
在一些实施例中,如果版图元素属于超大版图元素,则可以通过上文参考图5所述的方式来对该版图元素进行切分,并生成与切分得到的多个线条相对应的多组点及相应的点表示序列。本公开在此不再赘述。通过将版图元素切分为多个线条来处理,可以使得超大版图元素适合于训练机器学习模型。
通过上述方式,可以针对训练集中的每个版图元素生成与该版图元素相对应的一组或多组点、以及相应的一个或多个点表示序列,以用于机器学习模型。
通过以上描述可以看到,在根据本公开的各实施例的用于生成训练数据的方案中,将版图元素表征为点表示序列。通过这种方式,一方面可以将版图元素抽象为点列,这有利于有效地刻画版图元素的特征,并且便于应用机器学习模型。另一方面,可以以有规则的方式来基于版图元素生成适于机器学习模型处理的数据,从而可以高效地批量生成训练数据。
下面描述训练机器学习模型的示例实施例。在一些实施例中,可以获取用于训练机器学习模型的训练点表示序列。该训练点表示序列所包括的每个训练点表示对应于训练点序列中的一个训练点,每个训练点表示指示对应的训练点与训练点序列中的前一个训练点之间的相对位置和连接状态、示例性地,可以通过上文描述的训练数据生成过程来生成该训练点表示序列。
在一些实施例中,可以基于训练点表示序列,利用机器学习模型来生成针对预测点序列的预测点表示序列。该预测点表示序列中的每个预测点表示对应于预测点序列中的一个预测点。每个预测点表示指示对应的预测点与预测点序列中的前一个预测点之间的相对位置和连接状态。
图6示出了根据本公开的一些实施例的利用机器学习模型来生成点表示序列的过程600的示意图。应当理解的是,过程600还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。
如图6所示,输入点表示集610可以被输入机器学习模型620。经由机器学习模型620的处理后获得相对应的输出点表示集630作为输出。在模型训练过程中,输入机器学习模型620的输入点表示集610可以对应于上述训练点表示序列,并且由机器学习模型620输出的输出点表示集630可以对应于上述预测点表示序列。在一些实施例中,输入点表示集610可以包括单个训练点表示,即针对一个训练点的表示。在机器学习模型620处理完一个训练点表示之后再输入另一个训练点表示。换言之,机器学习模型620可以以串行的方式处理训练点表示序列。在另一些实施例中,输入点表示集610可以包括多个训练点表示,即针对多个训练点的相应表示。换言之,机器学习模型620可以以并行的方式批量处理一个或多个训练点表示序列。
如本文中所使用的,术语“机器学习模型”可以从训练数据中学习到相应的输入与输出之间的关联关系,从而在训练完成后可以针对给定的输入,生成对应的输出。机器学习模型的生成可以基于深度学习技术。深度学习是一种机器学习算法,通过使用多层处理单元来处理输入和提供相应输出。神经网络模型是基于深度学习的模型的一个示例。在本公开的上下文中,“机器学习模型”也可以被称为“模型”、“学习模型”、“机器学习网络”或“学习网络”,这些术语在本文中可互换地使用。
示例性地而非限制性地,机器学习模型620可以采用生成式深度神经网络来实现。图6中示出了基于编码器-解码器(Encoder-Decoder)结构的机器学习模型620。为了便于说明的目的,在下文中将参考编码器-解码器结构来进行描述。应当理解的是,机器学习模型620还可以以其他任何合适的形式来实现,并且可以基于其他任何合适的结构。本公开的范围在此方面不受限制。
在一些实施例中,与训练版图元素相对应的一组训练点的训练点表示序列可以被输入机器学习模型620。针对训练点表示序列中的每个训练点表示,可以执行以下操作以获得预测点表示序列:基于该训练点表示,利用机器学习模型620中的编码器622来生成第一特征表示;基于第一特征表示和该训练点表示,利用机器学习模型620中的解码器624来生成第二特征表示;以及基于第二特征表示来确定预测点表示序列中与该训练点表示相对应的预测点表示。
参考图6,机器学习模型620中的编码器622可以接收训练点表示作为输入并且生成第一特征表示。示例性地而非限制性地,第一特征表示可以是与预测点表示相关联的隐式表示。在一些实施例中,编码器622可以基于具备序列属性的模块来实现,例如,长短期记忆(Long Short-Term Memory,LSTM)网络、循环神经网络(Recurrent Neural Network,RNN)、门控循环单元(Gated Recurrent Unit,GRU),等等。
在一些实施例中,可以附加地进行正则化操作,以获得经正则化的第一特征表示。在本公开的上下文中,经正则化的第一特征表示也可以被称为第一特征表示或者隐空间向量。机器学习模型620中的解码器624可以接收第一特征表示以及训练点表示作为输入,并且生成第二特征表示。示例性地而非限制性地,第二特征表示可以是与预测点表示相关联的向量化表示。在一些实施例中,可以直接将第二特征表示作为预测点表示。通过这种方式,可以利用机器学习模型620来学习用于训练的版图元素的特征,以便在后续使用该机器学习模型620的过程中高效地生成新的版图元素。
在一些实施例中,可以基于第二特征表示利用高斯混合模型626(GaussianMixture Model,GMM)来生成预测点表示。用于该高斯混合模型626的高斯混合数例如可以是超参数,并且可以根据版图的复杂度进行调整。通过这种方式,可以引入随机变化,使得所生成预测点表示序列在总体上与训练点表示序列相似,但与训练点表示序列之间存在一定程度的差异。以此方式,可以增加随机采样能力,以便提高在后续使用该机器学习模型620的过程中所生成版图元素的多样性。应当理解的是,还可以借助于其他任何合适的模块来引入随机变化,本公开的范围在此方面不受限制。
进一步地,可以基于预测点表示序列与训练点表示序列之间的差异,更新用于生成版图元素的机器学习模型620的参数值。在一些实施例中,可以基于被输入机器学习模型620的点表示序列与由机器学习模型620输出的相应点表示序列之间的差值,确定训练机器学习模型620所使用的损失函数。在另一些实施例中,在机器学习模型620基于编码器-解码器结构的情况下,训练机器学习模型620所使用的损失函数可以包括两个部分,也即,针对编码器的损失函数和针对解码器的损失函数。例如,可以基于隐空间与标准正态分布的分布距离来确定针对编码器的损失函数,并且可以基于被输入机器学习模型620的点表示序列与由机器学习模型620输出的相应点表示序列之间的差值,确定针对解码器的损失函数。
在一些实施例中,可以基于第一特征表示的数值分布与参考分布之间的分布距离来确定第一损失。参考分布例如可以是标准正态分布或其他任何合适的概率分布。示例性地,第一损失可以基于如下的式子(1)来确定:
(1)
其中LossPrior表示第一损失,LossKL( )表示Kullback-Leibler(KL)散度损失函数,Z表示第一特征表示的数值分布,并且N(0,1)表示标准正态分布。
更具体地,第一损失例如可以基于下式确定:
其中LossPrior表示第一损失;n表示输入偏移点数,即输入机器学习模型的训练点表示的数目;表示由机器学习模型的编码器输出的第一特征表示的方差;并且/>表示由机器学习模型的编码器输出的第一特征表示的均值。应当理解的是,第一损失还可以借助于其他任何合适的损失函数而被确定,本公开的范围在此方面不受限制。
附加地,可以基于预测点表示序列所指示的相对位置与训练点表示序列所指示的相对位置之间的差异来确定第二损失。示例性地,第二损失可以基于如下的式子(2)来确定:
(2)
其中Lossshift表示第二损失,LossGMM( )表示针对二维高斯混合函数的损失函数,N(X, Y)表示作为模型输入的训练点表示序列所指示的相对位置的二元高斯分布,并且N(X’, Y’)表示作为模型输出的预测点表示序列所指示的相对位置的二元高斯分布。
更具体地,第二损失例如可以基于下式确定:
其中Lossshift表示第二损失;n表示输入偏移点数,即输入机器学习模型的训练点表示的数目;M表示高斯混合数;表示坐标偏移值,其指示相对位置;/>表示二维高斯混合模型的权重,其值由机器学习模型中的全连接层网络(未示出)的输出值和/>基于Softmax函数计算得到;/>表示二维高斯混合模型的均值,/>表示二维高斯混合模型的方差,并且/>表示二维高斯混合模型的协方差,二维高斯混合模型的均值、方差以及协方差的取值直接为机器学习模型中的全连接层网络的输出值。应当理解的是,第二损失还可以借助于其他任何合适的损失函数而被确定,本公开的范围在此方面不受限制。
此外,还可以基于预测点表示序列所指示的连接状态与训练点表示序列所指示的连接状态之间的差异来确定第三损失。示例性地,第三损失可以基于如下的式子(3)来确定:
(3)
其中Lossstate表示第三损失,LossSoftmax( )表示针对SoftMax函数的损失函数,P表示训练点表示序列所指示的连接状态,并且P’表示预测点表示序列所指示的连接状态。
更具体地,第三损失例如可以基于下式确定:
其中Lossstate表示第三损失;n表示输入偏移点数,即输入机器学习模型的训练点表示的数目;C表示可能的连接状态类别数目,例如在连接状态可以是相连、不相连和结束连接的情况下,C可以等于3;表示输入样本i在点状态k位置上的值,即输入模型的第i个训练点表示中的元素Sk的值;并且/>表示输入样本i在点状态k位置上的预测值,即模型输出的第i个预测点表示中的元素Sk的值。应当理解的是,第二损失还可以借助于其他任何合适的损失函数而被确定,本公开的范围在此方面不受限制。应当理解的是,第三损失还可以借助于其他任何合适的损失函数而被确定,本公开的范围在此方面不受限制。
进一步地,可以基于第一损失、第二损失以及第三损失来更新机器学习模型620的参数值。在一些实施例中,可以直接将第一损失、第二损失以及第三损失之和确定为总损失。在另一些实施例中,可以基于第一损失和针对第一损失的调节因子来确定经调节的第一损失,并且将经调节的第一损失、第二损失以及第三损失之和确定为总损失。示例性地,总损失可以基于如下的式子(4)来确定:
(4)
其中Loss表示总损失,LossPrior表示第一损失,α表示针对第一损失的调节因子,Lossshift表示第二损失,并且Lossstate表示第三损失。借助于该调节因子,可以方便且有效地控制输入机器学习模型620的点表示序列对由机器学习模型620输出的点表示序列的影响。在后续使用过程中,这对应于用于生成新版图元素的参考版图元素对于由机器学习模型620生成的版图元素的影响。α越大,则所生成的版图元素与参考版图元素越像。以此方式,可以有助于提高利用机器学习模型620生成的版图元素的多样性。
通过最小化总损失,可以不断更新机器学习模型620的参数值,直至总损失收敛至小于预定阈值或者训练轮次达到预定数目为止。以上描述了训练机器学习模型620的示例过程。应当理解的是,还可以使用其他任何合适的损失函数来训练机器学习模型620,并且还可以以其他任何合适的方式来构建训练集并训练机器学习模型620,以实现本文中描述的点表示序列生成功能。本公开的范围在此方面不受限制。
通过以上描述可以看到,在根据本公开的各实施例的用于训练机器学习模型的方案中,借助于点表示来描述点的属性,进而将作为训练样本的版图元素表征为点表示序列,以用于训练机器学习模型。通过这种方式,可以将版图元素抽象为点列,这有利于有效地刻画版图元素的特征,并且便于应用机器学习模型。以此方式,可以快速地学习版图元素的特征。通过这种方式训练的机器学习模型在后续的使用过程中可以更高效地生成版图元素,并且有助于提高版图元素的多样性。
下面描述生成版图元素的示例实施例。如上文中所简要提及的,电子设备120可以获取用于生成版图元素的至少一组参考点的相应表示。在一些实施例中,该至少一组参考点及其相应表示可以由电子设备120基于至少一个参考版图元素来生成。
在一些实施例中,电子设备120可以获取用于生成版图元素的至少一个参考版图元素。在一个示例中,至少一个参考版图元素可以由用户输入电子设备120。在另一个示例中,至少一个参考版图元素可以已经预先被存储在电子设备120中。在又一个示例中,至少一个参考版图元素可以由电子设备120生成。在再一个示例中,电子设备120还可以通信地耦连到其他设备,以从其他设备获取至少一个参考版图元素。本公开的范围在此方面不受限制。
在一些实施例中,至少一个参考版图元素可以包括单个参考版图元素,并且电子设备120基于该单个参考版图元素来生成目标版图元素130。备选地,至少一个参考版图元素可以包括多个参考版图元素,并且电子设备120基于该多个参考版图元素来生成目标版图元素130。这将在下文中进一步详细描述。
进一步地,电子设备120可以确定分别与至少一个参考版图元素相对应的至少一组参考点。至少一组参考点中的每组参考点包括与该组参考点相对应的参考版图元素的顶点。进一步地,电子设备可以以上文参考图2至图4描述的方式来确定与该至少一组参考点相对应的至少一个参考点表示序列。本公开在此不再赘述。
在一些实施例中,电子设备120可以基于至少一组参考点的相应表示,利用机器学习模型来生成针对目标点序列的目标点表示序列。该目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点。每个目标点表示指示对应的目标点与目标点序列中的前一个目标点之间的相对位置和连接状态。
参考图6,机器学习模型620可以已经基于上文描述的模型训练过程而被训练。在模型使用过程中,输入机器学习模型620的输入点表示集610可以对应于上述参考点表示序列,并且由机器学习模型620输出的输出点表示集630可以对应于上述目标点表示序列。
在一些实施例中,输入机器学习模型620的输入点表示集610可以包括单个参考点表示,即针对一个参考点的表示。在机器学习模型620处理完一个参考点表示之后再输入另一个参考点表示。换言之,机器学习模型620可以以串行的方式处理参考点表示序列。在另一些实施例中,输入机器学习模型620的输入点表示集610可以包括多个参考点表示,即针对多个参考点的相应表示。换言之,机器学习模型620可以以并行的方式批量处理一个或多个参考点表示序列。
在一些实施例中,机器学习模型620可以运行在电子设备120的本地。备选地,机器学习模型620也可以运行在诸如云服务器等的远程设备中,并且能够被电子设备120调用。
在基于一个参考版图元素生成一个目标版图元素130的示例应用场景中,与该参考版图元素相对应的一组参考点的参考点表示序列可以被输入机器学习模型620。针对参考点表示序列中的每个参考点表示,可以执行以下操作以获得目标点表示序列:基于该参考点表示,利用机器学习模型620中的编码器622来生成第一特征表示;基于第一特征表示和该参考点表示,利用机器学习模型620中的解码器624来生成第二特征表示;以及基于第二特征表示来确定目标点表示序列中与该参考点表示相对应的目标点表示。
参考图6,机器学习模型620中的编码器622可以接收参考点表示作为输入并且生成第一特征表示。示例性地而非限制性地,第一特征表示可以是与目标点表示相关联的隐式表示。在一些实施例中,可以附加地进行正则化操作,以获得经正则化的第一特征表示。在本公开的上下文中,经正则化的第一特征表示也可以被称为第一特征表示或隐空间向量。机器学习模型620中的解码器624可以接收第一特征表示以及参考点表示作为输入,并且生成第二特征表示。示例性地而非限制性地,第二特征表示可以是与目标点表示相关联的向量化表示。在一些实施例中,可以直接将第二特征表示作为目标点表示。通过这种方式,可以利用机器学习模型620来学习参考版图元素的特征,以便高效地生成新的版图元素。
在一些实施例中,可以基于第二特征表示利用高斯混合模型626(GaussianMixture Model,GMM)来生成目标点表示。在一些实施例中,可以随机选取一定数目的高斯混合模型。例如,所选取的高斯混合模型的数目可以小于模型训练过程中的高斯混合数。通过这种方式,可以引入随机变化,使得最终生成的目标版图元素130在总体上与参考版图元素相似,但与参考版图元素之间存在一定程度的差异。以此方式,可以增加随机采样能力,使得基于同一参考版图元素生成的目标版图元素130可以在一定程度上随机变化,从而可以提高所生成版图元素的多样性。应当理解的是,还可以借助于其他任何合适的模块来引入随机变化,本公开的范围在此方面不受限制。
在基于多个参考版图元素生成一个目标版图元素130的示例应用场景中,与该多个参考版图元素相对应的多组参考点的多个参考点表示序列可以被输入机器学习模型620。在一些实施例中,可以从多个参考点表示序列中分别选择位于给定位置的参考点表示,利用机器学习模型620中的编码器622生成所选择的参考点表示的相应第一特征表示。基于所选择的参考点表示和经组合的相应第一特征表示,可以利用机器学习模型620中的解码器624来生成第二特征表示。进而,基于第二特征表示来生成目标点表示序列中位于给定位置的目标点表示。
在一些实施例中,编码器622可以通过处理多个参考版图元素的相应参考点表示序列中的第N位参考点表示,来生成多个相应的第一特征表示,其中N是自然数,例如,1、2、3,等等。在一个示例中,可以通过组合该多个第一特征表示来生成一个经组合的第一特征表示。为了便于描述的目的,该经组合的第一特征表示也可以称为中间特征表示。在另一个示例中,可以通过组合多个经正则化的第一特征表示来生成中间特征表示。例如,可以将多个经正则化的第一特征表示的线性平均确定为中间特征表示。
通过这种方式,可以融合多个不同的参考版图元素的特性,使得后续生成的目标版图元素130可以融合这些参考版图元素的特征,从而可以提高所生成版图元素的多样性。应当理解的是,还可以以其他任何合适的方式来确定中间特征表示,例如通过加权平均,等等。本公开的范围在此方面不受限制。
进一步地,解码器624可以接收上述多个第N位参考点表示和所生成的中间特征表示作为输入,并且生成第二特征表示。在一些实施例中,可以直接将第二特征表示确定为目标点表示。在另一些实施例中,可以以与上文中描述类似的方式基于第二特征表示利用高斯混合模型626来生成目标点表示,本公开在此不再赘述。
根据以上描述的生成目标点表示的过程,通过以串行逐个处理或者并行批量处理的方式,可以基于一个或多个参考点表示序列利用机器学习模型620来生成针对目标点序列的目标点表示序列。目标点表示序列在形式上与上文结合图2至图4描述的参考点表示序列相似,本公开在此不再赘述。
进一步地,可以基于目标点表示序列来连接目标点序列中的至少一部分目标点,以生成目标版图元素130。在一些实施例中,可以按照目标点表示序列中的连接状态,依次连接目标点序列中的所有目标点,以获得候选版图元素。
图7示出了根据本公开的一些实施例的候选版图元素生成的示意图700。为了便于说明的目的,假设所获得的目标点表示序列为{(0, 0, 1, 0, 0),(5, 0, 1, 0, 0),(0,5, 1, 0, 0),(-4, 0, 1, 0, 0),(0, -6, 0, 0, 1)}。第一个目标点表示(0, 0, 1, 0,0)可以在图7中体现为位于直角坐标系原点的点T0。
根据上文中对五元组的描述,第二个目标点表示(5, 0, 1, 0, 0)指示相应的第二个目标点相对于点T0的位置为(5, 0)并且与点T0相连。因此,第二个目标点表示(5, 0,1, 0, 0)可以在图7中体现为点T1,并且点T1与点T0经由线段连接。第三个目标点表示(0,5, 1, 0, 0)指示相应的第三个目标点相对于点T1的位置为(0, 5)并且与点T1相连。因此,第三个目标点表示(0, 5, 1, 0, 0)可以在图7中体现为点T2,并且点T2与点T1经由线段连接。第四个目标点表示(-4, 0, 1, 0, 0)指示相应的第四个目标点相对于点T2的位置为(-4, 0)并且与点T2相连。因此,第四个目标点表示(-4, 0, 1, 0, 0)可以在图7中体现为点T3,并且点T3与点T2经由线段连接。第五个目标点表示(0, -6, 0, 0, 1)指示相应的第五个目标点相对于点T3的位置为(0, -6)并且与点T3相连,而且全局连接操作到此结束。因此,第五个目标点表示(0, -6, 0, 0, 1)在图7中体现为点T4,并且点T4与点T3经由线段连接。可以看到,点T0所在的第一线段711与点T4所在的第二线段712相交。由于全局连接操作到点T4处结束,因此可以将通过以上方式生成的图形确定为候选版图元素。
在一些实施例中,所生成的候选版图元素的类型可以被确定为与对应的参考版图元素相同。例如,如果基于线条类型的参考版图元素来生成目标点表示序列,则基于该目标点表示序列所生成的候选版图元素可以被确定为线条类型。类似地,如果基于多边形类型的参考版图元素来生成目标点表示序列,则基于该目标点表示序列所生成的候选版图元素可以被确定为多边形类型。
通过上文描述的过程,可以基于点表示序列有序且高效地生成版图元素,从而提高生成版图元素的效率。应当理解的是,以上描述的生成候选版图元素的过程仅是示例性的,还可以通过其他任何合适的方式来基于目标点表示序列生成候选版图元素,本公开的范围在此方面不受限制。
进一步地,可以将所生成的候选版图元素直接确定为最终的目标版图元素130。备选地,可以通过对候选版图元素执行后处理来生成目标版图元素130。
在一些实施例中,针对候选版图元素的后处理可以基于候选版图元素以及用于生成候选版图元素的参考版图元素的类型来执行。示例性地,如果参考版图元素的类型是线条,则可以不执行后处理,直接将候选版图元素确定为目标版图元素130。如果参考版图元素的类型是多边形,则可以针对候选版图元素执行线段闭合处理,以获得目标版图元素130。通过这种方式,可以更加有针对性地来对候选版图元素执行后处理,从而提高最终生成的目标版图元素130的合理性和可用性。
在线段闭合处理的一个示例实现中,可以首先确定目标点序列中的起始点所在线段与末尾点所在线段是否相交。如果起始点所在线段与末尾点所在线段相交,则可以去除相交线段外围的多余点或线段,从而使得图形闭合。参考图7,点T0是目标点序列中的起始点,并且点T4是目标点序列中的末尾点。点T0所在的第一线段711与点T4所在的第二线段712相交,因此可以去除多余的点和线段(即,虚线框720中所包括的点和线段),并且将所获得版图元素作为目标版图元素130。
如果起始点所在线段与末尾点所在线段不相交,则可以延长起始点所在线段和/或末尾点所在线段。如果通过延长线段能够使得起始点所在线段与末尾点所在线段相交,则可以去除延长后相交线段外围的多余点或线段,从而使得图形闭合。如果通过延长线段无法使得起始点所在线段与末尾点所在线段相交(例如,在两线段平行的情况下),则可以将起始点的后一个点或末尾点的前一个点所在的线段平移至起始点或末尾点作为新的线段,并通过重复以上判断过程及对应操作来实现对图形的闭合。
可以看到,通过执行线段闭合处理可以确保多边形类型的版图元素的图形闭合,因此线段闭合处理也可以被称为图形闭合处理。借助于线段闭合处理,可以避免所生成的目标版图元素130存在缺陷而不可用所造成的效率损失,从而可以更高效地生成版图元素。应当理解的是,线段闭合处理还可以以其他任何合适的方式来实现,本公开的范围在此方面不受限制。
在一些实施例中,在用于生成版图元素的原始版图元素是超大版图元素的情况下,针对通过切割该原始版图元素得到的多个线条中的每个线条,可以将该线条作为一个参考版图元素并借助于上文描述的过程来生成对应的目标点表示序列。以此方式,可以获得基于该多个线条生成的多个目标点表示序列。针对多个目标点表示序列中的每个目标点表示序列,可以按照该目标点表示序列中的连接状态,依次连接该目标点序列中的所有目标点,以获得与多个目标点表示序列相对应的多个候选版图元素。需要指出的是,在此获得的多个候选版图元素同样也是线条类型,并且还需要通过执行拼接操作来得到与原始版图元素相对应的目标版图元素130。
在一些实施例中,可以基于多个候选版图元素分别在第一方向和第二方向上的投影长度,通过拼接多个候选版图元素来获得目标版图元素130。例如,第一方向可以与第二方向正交。示例性地而非限制性地,第一方向是水平方向并且第二方向是竖直方向。
作为示例,多个候选版图元素可以包括第一候选版图元素和第二候选版图元素。可以将第一候选版图元素向水平方向和竖直方向投影,并且将投影所得线段较长的方向作为第一主方向。类似地,可以将第二候选版图元素向水平方向和竖直方向投影,并且将投影所得线段较长的方向作为第二主方向。进一步地,可以通过以下方式来拼接第一候选版图元素和第二候选版图元素:将第二候选版图元素中的起始点连接至第一候选版图元素中的末尾点,并且将第二候选版图元素的定向调整为使第二主方向与第一主方向对齐。
通过这种方式,可以有规律地拼接多个候选版图元素以生成目标版图元素,从而降低了在原始版图元素被切分的情况下生成版图元素的复杂度,进而提高了生成版图元素的效率。应当理解的是,上述拼接方式仅是示例性的,还可以根据任何其他合适的规则来拼接版图元素,本公开的范围在此方面不受限制。
在一些实施例中,还可以针对将多个候选版图元素拼接获得的版图元素执行上文描述的线段闭合处理,以获得最终的目标版图元素130,本公开在此不再赘述。
通过将版图元素切分为多个线条来处理,一方面,可以使得超大版图元素适合于机器学习模型620的使用。另一方面,可以使得能够以并行的方式同时处理版图元素的多个部分,从而加快了基于已有版图元素生成新版图元素的过程。以此方式,可以进一步缩短生成版图元素所需的时间。应当理解的是,上述针对版图元素切分的处理方式(包括切割操作和拼接操作)不仅适用于超大版图元素,并且还适用于其他任何合适的版图元素,本公开的范围在此方面不受限制。
在一些实施例中,还可以针对所生成的目标版图元素130执行异常版图元素的过滤操作。示例性地,如果目标版图元素130不符合预定要求,则可以过滤掉该目标版图元素130。例如,可以直接删除该目标版图元素130。如果目标版图元素130符合预定要求,则可以保留该目标版图元素130。例如可以将目标版图元素130存储在版图元素库中以供后续使用。又例如,可以将目标版图元素130摆放在排版区域中,以直接用于生成版图。通过这种方式,可以有效地滤除不符合要求的目标版图元素130,从而保证最终使用的版图元素符合要求。
在一些实施例中,上述预定要求可以包括以下至少一项:(1)目标版图元素130所包括的每个线段均为水平或竖直的;(2)目标版图元素130中的任意两个线段不存在交叉;(3)目标版图元素130的关键尺寸大于或等于第一宽度阈值;(4)目标版图元素130的关键尺寸小于或等于第二宽度阈值,其中第二宽度阈值大于第一宽度阈值。应当理解的是,预定要求还可以包括其他任何合适的要求,本公开的范围在此方面不受限制。
图8示出了根据本公开的一些实施例的用于过滤异常版图元素的过程800的示意图。在框810,获取目标版图元素130。该目标版图元素130可以以上文所描述的方式而被生成。在框812,确定在目标版图元素130中是否存在非水平线段或者非竖直线段。如果确定在目标版图元素130中存在非水平线段或者非竖直线段,则过程800前进至框824,即可以将目标版图元素130过滤掉。如果确定目标版图元素130中不存在非水平线段和非竖直线段,则过程800前进至框814。
在框814,确定目标版图元素130是否是多边形类型的版图元素。如果确定目标版图元素130不是多边形类型的版图元素,则过程800前进至框818。在框818,确定在目标版图元素130中是否存在线段交叉。如果确定在目标版图元素130中不存在线段交叉,则过程800前进至框822,即可以保留目标版图元素130。如果确定在目标版图元素130中存在线段交叉,则过程800前进至框824,即可以将目标版图元素130过滤掉。
如果在框814处确定目标版图元素130是多边形类型的版图元素,则过程800前进至框816。在框816,确定在目标版图元素130中是否存在线段交叉。如果确定在目标版图元素130中存在线段交叉,则过程800前进至框824,即可以将目标版图元素130过滤掉。如果确定在目标版图元素130中不存在线段交叉,则过程800前进至框820。在框820,确定目标版图元素130中的线宽是否超过宽度阈值。如果确定目标版图元素130中的线宽不超过宽度阈值,则过程800前进至框822,即可以保留目标版图元素130。如果确定目标版图元素130中的线宽超过宽度阈值,则过程800前进至框824,即可以将目标版图元素130过滤掉。
应当理解的是,过程800还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框。此外,还可以以其他任何合适的方式来针对目标版图元素130执行异常版图元素的过滤操作。本公开的范围在此方面不受限制。
通过以上结合图1至图8的描述可以看到,在根据本公开的各实施例的用于生成版图元素的方案中,通过借助于点表示来描述点的属性,进而利用机器学习模型来处理,从而生成版图元素。通过这种方式,一方面,可以将版图元素抽象为点列,这有利于有效地刻画版图元素的特征,并且便于应用机器学习模型。以此方式,可以快速地学习版图元素的特征,进而生成新的版图元素。另一方面,在引入新版图元素的情况下,借助于机器学习模型,可以快速地学习新版图元素的特征并生成类似的版图元素,而无需像在已有方案中那样修改规则。以此方式,可以更高效地生成版图元素,并且有助于提高版图元素的多样性。
应当理解的是,根据本公开的各实施例的方案可以适用于需要生成版图元素的任何合适的应用场景,例如芯片版图生成、光学邻近效应修正(Optical ProximityCorrection, OPC)验证、版图元素库的数据增强,等等。本公开的范围在此方面不受限制。
图9示出了根据本公开的一些实施例的用于生成版图元素的方法900的流程图。在一些实施例中,方法900可以在如图1所示的电子设备120处执行。应当理解的是,方法900还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。
在框902,获取用于生成版图元素的至少一组参考点的相应表示,相应表示指示至少一组参考点的相应属性。
在框904,基于至少一组参考点的相应表示,利用机器学习模型来生成针对目标点序列的目标点表示序列。该目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点。每个目标点表示指示对应的目标点与目标点序列中的前一个目标点之间的相对位置和连接状态。
在框906,基于目标点表示序列,连接目标点序列中的至少一部分目标点,以生成目标版图元素。
在一些实施例中,方法900还包括:获取用于生成版图元素的至少一个参考版图元素;以及确定分别与至少一个参考版图元素相对应的至少一组参考点,至少一组参考点中的每组参考点包括与该组参考点相对应的参考版图元素的顶点。
在一些实施例中,获取用于生成版图元素的至少一个参考版图元素包括:响应于原始版图元素的顶点数目大于顶点数目阈值,将原始版图元素的边缘切割成多个线条,以作为至少一个参考版图元素,多个线条中的每个线条所包括的顶点数目小于顶点数目阈值,其中以多个线条之一作为一个参考版图元素来生成目标点表示序列,并且目标点表示序列是分别基于多个线条生成的多个目标点表示序列之一。
在一些实施例中,至少一组参考点的相应表示包括与至少一组参考点相对应的至少一个参考点表示序列,并且获取用于生成版图元素的至少一组参考点的相应表示包括:针对至少一组参考点中的每组参考点执行以下操作,以获得至少一个参考点表示序列:基于该组参考点在相对应的参考版图元素中的位置,按照排序规则将该组参考点排列成参考点序列;以及基于相对应的参考版图元素,确定针对参考点序列的参考点表示序列,参考点表示序列中的每个参考点表示对应于参考点序列中的一个参考点,每个参考点表示指示对应的参考点与参考点序列中的前一个参考点之间的相对位置和连接状态。
在一些实施例中,至少一组参考点包括一组参考点,至少一组参考点的相应表示包括与一组参考点相对应的参考点表示序列,并且基于至少一组参考点的相应表示利用机器学习模型来生成针对目标点序列的目标点表示序列包括:针对参考点表示序列中的每个参考点表示执行以下操作,以获得目标点表示序列:基于该参考点表示,利用机器学习模型中的编码器来生成第一特征表示;基于第一特征表示和该参考点表示,利用机器学习模型中的解码器来生成第二特征表示;以及基于第二特征表示来确定目标点表示序列中与该参考点表示相对应的目标点表示。
在一些实施例中,基于第二特征表示来确定目标点表示序列中与该参考点表示相对应的目标点表示包括:基于第二特征表示,利用高斯混合模型来生成目标点表示。
在一些实施例中,至少一组参考点包括多组参考点,至少一组参考点的相应表示包括与多组参考点相对应的多个参考点表示序列,并且基于至少一组参考点的相应表示利用机器学习模型来生成针对目标点序列的目标点表示序列包括:从多个参考点表示序列中分别选择位于给定位置的参考点表示;利用机器学习模型中的编码器生成所选择的参考点表示的相应第一特征表示;基于所选择的参考点表示和经组合的相应第一特征表示,利用机器学习模型中的解码器来生成第二特征表示;以及基于第二特征表示来生成目标点表示序列中位于给定位置的目标点表示。
在一些实施例中,基于第二特征表示来生成目标点表示序列中位于给定位置的目标点表示包括:基于第二特征表示,利用高斯混合模型来生成目标点表示。
在一些实施例中,基于目标点表示序列连接目标点序列中的至少一部分目标点以生成目标版图元素包括:按照目标点表示序列中的连接状态,依次连接目标点序列中的所有目标点,以获得候选版图元素;以及基于候选版图元素以及用于生成候选版图元素的参考版图元素的类型来生成目标版图元素。
在一些实施例中,基于候选版图元素以及用于生成候选版图元素的参考版图元素的类型来生成目标版图元素包括:响应于确定参考版图元素的类型是线条,将候选版图元素确定为目标版图元素;或响应于确定参考版图元素的类型是多边形,针对候选版图元素执行线段闭合处理,以获得目标版图元素。
在一些实施例中,基于目标点表示序列连接目标点序列中的至少一部分目标点以生成目标版图元素包括:针对多个目标点表示序列中的每个目标点表示序列,按照该目标点表示序列中的连接状态,依次连接该目标点序列中的所有目标点,以获得与多个目标点表示序列相对应的多个候选版图元素;以及基于多个候选版图元素分别在第一方向和第二方向上的投影长度,通过拼接多个候选版图元素来获得目标版图元素,第一方向与第二方向正交。
在一些实施例中,方法900还包括:确定目标版图元素是否符合预定要求;响应于确定目标版图元素符合预定要求,执行以下至少一项:将目标版图元素存储在版图元素库中,或将目标版图元素摆放在排版区域中。
在一些实施例中,预定要求包括以下至少一项:目标版图元素所包括的每个线段均为水平或竖直的;目标版图元素中的任意两个线段不存在交叉;目标版图元素的关键尺寸大于或等于第一宽度阈值;或者目标版图元素的关键尺寸小于或等于第二宽度阈值,第二宽度阈值大于第一宽度阈值。
在一些实施例中,机器学习模型基于针对多个训练点序列的多个训练点表示序列而被训练,多个训练点表示序列中的每个训练点表示序列所包括的每个训练点表示对应于相应的训练点序列中的一个训练点,每个训练点表示指示对应的训练点与相应的训练点序列中的前一个训练点之间的相对位置和连接状态。
在一些实施例中,多个训练点表示序列中的一个训练点表示序列通过以下方式而被生成:确定与用于训练机器学习模型的训练版图元素相对应的一组训练点,一组训练点包括训练版图元素的顶点;基于一组训练点在训练版图元素中的位置,按照排序规则将一组训练点排列成训练点序列;以及基于训练版图元素,确定针对训练点序列的训练点表示序列。
图10示出了根据本公开的一些实施例的用于生成训练数据的方法1000的流程图。在一些实施例中,方法1000可以在如图1所示的电子设备120处执行。应当理解的是,方法1000还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。
在框1002,基于版图元素的顶点,确定与版图元素相对应的点序列。
在框1004,确定针对点序列的点表示序列,以获得用于训练用于生成版图元素的机器学习模型的训练数据,其中点表示序列中的每个点表示对应于点序列中的一个点,每个点表示指示对应的点与点序列中的前一个点之间的相对位置和连接状态。
在一些实施例中,基于版图元素的顶点,确定与版图元素相对应的点序列包括:确定与版图元素相对应的一组点,一组点包括版图元素的顶点;以及基于一组点在版图元素中的位置,按照排序规则排列一组点,以获得点序列。
在一些实施例中,方法1000还包括:响应于原始版图元素的顶点数目大于顶点数目阈值,将原始版图元素的边缘切割成多个线条,多个线条中的每个线条所包括的顶点数目小于顶点数目阈值;以及将多个线条中的一个线条确定为版图元素。
在一些实施例中,点表示序列中的每个点表示包括:第一元素,该第一元素指示该点表示所对应的点与点序列中的前一个点之间在第一方向上的距离;第二元素,该第二元素指示该点表示所对应的点与点序列中的前一个点之间在第二方向上的距离,第二方向不同于第一方向;以及一组元素,该组元素指示该点表示所对应的点与点序列中的前一个点处于多个预定连接状态之一。
在一些实施例中,一组元素具有独热编码的形式。
图11示出了根据本公开的一些实施例的用于训练机器学习模型的方法1100的流程图。在一些实施例中,方法1100可以在如图1所示的电子设备120处执行。应当理解的是,方法1100还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。
在框1102,获取针对训练点序列的训练点表示序列,训练点表示序列所包括的每个训练点表示对应于训练点序列中的一个训练点,每个训练点表示指示对应的训练点与训练点序列中的前一个训练点之间的相对位置和连接状态。
在框1104,基于训练点表示序列,利用机器学习模型来生成针对预测点序列的预测点表示序列,预测点表示序列中的每个预测点表示对应于预测点序列中的一个预测点,每个预测点表示指示对应的预测点与预测点序列中的前一个预测点之间的相对位置和连接状态。
在框1106,基于预测点表示序列与训练点表示序列之间的差异,更新机器学习模型的参数值,以用于生成版图元素。
在一些实施例中,基于训练点表示序列,利用机器学习模型来生成针对预测点序列的预测点表示序列包括:针对训练点表示序列中的每个训练点表示执行以下操作,以获得预测点表示序列:基于该训练点表示,利用机器学习模型中的编码器来生成第一特征表示;基于第一特征表示和该训练点表示,利用机器学习模型中的解码器来生成第二特征表示;以及基于第二特征表示来确定预测点表示序列中与该训练点表示相对应的预测点表示。
在一些实施例中,基于第二特征表示来确定预测点表示序列中与该训练点表示相对应的预测点表示包括:基于第二特征表示,利用高斯混合模型来生成预测点表示。
在一些实施例中,基于预测点表示序列与训练点表示序列之间的差异,更新机器学习模型的参数值包括:基于第一特征表示的数值分布与参考分布之间的分布距离,确定第一损失;基于预测点表示序列所指示的相对位置与训练点表示序列所指示的相对位置之间的差异,确定第二损失;基于预测点表示序列所指示的连接状态与训练点表示序列所指示的连接状态之间的差异,确定第三损失;以及基于第一损失、第二损失以及第三损失,更新机器学习模型的参数值。
在一些实施例中,基于第一损失、第二损失以及第三损失,更新机器学习模型的参数值包括:基于第一损失和针对第一损失的调节因子,确定经调节的第一损失;将经调节的第一损失、第二损失以及第三损失之和确定为总损失;以及通过最小化总损失,来更新参数值。
本公开的实施例还提供了用于实现上述方法或过程的相应设备。图12示出了其中可以实施本公开的一个或多个实施例的电子设备1200的框图。该电子设备1200例如可以用于实现如图1所示的电子设备120。应当理解,图12所示出的电子设备1200仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。
如图12所示,电子设备1200是通用电子设备的形式。电子设备1200的组件可以包括但不限于一个或多个处理器或处理单元1210、存储器1220、存储设备1230、一个或多个通信单元1240、一个或多个输入设备1250以及一个或多个输出设备1260。处理单元1210可以是实际或虚拟处理器并且能够根据存储器1220中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高电子设备1200的并行处理能力。
电子设备1200通常包括多个计算机存储介质。这样的介质可以是电子设备1200可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1220可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备1230可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在电子设备1200内被访问。
电子设备1200可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图12中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1220可以包括计算机程序产品1225,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
通信单元1240实现通过通信介质与其他电子设备进行通信。附加地,电子设备1200的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,电子设备1200可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
输入设备1250可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1260可以是一个或多个输出设备,例如显示器、扬声器、打印机等。电子设备1200还可以根据需要通过通信单元1240与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与电子设备1200交互的设备进行通信,或者与使得电子设备1200与一个或多个其他电子设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (24)
1.一种用于生成版图元素的方法,其特征在于,所述方法包括:
获取用于生成版图元素的至少一组参考点的相应表示,所述相应表示指示所述至少一组参考点的相应属性,所述至少一组参考点中的每组参考点包括与该组参考点相对应的参考版图元素的顶点,并且基于该组参考点在相对应的参考版图元素中的位置,该组参考点被按照排序规则被排列成参考点序列;
基于所述至少一组参考点的所述相应表示,利用机器学习模型来生成针对目标点序列的目标点表示序列,所述目标点序列是相对应的版图元素的顶点基于所述顶点在该版图元素中的位置按照所述排序规则被排列成的点序列,所述目标点表示序列中的每个目标点表示对应于所述目标点序列中的一个目标点,所述每个目标点表示指示对应的目标点与所述目标点序列中的前一个目标点之间的相对位置和连接状态;以及
基于所述目标点表示序列,连接所述目标点序列中的至少一部分目标点,以生成目标版图元素。
2. 根据权利要求1所述的用于生成版图元素的方法,其特征在于,所述方法还包括:
获取用于生成所述版图元素的至少一个参考版图元素;以及
确定分别与所述至少一个参考版图元素相对应的所述至少一组参考点,所述至少一组参考点中的每组参考点包括与该组参考点相对应的参考版图元素的顶点。
3.根据权利要求2所述的用于生成版图元素的方法,其特征在于,获取用于生成版图元素的至少一个参考版图元素包括:
响应于原始版图元素的顶点数目大于顶点数目阈值,将所述原始版图元素的边缘切割成多个线条,以作为所述至少一个参考版图元素,所述多个线条中的每个线条所包括的顶点数目小于所述顶点数目阈值,
其中以所述多个线条之一作为一个参考版图元素来生成所述目标点表示序列,并且所述目标点表示序列是分别基于所述多个线条生成的多个目标点表示序列之一。
4.根据权利要求1所述的用于生成版图元素的方法,其特征在于,所述至少一组参考点的所述相应表示包括与所述至少一组参考点相对应的至少一个参考点表示序列,并且获取用于生成版图元素的至少一组参考点的相应表示包括:
针对所述至少一组参考点中的每组参考点执行以下操作,以获得所述至少一个参考点表示序列:
基于该组参考点在相对应的参考版图元素中的位置,按照排序规则将该组参考点排列成参考点序列;以及
基于所述相对应的参考版图元素,确定针对所述参考点序列的参考点表示序列,所述参考点表示序列中的每个参考点表示对应于所述参考点序列中的一个参考点,所述每个参考点表示指示对应的参考点与所述参考点序列中的前一个参考点之间的相对位置和连接状态。
5.根据权利要求1所述的用于生成版图元素的方法,其特征在于,所述至少一组参考点包括一组参考点,所述至少一组参考点的所述相应表示包括与所述一组参考点相对应的参考点表示序列,并且基于所述至少一组参考点的所述相应表示利用机器学习模型来生成针对目标点序列的目标点表示序列包括:
针对所述参考点表示序列中的每个参考点表示执行以下操作,以获得所述目标点表示序列:
基于该参考点表示,利用所述机器学习模型中的编码器来生成第一特征表示;
基于所述第一特征表示和该参考点表示,利用所述机器学习模型中的解码器来生成第二特征表示;以及
基于所述第二特征表示来确定所述目标点表示序列中与该参考点表示相对应的目标点表示。
6.根据权利要求5所述的用于生成版图元素的方法,其特征在于,基于所述第二特征表示来确定所述目标点表示序列中与该参考点表示相对应的目标点表示包括:
基于所述第二特征表示,利用高斯混合模型来生成所述目标点表示。
7.根据权利要求1所述的用于生成版图元素的方法,其特征在于,所述至少一组参考点包括多组参考点,所述至少一组参考点的所述相应表示包括与所述多组参考点相对应的多个参考点表示序列,并且基于所述至少一组参考点的所述相应表示利用机器学习模型来生成针对目标点序列的目标点表示序列包括:
从所述多个参考点表示序列中分别选择位于给定位置的参考点表示;
利用所述机器学习模型中的编码器生成所选择的参考点表示的相应第一特征表示;
基于所选择的参考点表示和经组合的所述相应第一特征表示,利用所述机器学习模型中的解码器来生成第二特征表示;以及
基于所述第二特征表示来生成所述目标点表示序列中位于所述给定位置的目标点表示。
8.根据权利要求7所述的用于生成版图元素的方法,其特征在于,基于所述第二特征表示来生成所述目标点表示序列中位于所述给定位置的目标点表示包括:
基于所述第二特征表示,利用高斯混合模型来生成所述目标点表示。
9. 根据权利要求1所述的用于生成版图元素的方法,其特征在于,基于所述目标点表示序列连接所述目标点序列中的至少一部分目标点以生成目标版图元素包括:
按照所述目标点表示序列中的所述连接状态,依次连接所述目标点序列中的所有目标点,以获得候选版图元素;以及
基于所述候选版图元素以及用于生成所述候选版图元素的参考版图元素的类型来生成所述目标版图元素。
10. 根据权利要求9所述的用于生成版图元素的方法,其特征在于,基于所述候选版图元素以及用于生成所述候选版图元素的参考版图元素的类型来生成所述目标版图元素包括:
响应于确定所述参考版图元素的所述类型是线条,将所述候选版图元素确定为所述目标版图元素;或
响应于确定所述参考版图元素的所述类型是多边形,针对所述候选版图元素执行线段闭合处理,以获得所述目标版图元素。
11. 根据权利要求3所述的用于生成版图元素的方法,其特征在于,基于所述目标点表示序列连接所述目标点序列中的至少一部分目标点以生成目标版图元素包括:
针对所述多个目标点表示序列中的每个目标点表示序列,按照该目标点表示序列中的所述连接状态,依次连接该目标点序列中的所有目标点,以获得与所述多个目标点表示序列相对应的多个候选版图元素;以及
基于所述多个候选版图元素分别在第一方向和第二方向上的投影长度,通过拼接所述多个候选版图元素来获得所述目标版图元素,所述第一方向与所述第二方向正交。
12.根据权利要求1所述的用于生成版图元素的方法,其特征在于,所述方法还包括:
确定所述目标版图元素是否符合预定要求;
响应于确定所述目标版图元素符合所述预定要求,执行以下至少一项:
将所述目标版图元素存储在版图元素库中,或
将所述目标版图元素摆放在排版区域中。
13.根据权利要求12所述的用于生成版图元素的方法,其特征在于,所述预定要求包括以下至少一项:
所述目标版图元素所包括的每个线段均为水平或竖直的;
所述目标版图元素中的任意两个线段不存在交叉;
所述目标版图元素的关键尺寸大于或等于第一宽度阈值;或者
所述目标版图元素的关键尺寸小于或等于第二宽度阈值,所述第二宽度阈值大于所述第一宽度阈值。
14.一种用于生成训练数据的方法,其特征在于,所述方法包括:
确定与版图元素相对应的一组点,所述一组点包括所述版图元素的顶点;
基于所述一组点在所述版图元素中的位置,按照排序规则排列所述一组点,以获得与所述版图元素相对应的点序列;以及
确定针对所述点序列的点表示序列,以获得用于训练用于生成版图元素的机器学习模型的训练数据,其中所述点表示序列中的每个点表示对应于所述点序列中的一个点,所述每个点表示指示对应的点与所述点序列中的前一个点之间的相对位置和连接状态。
15. 根据权利要求14所述的用于生成训练数据的方法,其特征在于,所述方法还包括:
响应于原始版图元素的顶点数目大于顶点数目阈值,将所述原始版图元素的边缘切割成多个线条,所述多个线条中的每个线条所包括的顶点数目小于所述顶点数目阈值;以及
将所述多个线条中的一个线条确定为所述版图元素。
16.根据权利要求14所述的用于生成训练数据的方法,其特征在于,所述点表示序列中的每个点表示包括:
第一元素,所述第一元素指示该点表示所对应的点与所述点序列中的前一个点之间在第一方向上的距离;
第二元素,所述第二元素指示该点表示所对应的点与所述点序列中的前一个点之间在第二方向上的距离,所述第二方向不同于所述第一方向;以及
一组元素,所述一组元素指示该点表示所对应的点与所述点序列中的前一个点处于多个预定连接状态之一。
17.根据权利要求16所述的用于生成训练数据的方法,其特征在于,所述一组元素具有独热编码的形式。
18.一种用于训练机器学习模型的方法,其特征在于,所述方法包括:
获取针对训练点序列的训练点表示序列,所述训练点序列是相对应的版图元素的顶点基于所述顶点在该版图元素中的位置按照排序规则被排列成的点序列,所述训练点表示序列所包括的每个训练点表示对应于所述训练点序列中的一个训练点,所述每个训练点表示指示对应的训练点与所述训练点序列中的前一个训练点之间的相对位置和连接状态;
基于所述训练点表示序列,利用机器学习模型来生成针对预测点序列的预测点表示序列,所述预测点序列是相对应的版图元素的顶点基于所述顶点在该版图元素中的位置按照排序规则被排列成的点序列,所述预测点表示序列中的每个预测点表示对应于所述预测点序列中的一个预测点,所述每个预测点表示指示对应的预测点与所述预测点序列中的前一个预测点之间的相对位置和连接状态;以及
基于所述预测点表示序列与所述训练点表示序列之间的差异,更新所述机器学习模型的参数值,以用于生成版图元素。
19.根据权利要求18所述的用于训练机器学习模型的方法,其特征在于,基于所述训练点表示序列,利用机器学习模型来生成针对预测点序列的预测点表示序列包括:
针对所述训练点表示序列中的每个训练点表示执行以下操作,以获得所述预测点表示序列:
基于该训练点表示,利用所述机器学习模型中的编码器来生成第一特征表示;
基于所述第一特征表示和该训练点表示,利用所述机器学习模型中的解码器来生成第二特征表示;以及
基于所述第二特征表示来确定所述预测点表示序列中与该训练点表示相对应的预测点表示。
20.根据权利要求19所述的用于训练机器学习模型的方法,其特征在于,基于所述第二特征表示来确定所述预测点表示序列中与该训练点表示相对应的预测点表示包括:
基于所述第二特征表示,利用高斯混合模型来生成所述预测点表示。
21.根据权利要求19所述的用于训练机器学习模型的方法,其特征在于,基于所述预测点表示序列与所述训练点表示序列之间的差异,更新所述机器学习模型的参数值包括:
基于所述第一特征表示的数值分布与参考分布之间的分布距离,确定第一损失;
基于所述预测点表示序列所指示的所述相对位置与所述训练点表示序列所指示的所述相对位置之间的差异,确定第二损失;
基于所述预测点表示序列所指示的所述连接状态与所述训练点表示序列所指示的所述连接状态之间的差异,确定第三损失;以及
基于所述第一损失、所述第二损失以及所述第三损失,更新所述机器学习模型的参数值。
22.根据权利要求21所述的用于训练机器学习模型的方法,其特征在于,基于所述第一损失、所述第二损失以及所述第三损失,更新所述机器学习模型的参数值包括:
基于所述第一损失和针对所述第一损失的调节因子,确定经调节的第一损失;
将所述经调节的第一损失、所述第二损失以及所述第三损失之和确定为总损失;以及
通过最小化所述总损失,来更新所述参数值。
23. 一种电子设备,其特征在于,包括:
处理器;以及
存储器,与所述处理器耦合,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述电子设备执行根据权利要求1至13中任一项所述的用于生成版图元素的方法、或者根据权利要求14至17中任一项所述的用于生成训练数据的方法、或者根据权利要求18至22中任一项所述的用于训练机器学习模型的方法。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据权利要求1至13中任一项所述的用于生成版图元素的方法、或者根据权利要求14至17中任一项所述的用于生成训练数据的方法、或者根据权利要求18至22中任一项所述的用于训练机器学习模型的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311575477.8A CN117291137B (zh) | 2023-11-22 | 2023-11-22 | 用于生成版图元素的方法、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311575477.8A CN117291137B (zh) | 2023-11-22 | 2023-11-22 | 用于生成版图元素的方法、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117291137A CN117291137A (zh) | 2023-12-26 |
CN117291137B true CN117291137B (zh) | 2024-02-13 |
Family
ID=89244717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311575477.8A Active CN117291137B (zh) | 2023-11-22 | 2023-11-22 | 用于生成版图元素的方法、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117291137B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0637183A (ja) * | 1992-07-16 | 1994-02-10 | Matsushita Electric Ind Co Ltd | レイアウト設計検証方法及びレイアウト設計検証装置 |
CN111340788A (zh) * | 2020-02-28 | 2020-06-26 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 硬件木马版图检测方法、装置、电子设备和可读存储介质 |
US10699051B1 (en) * | 2018-06-29 | 2020-06-30 | Cadence Design Systems, Inc. | Method and system for performing cross-validation for model-based layout recommendations |
CN111611766A (zh) * | 2020-05-15 | 2020-09-01 | 全芯智造技术有限公司 | 用于确定电路版图约束条件的方法、设备和存储介质 |
CN115510795A (zh) * | 2022-08-22 | 2022-12-23 | 华为技术有限公司 | 一种数据处理方法以及相关装置 |
CN116151177A (zh) * | 2022-01-25 | 2023-05-23 | 台湾积体电路制造股份有限公司 | 修改用于ic的布局的方法、系统和计算机程序产品 |
CN116628787A (zh) * | 2023-02-06 | 2023-08-22 | 北京芯愿景软件技术股份有限公司 | 集成电路版图图形绘制方法、装置、设备以及介质 |
CN116663483A (zh) * | 2023-07-31 | 2023-08-29 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
CN116702689A (zh) * | 2022-02-24 | 2023-09-05 | 本源科仪(成都)科技有限公司 | 量子芯片版图的构建方法和装置及存储介质 |
CN116861840A (zh) * | 2023-07-21 | 2023-10-10 | 东南大学苏州研究院 | 一种基于二进制网格索引结构的填充方法及填充框架 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11017147B2 (en) * | 2019-08-30 | 2021-05-25 | Siemens Industry Software Inc. | Edge-based camera for characterizing semiconductor layout designs |
US11934762B2 (en) * | 2021-08-06 | 2024-03-19 | Applied Materials, Inc. | Overlaying on locally dispositioned patterns by ML based dynamic digital corrections (ML-DDC) |
-
2023
- 2023-11-22 CN CN202311575477.8A patent/CN117291137B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0637183A (ja) * | 1992-07-16 | 1994-02-10 | Matsushita Electric Ind Co Ltd | レイアウト設計検証方法及びレイアウト設計検証装置 |
US10699051B1 (en) * | 2018-06-29 | 2020-06-30 | Cadence Design Systems, Inc. | Method and system for performing cross-validation for model-based layout recommendations |
CN111340788A (zh) * | 2020-02-28 | 2020-06-26 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 硬件木马版图检测方法、装置、电子设备和可读存储介质 |
CN111611766A (zh) * | 2020-05-15 | 2020-09-01 | 全芯智造技术有限公司 | 用于确定电路版图约束条件的方法、设备和存储介质 |
CN116151177A (zh) * | 2022-01-25 | 2023-05-23 | 台湾积体电路制造股份有限公司 | 修改用于ic的布局的方法、系统和计算机程序产品 |
CN116702689A (zh) * | 2022-02-24 | 2023-09-05 | 本源科仪(成都)科技有限公司 | 量子芯片版图的构建方法和装置及存储介质 |
CN115510795A (zh) * | 2022-08-22 | 2022-12-23 | 华为技术有限公司 | 一种数据处理方法以及相关装置 |
CN116628787A (zh) * | 2023-02-06 | 2023-08-22 | 北京芯愿景软件技术股份有限公司 | 集成电路版图图形绘制方法、装置、设备以及介质 |
CN116861840A (zh) * | 2023-07-21 | 2023-10-10 | 东南大学苏州研究院 | 一种基于二进制网格索引结构的填充方法及填充框架 |
CN116663483A (zh) * | 2023-07-31 | 2023-08-29 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
Non-Patent Citations (1)
Title |
---|
通用嵌入式SRAM编译器的设计与实现;王聪;刘鸣;陈虹;郑翔;曹华敏;高志强;;微电子学(01);83-86页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117291137A (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8665267B2 (en) | System and method for generating 3D surface patches from unconstrained 3D curves | |
CN117332745B (zh) | 用于生成版图的方法、设备和介质 | |
US20220027546A1 (en) | Standard cell layout generation with applied artificial intelligence | |
US12008703B2 (en) | Methods and systems for constructing ray tracing acceleration structures | |
CN104167015B (zh) | 一种基于表面信号拟合的着色器简化方法、装置及图形渲染方法 | |
CN103871019B (zh) | 用于处理路径图像以促进光栅化的方法和设备 | |
US11853660B2 (en) | System and method for modeling a semiconductor fabrication process | |
Manduhu et al. | A work efficient parallel algorithm for exact Euclidean distance transform | |
Das et al. | Learning an isometric surface parameterization for texture unwrapping | |
CN117291137B (zh) | 用于生成版图元素的方法、设备和介质 | |
Zhao et al. | Curvature‐driven Multi‐stream Network for Feature‐preserving Mesh Denoising | |
CN115630600B (zh) | 用于版图处理的方法、设备和介质 | |
CN117291138B (zh) | 用于生成版图元素的方法、设备和介质 | |
US20100246978A1 (en) | Data verification method, data verification device, and data verification program | |
CN117313636B (zh) | 用于生成版图的方法、设备和介质 | |
Vetsch et al. | Neuralmeshing: Differentiable meshing of implicit neural representations | |
Shang et al. | Effective re-parameterization and GA based knot structure optimization for high quality T-spline surface fitting | |
US20220292335A1 (en) | Reinforcement driven standard cell placement | |
EP3940650A1 (en) | Methods and systems for constructing ray tracing acceleration structures | |
CN117787162B (zh) | 一种多端角静态时序分析方法、装置、计算机设备及介质 | |
US11675960B2 (en) | Machine learning based layout nudging for design rule compliance | |
US11887244B2 (en) | Intersection testing for ray tracing | |
Kurzeja et al. | CTSP: CSG Combinations of Tran-Similar Two-Patterns of CSG Cells | |
Guo | Research on a Chinese Character Recognition Framework based on Multi-dimensional Image Information | |
Hohmann et al. | Design Automation: A Conditional VAE Approach to 3D Object Generation Under Conditions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |