CN116663483A - 用于芯片排版的方法、设备和介质 - Google Patents
用于芯片排版的方法、设备和介质 Download PDFInfo
- Publication number
- CN116663483A CN116663483A CN202310948083.6A CN202310948083A CN116663483A CN 116663483 A CN116663483 A CN 116663483A CN 202310948083 A CN202310948083 A CN 202310948083A CN 116663483 A CN116663483 A CN 116663483A
- Authority
- CN
- China
- Prior art keywords
- target
- elements
- distance
- candidate
- area
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000004044 response Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 230000007704 transition Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 31
- 235000012431 wafers Nutrition 0.000 description 24
- 230000008569 process Effects 0.000 description 19
- 238000004519 manufacturing process Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 239000002699 waste material Substances 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
根据本公开的示例实施例提供了用于芯片排版的方法、设备和介质。在该方法中,获取多个元素,该多个元素中的每个元素表示待摆放在排版区域内的多个芯片中的一个芯片。然后,按照多个元素的摆放顺序,依次从多个元素中选择目标元素。进一步地,将排版区域作为目标区域来针对目标元素执行以下排版操作:基于目标区域的边界、以及目标区域中已摆放的至少一个参考元素,确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离;以及基于多个候选第一距离,将目标元素摆放在目标区域中。以此方式,一方面可以减少待摆放元素在第一方向上所需要遍历的候选移动距离的数目,从而提高排版效率。另一方面,可以提高晶圆的面积利用率。
Description
技术领域
本公开的实施例主要涉及计算机辅助设计领域,并且更具体地,涉及用于芯片排版的方法、设备和介质。
背景技术
在集成电路(Integrated Circuit,IC)制造中,在芯片设计完成之后往往需要将多个芯片排版在一个晶圆上,然后通过切割该晶圆来获得芯片。该芯片排版(ChipPlacement)的过程也可以称为布局规划(Floor Plan)。一个晶圆中可用于制造芯片的部分的面积往往是固定的。所期望的是能够利用一个晶圆制造尽可能多的芯片,以降低芯片的制造成本并提高原材料的利用率。为此,需要对待制造的芯片在晶圆上进行合理地排版,以充分利用晶圆。因此,如何提高晶圆的利用率成为亟待解决的问题。
发明内容
在本公开的第一方面中,提供了一种用于芯片排版的方法。该方法包括:获取多个元素,多个元素中的每个元素表示待摆放在排版区域内的多个芯片中的一个芯片;按照多个元素的摆放顺序,依次从多个元素中选择目标元素;以及将排版区域作为目标区域来针对目标元素执行以下排版操作:基于目标区域的边界、以及目标区域中已摆放的至少一个参考元素,确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离;以及基于多个候选第一距离,将目标元素摆放在目标区域中。
在本公开的第二方面中,提供了一种电子设备。该电子设备包括处理器、以及与处理器耦合的存储器。该存储器具有存储于其中的指令,指令在被处理器执行时使电子设备执行根据本公开的第一方面的用于芯片排版的方法。
在本公开的第三方面中,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序。计算机程序在被处理器执行时实现根据本公开的第一方面的用于芯片排版的方法。
根据本公开的各实施例的方案,通过额外地考虑已经摆放在排版区域中的元素,来确定待摆放元素在第一方向上的多个候选移动距离,进而基于多个候选移动距离来摆放元素。根据本公开的各种实施例,一方面,可以以自动化的方式进行芯片排版,并且有效地减少待摆放元素在第一方向上所需要遍历的候选移动距离的数目。以此方式,可以缩短遍历过程所需时间,提升芯片排版方案的时间性能,从而提高排版效率。另一方面,由于芯片的摆放位置在第一方向上不再受到步长大小的影响,因此可以避免已摆放的多个元素之间的不必要的间隙。以此方式,可以提高晶圆的面积利用率,从而降低芯片的制造成本。
应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的描述而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1和图2分别示出了用于芯片排版的已有方案的示意图;
图3示出了本公开的各实施例能够在其中实现的示例环境的示意图;
图4示出了根据本公开的一些实施例的基于芯片来生成对应的元素的示意图;
图5至图14分别示出了根据本公开的一些实施例的芯片排版过程的示意图;
图15示出了根据本公开的一些实施例的用于芯片排版的方法的流程图;以及
图16示出了其中可以实施本公开的一个或多个实施例的电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至 少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所述,为了降低芯片的制造成本并提高晶圆的利用率,在芯片排版过程中期望在一个晶圆中布置尽可能多的芯片。目前已有的一种方案是借助于人工进行排版。这种方案在很大程度上依赖人工经验,排版效率较低,并且由于受到人工所能执行的排版次数和排版方式的限制而难以获得较好的排版结果。因此,通常最终所生成的排版结果的晶圆利用率也较低。在目前已有的另一种方案中,基于预设移动步长来按照一定的摆放规则对芯片进行排版。现在结合图1和图2进一步详细描述这种方案。
在图1和图2中,示意性地示出了排版区域120、以及待排版的芯片110-1、110-2和110-3(在下文中单独或统一地称为芯片110)。应当理解的是,尽管在图1中仅示出了三个芯片110,但是需要摆放到晶圆中的芯片可以是任何合适的数目,例如2个、100个、2000个,等等。
下面结合图1和图2来描述假设使用已有方案对这些芯片进行排版的示意图100和示意图200。在图1的示例中,芯片110-1和110-2已经被摆放在排版区域120中,而待被摆放在排版区域120中的芯片110-3位于其初始位置113-0,即,排版区域120的右上角。针对该初始位置113-0,可以确定芯片110-3在该位置处能够在排版区域120中下降的最大距离P0。在图1的示例中,该最大距离P0是位于初始位置113-0的芯片110-3距排版区域120的下边界的距离。然后,以预设的移动步长S(例如,1纳米、5纳米,等等)将芯片110-3从右向左移动到过渡位置,直至移动到排版区域120的左边界,并且每移动一次,都会确定在相应的过渡位置处芯片110-3能够在排版区域120中下降的最大距离。
具体地,首先将芯片110从初始位置113-0向左移动一个步长S到过渡位置113-1,然后可以确定位于过渡位置113-1的芯片110-3能够在排版区域120中下降的最大距离P1。然后,将芯片110从过渡位置113-1向左移动步长S到过渡位置113-2。然后,可以确定位于过渡位置113-2的芯片110-3能够在排版区域120中下降的最大距离P2,依次类推。
值得指出的是,针对过渡位置113-4,由于芯片110-2的存在而使得芯片110-3无法完全下降到排版区域120的下边界,而只能堆叠在芯片110-2上方。因此,这使得与过渡位置113-4相对应的最大下降距离P4是位于过渡位置113-4的芯片110-3距芯片110-2的上边缘的距离。类似地,与过渡位置113-5相对应的最大下降距离P5是位于过渡位置113-5的芯片110-3距芯片110-2的上边缘的距离,并且与过渡位置113-6相对应的最大下降距离P6是位于过渡位置113-6的芯片110-3距芯片110-1的上边缘的距离。
然后,可以基于初始位置113-0、过渡位置113-1、113-2、113-3、113-4、113-5和113-6、以及相对应的最大下降距离P0、P1、P2、P3、P4、P5和P6来确定芯片110-3的摆放位置。具体而言,优先考虑最大下降距离中数值最大者;当存在多个相同的最大下降距离时,优先考虑在水平方向上距初始位置113-0最远者。在图1的示例中,由于最大下降距离P0、P1、P2、P3均相同,而与最大下降距离P3相对应的过渡位置113-3在水平方向上距初始位置113-0最远,其距离为3个步长S。因此,可以将芯片110-3的摆放方式确定为从初始位置113-0向右移动3个步长S,然后再向下下降距离P3。图2中示出了将芯片110-3摆放到排版区域120中的示意图。然后,可以与上述方式类似地继续摆放其余待摆放的芯片110,以获得排版结果。
可以看到,在图1和图2所对应的已有方案中,一方面,针对每个待摆放的芯片110都需要在水平方向上遍历每移动一个步长所对应的过渡位置。由于基于预设步长确定的过渡位置的数目较多,因此该遍历过程非常耗时,因而使得该已有方案的时间性能较差。另一方面,由于芯片110的摆放位置在水平方向上受步长大小的影响,经摆放的多个芯片110之间可能会存在不必要的间隙。参考图2,由于步长大小并不一定是芯片110的宽度的整数倍,因而使得在芯片110-2与110-3之间存在不期望有的间隙。这会降低晶圆的利用率,从而影响排版结果的质量。
为此,本公开的实施例提出了一种用于芯片排版的方案。根据本公开的各种实施例,在确定待摆放元素在第一方向上的候选移动距离时,会额外地考虑已经摆放在排版区域中的元素。具体而言,根据本公开的用户芯片排版的方案,获取多个元素,该多个元素中的每个元素表示待摆放在排版区域内的多个芯片中的一个芯片。进一步地,按照多个元素的摆放顺序,依次从多个元素中选择目标元素,并且将排版区域作为目标区域来针对目标元素执行以下排版操作:基于目标区域的边界、以及目标区域中已摆放的至少一个参考元素,确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离;以及基于多个候选第一距离,将目标元素摆放在目标区域中。
通过下文描述将会更清楚地理解,根据本公开的各实施例,通过额外地考虑已经摆放在排版区域中的元素,来确定待摆放元素在第一方向上的多个候选移动距离,进而基于多个候选移动距离来摆放元素。通过这种方式,一方面,在实现自动化执行芯片排版的同时,可以有效地减少待摆放元素在第一方向上所需要遍历的候选移动距离的数目。以此方式,可以缩短遍历过程所需时间,提升芯片排版方案的时间性能,从而提高排版效率。另一方面,由于芯片的摆放位置在第一方向上不再受到步长大小的影响,因此可以避免已摆放的多个元素之间的不必要的间隙。以此方式,可以提高晶圆的面积利用率,从而降低芯片的制造成本。
示例环境
以下将参考附图来详细描述该方案的各种示例实现方式。首先参见图3,其示出了本公开的各实施例能够在其中实现的示例环境300的示意图。示例环境300总体上可以包括电子设备320。在一些实施例中,电子设备320可以是诸如个人计算机、工作站、服务器等具有计算功能的设备。本公开的范围在此方面不受限制。
电子设备320可以获取多个元素310-1、310-2、……、310-N(在下文中单独或统一地被称为元素310),其中N是正整数,并且表示需要排版在晶圆中的芯片数目。每个元素310可以表示待摆放在排版区域120内的多个芯片110中的一个芯片110。在图3中,元素310被示出为均具有矩形的形状。应当理解的是,元素310还可以具有其他任何合适的形状,例如三角形、平行四边形、梯形、五边形,等等。
在一些实施例中,元素310可以由用户输入电子设备320。在另一些实施例中,元素310可以已经预先被存储在电子设备320中。在又一些实施例中,元素310可以由电子设备320生成。在再一些实施例中,电子设备320还可以通信地耦连到其他设备,以从其他设备获取元素310。本公开的范围在此方面不受限制。
电子设备320可以按照多个元素310的摆放顺序来依次从这些元素310中选择一个待摆放的元素,并且通过额外地考虑已经摆放在排版区域120中的元素310,来确定该元素310在第一方向上的多个候选移动距离,进而基于该多个候选移动距离来摆放该元素310。这将在下文中结合图4至图14进一步详细描述。应当理解的是,仅出于示例性的目的描述环境300的结构和功能,而不暗示对于本公开的范围的任何限制。
示例芯片排版过程
在下文中参考图4至图14来描述根据本公开的示例性实施例的芯片排版过程的概要。如上文中简要提及的,电子设备320可以获取多个元素310。这些元素310中的每个元素310表示待摆放在排版区域120内的多个芯片110中的一个芯片110。在一些实施例中,元素310的形状和尺寸可以取决于其所表示的芯片110的形状和尺寸。电子设备320可以通过任何合适的方式来获取芯片110的形状和/或尺寸,例如,通过解析描述芯片信息的文件,或者通过接收由用户输入的形状信息和/或尺寸信息。
在一些实施例中,元素310的形状与相应的芯片110的形状相同,并且元素310的尺寸与相应的芯片110的尺寸相同。在另一些实施例中,元素310的形状与相应的芯片110的形状相同,而元素310的尺寸则取决于芯片110的尺寸与不同芯片110之间的预设间距。示例性地,可以基于芯片110的形状与尺寸向外扩张该预设间距的一半来获取与该芯片110相对应的元素310。
参考图4,其示出了根据本公开的一些实施例的基于芯片110-K来生成对应的元素310-K的示意图400,其中K可以是小于等于N的任意正整数。如图4中所示,芯片110-K具有矩形形状,并且长为L1,宽为W1。需要指出的是,图4中所示出的芯片110-K的形状和尺寸仅是示意性的而非限制性的。与芯片110-K相对应的元素310-K可以同样具有矩形形状,并且长为L2,宽为W2。芯片110-K的长L1、宽W1与元素310-K的长L2、宽W2例如可以满足如下的关系:L2 = L1 + 2×LD,并且W2 = W1 + 2×WD。LD是长度方向上的扩张距离,例如等于预设间距的一半,并且WD是宽度方向上的扩张距离,例如等于预设间距的一半。应当理解的是,芯片110-K与元素310-K之间的尺寸关系仅是示例性的而非限制性,并且扩张距离还可以是其他任何合适的数值,例如等于预设间距。
可以理解的是,在将按照上述方式生成的两个元素310紧贴在一起时,可以保证相对应的两个芯片110之间的距离满足预设间距的要求。因此,可以确保排版结果330中各个芯片110之间的距离满足预设间距的要求,从而可以便于后续的切割操作,尽可能避免切割坏芯片110。以此方式,可以有效地提高芯片的成品率。应当理解的是,还可以以其他任何合适的方式来基于芯片110生成对应的元素310,本公开的范围在此方面不受限制。
进一步地,电子设备320可以按照多个元素310的摆放顺序,依次从多个元素310中选择目标元素。多个元素310的摆放顺序指示这些元素310中的每个元素310摆放的先后顺序。在一些实施例中,该摆放顺序可以随机地生成,例如借助于随机生成函数。在另一些实施例中,该摆放顺序可以预先确定。在又一些实施例中,该摆放顺序可以取决于与元素310对应的芯片110的特性,例如,面积、长度、宽度、重要性,等等。为了便于说明的目的,在下文中将以一个示例性的摆放顺序进行描述。
首先,电子设备320可以将元素310-1作为目标元素。进而,电子设备320可以将排版区域120作为目标区域,并且基于目标区域的边界、以及目标区域中已摆放的至少一个参考元素,确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离。应当理解的是,目标元素的初始位置可以是排版区域120中的任何合适的位置,例如左上角、左下角、右上角、右下角,等等。第一方向可以是任何合适的方向,例如水平方向或者竖直方向。示例性地,第一方向可以是沿水平方向向左、沿水平方向向右、沿竖直方向向下、或者沿竖直方向向上,等等。为了便于说明的目的,在下文中以目标元素的初始位置是排版区域120中的右上角,并且第一方向是沿水平方向向左为例进行描述。
图5至图14分别示出了根据本公开的一些实施例的芯片排版过程的示意图。如图5的示意图500所示,作为目标元素的元素310-1的初始位置510-0位于排版区域120的右上角。由于元素310-1是第一个待摆放的元素,因此排版区域120中暂无已摆放的元素。在此情况下,电子设备320例如可以将距离零、以及在初始位置510-0处的元素310-1在水平方向上距排版区域120的左边界的距离A-11作为两个候选第一距离。距离零对应于初始位置510-0,并且距离A-11对应于候选过渡位置510-1。
然后,电子设备320可以基于多个候选第一距离来将目标元素摆放在目标区域中。在一些实施例中,电子设备320例如可以基于目标区域的边界或至少一个参考元素中的至少一项来确定多个候选第二距离。多个候选第二距离中的每个候选第二距离对应于多个候选第一距离中的一个候选第一距离,并且指示从与该候选第一距离相对应的位置起在第二方向上移动目标元素的最大可允许距离。示例性地,第二方向可以与第一方向正交。例如,在第一方向是水平方向的情况下,第二方向可以是竖直方向。又例如,在第一方向是竖直方向的情况下,第二方向可以是水平方向。示例性地,在第一方向是沿水平方向向左的情况下,第二方向例如可以是沿竖直方向向下。为了便于说明的目的,在下文中以第二方向是沿竖直方向向下为例进行描述。应当理解的是,第二方向还可以是不同于第一方向的任何合适的方向,本公开的范围在此方面不受限制。
在图5的示例中,与距离零(对应于初始位置510-0)相对应的候选第二距离是位于初始位置510-0处的元素310-1距排版区域120的下边界的距离D-10。此外,与距离A-11(对应于候选过渡位置510-1)相对应的候选第二距离是位于候选过渡位置510-1处的元素310-1距排版区域120的下边界的距离D-11。
进一步地,电子设备320可以从多个候选第一距离和多个候选第二距离中选择目标第一距离和目标第二距离。在一些实施例中,电子设备320可以将多个候选第二距离中最大的候选第二距离确定为目标第二距离。如果确定与目标第二距离相对应的候选第一距离的数目等于一,则电子设备320可以将该候选第一距离确定为目标第一距离。如果确定与目标第二距离相对应的候选第一距离的数目大于一,则电子设备320可以将与目标第二距离相对应的多个候选第一距离中最大的候选第一距离确定为目标第一距离。
在图5的示例中,由于距离D-10和距离D-11相同,因此目标第二距离可以等于距离D-10和距离D-11,从而使得与该目标第二距离相对应的候选第一距离的数目为二,即大于一。在这种情况下,电子设备320例如可以将与目标第二距离相对应的多个候选第一距离中最大的候选第一距离(即,距离A-11)确定为目标第一距离。
应当理解的是,电子设备320还可以以其他任何合适的方式来从多个候选第一距离和多个候选第二距离中选择目标第一距离和目标第二距离。例如,可以将与目标第二距离相对应的多个候选第一距离中最小的候选第一距离确定为目标第一距离。本公开的范围在此方面不受限制。
然后,电子设备320可以从初始位置起按照目标第一距离和目标第二距离移动目标元素,以将目标元素摆放在目标区域中。在图5的示例中,电子设备320可以从初始位置510-0起将元素310-1先沿水平方向移动距离A-11,然后沿竖直方向移动距离D-11,以将元素310-1摆放在排版区域120中。如图6中所示,元素310-1被摆放在排版区域120的左下角。应当理解的是,上述移动摆放过程仅是示意性得而非必须的。电子设备320例如还可以直接将目标元素从初始位置摆放到由目标第一距离和目标第二距离所指示的目标位置处。
可以看到,在针对元素310-1的上述排版操作中,电子设备320仅遍历了初始位置510-0和候选过渡位置510-1,总计两个位置。相比于已有的基于预设移动步长的方案,可以大幅减少所需要遍历的位置,从而可以减少芯片排版的耗时,提升芯片排版方案的时间性能。
在一些实施例中,针对第一个待摆放的元素,此时排版区域120中尚未摆放任何元素310。因此,在初始位置为排版区域120的右上角的情况下,电子设备320也可以直接将该第一个元素摆放至排版区域120的左下角,从而省去以上结合图5描述的过程。以此方式,可以进一步减少芯片排版的耗时,提升芯片排版方案的时间性能和排版速度。
进一步地,电子设备320可以判断是否已经完成对所有元素310的摆放。如果已经完成对所有元素310的摆放,则电子设备320可以将当前的布局作为针对该排版顺序所生成的布局。如果尚未完成对所有元素310的摆放,则电子设备320可以继续按照摆放顺序对剩余的元素执行排版操作。
在图5的示例中,在将元素310-1摆放至排版区域120中之后,由于尚未完成对所有元素310的摆放,因此电子设备320可以按照摆放顺序,将下一个待摆放的元素310-2作为目标元素继续执行上述排版操作。参考图6,作为目标元素的元素310-2的初始位置610-0位于排版区域120的右上角。由于元素310-1已经被摆放在排版区域120中,因此元素310-1可以作为参考元素,以用于确定针对元素310-2的候选第一距离。
在一些实施例中,参考元素可以包括排版区域120中已摆放的所有元素。在另一些实施例中,参考元素可以包括排版区域120中已摆放的所有元素中的一部分,这将在下文中结合图8进一步详细描述。电子设备320可以针对每个参考元素,确定该参考元素与初始位置处的目标元素在第一方向上的最小距离,并且将该最小距离确定为多个候选第一距离之一。在图6所示的示意图600中,电子设备320可以确定已摆放的元素310-1与位于初始位置610-0处的元素310-2在水平方向上的最小距离(即,距离A-21)作为一个候选第一距离。与针对元素310-1的排版操作类似地,电子设备320还可以将距离零、以及在初始位置610-0处的元素310-2在水平方向上距排版区域120的左边界的距离A-22作为两个候选第一距离。距离零对应于初始位置610-0,并且距离A-22对应于候选过渡位置610-2。因此,针对元素310-2,电子设备320可以获得三个候选第一距离,即距离零、距离A-21和距离A-22。
然后,电子设备320可以针对这三个候选第一距离,分别确定相对应的候选第二距离。具体而言,与距离零(对应于初始位置610-0)相对应的候选第二距离是位于初始位置610-0的元素310-2距排版区域120的下边界的距离D-20。与距离A-21(对应于候选过渡位置610-1)相对应的候选第二距离是位于候选过渡位置610-1的元素310-2距排版区域120的下边界的距离D-21。此外,与距离A-22(对应于候选过渡位置610-2)相对应的候选第二距离是位于候选过渡位置610-2的元素310-2距元素310-1的上边缘的距离D-22。
进一步地,由于距离D-20和距离D-21相同,并且均大于距离D-22,因此针对元素310-2的目标第二距离可以等于距离D-20和距离D-21,从而使得与该目标第二距离相对应的候选第一距离的数目为二,即大于一。在这种情况下,电子设备320例如可以将与目标第二距离相对应的多个候选第一距离中最大的候选第一距离(即,距离A-21)确定为目标第一距离。然后,电子设备320可以从初始位置610-0起将元素310-2先沿水平方向移动距离A-21,然后沿竖直方向移动距离D-21,以将元素310-2摆放在排版区域120中。如图7中的示意图700所示,元素310-2被摆放在排版区域120的下方偏左侧的位置,并且紧靠元素310-1。
可以看到,在针对元素310-2的上述排版操作中,电子设备320仅遍历了初始位置610-0、以及候选过渡位置610-1和610-2,总计三个位置。相比于已有的基于预设移动步长的方案,可以大幅减少所需要遍历的位置,从而可以减少芯片排版的耗时,提升芯片排版方案的时间性能。
在将元素310-2摆放至排版区域120中之后,电子设备320可以按照摆放顺序,将下一个待摆放的元素310-3作为目标元素继续执行上述排版操作。参考图7,作为目标元素的元素310-3的初始位置710-0位于排版区域120的右上角。由于元素310-1和元素310-2已经被摆放在排版区域120中,因此元素310-1和元素310-2可以作为参考元素,以用于确定针对元素310-3的候选第一距离。
具体而言,电子设备320可以确定已摆放的元素310-1与位于初始位置710-0处的元素310-3在水平方向上的最小距离(即,距离A-32)作为一个候选第一距离。此外,电子设备320可以确定已摆放的元素310-2与位于初始位置710-0处的元素310-3在水平方向上的最小距离(即,距离A-31)作为另一个候选第一距离。与针对元素310-1和元素310-2的排版操作类似地,电子设备320还可以将距离零、以及位于初始位置710-0处的元素310-3在水平方向上距排版区域120的左边界的距离A-33作为两个候选第一距离。距离零对应于初始位置710-0,并且距离A-33对应于候选过渡位置710-3。因此,针对元素310-3,电子设备320可以获得四个候选第一距离,即距离零、距离A-31、距离A-32和距离A-33。
然后,电子设备320可以针对这四个候选第一距离,分别确定相对应的候选第二距离。具体而言,与距离零(对应于初始位置710-0)相对应的候选第二距离是位于初始位置710-0的元素310-3距排版区域120的下边界的距离D-30。与距离A-31(对应于候选过渡位置710-1)相对应的候选第二距离是位于候选过渡位置710-1的元素310-3距排版区域120的下边界的距离D-31。与距离A-32(对应于候选过渡位置710-2)相对应的候选第二距离是位于候选过渡位置710-2的元素310-3距元素310-2的上边缘的距离D-32。此外,与距离A-33(对应于候选过渡位置710-3)相对应的候选第二距离是位于候选过渡位置710-3的元素310-3在竖直方向上距元素310-2的上边缘的距离D-33。需要指出的是,在图7中,为了清楚的目的,与初始位置710-0和候选过渡位置710-1、710-2和710-3相对应的虚线矩形框的尺寸略有不同。
进一步地,由于距离D-30和距离D-31相同,并且均大于距离D-32和D-33,因此针对元素310-3的目标第二距离可以等于距离D-30和距离D-31,从而使得与该目标第二距离相对应的候选第一距离的数目为二,即大于一。在这种情况下,电子设备320例如可以将与目标第二距离相对应的多个候选第一距离中最大的候选第一距离(即,距离A-31)确定为目标第一距离。然后,电子设备320可以从初始位置710-0起将元素310-3先沿水平方向移动距离A-31,然后沿竖直方向移动距离D-31,以将元素310-3摆放在排版区域120中。如图8中的示意图800所示,元素310-3被摆放在排版区域120的下方中间的位置,并且紧靠元素310-2。
可以看到,在针对元素310-3的上述排版操作中,电子设备320仅遍历了初始位置710-0、以及候选过渡位置710-1、710-2和710-3,总计四个位置。相比于已有的基于预设移动步长的方案,可以大幅减少所需要遍历的位置,从而可以减少芯片排版的耗时,提升芯片排版方案的时间性能。
然后,电子设备320可以继续按照摆放顺序,依次从剩余的待摆放元素中选择目标元素,并以与上文描述类似的方式来摆放目标元素,直至完成对所有元素310的摆放,或者直至排版区域120无法再摆放下一个元素310为止。
可以看到,以上参考图5至图7描述的芯片排版方案可以实现以自动化的方式进行芯片排版,而不再依赖于人工经验,从而可以有效地提高排版效率。此外,可以有效地减少待摆放元素在第一方向上所需要遍历的候选移动距离的数目。以此方式,可以缩短遍历过程所需时间,提升芯片排版方案的时间性能,从而提高排版速度。此外,由于芯片的摆放位置在第一方向上不再受到步长大小的影响,因此可以避免已摆放的多个元素之间的不必要的间隙。以此方式,可以提高晶圆的面积利用率,从而降低芯片的制造成本。
如上文所简要提及的,在一些实施例中,参考元素可以包括排版区域120中已摆放的所有元素310中的一部分。示例性地,参考元素可以包括排版区域120中已摆放的所有元素310中满足如下条件的元素:在该元素的预设方位处不存在已摆放的元素。该预设方位例如可以取决于元素的形状、初始位置、第一方向和/或第二方向,等等。在元素310的形状是矩形、元素310的初始位置在排版区域120的右上角、第一方向是沿水平方向向左、并且第二方向是沿竖直方向向下的应用场景中,该预设方位例如可以是元素310的右上角顶点正上方。
参考图8,元素310-1至310-5已经被摆放在排版区域120中,下一个待摆放的元素是元素310-6。由于元素310-3的右上角顶点正上方存在元素310-5,因此该元素310-3将不会被用作针对元素310-6的参考元素。需要指出的是,虽然元素310-5同时还堆叠在元素310-4的上方,但是由于元素310-5并未覆盖元素310-4的右上角顶点,因此元素310-4仍然可以用作参考元素。在该示例中,电子设备320可以将元素310-1、元素310-2、元素310-5和元素310-4用作参考元素来按照上文中所描述的方式对元素310-6继续进行排版,本公开在此不再赘述。
以此方式,一方面可以进一步减少所需要遍历的位置的数目,从而可以减少芯片排版的耗时,提升芯片排版方案的时间性能。另一方面,可以确保待摆放的元素会以紧靠已摆放元素的方式而被摆放,从而使得芯片的布局更加紧凑,进一步提高晶圆的利用率。
附加地,考虑到元素310-4与排版区域120右边界的距离已经小于元素310-6的宽度,可以不再考虑将元素310-4用作参考元素。在该情况下,针对元素310-6的排版操作中所使用的参考元素可以仅包括元素310-1、元素310-2和元素310-5。以此方式,可以进一步减少所需要遍历的位置的数目,从而可以减少芯片排版的耗时,提升芯片排版方案的时间性能。
此外,发明人已经注意到:在芯片排版的实际过程中,往往还会存在一个或多个芯片被指定为摆放在排版区域中的特定区域内的情况。在本公开的上下文中,该特定区域也可以被称为限定区域,并且该一个或多个芯片及其对应的元素可以被称为与该限定区域相关联。应当理解的是,排版区域可以包括一个或多个限定区域,并且针对每个限定区域可以被指定有一个或多个相关联的元素。为了便于说明的目的,在下文中以排版区域包括一个限定区域,并且该限定区域被指定有一个相关联的元素的应用场景为例进行描述,本公开的范围在此方面不受限制。参考图9所示的示意图900,摆放顺序排在当前待摆放元素310-7之后的元素310-11例如被预先指定为需要被摆放在限定区域925内。
为了保证与限定区域相关联的元素能够被摆放在限定区域中,在一些实施例中,针对目标元素的上述排版过程中,电子设备320可以附加地确定已摆放的目标元素是否与目标区域中的限定区域至少部分重叠。如果确定目标元素与限定区域完全没有重叠,则电子设备320可以继续按照摆放顺序将多个元素310中的下一个元素作为目标元素,来通过排版操作摆放下一个元素。在图9的示例中,由于元素310-6在其摆放位置处与限定区域925完全不重叠,因此,电子设备320可以继续摆放下一个元素310-7。
在一些实施例中,如果确定目标元素与限定区域至少部分重叠,则电子设备320可以基于目标区域的当前布局,来确定与限定区域相关联的一组元素是否能够被摆放到限定区域中。示例性地,电子设备320可以通过将当前布局中的限定区域作为目标区域,依次将在该组元素中的每个元素作为目标元素,通过以与上文中描述的排版操作类似的方式来尝试将该组元素摆放到限定区域中,以判断该组元素是否能够被摆放到限定区域中。应当理解的是,电子设备320还可以通过其他任何合适的方式来确定与限定区域相关联的一组元素是否能够被摆放到限定区域中,例如借助于已有的基于预设移动步长的摆放方式来判断。本公开的范围在此方面不受限制。
在一些实施例中,如果确定该组元素能够被摆放到限定区域中,则电子设备320可以按照摆放顺序将多个元素310中的下一个元素作为目标元素,来通过排版操作摆放下一个元素。在图10所示的示意图1000中,由于元素310-7在其摆放位置处与限定区域925部分重叠,但限定区域925的剩余空间仍然足够用于摆放下元素310-11。因此,电子设备320可以继续摆放下一个元素310-8。
附加地,如果确定与限定区域相关联的一组元素无法被摆放到限定区域中,则电子设备320可以撤销对目标元素的摆放,然后先将该组元素摆放到限定区域中,并且通过排版操作重新摆放目标元素。如在图11所示的示意图1100中所示的,由于在将元素310-9摆放到其目标位置之后,元素310-9与限定区域925部分重叠,并且限定区域925的剩余空间不足以摆放下元素310-11。因此,电子设备320可以撤销对元素310-9的摆放,即从排版区域120中移除元素310-9,并放回到待摆放元素的队列中。然后,电子设备320可以将元素310-11摆放到限定区域925中,然后开始重新摆放元素310-9。这将在下文中结合图12和图13进一步详细描述。
在一些实施例中,为了将与限定区域相关联的一组元素摆放到限定区域中,电子设备320例如可以针对该组元素中的每个元素,将限定区域和该元素分别作为目标区域和目标元素,基于限定区域的当前布局通过根据本公开的一些实施例的排版操作来摆放该元素310。换言之,可以将一个限定区域等效为一个独立的排版区域,并且依次将与该限定区域相关联的一组元素摆放到该限定区域中。
在图12所示的示意图1200中,为了清楚的目的,将限定区域925从排版区域120的当前布局中剥离出来。阴影区域1210对应于在图10所示的布局中限定区域925被元素310-7所占据的部分,因此该阴影区域1210无法用于摆放元素310-11。在图12的示例中,元素310-11的初始位置位于限定区域925的右上角。进一步地,电子设备320可以以与上文参考图5至图8描述的排版操作类似的方式来将元素310-11摆放在限定区域925中,本公开在此不再赘述。以此方式,可以更加高效地将与限定区域相关联的元素310摆放到限定区域中,从而提高排版效率。
在图13的示意图1300中,示意性地示出了在将元素310-11摆放到排版区域120中之后的布局。电子设备320进而可以重新开始摆放之前被撤销摆放的元素310-9,本公开在此不再赘述。应当理解的是,还可以以其他任何合适的方式来将与限定区域相关联的元素310摆放到限定区域中,例如借助于已有的基于预设移动步长的方案。本公开的范围在此方面不受限制。
在一些实施例中,如果确定目标元素被包括在与限定区域相关联的一组元素中,则电子设备320可以推迟对目标元素的摆放,并且按照摆放顺序将多个元素310中的下一个元素作为目标元素,来通过排版操作摆放下一个元素。返回参考图10,假设根据排版顺序,在摆放完元素310-7之后,应当摆放元素310-11而非元素310-8,并且在摆放顺序中元素310-8紧随元素310-11。由于元素310-11被指定需要摆放到限定区域925中,因此电子设备320可以推迟对目标元素310-11的摆放,而是继续摆放元素310-8以及后续的其他元素,直至确定限定区域925所剩余的空间不再足以容纳与其相关联的元素310-11时,才根据以上参考图11至图13所描述的方式来摆放元素310-11。通过这种方式,可以防止与限定区域相关联的元素310在被摆放到限定区域中之后影响后续其他元素310的摆放而造成的晶圆面积的不必要的浪费,从而可以进一步提升晶圆的面积利用率,进而降低芯片的制造成本。
在一些实施例中,在将与一个限定区域相关联的所有元素310都摆放到该限定区域内之后,可以在后续的排版过程中不再考虑该限定区域。例如,电子设备320可以不再判断已摆放的元素是否与该限定区域至少部分的重叠。以此方式,可以进一步提升排版效率和芯片排版方案的时间性能。
通过以上描述可以看到,根据本公开的一些实施例,通过在排版过程中额外地考虑限定区域来进行排版,可以有效地确保与限定区域相关联的元素被摆放在相应的限定区域中,从而使得最终的排版结果满足预设要求。以此方式,可以有效地提升所制造芯片的合格率。应当理解的是,电子设备320还可以以其他任何合适的方式来将与限定区域相关联的元素摆放到限定区域中。例如,可以首先将与限定区域相关联的元素摆放到限定区域中,然后再开始摆放其余元素。
在一些实施例中,在根据上述方式获得针对多个元素310的布局之后,可以直接将该布局作为最终布局,并作为排版结果330输出。但是,发明人已经注意到,根据本公开的一些实施例的芯片排版过程所获得的芯片布局与多个元素的摆放顺序有较大的关联性。使用不同的摆放顺序可能会获得不同的芯片布局,并且这些不同的芯片布局的晶圆面积利用率(也可以简称为面积利用率)可能并不相同。因此,在另一些实施例中,在按照一个摆放顺序完成对多个元素310的摆放之后,电子设备320可以确定与该摆放顺序相对应的布局的面积利用率。
示例性地,电子设备320可以确定布局中多个元素310所占据区域的最小外接矩形的面积,并且基于多个元素310的总面积、以及该最小外接矩形的面积,来确定该布局的面积利用率。在图14所示的示意图1400中,示出了根据本公开的一些实施例的芯片排版过程所获得的布局。其中矩形1410示出了元素310-1至310-12所占据区域的最小外接矩形。电子设备320例如可以计算多个元素310的总面积占该最小外接矩形的面积的百分比来作为面积利用率。以此方式,可以比较准确且高效地衡量布局对晶圆的利用率。
应当理解的是,还可以以其他任何合适的方式来确定针对布局的面积利用率,例如通过考虑布局中多个元素310所占据区域的最小外接圆、布局中多个元素310所占据区域的包络线所围成区域的面积,等等。
在确定一个布局的面积利用率之后,电子设备320例如可以判断该面积利用率是否达到(例如,大于、或大于等于)针对晶圆预设的利用率阈值(例如,70%、85%,等等)。如果该布局的面积利用率达到利用率阈值,则可以将该布局作为最终布局,并作为排版结果330输出。如果该布局的面积利用率未达到利用率阈值,则可以按照不同的另一摆放顺序,通过排版操作来依次摆放多个元素310,以获得与另一摆放顺序相对应的另一布局。电子设备320可以进一步继续判断该另一布局的面积利用率是否达到利用率阈值,以此类推,本公开在此不再赘述。通过这种方式,可以生成符合预设的利用率阈值的布局作为排版结果,从而保证所生成布局的晶圆面积利用率满足预设要求。
在又一些实施例中,电子设备320还可以对其已经尝试过的摆放顺序进行计数。如果所尝试的摆放顺序的数目达到预设的次数阈值(例如,10次、500次、2000次,等等),电子设备320可以将分别与多个摆放顺序相对应的多个布局中面积利用率最大的布局确定为最终布局,并作为排版结果330输出。以此方式,可以实现排版效率与排版质量二者的平衡。
通过以上结合图3至图14的描述可以看到,在根据本公开的各实施例的芯片排版方案中,通过额外地考虑已经摆放在排版区域中的元素,来确定待摆放元素在第一方向上的多个候选移动距离,进而基于多个候选移动距离来摆放元素。一方面,可以以自动化的方式进行芯片排版,并且有效地减少待摆放元素在第一方向上所需要遍历的候选移动距离的数目。以此方式,可以缩短遍历过程所需时间,提升芯片排版方案的时间性能,从而提高排版效率。另一方面,由于芯片的摆放位置在第一方向上不再受到步长大小的影响,因此可以避免已摆放的多个元素之间的不必要的间隙。以此方式,可以提高晶圆的面积利用率,从而降低芯片的制造成本。
尽管在上文中以芯片排版的应用场景为例描述了根据本公开的各实施例的方案。应当理解的是,根据本公开的各实施例的方案同样可以适用于需要进行排版布局的其他应用场景。例如,在服装行业中,对用于制作衣服的布料上的衣服样板进行排版。又例如,在制造业中,对钢材上的待制造的部件进行排版。本公开的范围在此方面不受限制。
示例方法
图15示出了根据本公开的一些实施例的用于芯片排版的方法1500的流程图。在一些实施例中,方法1500可以在如图3所示的电子设备320处执行。应当理解的是,方法1500还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。
在框1502处,获取多个元素,多个元素中的每个元素表示待摆放在排版区域内的多个芯片中的一个芯片。在框1504处,按照多个元素的摆放顺序,依次从多个元素中选择目标元素。在框1506处,将排版区域作为目标区域来针对目标元素执行以下排版操作:基于目标区域的边界、以及目标区域中已摆放的至少一个参考元素,确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离;以及基于多个候选第一距离,将目标元素摆放在目标区域中。
在一些实施例中,基于多个候选第一距离将目标元素摆放在目标区域中包括:基于边界或至少一个参考元素中的至少一项,确定多个候选第二距离,多个候选第二距离中的每个候选第二距离对应于多个候选第一距离中的一个候选第一距离,并且指示从与该候选第一距离相对应的位置起在第二方向上移动目标元素的最大可允许距离,第二方向不同于第一方向;从多个候选第一距离和多个候选第二距离中选择目标第一距离和目标第二距离;以及从初始位置起按照目标第一距离和目标第二距离移动目标元素,以将目标元素摆放在目标区域中。
在一些实施例中,确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离包括:针对至少一个参考元素中的每个参考元素,确定该参考元素与初始位置处的目标元素在第一方向上的最小距离;以及将最小距离确定为多个候选第一距离之一。
在一些实施例中,多个候选第一距离还包括以下至少一项:距离零、或在初始位置处的目标元素在第一方向上距边界的距离。
在一些实施例中,至少一个参考元素的预设方位处不存在已摆放元素。
在一些实施例中,从多个候选第一距离和多个候选第二距离中选择目标第一距离和目标第二距离包括:将多个候选第二距离中最大的候选第二距离确定为目标第二距离;响应于确定与目标第二距离相对应的候选第一距离的数目等于一,将该候选第一距离确定为目标第一距离;以及响应于确定与目标第二距离相对应的候选第一距离的数目大于一,将与目标第二距离相对应的多个候选第一距离中最大的候选第一距离确定为目标第一距离。
在一些实施例中,排版操作还包括:确定已摆放的目标元素是否与目标区域中的限定区域至少部分重叠,多个元素中的一组元素被指定为摆放在限定区域内;以及响应于确定目标元素与限定区域完全没有重叠,按照摆放顺序将多个元素中的下一个元素作为目标元素,来通过排版操作摆放下一个元素。
在一些实施例中,排版操作还包括:响应于确定目标元素与限定区域至少部分重叠,基于目标区域的当前布局,确定一组元素是否能够被摆放到限定区域中;以及响应于确定一组元素能够被摆放到限定区域中,按照摆放顺序将多个元素中的下一个元素作为目标元素,来通过排版操作摆放下一个元素。
在一些实施例中,排版操作还包括:响应于确定一组元素无法被摆放到限定区域中,撤销对目标元素的摆放;将一组元素摆放到限定区域中;以及通过排版操作重新摆放目标元素。
在一些实施例中,将一组元素摆放到限定区域中包括:针对一组元素中的每个元素,将限定区域和该元素分别作为目标区域和目标元素,基于限定区域的当前布局通过排版操作来摆放该元素。
在一些实施例中,排版操作还包括:响应于确定目标元素被包括在多个元素中的一组元素中,推迟对目标元素的摆放,一组元素被指定为摆放在目标区域中的限定区域内;以及按照摆放顺序将多个元素中的下一个元素作为目标元素,来通过排版操作摆放下一个元素。
在一些实施例中,方法还包括:确定与摆放顺序相对应的第一布局的面积利用率,第一布局是按照摆放顺序摆放多个元素而获得的;响应于确定面积利用率达到利用率阈值,将第一布局确定为多个芯片的最终布局;以及响应于确定面积利用率未达到利用率阈值,按照不同于摆放顺序的另一摆放顺序,通过排版操作来依次摆放多个元素,以获得与另一摆放顺序相对应的第二布局。
在一些实施例中,确定与摆放顺序相对应的第一布局的面积利用率包括:确定第一布局中多个元素所占据区域的最小外接矩形的面积;以及基于多个元素的总面积、以及最小外接矩形的面积,确定第一布局的面积利用率。
在一些实施例中,摆放顺序和另一摆放顺序是多个元素的不同的多个摆放顺序中的至少一部分。方法1500还包括:响应于多个摆放顺序的数目达到次数阈值,将分别与多个摆放顺序相对应的多个布局中面积利用率最大的布局确定为最终布局。
在一些实施例中,获取多个元素包括:基于多个芯片的形状、尺寸、以及不同芯片之间的预设间距,确定多个元素的形状和尺寸。
在一些实施例中,初始位置是目标区域的右上角,第一方向和第二方向中的一个方向是水平方向,并且另一个方向是竖直方向。
示例设备
本公开的实施例还提供了用于实现上述方法或过程的相应设备。图16示出了其中可以实施本公开的一个或多个实施例的电子设备1600的框图。该电子设备1600例如可以用于实现如图3所示的电子设备320。应当理解,图16所示出的电子设备1600仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。
如图16所示,电子设备1600是通用电子设备的形式。电子设备1600的组件可以包括但不限于一个或多个处理器或处理单元1610、存储器1620、存储设备1630、一个或多个通信单元1640、一个或多个输入设备1650以及一个或多个输出设备1660。处理单元1610可以是实际或虚拟处理器并且能够根据存储器1620中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高电子设备1600的并行处理能力。
电子设备1600通常包括多个计算机存储介质。这样的介质可以是电子设备1600可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1620可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备1630可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在电子设备1600内被访问。
电子设备1600可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图16中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1620可以包括计算机程序产品1625,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
通信单元1640实现通过通信介质与其他电子设备进行通信。附加地,电子设备1600的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,电子设备1600可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
输入设备1650可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1660可以是一个或多个输出设备,例如显示器、扬声器、打印机等。电子设备1600还可以根据需要通过通信单元1640与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与电子设备1600交互的设备进行通信,或者与使得电子设备1600与一个或多个其他电子设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (18)
1.一种用于芯片排版的方法,其特征在于,所述方法包括:
获取多个元素,所述多个元素中的每个元素表示待摆放在排版区域内的多个芯片中的一个芯片;
按照所述多个元素的摆放顺序,依次从所述多个元素中选择目标元素;以及
将所述排版区域作为目标区域来针对所述目标元素执行以下排版操作:
基于所述目标区域的边界、以及所述目标区域中已摆放的至少一个参考元素,确定用于从所述目标元素的初始位置起在第一方向上移动所述目标元素的多个候选第一距离;以及
基于所述多个候选第一距离,将所述目标元素摆放在所述目标区域中。
2.根据权利要求1所述的用于芯片排版的方法,其特征在于,基于所述多个候选第一距离将所述目标元素摆放在所述目标区域中包括:
基于所述边界或所述至少一个参考元素中的至少一项,确定多个候选第二距离,所述多个候选第二距离中的每个候选第二距离对应于所述多个候选第一距离中的一个候选第一距离,并且指示从与该候选第一距离相对应的位置起在第二方向上移动所述目标元素的最大可允许距离,所述第二方向不同于所述第一方向;
从所述多个候选第一距离和所述多个候选第二距离中选择目标第一距离和目标第二距离;以及
从所述初始位置起按照所述目标第一距离和所述目标第二距离移动所述目标元素,以将所述目标元素摆放在所述目标区域中。
3.根据权利要求1或2所述的用于芯片排版的方法,其特征在于,确定用于从所述目标元素的初始位置起在第一方向上移动所述目标元素的多个候选第一距离包括:
针对所述至少一个参考元素中的每个参考元素,
确定该参考元素与所述初始位置处的所述目标元素在所述第一方向上的最小距离;以及
将所述最小距离确定为所述多个候选第一距离之一。
4.根据权利要求3所述的用于芯片排版的方法,其特征在于,所述多个候选第一距离还包括以下至少一项:距离零、或在所述初始位置处的所述目标元素在所述第一方向上距所述边界的距离。
5.根据权利要求1所述的用于芯片排版的方法,其特征在于,所述至少一个参考元素的预设方位处不存在已摆放元素。
6.根据权利要求2所述的用于芯片排版的方法,其特征在于,从所述多个候选第一距离和所述多个候选第二距离中选择目标第一距离和目标第二距离包括:
将所述多个候选第二距离中最大的候选第二距离确定为所述目标第二距离;
响应于确定与所述目标第二距离相对应的候选第一距离的数目等于一,将该候选第一距离确定为所述目标第一距离;以及
响应于确定与所述目标第二距离相对应的候选第一距离的数目大于一,将与所述目标第二距离相对应的多个候选第一距离中最大的候选第一距离确定为所述目标第一距离。
7. 根据权利要求1所述的用于芯片排版的方法,其特征在于,所述排版操作还包括:
确定已摆放的所述目标元素是否与所述目标区域中的限定区域至少部分重叠,所述多个元素中的一组元素被指定为摆放在所述限定区域内;以及
响应于确定所述目标元素与所述限定区域完全没有重叠,按照所述摆放顺序将所述多个元素中的下一个元素作为所述目标元素,来通过所述排版操作摆放所述下一个元素。
8. 根据权利要求7所述的用于芯片排版的方法,其特征在于,所述排版操作还包括:
响应于确定所述目标元素与所述限定区域至少部分重叠,基于所述目标区域的当前布局,确定所述一组元素是否能够被摆放到所述限定区域中;以及
响应于确定所述一组元素能够被摆放到所述限定区域中,按照所述摆放顺序将所述多个元素中的下一个元素作为所述目标元素,来通过所述排版操作摆放所述下一个元素。
9.根据权利要求8所述的用于芯片排版的方法,其特征在于,所述排版操作还包括:
响应于确定所述一组元素无法被摆放到所述限定区域中,撤销对所述目标元素的所述摆放;
将所述一组元素摆放到所述限定区域中;以及
通过所述排版操作重新摆放所述目标元素。
10.根据权利要求9所述的用于芯片排版的方法,其特征在于,将所述一组元素摆放到所述限定区域中包括:
针对所述一组元素中的每个元素,将所述限定区域和该元素分别作为所述目标区域和所述目标元素,基于所述限定区域的当前布局通过所述排版操作来摆放该元素。
11. 根据权利要求1所述的用于芯片排版的方法,其特征在于,所述排版操作还包括:
响应于确定所述目标元素被包括在所述多个元素中的一组元素中,推迟对所述目标元素的摆放,所述一组元素被指定为摆放在所述目标区域中的限定区域内;以及
按照所述摆放顺序将所述多个元素中的下一个元素作为所述目标元素,来通过所述排版操作摆放所述下一个元素。
12.根据权利要求1所述的用于芯片排版的方法,其特征在于,所述方法还包括:
确定与所述摆放顺序相对应的第一布局的面积利用率,所述第一布局是按照所述摆放顺序摆放所述多个元素而获得的;
响应于确定所述面积利用率达到利用率阈值,将所述第一布局确定为所述多个芯片的最终布局;以及
响应于确定所述面积利用率未达到所述利用率阈值,按照不同于所述摆放顺序的另一摆放顺序,通过所述排版操作来依次摆放所述多个元素,以获得与所述另一摆放顺序相对应的第二布局。
13. 根据权利要求12所述的用于芯片排版的方法,其特征在于,确定与所述摆放顺序相对应的第一布局的面积利用率包括:
确定所述第一布局中所述多个元素所占据区域的最小外接矩形的面积;以及
基于所述多个元素的总面积、以及所述最小外接矩形的面积,确定所述第一布局的所述面积利用率。
14.根据权利要求12所述的用于芯片排版的方法,其特征在于,所述摆放顺序和所述另一摆放顺序是所述多个元素的不同的多个摆放顺序中的至少一部分,并且所述方法还包括:
响应于所述多个摆放顺序的数目达到次数阈值,将分别与所述多个摆放顺序相对应的多个布局中面积利用率最大的布局确定为所述最终布局。
15.根据权利要求1所述的用于芯片排版的方法,其特征在于,获取所述多个元素包括:
基于所述多个芯片的形状、尺寸、以及不同芯片之间的预设间距,确定所述多个元素的形状和尺寸。
16.根据权利要求2所述的用于芯片排版的方法,其特征在于,所述初始位置是所述目标区域的右上角,所述第一方向和所述第二方向中的一个方向是水平方向,并且另一个方向是竖直方向。
17. 一种电子设备,其特征在于,包括:
处理器;以及
存储器,与所述处理器耦合,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述电子设备执行根据权利要求1至16中任一项所述的用于芯片排版的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据权利要求1至16中任一项所述的用于芯片排版的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310948083.6A CN116663483B (zh) | 2023-07-31 | 2023-07-31 | 用于芯片排版的方法、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310948083.6A CN116663483B (zh) | 2023-07-31 | 2023-07-31 | 用于芯片排版的方法、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116663483A true CN116663483A (zh) | 2023-08-29 |
CN116663483B CN116663483B (zh) | 2023-10-20 |
Family
ID=87715732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310948083.6A Active CN116663483B (zh) | 2023-07-31 | 2023-07-31 | 用于芯片排版的方法、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116663483B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117291137A (zh) * | 2023-11-22 | 2023-12-26 | 全芯智造技术有限公司 | 用于生成版图元素的方法、设备和介质 |
CN117332745A (zh) * | 2023-11-22 | 2024-01-02 | 全芯智造技术有限公司 | 用于生成版图的方法、设备和介质 |
CN117952065A (zh) * | 2024-03-27 | 2024-04-30 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4630219A (en) * | 1983-11-23 | 1986-12-16 | International Business Machines Corporation | Element placement method |
US20020032554A1 (en) * | 1997-02-03 | 2002-03-14 | Fujitsu Limited | Layout apparatus for laying out objects in space and method thereof |
US20140289615A1 (en) * | 2013-03-19 | 2014-09-25 | Xiaomi Inc. | Method and device for typesetting |
US20150118793A1 (en) * | 2013-10-25 | 2015-04-30 | Industry-University Cooperation Foundation Hanyang University (IUCF-HYU) | Method of manufacturing semiconductor device |
US20150227670A1 (en) * | 2014-02-12 | 2015-08-13 | Synopsys Inc. | Identifying layout pattern candidates |
US20170169155A1 (en) * | 2015-12-10 | 2017-06-15 | GlobalFoundries, Inc. | Method to adjust alley gap between large blocks for floorplan optimization |
US10769348B1 (en) * | 2019-09-23 | 2020-09-08 | Typetura Llc | Dynamic typesetting |
CN112488429A (zh) * | 2020-12-21 | 2021-03-12 | 广东工业大学 | 一种基于扫描线法的二维不规则排样下料方法 |
WO2022052565A1 (zh) * | 2020-09-09 | 2022-03-17 | 长鑫存储技术有限公司 | 晶圆的晶片布局计算方法、装置、介质与设备 |
CN115510798A (zh) * | 2022-11-18 | 2022-12-23 | 全芯智造技术有限公司 | 芯片排版方法及装置、计算机可读存储介质、终端设备 |
WO2023015536A1 (zh) * | 2021-08-12 | 2023-02-16 | 华为技术有限公司 | 用于对集成电路的宏单元进行布局的方法 |
CN115763342A (zh) * | 2022-11-09 | 2023-03-07 | 深圳市奇普乐芯片技术有限公司 | 芯片位置的调整方法、装置、终端及存储介质 |
WO2023035250A1 (zh) * | 2021-09-10 | 2023-03-16 | 华为技术有限公司 | 用于对芯片进行布局的方法、设备、介质以及程序产品 |
WO2023097990A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为云计算技术有限公司 | 元素布局方法以及相关设备 |
WO2023123068A1 (zh) * | 2021-12-29 | 2023-07-06 | 华为技术有限公司 | 用于设计布局的方法、装置、设备、介质以及程序产品 |
-
2023
- 2023-07-31 CN CN202310948083.6A patent/CN116663483B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4630219A (en) * | 1983-11-23 | 1986-12-16 | International Business Machines Corporation | Element placement method |
US20020032554A1 (en) * | 1997-02-03 | 2002-03-14 | Fujitsu Limited | Layout apparatus for laying out objects in space and method thereof |
US20140289615A1 (en) * | 2013-03-19 | 2014-09-25 | Xiaomi Inc. | Method and device for typesetting |
US20150118793A1 (en) * | 2013-10-25 | 2015-04-30 | Industry-University Cooperation Foundation Hanyang University (IUCF-HYU) | Method of manufacturing semiconductor device |
US20150227670A1 (en) * | 2014-02-12 | 2015-08-13 | Synopsys Inc. | Identifying layout pattern candidates |
US20170169155A1 (en) * | 2015-12-10 | 2017-06-15 | GlobalFoundries, Inc. | Method to adjust alley gap between large blocks for floorplan optimization |
US10769348B1 (en) * | 2019-09-23 | 2020-09-08 | Typetura Llc | Dynamic typesetting |
WO2022052565A1 (zh) * | 2020-09-09 | 2022-03-17 | 长鑫存储技术有限公司 | 晶圆的晶片布局计算方法、装置、介质与设备 |
CN112488429A (zh) * | 2020-12-21 | 2021-03-12 | 广东工业大学 | 一种基于扫描线法的二维不规则排样下料方法 |
WO2023015536A1 (zh) * | 2021-08-12 | 2023-02-16 | 华为技术有限公司 | 用于对集成电路的宏单元进行布局的方法 |
WO2023035250A1 (zh) * | 2021-09-10 | 2023-03-16 | 华为技术有限公司 | 用于对芯片进行布局的方法、设备、介质以及程序产品 |
WO2023097990A1 (zh) * | 2021-11-30 | 2023-06-08 | 华为云计算技术有限公司 | 元素布局方法以及相关设备 |
WO2023123068A1 (zh) * | 2021-12-29 | 2023-07-06 | 华为技术有限公司 | 用于设计布局的方法、装置、设备、介质以及程序产品 |
CN115763342A (zh) * | 2022-11-09 | 2023-03-07 | 深圳市奇普乐芯片技术有限公司 | 芯片位置的调整方法、装置、终端及存储介质 |
CN115510798A (zh) * | 2022-11-18 | 2022-12-23 | 全芯智造技术有限公司 | 芯片排版方法及装置、计算机可读存储介质、终端设备 |
Non-Patent Citations (8)
Title |
---|
.SHARAT ISRANI .JERRY SANDERS: "Two-dimensional cutting stock problem research: A review and a new rectangular layout algorithm", 《JOURNAL OF MANUFACTURING SYSTEMS》, pages 169 - 182 * |
凌玲;卢文;胡于进;: "不规则区域矩形件排样的一种改进算法", 微型机与应用, no. 09, pages 112 - 115 * |
张杰;: "基于混合摆放技术的布局规划", 中国集成电路, no. 3, pages 63 - 66 * |
张雪芬, 王栋, 罗笑南: "一种改进的启发式自动排版算法及其应用", 中山大学学报(自然科学版), no. 1, pages 256 - 258 * |
杨跃胜;: "多项目晶圆概念及其版图排版规则分析", 集成电路应用, no. 02, pages 44 - 46 * |
蒋兴波;吕肖庆;刘成城;: "二维矩形条带装箱问题的底部左齐择优匹配算法", 软件学报, no. 06, pages 1528 - 1538 * |
饶昊;: "基于集束搜索的二维矩形排样问题求解算法", 软件导刊, no. 05, pages 84 - 88 * |
黄文奇;刘景发;: "基于欧氏距离的矩形Packing问题的确定性启发式求解算法", 计算机学报, no. 05, pages 734 - 739 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117291137A (zh) * | 2023-11-22 | 2023-12-26 | 全芯智造技术有限公司 | 用于生成版图元素的方法、设备和介质 |
CN117332745A (zh) * | 2023-11-22 | 2024-01-02 | 全芯智造技术有限公司 | 用于生成版图的方法、设备和介质 |
CN117332745B (zh) * | 2023-11-22 | 2024-02-13 | 全芯智造技术有限公司 | 用于生成版图的方法、设备和介质 |
CN117291137B (zh) * | 2023-11-22 | 2024-02-13 | 全芯智造技术有限公司 | 用于生成版图元素的方法、设备和介质 |
CN117952065A (zh) * | 2024-03-27 | 2024-04-30 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
CN117952065B (zh) * | 2024-03-27 | 2024-06-11 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116663483B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116663483B (zh) | 用于芯片排版的方法、设备和介质 | |
US10303837B2 (en) | Virtual cell model geometry compression | |
US9009632B2 (en) | High performance design rule checking technique | |
US7966595B1 (en) | Method and system for approximate placement in electronic designs | |
US7971174B1 (en) | Congestion aware pin optimizer | |
US20100229140A1 (en) | Method and system for adapting a circuit layout to a predefined grid | |
US20050166169A1 (en) | Method for legalizing the placement of cells in an integrated circuit layout | |
US20130326451A1 (en) | Structured Latch and Local-Clock-Buffer Planning | |
US8448097B2 (en) | High performance DRC checking algorithm for derived layer based rules | |
Rabozzi et al. | Floorplanning for partially-reconfigurable FPGA systems via mixed-integer linear programming | |
Hsu et al. | Routability-driven placement for hierarchical mixed-size circuit designs | |
WO2014105802A1 (en) | Graphical user interface for a floorplanning tool for electronic design automation | |
US10229239B2 (en) | Capacity model for global routing | |
US9454634B1 (en) | Methods, systems, and computer program product for an integrated circuit package design estimator | |
US8539416B1 (en) | Methods, systems, and articles of manufacture for creating a hierarchical output for an operation in an electronic design | |
CN114880985A (zh) | 基于高斯面均匀采样的寄生电容提取方法及装置 | |
US8510685B1 (en) | Methods, systems, and articles of manufacture for creating a hierarchical output for an operation in an electronic design | |
US7266799B2 (en) | Steiner tree handling device, Steiner tree handling method, and Steiner tree handling program | |
US10643020B1 (en) | System and method to estimate a number of layers needed for routing a multi-die package | |
US8132141B2 (en) | Method and apparatus for generating a centerline connectivity representation | |
JP2009059028A (ja) | 接触解析装置、接触解析プログラム及び接触解析プログラムを記録した記録媒体 | |
US8181143B2 (en) | Method and apparatus for generating a memory-efficient representation of routing data | |
CN116484791A (zh) | 用于图形生成的方法、设备和介质 | |
US20020174410A1 (en) | Method of configuring integrated circuits using greedy algorithm for partitioning of n points in p isothetic rectangles | |
CN117952065B (zh) | 用于芯片排版的方法、设备和介质 |
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 |