CN117952065A - 用于芯片排版的方法、设备和介质 - Google Patents
用于芯片排版的方法、设备和介质 Download PDFInfo
- Publication number
- CN117952065A CN117952065A CN202410360392.6A CN202410360392A CN117952065A CN 117952065 A CN117952065 A CN 117952065A CN 202410360392 A CN202410360392 A CN 202410360392A CN 117952065 A CN117952065 A CN 117952065A
- Authority
- CN
- China
- Prior art keywords
- candidate
- distance
- elements
- layout
- distances
- 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 67
- 238000012360 testing method Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 abstract description 15
- 230000007704 transition Effects 0.000 description 50
- 235000012431 wafers Nutrition 0.000 description 32
- 238000010586 diagram Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 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
- 238000005457 optimization Methods 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 239000010959 steel 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
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示出了根据本公开的一些实施例的基于芯片来生成对应的元素的示意图;
图6A示出了根据本公开一些实施例中根据预定步长确定候选第一距离的示意图;
图6B示出了根据本公开一些实施例中根据排版区域边界确定候选第一距离的示意图;
图7示出了根据本公开一些实施例中根据已摆放元素确定候选第一距离的示意图;
图8示出了根据本公开一些实施例中以“塞入”的方式摆放元素的示意图;
图9示出了根据本公开一些实施例中以“塞入”的方式摆放元素的结果图;
图10示出了根据本公开的一些实施例的芯片排版过程所获得的布局示意图;
图11示出了根据本公开的一些实施例的用于芯片排版的方法的流程图;以及
图12示出了可以实施本公开的一个或多个实施例的电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至 少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所简要提及的,为了降低芯片的制造成本并提高晶圆的利用率,在芯片排版过程中期望在一个晶圆内布置尽可能多的芯片。除了常规的芯片排版布局,还存在一种特殊的排版场景,即所谓的光罩框架布局(Reticle Frame Layout)。图1示出了光罩框架布局的示例性场景。如图1所示,在光罩框架布局的场景中,需要将诸如芯片(Chip)110、测试结构(Test key)130、版图单元(Frame cell)140等多种规格的芯片和/或元件布置在与晶圆相对应的排版区域120中。元件例如可以包括用于构造芯片的元件、用于测试芯片的元件、等等。元件一个示例是版图单元,其例如可以由多个晶体管和其他部件组成。元件的另一个示例是测试结构。在排布时,一般优先排布芯片,例如可以采用最优排版的方式将芯片布置在排版区域120内。当芯片排布完成后,将测试结构排布在芯片之间的空隙或间距中。最后将版图单元插入多个芯片和多个测试结构间的空隙中。
目前的一些排版方案是借助于人工进行排版。这种方案在很大程度上依赖人工经验,排版效率较低,并且由于受到人工所能执行的排版次数和排版方式的限制而难以获得较好的排版结果。因此,通常最终所生成的排版结果的晶圆利用率也较低。在一些其他的现有方案中,也可以基于元素在一定方向上移动的最大可允许距离来对元素进行摆放。现在结合图2和图3来描述这种方案。
图2示出了现有方案在晶圆的排版区域内排布元素的示意图,图3示出了现有方案在晶圆的排版区域内排布元素后的结果图。在图2中,需要将多个元素210-1至210-6摆放到排版区域120中的特定位置上。
具体来说,图2中元素210-1至元素210-5为在排版区域120内已经完成摆放的元素。元素210-6为当前准备向排版区域120内摆放的元素。元素210-6的初始位置可以位于排版区域120的右上角,可以根据排版区域120的边界(例如左边界和/或右边界)以及排版区域120内已经完成摆放的多个元素210-1至210-5的位置来确定用于元素210-6的多个候选左移距离X-21至X-24,并根据多个候选左移距离确定与多个候选左移距离对应的多个候选过渡位置216-0至216-4。其中,元素210-6的候选过渡位置216-0为与排版区域120的右边界紧贴的位置,并且对应于等于零的候选左移距离。由于元素210-6的初始位置为排版区域120的右上角,因此候选过渡位置216-0与初始位置重合。
在确定元素210-6的多个候选过渡位置216-0至216-4后,确定与候选过渡位置216-0至216-4对应的候选下降距离Y-20至Y-24。候选下降距离指的是元素210-6在下降方向上移动的最大可允许距离。以候选过渡位置216-2为例,当元素210-6在候选位置216-2处下降的距离大于候选下降距离Y-22时,元素210-6与元素210-5发生重叠,因此针对候选过渡位置216-2的最大可允许下降距离即为距离Y-22。
进一步地,从多个候选下降距离中确定最大候选下降距离作为目标下降距离,并且从与目标下降距离所对应的多个候选左移距离中确定出最大候选左移距离作为目标左移距离,从而根据目标下降距离与目标左移距离并结合元素210-6的初始位置,可以确定元素210-6的摆放位置。结合图2,图2中最大候选下降距离为Y-20和Y-21,其各自所对应的候选过渡位置为216-0和216-1。候选过渡位置为216-1所以对应的候选左移距离X-21大于候选过渡位置为216-0所以对应的候选左移距离(即,距离为零)。因此将元素210-6左移距离X-21并下降距离Y-21所到达的位置即为元素210-6的摆放位置,如图3中所示。
可以看到,在图2和图3所对应的已有方案中,虽然可以实现将元素摆放至排版区域120内,但是以上方案仍然存在着一定的缺陷。例如,如图3所示,图3中元素210-3和元素210-5之间存在着未占用区域,但是根据以上方案无法将元素210-6“塞入式”地摆放在元素210-3和元素210-5之间的未占用区域中,这在一定程度上影响了晶圆的面积利用率,导致芯片的制造成本升高。此外,已有方案对于面积利用率的优化严重依赖于多个芯片的摆放顺序,为了得到预期的面积利用率,需要对多个芯片的摆放顺序进行大量的循环运算,这不仅影响了运算效率,同时也浪费了大量的算力。最后,在芯片摆放完成之后,基于该已有方案无法将测试结构、版图单元等元件“塞入式”地摆放在多个芯片之间,因此也无法应用在上文提到的光罩框架布局的场景中。
为此,本公开的实施例提出了一种用于芯片排版的方案。根据本公开的各种实施例,在排版区域中摆放元素时会额外地考虑该元素的形状和尺寸。具体而言,根据本公开的用于芯片排版的方案,包括:获取多个元素,多个元素中的每个元素表示待摆放在排版区域内的一个芯片或用于芯片的元件。进一步地,按照多个元素的摆放顺序,依次从多个元素中选择目标元素,并针对目标元素执行以下排版操作:确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离;基于多个候选第一距离、目标元素的形状和尺寸以及排版区域中所有的已摆放元素,将目标元素摆放在排版区域中。
通过下文描述将会更清楚地理解,根据本公开的各实施例,通过额外地考虑元素的形状和尺寸来在排版区域中摆放元素。以此方式,一方面,可以基于元素的形状和尺寸来判断将元素“塞入式”地摆放至已摆放元素之间是否会与已摆放元素重叠,从而使得能够在将元素“塞入式”地摆放至已摆放元素之间不会与已摆放元素重叠的情况下,执行该“塞入式”摆放。通过这种方式,与已有方案相比,可以更加充分地利用已摆放元素之间的未占用区域,从而有效地提升晶圆的面积利用率,进而降低芯片的制造成本。另一方面,借助于“塞入式”摆放,根据本公开的各实施例的用于芯片排版的方案可以应用于光罩框架布局的场景,并且可以在多个芯片之间的空隙中插入诸如芯片、测试结构、版图单元等多种形状和大小的元件,由此可以提高晶圆的面积利用率,并且扩展应用场景。此外,根据本公开的各实施例的用于芯片排版的方案相比于现有技术中对于芯片的摆放方案大大的降低了对于元素摆放顺序的依赖性,从而可以用更少的循环次数到达符合预定面积利用率的摆放方案,或者在执行同样次数的循环运算下得到面积利用率更高的摆放方案。
示例环境
以下将参考附图来详细描述该方案的各种示例实现方式。首先参见图4,其示出了本公开的各实施例能够在其中实现的示例环境400的示意图。示例环境400总体上可以包括电子设备420。在一些实施例中,电子设备420可以是诸如个人计算机、工作站、服务器等具有计算功能的设备。本公开的范围在此方面不受限制。
电子设备420可以获取多个元素410-1、410-2、……、410-N(在下文中单独或统一地被称为元素410),其中N是正整数,并且表示需要排版在晶圆中的芯片数目。在一些实施例中,元素410可以表示待摆放在排版区域120内的多个芯片110中的一个芯片110。附加地或备选地,元素410可以表示待摆放在排版区域120内的多个测试结构130中的一个测试结构130和/或多个版图单元140中的一个版图单元140。在图4中,元素410被示出为矩形的。在一些其他的实施例中,元素410还可以具有其他任何合适的形状,例如圆形、三角形、平行四边形、梯形、五边形,等等。在一些实施例中,多个元素与芯片或元件相对应的元素的形状和尺寸可以基于芯片或元件的形状、尺寸、以及预设间距来确定。
在一些实施例中,元素410可以由用户输入电子设备420。在另一些实施例中,元素410可以已经预先被存储在电子设备420中。在又一些实施例中,元素410可以由电子设备420生成。在再一些实施例中,电子设备420还可以通信地耦连到其他设备,以从其他设备获取元素410。本公开的范围在此方面不受限制。
电子设备420可以按照多个元素410的摆放顺序来依次从这些元素410中选择一个待摆放的元素,并且通过额外地考虑该元素的形状和尺寸,来确定该元素410的摆放位置。这将在下文中结合图5至图10进一步详细描述。应当理解的是,仅出于示例性的目的描述环境400的结构和功能,而不暗示对于本公开的范围的任何限制。
示例芯片排版过程
在下文中参考图5至图10来描述根据本公开的示例性实施例的芯片排版过程的概要。如上文中简要提及的,电子设备420可以获取多个元素410。这些元素410中的每个元素410可以表示待摆放在排版区域120内的芯片110或用于芯片110的元件。这种元件的示例包括但不限于测试结构130、或版图单元140,等等。在一些实施例中,元素410的形状和尺寸可以取决于其所表示的芯片110或元件的形状和尺寸。电子设备420可以通过任何合适的方式来获取芯片110或元件的形状和/或尺寸,例如,通过解析描述芯片信息和/或元件信息的文件,或者通过接收由用户输入的形状信息和/或尺寸信息。
在一些实施例中,元素410的形状与相应的芯片110或元件的形状相同,并且元素410的尺寸与相应的芯片110或元件的尺寸相同。在另一些实施例中,元素410的形状与相应的芯片110或元件的形状相同,而元素410的尺寸则取决于芯片110或元件的尺寸与不同芯片110和/或元件之间的预设间距。示例性地,可以基于芯片110的形状与尺寸向外扩张该预设间距的一半来获取与该芯片110相对应的元素410。
参考图5,其示出了根据本公开的一些实施例的基于芯片110-K来生成对应的元素410-K的示意图500,其中K可以是小于等于N的任意正整数。如图5中所示,芯片110-K具有矩形形状,并且长为L1,宽为W1。需要指出的是,图5中所示出的芯片110-K的形状和尺寸仅是示意性的而非限制性的。与芯片110-K相对应的元素410-K可以同样具有矩形形状,并且长为L2,宽为W2。芯片110-K的长L1、宽W1与元素410-K的长L2、宽W2例如可以满足如下的关系:L2 = L1 + 2×LD,并且W2 = W1 + 2×WD。LD是长度方向上的扩张距离,例如等于预设间距的一半,并且WD是宽度方向上的扩张距离,例如等于预设间距的一半。应当理解的是,芯片110-K与元素410-K之间的尺寸关系仅是示例性的而非限制性,并且扩张距离还可以是其他任何合适的数值,例如等于预设间距。还应当理解的是,还可以类似的方式来生成与元件相对应的元素,本公开在此不再赘述。
可以理解的是,在将按照上述方式生成的两个元素410紧贴在一起时,可以保证相对应的两个芯片110和/或元件之间的距离满足预设间距的要求。因此,可以确保排版结果430中各个芯片110和/或元件之间的距离满足预设间距的要求,从而可以便于后续的切割操作,尽可能避免切割坏芯片110。以此方式,可以有效地提高芯片的成品率。应当理解的是,还可以以其他任何合适的方式来基于芯片110和/或元件生成对应的元素410,本公开的范围在此方面不受限制。
进一步地,电子设备420可以按照多个元素410的摆放顺序,依次从多个元素410中选择目标元素。多个元素410的摆放顺序指示这些元素410中的每个元素410摆放的先后顺序。在一些实施例中,该摆放顺序可以随机地生成,例如借助于随机生成函数。在另一些实施例中,该摆放顺序可以预先确定。在又一些实施例中,该摆放顺序可以取决于与元素410对应的芯片110的特性,例如,面积、长度、宽度、重要性,等等。为了便于说明的目的,在下文中将以一个示例性的摆放顺序进行描述。
电子设备420将元素410-1作为目标元素。确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离。应当理解的是,目标元素的初始位置可以是排版区域120中的任何合适的位置,例如左上角、左下角、右上角、右下角,等等。第一方向可以是任何合适的方向,例如水平方向或者竖直方向。示例性地,第一方向可以是沿水平方向向左、沿水平方向向右、沿竖直方向向下、或者沿竖直方向向上,等等。为了便于说明的目的,在下文中以目标元素的初始位置是排版区域120中的右上角,并且第一方向是沿水平方向向左为例进行描述。
在一些实施例中,电子设备420可以基于目标元素的预定移动步长,确定多个候选第一距离。图6A示出了根据本公开一些实施例的根据预定步长确定候选第一距离的示意图600-A。如图6A所示,电子设备420可以控制元素410-1沿第一方向从初始位置位移若干个预定步长S,并到达相应的过渡位置。例如,电子设备控制元素410-1沿第一方向从初始位置位移一个预定步长S,元素410-1从初始位置移动至过渡位置610-1,此时过渡位置610-1所对应的候选第一距离为一个预定步长S。电子设备控制元素410-1沿第一方向从初始位置位移两个预定步长S,元素410-1从初始位置移动至过渡位置610-2,此时过渡位置610-2所对应的候选第一距离为两个预定步长S。电子设备控制元素410-1沿第一方向从初始位置位移三个预定步长S,元素410-1从初始位置移动至过渡位置610-3,此时过渡位置610-3所对应的候选第一距离为三个预定步长S。以此方式,电子设备420控制元素410-1以预定步长S不断地在第一方向上移动并生成对应的过渡位置。
通过这种方式,可以有规律地生成候选第一距离,从而提高排版效率。应当理解的是,预定步长S的长度可以基于排版区域120的形状和大小和/或元素410-1的形状和大小进行调整。
在另一些实施例中,电子设备420还可以基于排版区域的边界和排版区域中所有的已摆放元素来确定多个候选第一距离。图6B示出了根据本公开一些实施例中基于排版区域边界确定候选第一距离的示意图600-B。如图6B所示,在一些实施例中,电子设备420可以基于排版区域120的边界(例如排版区域的左边界和/或右边界)来确定一个或多个候选第一距离。电子设备420通过移动元素410-1,使元素410-1的右边界与排版区域120的右边界重合或使元素410-1的左边界与排版区域120的左边界重合。
在一些实施例中,由于元素410-1的初始位置位于排版区域120的右上角,当电子设备420基于排版区域120的右边界来确定过渡位置时,元素410-1的过渡位置610-0与元素410-1的初始位置重合,从而元素410-1对应于过渡位置610-0的候选第一距离为零。当电子设备420基于排版区域120的左边界来确定过渡位置时,电子设备420沿第一方向移动元素410-1至过渡位置610-4的候选第一距离为A-14。
图7示出了根据本公开一些实施例中根据已摆放元素确定候选第一距离的示意图700。如图7所示,在一些实施例中,电子设备420还可以基于排版区域120内已摆放元素来确定候选第一距离。图7中元素410-1为已摆放元素。元素410-2为电子设备420准备摆放的目标元素。电子设备420可以将元素410-1与元素410-2在第一方向上的最小距离(即距离A-21)确定为多个候选第一距离之一。附加地,与图6描述类似的,电子设备还可以将距离零(对应于候选过渡位置710-0)和距离710-2(对应于候选过渡位置710-2)作为另外两个候选第一距离。通过这种方式,可以额外地考虑已经摆放在排版区域中的元素,来确定待摆放元素在第一方向上的多个候选移动距离,进而基于多个候选移动距离来摆放元素。一方面,可以以自动化的方式进行芯片排版,并且有效地减少待摆放元素在第一方向上所需要遍历的候选移动距离的数目。以此方式,可以缩短遍历过程所需时间,提升芯片排版方案的时间性能,从而提高排版效率。另一方面,由于芯片的摆放位置在第一方向上不再受到步长大小的影响,因此可以避免已摆放的多个元素之间的不必要的间隙。以此方式,可以提高晶圆的面积利用率,从而降低芯片的制造成本。
应当理解的是,还可以以其他任何合适的方式来确定多个候选第一距离,例如电子设备420可以基于不同的元素动态地调整步长S,等等。本公开的范围在此方面不受限制。
在确定至少一个候选第一距离后,电子设备420可以基于排版区域120的边界、所有的已摆放元素以及目标元素的形状和尺寸将目标元素摆放到排版区域120中。
具体来说,在一些实施例中,电子设备420可以基于排版区域的边界、所有的已摆放元素、以及目标元素的形状和尺寸,确定多个候选第二距离。多个候选第二距离中的每个候选第二距离对应于多个候选第一距离中的一个候选第一距离,并且指示从与该候选第一距离相对应的位置起在第二方向上移动目标元素的至少一个可行距离中的最大可行距离。至少一个可行距离中的每个可行距离所对应的、目标元素在第二方向上的移动路径被允许穿越一个或多个已摆放元素。第二方向不同于第一方向。进一步地,电子设备410可以从多个候选第一距离和多个候选第二距离中选择目标第一距离和目标第二距离,并且从初始位置起按照目标第一距离和目标第二距离移动目标元素,以将目标元素摆放在排版区域中。
以此方式,将目标元素以“塞入”的方式布置在已摆放的元素之间或布置在已摆放的元素沿第二方向的下游(例如垂直于水平方向的竖直方向的下方)。示例性地,第二方向被配置为与第一方向存在预定的夹角,例如第一方向与第二方向相互垂直。在一些实施例中,第一方向可以是水平向左设置的,相应的,第二方向可以是竖直向下的。为了便于说明的目的,在下文中以第二方向为竖直向下为例进行说明。
在一些实施例中,电子设备420可以从多个候选第一距离和多个候选第二距离中选择目标第一距离和目标第二距离。在一些实施例中,电子设备420可以将多个候选第二距离中最大的候选第二距离确定为目标第二距离。如果确定与目标第二距离相对应的候选第一距离的数目等于一,则电子设备420可以将该候选第一距离确定为目标第一距离。如果确定与目标第二距离相对应的候选第一距离的数目大于一,则电子设备420可以将与目标第二距离相对应的多个候选第一距离中最大的候选第一距离确定为目标第一距离。
为了便于描述的目的,在下文将基于根据排版区域的边界和排版区域中所有的已摆放元素来确定多个候选第一距离的方案来描述对于电子设备420向排版区域120内摆放第一个元素(例如元素410-1)的具体实现过程以及电子设备420向排版区域120内摆放第二个元素(例如元素410-2)及之后的元素的具体实现过程。应当理解的是,在此描述的过程仅是示例性的而非限制性的。
首先描述电子设备420向排版区域120内摆放第一个元素(例如元素410-1)的具体实现过程。返回图6B,当电子设备420将第一个元素410-1作为目标元素摆放在排版区域内部(也即,此时排版区域120内没有已摆放的元素)时。首先,电子设备420将元素410-1作为目标元素。确定用于从目标元素的初始位置(即,排版区域120的右上角)起在第一方向上移动目标元素的至少一个候选第一距离。例如电子设备420可以基于排版区域120的右边界和左边界分别确定出目标元素的过渡位置610-0、过渡位置610-4。其中与过渡位置610-0对应的候选第一距离为零,与过渡位置610-4对应候选第一距离为A-14。
过渡位置610-0的在第二方向上的可行距离有且仅有一个,因此可行距离D-10为最大可行距离。进而,可行距离D-10也即过渡位置610-0的候选第一距离对应的候选第二距离。
过渡位置610-4的在第二方向上的可行距离有且仅有一个,因此可行距离D-14为最大可行距离。进而,可行距离D-14也即候选第一距离A-14对应的候选第二距离。
进一步地,候选过渡位置610-0对应的可行距离D-10与候选过渡位置610-4对应的可行距离D-14均为最大的候选第二距离,从而可行距离D-10与可行距离D-14被确定为目标第二距离。进一步地,由于过渡位置610-4对应的候选第一距离A-14大于过渡位置610-0对应的候选第一距离A-10。则电子设备420将候选第一距离A-14确定为目标第一距离。最后电子设备420根据目标第一距离和目标第二距离将目标元素摆放至排版区域120内(即,如图7所示排版区域120左下角的元素410-1)。
接下来描述电子设备420向排版区域120内摆放第二个元素(例如元素410-2)及之后的元素的具体实现过程。参考图7,图7中元素410-1为已摆放元素,元素410-2为需要向排版区域120摆放的目标元素。电子设备420基于边界和所有的已摆放元素确定的多个候选第一距离分别为距离为零、候选第一距离A-21以及候选第一距离A-22。其中,距离为零的候选第一距离是基于排版区域120的右边界确定的,对应过渡位置710-0。候选第一距离A-21是基于已摆放元素410-1确定的,对应过渡位置710-1。候选第一距离A-22是基于排版区域120的左边界确定的,对应过渡位置710-2。
可行距离D-20、D-21、D-22分别对应于过渡位置710-0、710-1、710-2,并且由于可行距离D-20、D-21、D-22分别为各自候选第一距离对应最大可行距离,因此可行距离D-20、D-21、D-22也分别被确定为各自候选第一距离对应的候选第二距离。进一步地,可行距离D-20、D-21分别为目标第二距离。由于过渡位置710-1对应的候选第一距离A-21大于过渡位置710-0对应的候选第一距离。电子设备420将候选第一距离A-22确定为目标第一距离。最后电子设备420根据目标第一距离和目标第二距离将目标元素摆放至排版区域120内(即,将元素410-2摆放在元素410-1相邻的右侧)。
图8示出了根据本公开一些实施例中以“塞入”的方式摆放元素的示意图800,图9示出了根据本公开一些实施例中以“塞入”的方式摆放元素的结果图900。如图8和图9所示,元素410-1、410-2、410-3、410-4、410-5为排版区域120内的已摆放元素。元素410-6在图8中为待摆放的目标元素,在图9中已经完成摆放。
在摆放元素410-6的过程中。电子设备420以与上文描述类似的方式基于排版区域120的边界、所有的已摆放元素确定多个候选第一距离A-61、A-62、A-63、A-64、A-65。这些候选第一距离分别对应于过渡位置810-1、810-2、810-3、810-4、810-5。图8中包括基于排版区域右边界确定的候选第一距离(即,距离为零)以及对应于基于排版区域右边界确定的候选第一距离的过渡位置810-0。
在一些实施例中,电子设备420基于边界和所有的已摆放元素,确定从与该候选第一距离相对应的位置起在第二方向上移动目标元素的至少一个候选距离。示例性地,电子设备420可以将在与该候选第一距离相对应的位置处的目标元素在第二方向上距边界的距离确定为至少一个候选距离之一。随后电子设备420确定目标元素从与该候选第一距离相对应的位置起沿第二方向移动至边界的过程中所穿越的已摆放元素集合。最后电子设备420响应于确定已摆放元素集合中的已摆放元素的数目大于零,将在与该候选第一距离相对应的位置处的目标元素在第二方向上与已摆放元素集合中的每个已摆放元素的目标边缘之间的距离确定为至少一个候选距离之一。该目标边缘具体是元素的哪个边缘可以取决于第一方向以及第二方向的设置。例如,在图8所示的场景中,目标边缘可以是上边缘。
进一步地,电子设备420基于所有的已摆放元素和目标元素的形状和尺寸,从至少一个候选距离中确定至少一个可行距离,其中针对至少一个可行距离中的每个可行距离,在从与该候选第一距离相对应的位置起在第二方向上移动该可行距离之后,目标元素与所有的已摆放元素完全没有重叠。电子设备将至少一个可行距离中的最大可行距离确定为多个候选第二距离之一。
为了便于说明的目的,下面以候选第一距离A-63为例进行描述。电子设备420可以基于边界和所有的已摆放元素,确定从与该候选第一距离A-63相对应的位置起在竖直方向上移动目标元素的至少一个候选距离。示例性地,可以将在与该候选第一距离A-63相对应的候选过渡位置810-3处的目标元素在竖直方向上距下边界的距离D-63-3确定为一个候选距离。进一步地,可以确定目标元素从与该候选第一距离A-63相对应的候选过渡位置810-3起沿竖直方向移动至下边界的过程中所穿越的已摆放元素集合。在图8的示例中,目标元素下降至下边界的过程中会穿越元素410-3和410-5。因此,已摆放元素集合包括元素410-3和410-5。因为已摆放元素集合中的已摆放元素的数目大于零,所以可以将在与该候选第一距离A-63相对应的候选过渡位置810-3处的目标元素在竖直方向上与已摆放元素集合中的每个已摆放元素的上边缘之间的距离确定为至少一个候选距离之一,即可以将距离D-63-1和D-63-2确定为两个候选距离。
进一步地,电子设备420可以基于所有的已摆放元素和目标元素的形状和尺寸,从至少一个候选距离中确定至少一个可行距离。针对至少一个可行距离中的每个可行距离,在从与该候选第一距离相对应的位置起在第二方向上移动该可行距离之后,目标元素与所有的已摆放元素完全没有重叠。示例性地,可以首先尝试将在与该候选第一距离A-63相对应的候选过渡位置810-3处的目标元素在竖直方向上移动候选距离D-63-1,则目标元素将被放至元素410-5上方。在该位置处,目标元素与所有的已摆放元素完全没有重叠,因此候选距离D-63-1可以被确定为一个可行距离。进一步地,可以尝试将在与该候选第一距离A-63相对应的候选过渡位置810-3处的目标元素在竖直方向上移动候选距离D-63-2,则目标元素将被放至元素410-3上方。在该位置处,目标元素与所有的已摆放元素完全没有重叠(这在图9中被示出),因此候选距离D-63-2可以被确定为一个可行距离。进一步地,可以尝试将在与该候选第一距离A-63相对应的候选过渡位置810-3处的目标元素在竖直方向上移动候选距离D-63-3,则目标元素将被放至下边界上方。在该位置处,目标元素与已摆放元素410-3重叠,因此候选距离D-63-1并不是可行距离。
然后,电子设备420可以将至少一个可行距离中的最大可行距离确定为与候选第一距离A-63相对应的候选第二距离。由于距离D-63-2是距离D-63-1与距离D-63-2中最大的,因此距离D-63-2可以被确定为与候选第一距离A-63相对应的候选第二距离。
通过这种方式,可以有规则且高效地筛选出不会与所有的已摆放元素发生重叠的一个或多个可行距离,进而基于这些可行距离来确定候选第二距离。以此方式,一方面,可以基于元素的形状和尺寸来判断将元素“塞入式”地摆放至已摆放元素之间是否会与已摆放元素重叠,从而使得能够在将元素“塞入式”地摆放至已摆放元素之间不会与已摆放元素重叠的情况下,执行该“塞入式”摆放。通过这种方式,与已有方案相比,可以更加充分地利用已摆放元素之间的未占用区域,从而有效地提升自动排版时晶圆的面积利用率,进而降低芯片的制造成本。
备选地,还可以通过仅考虑目标元素下降过程中所遇到的如下的已摆放元素或边界来确定候选距离,以用于确定可行距离,在这样的已摆放元素或边界上方没有直接相交的已摆放元素。在图8的示例中,针对候选第一距离A-63而言,在确定候选距离时仅考虑元素410-3和元素410-5的上边缘,而无需考虑排版区域120的下边界,因为在下边界上方具有直接相交的已摆放元素410-3。应当理解的是,还可以通过其他任何合适的方式来确定候选距离和可行距离,本公开的范围在此方面不受限制。
通过这种方式,可以为多个候选第一距离中的每个候选第一距离确定相应的最大可行距离作为对应的候选第二距离。本公开在此不再赘述。示例性地,可行距离D-61为对应于候选第一距离A-61的候选第二距离。可行距离D-62为对应于候选第一距离A-62的候选第二距离。可行距离D-63-2为对应于候选第一距离A-63的候选第二距离。可行距离D-64为对应于候选第一距离A-64的候选第二距离。可行距离D-65为对应于候选第一距离A-65的候选第二距离。
在多个候选第二距离中,由于候选第一距离A-63对应的候选第二距离最大,因此可行距离D-63-2被确定为目标第二距离。由于目标第二距离对应的候选第一距离的数目等于1,因此将该候选第一距离确定为目标第一距离,从而如图9所示,可以将元素410-6摆放在排版区域内(也即,元素410-5和410-3之间)。可以看到,以此方式,一方面,可以基于元素的形状和尺寸来判断将元素“塞入式”地摆放至已摆放元素之间是否会与已摆放元素重叠,从而使得能够在将元素“塞入式”地摆放至已摆放元素之间不会与已摆放元素重叠的情况下,执行该“塞入式”摆放。通过这种方式,与已有方案相比,可以更加充分地利用已摆放元素之间的未占用区域,从而有效地提升晶圆的面积利用率,进而降低芯片的制造成本。另一方面,借助于“塞入式”摆放,根据本公开的各实施例的用于芯片排版的方案可以应用于光罩框架布局的场景,并且可以在多个芯片之间的空隙中插入诸如芯片、测试结构、版图单元等多种形状和大小的元件,由此可以提高晶圆的面积利用率,并且扩展应用场景。
在一些实施例中,在根据上述方式获得针对多个元素410的布局之后,可以直接将该布局作为最终布局,并作为排版结果430输出。但是,发明人已经注意到,根据本公开的一些实施例的芯片排版过程所获得的芯片布局与多个元素的摆放顺序有较大的关联性。使用不同的摆放顺序可能会获得不同的芯片布局,并且这些不同的芯片布局的晶圆面积利用率(也可以简称为面积利用率)可能并不相同。因此,在另一些实施例中,在按照一个摆放顺序完成对多个元素410的摆放之后,电子设备420可以确定与该摆放顺序相对应的布局的面积利用率。
示例性地,电子设备420可以确定布局中多个元素410所占据区域的最小外接矩形的面积,并且基于多个元素410的总面积、以及该最小外接矩形的面积,来确定该布局的面积利用率。图10示出了根据本公开的一些实施例的芯片排版过程所获得的布局示意图1000。如图10所示,矩形1010示出了元素410-1至410-15所占据区域的最小外接矩形。电子设备420例如可以计算多个元素410的总面积占该最小外接矩形的面积的百分比来作为面积利用率。以此方式,可以比较准确且高效地衡量布局对晶圆的利用率。
应当理解的是,还可以以其他任何合适的方式来确定针对布局的面积利用率,例如通过考虑布局中多个元素410所占据区域的最小外接圆、布局中多个元素410所占据区域的包络线所围成区域的面积,等等。
在确定一个布局的面积利用率之后,电子设备420例如可以判断该面积利用率是否达到(例如,大于、或大于等于)针对晶圆预设的利用率阈值(例如,70%、85%,等等)。如果该布局的面积利用率达到利用率阈值,则可以将该布局作为最终布局,并作为排版结果430输出。如果该布局的面积利用率未达到利用率阈值,则可以按照不同的另一摆放顺序,通过排版操作来依次摆放多个元素410,以获得与另一摆放顺序相对应的另一布局。电子设备420可以进一步继续判断该另一布局的面积利用率是否达到利用率阈值,以此类推,本公开在此不再赘述。通过这种方式,可以生成符合预设的利用率阈值的布局作为排版结果,从而保证所生成布局的晶圆面积利用率满足预设要求。
在又一些实施例中,电子设备420还可以对其已经尝试过的摆放顺序进行计数。如果所尝试的摆放顺序的数目达到预设的次数阈值(例如,10次、500次、2000次,等等),电子设备420可以将分别与多个摆放顺序相对应的多个布局中面积利用率最大的布局确定为最终布局,并作为排版结果430输出。以此方式,可以实现排版效率与排版质量二者的平衡。
在一些实施例中,排版区域120可以包括摆放位置预先确定的一个或多个元素。示例性地,与芯片110对应的一个或多个元素的摆放位置可以基于已有方案而被确定。在执行根据本公开的各实施例的方案时,位置预先确定的这些元素可以被认为是已摆放元素,从而根据本公开的各实施例的方案可以进一步地用于摆放与测试结果和/或版图单元相对应的元素。因此,根据本公开的各实施例的用于芯片排版的方案可以应用于光罩框架布局的场景,并且可以在多个芯片之间的空隙中插入诸如芯片、测试结构、版图单元等多种形状和大小的元件,由此可以提高晶圆的面积利用率,并且扩展应用场景。
通过以上结合图5至图10的描述可以看到,在根据本公开的各实施例的芯片排版方案中,通过额外地考虑元素的形状和尺寸来在排版区域中摆放元素。以此方式,一方面,可以基于元素的形状和尺寸来判断将元素“塞入式”地摆放至已摆放元素之间是否会与已摆放元素重叠,从而使得能够在将元素“塞入式”地摆放至已摆放元素之间不会与已摆放元素重叠的情况下,执行该“塞入式”摆放。通过这种方式,与已有方案相比,可以更加充分地利用已摆放元素之间的未占用区域,从而有效地提升晶圆的面积利用率,进而降低芯片的制造成本。另一方面,借助于“塞入式”摆放,根据本公开的各实施例的用于芯片排版的方案可以应用于光罩框架布局的场景,并且可以在多个芯片之间的空隙中插入诸如芯片、测试结构、版图单元等多种形状和大小的元件,由此可以提高晶圆的面积利用率,并且扩展应用场景。此外,根据本公开的各实施例的用于芯片排版的方案相比于现有技术中对于芯片的摆放方案大大的降低了对于元素摆放顺序的依赖性,从而可以用更少的循环次数到达符合预定面积利用率的摆放方案,或者在执行下同样次数的循环运算下得到面积利用率更高的摆放方案。
尽管在上文中以芯片排版的应用场景为例描述了根据本公开的各实施例的方案。应当理解的是,根据本公开的各实施例的方案同样可以适用于需要进行排版布局的其他应用场景。例如,在服装行业中,对用于制作衣服的布料上的衣服样板进行排版。又例如,在制造业中,对钢材上的待制造的部件进行排版。本公开的范围在此方面不受限制。
示例方法
图11示出了根据本公开的一些实施例的用于芯片排版的方法1100的流程图。在一些实施例中,方法1100可以在如图4所示的电子设备420处执行。应当理解的是,方法1100还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。
在框1110,获取多个元素,多个元素中的每个元素表示待摆放在排版区域内的一个芯片或用于芯片的元件。在框1120,按照多个元素的摆放顺序,依次从多个元素中选择目标元素。在框1130,针对目标元素执行以下排版操作:确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离;以及基于多个候选第一距离、目标元素的形状和尺寸、以及排版区域中所有的已摆放元素,将目标元素摆放在排版区域中。
在一些实施例中,基于多个候选第一距离、目标元素的形状和尺寸、以及排版区域中所有的已摆放元素,将目标元素摆放在排版区域中包括:基于排版区域的边界、所有的已摆放元素、以及目标元素的形状和尺寸,确定多个候选第二距离,多个候选第二距离中的每个候选第二距离对应于多个候选第一距离中的一个候选第一距离,并且指示从与该候选第一距离相对应的位置起在第二方向上移动目标元素的至少一个可行距离中的最大可行距离,至少一个可行距离中的每个可行距离所对应的、目标元素在第二方向上的移动路径被允许穿越一个或多个已摆放元素,第二方向不同于第一方向;从多个候选第一距离和多个候选第二距离中选择目标第一距离和目标第二距离;以及从初始位置起按照目标第一距离和目标第二距离移动目标元素,以将目标元素摆放在排版区域中。
在一些实施例中,基于边界、所有的已摆放元素、以及目标元素的形状和尺寸,确定多个候选第二距离包括:针对多个候选第一距离中的每个候选第一距离,基于边界和所有的已摆放元素,确定从与该候选第一距离相对应的位置起在第二方向上移动目标元素的至少一个候选距离;基于所有的已摆放元素和目标元素的形状和尺寸,从至少一个候选距离中确定至少一个可行距离,其中针对至少一个可行距离中的每个可行距离,在从与该候选第一距离相对应的位置起在第二方向上移动该可行距离之后,目标元素与所有的已摆放元素完全没有重叠;以及将至少一个可行距离中的最大可行距离确定为多个候选第二距离之一。
在一些实施例中,基于边界和所有的已摆放元素,确定从与该候选第一距离相对应的位置起在第二方向上移动目标元素的至少一个候选距离包括:将在与该候选第一距离相对应的位置处的目标元素在第二方向上距边界的距离确定为至少一个候选距离之一;确定目标元素从与该候选第一距离相对应的位置起沿第二方向移动至边界的过程中所穿越的已摆放元素集合;以及响应于确定已摆放元素集合中的已摆放元素的数目大于零,将在与该候选第一距离相对应的位置处的目标元素在第二方向上与已摆放元素集合中的每个已摆放元素的目标边缘之间的距离确定为至少一个候选距离之一。
在一些实施例中,从多个候选第一距离和多个候选第二距离中选择目标第一距离和目标第二距离包括:将多个候选第二距离中最大的候选第二距离确定为目标第二距离;响应于确定与目标第二距离相对应的候选第一距离的数目等于一,将该候选第一距离确定为目标第一距离;以及响应于确定与目标第二距离相对应的候选第一距离的数目大于一,将与目标第二距离相对应的多个候选第一距离中最大的候选第一距离确定为目标第一距离。
在一些实施例中,确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离包括:基于排版区域的边界和针对目标元素的预定移动步长,确定多个候选第一距离。
在一些实施例中,确定用于从目标元素的初始位置起在第一方向上移动目标元素的多个候选第一距离包括:基于排版区域的边界和排版区域中所有的已摆放元素,确定多个候选第一距离。
在一些实施例中,基于排版区域的边界和排版区域中所有的已摆放元素,确定多个候选第一距离包括:针对所有的已摆放元素中的每个已摆放元素,确定该已摆放元素与初始位置处的目标元素在第一方向上的最小距离;以及将最小距离确定为多个候选第一距离之一。
在一些实施例中,多个候选第一距离包括以下至少一项:距离零、在初始位置处的目标元素在第一方向上距边界的距离。
在一些实施例中,用于芯片排版的方法还包括:确定与摆放顺序相对应的第一布局的面积利用率,第一布局是按照摆放顺序摆放多个元素而获得的;响应于确定面积利用率达到利用率阈值,将第一布局确定为多个元素的最终布局;以及响应于确定面积利用率未达到利用率阈值,按照不同于摆放顺序的另一摆放顺序,通过排版操作来依次摆放多个元素,以获得与另一摆放顺序相对应的第二布局。
在一些实施例中,确定与摆放顺序相对应的第一布局的面积利用率包括:确定第一布局中多个元素所占据区域的最小外接矩形的面积;以及基于多个元素的总面积、以及最小外接矩形的面积,确定第一布局的面积利用率。
在一些实施例中,摆放顺序和另一摆放顺序是多个元素的不同的多个摆放顺序中的至少一部分,并且方法还包括:响应于多个摆放顺序的数目达到次数阈值,将分别与多个摆放顺序相对应的多个布局中面积利用率最大的布局确定为最终布局。
在一些实施例中,获取多个元素包括:基于芯片或元件的形状、尺寸、以及预设间距,确定多个元素中与芯片或元件相对应的元素的形状和尺寸。
在一些实施例中,排版区域包括摆放位置预先确定的一个或多个元素。
在一些实施例中,元件包括测试结构或版图单元。
在一些实施例中,初始位置是排版区域的右上角,第一方向和第二方向中的一个方向是水平方向,并且另一个方向是竖直方向。
示例设备
本公开的实施例还提供了用于实现上述方法或过程的相应设备。图12示出了可以实施本公开的一个或多个实施例的电子设备1200的框图。该电子设备1200例如可以用于实现如图4所示的电子设备420。应当理解,图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 (18)
1.一种用于芯片排版的方法,其特征在于,所述方法包括:
获取多个元素,所述多个元素中的每个元素表示待摆放在排版区域内的一个芯片或用于芯片的元件;
按照所述多个元素的摆放顺序,依次从所述多个元素中选择目标元素;以及
针对所述目标元素执行以下排版操作:
确定用于从所述目标元素的初始位置起在第一方向上移动所述目标元素的多个候选第一距离;以及
基于所述多个候选第一距离、所述目标元素的形状和尺寸、以及所述排版区域中所有的已摆放元素,将所述目标元素摆放在所述排版区域中。
2.根据权利要求1所述的用于芯片排版的方法,其特征在于,基于所述多个候选第一距离、所述目标元素的形状和尺寸、以及所述排版区域中所有的已摆放元素,将所述目标元素摆放在所述排版区域中包括:
基于所述排版区域的边界、所述所有的已摆放元素、以及所述目标元素的形状和尺寸,确定多个候选第二距离,所述多个候选第二距离中的每个候选第二距离对应于所述多个候选第一距离中的一个候选第一距离,并且指示从与该候选第一距离相对应的位置起在第二方向上移动所述目标元素的至少一个可行距离中的最大可行距离,所述至少一个可行距离中的每个可行距离所对应的、所述目标元素在所述第二方向上的移动路径被允许穿越一个或多个已摆放元素,所述第二方向不同于所述第一方向;
从所述多个候选第一距离和所述多个候选第二距离中选择目标第一距离和目标第二距离;以及
从所述初始位置起按照所述目标第一距离和所述目标第二距离移动所述目标元素,以将所述目标元素摆放在所述排版区域中。
3.根据权利要求2所述的方法,其特征在于,基于所述边界、所述所有的已摆放元素、以及所述目标元素的形状和尺寸,确定多个候选第二距离包括:
针对所述多个候选第一距离中的每个候选第一距离,
基于所述边界和所述所有的已摆放元素,确定从与该候选第一距离相对应的位置起在所述第二方向上移动所述目标元素的至少一个候选距离;
基于所述所有的已摆放元素和所述目标元素的形状和尺寸,从所述至少一个候选距离中确定至少一个可行距离,其中针对所述至少一个可行距离中的每个可行距离,在从与该候选第一距离相对应的位置起在所述第二方向上移动该可行距离之后,所述目标元素与所述所有的已摆放元素完全没有重叠;以及
将所述至少一个可行距离中的最大可行距离确定为所述多个候选第二距离之一。
4.根据权利要求3所述的方法,其特征在于,基于所述边界和所述所有的已摆放元素,确定从与该候选第一距离相对应的位置起在所述第二方向上移动所述目标元素的至少一个候选距离包括:
将在与该候选第一距离相对应的位置处的所述目标元素在所述第二方向上距所述边界的距离确定为所述至少一个候选距离之一;
确定所述目标元素从与该候选第一距离相对应的位置起沿所述第二方向移动至所述边界的过程中所穿越的已摆放元素集合;以及
响应于确定所述已摆放元素集合中的已摆放元素的数目大于零,将在与该候选第一距离相对应的位置处的所述目标元素在所述第二方向上与所述已摆放元素集合中的每个已摆放元素的目标边缘之间的距离确定为所述至少一个候选距离之一。
5.根据权利要求2所述的用于芯片排版的方法,其特征在于,从所述多个候选第一距离和所述多个候选第二距离中选择目标第一距离和目标第二距离包括:
将所述多个候选第二距离中最大的候选第二距离确定为所述目标第二距离;
响应于确定与所述目标第二距离相对应的候选第一距离的数目等于一,将该候选第一距离确定为所述目标第一距离;以及
响应于确定与所述目标第二距离相对应的候选第一距离的数目大于一,将与所述目标第二距离相对应的多个候选第一距离中最大的候选第一距离确定为所述目标第一距离。
6.根据权利要求1所述的用于芯片排版的方法,其特征在于,确定用于从所述目标元素的初始位置起在第一方向上移动所述目标元素的多个候选第一距离包括:
基于所述排版区域的边界和针对所述目标元素的预定移动步长,确定所述多个候选第一距离。
7.根据权利要求1所述的用于芯片排版的方法,其特征在于,确定用于从所述目标元素的初始位置起在第一方向上移动所述目标元素的多个候选第一距离包括:
基于所述排版区域的边界和所述排版区域中所述所有的已摆放元素,确定所述多个候选第一距离。
8.根据权利要求7所述的用于芯片排版的方法,其特征在于,基于所述排版区域的边界和所述排版区域中所述所有的已摆放元素,确定所述多个候选第一距离包括:
针对所述所有的已摆放元素中的每个已摆放元素,
确定该已摆放元素与所述初始位置处的所述目标元素在所述第一方向上的最小距离;以及
将所述最小距离确定为所述多个候选第一距离之一。
9.根据权利要求6至8中任一项所述的用于芯片排版的方法,其特征在于,所述多个候选第一距离包括以下至少一项:距离零、在所述初始位置处的所述目标元素在所述第一方向上距所述边界的距离。
10.根据权利要求1所述的用于芯片排版的方法,其特征在于,所述方法还包括:
确定与所述摆放顺序相对应的第一布局的面积利用率,所述第一布局是按照所述摆放顺序摆放所述多个元素而获得的;
响应于确定所述面积利用率达到利用率阈值,将所述第一布局确定为所述多个元素的最终布局;以及
响应于确定所述面积利用率未达到所述利用率阈值,按照不同于所述摆放顺序的另一摆放顺序,通过所述排版操作来依次摆放所述多个元素,以获得与所述另一摆放顺序相对应的第二布局。
11. 根据权利要求10所述的用于芯片排版的方法,其特征在于,确定与所述摆放顺序相对应的第一布局的面积利用率包括:
确定所述第一布局中所述多个元素所占据区域的最小外接矩形的面积;以及
基于所述多个元素的总面积、以及所述最小外接矩形的面积,确定所述第一布局的所述面积利用率。
12.根据权利要求10所述的用于芯片排版的方法,其特征在于,所述摆放顺序和所述另一摆放顺序是所述多个元素的不同的多个摆放顺序中的至少一部分,并且所述方法还包括:
响应于所述多个摆放顺序的数目达到次数阈值,将分别与所述多个摆放顺序相对应的多个布局中面积利用率最大的布局确定为所述最终布局。
13.根据权利要求1所述的用于芯片排版的方法,其特征在于,获取所述多个元素包括:
基于所述芯片或所述元件的形状、尺寸、以及预设间距,确定所述多个元素中与所述芯片或所述元件相对应的元素的形状和尺寸。
14.根据权利要求1所述的用于芯片排版的方法,其特征在于,所述排版区域包括摆放位置预先确定的一个或多个元素。
15.根据权利要求1所述的用于芯片排版的方法,其特征在于,所述元件包括测试结构或版图单元。
16.根据权利要求2所述的用于芯片排版的方法,其特征在于,所述初始位置是所述排版区域的右上角,所述第一方向和所述第二方向中的一个方向是水平方向,并且另一个方向是竖直方向。
17. 一种电子设备,其特征在于,包括:
处理器;以及
存储器,与所述处理器耦合,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述电子设备执行根据权利要求1至16中任一项所述的用于芯片排版的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现根据权利要求1至16中任一项所述的用于芯片排版的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410360392.6A CN117952065B (zh) | 2024-03-27 | 2024-03-27 | 用于芯片排版的方法、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410360392.6A CN117952065B (zh) | 2024-03-27 | 2024-03-27 | 用于芯片排版的方法、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117952065A true CN117952065A (zh) | 2024-04-30 |
CN117952065B CN117952065B (zh) | 2024-06-11 |
Family
ID=90794866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410360392.6A Active CN117952065B (zh) | 2024-03-27 | 2024-03-27 | 用于芯片排版的方法、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117952065B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872718A (en) * | 1996-06-28 | 1999-02-16 | Lsi Logic Corporation | Advanced modular cell placement system |
US20050240889A1 (en) * | 2004-04-23 | 2005-10-27 | Lsi Logic Corporation | Process and apparatus for placing cells in an IC floorplan |
US20160335386A1 (en) * | 2015-05-11 | 2016-11-17 | Mediatek Inc. | Methods for providing macro placement of ic |
CN112183015A (zh) * | 2020-11-04 | 2021-01-05 | 南京师范大学 | 一种面向深度神经网络的芯片布图规划方法 |
CN114097099A (zh) * | 2019-01-29 | 2022-02-25 | 奥斯兰姆奥普托半导体股份有限两合公司 | 微型发光二极管、微型发光二极管装置、显示器及其方法 |
CN115270687A (zh) * | 2022-07-21 | 2022-11-01 | 北京市商汤科技开发有限公司 | 芯片布局方法、装置、设备及存储介质 |
CN115510798A (zh) * | 2022-11-18 | 2022-12-23 | 全芯智造技术有限公司 | 芯片排版方法及装置、计算机可读存储介质、终端设备 |
CN116663483A (zh) * | 2023-07-31 | 2023-08-29 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
CN117332745A (zh) * | 2023-11-22 | 2024-01-02 | 全芯智造技术有限公司 | 用于生成版图的方法、设备和介质 |
-
2024
- 2024-03-27 CN CN202410360392.6A patent/CN117952065B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872718A (en) * | 1996-06-28 | 1999-02-16 | Lsi Logic Corporation | Advanced modular cell placement system |
US20050240889A1 (en) * | 2004-04-23 | 2005-10-27 | Lsi Logic Corporation | Process and apparatus for placing cells in an IC floorplan |
US20160335386A1 (en) * | 2015-05-11 | 2016-11-17 | Mediatek Inc. | Methods for providing macro placement of ic |
CN114097099A (zh) * | 2019-01-29 | 2022-02-25 | 奥斯兰姆奥普托半导体股份有限两合公司 | 微型发光二极管、微型发光二极管装置、显示器及其方法 |
CN112183015A (zh) * | 2020-11-04 | 2021-01-05 | 南京师范大学 | 一种面向深度神经网络的芯片布图规划方法 |
CN115270687A (zh) * | 2022-07-21 | 2022-11-01 | 北京市商汤科技开发有限公司 | 芯片布局方法、装置、设备及存储介质 |
CN115510798A (zh) * | 2022-11-18 | 2022-12-23 | 全芯智造技术有限公司 | 芯片排版方法及装置、计算机可读存储介质、终端设备 |
CN116663483A (zh) * | 2023-07-31 | 2023-08-29 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
CN117332745A (zh) * | 2023-11-22 | 2024-01-02 | 全芯智造技术有限公司 | 用于生成版图的方法、设备和介质 |
Non-Patent Citations (1)
Title |
---|
孙丽莉;方启文;: "集成电路设计中的匹配处理", 科技展望, no. 26, 20 September 2016 (2016-09-20) * |
Also Published As
Publication number | Publication date |
---|---|
CN117952065B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8677297B2 (en) | Low-overhead multi-patterning design rule check | |
US9009632B2 (en) | High performance design rule checking technique | |
US8799835B2 (en) | Real time DRC assistance for manual layout editing | |
CN116663483B (zh) | 用于芯片排版的方法、设备和介质 | |
Kahng et al. | Architecture and details of a high quality, large-scale analytical placer | |
US8464189B2 (en) | Technology migration for integrated circuits with radical design restrictions | |
He et al. | Ripple: An effective routability-driven placer by iterative cell movement | |
Lin et al. | POLAR: Placement based on novel rough legalization and refinement | |
US8448097B2 (en) | High performance DRC checking algorithm for derived layer based rules | |
CN111597768B (zh) | 用于构建版图图案集的方法、设备和计算机可读存储介质 | |
He et al. | Ripple: A robust and effective routability-driven placer | |
Brenner et al. | BonnPlace: Placement of leading-edge chips by advanced combinatorial algorithms | |
CN111597769B (zh) | 用于生成电路版图图案的方法、设备和存储介质 | |
JP2021532605A (ja) | 二進コードによるデジタル集積回路の配線方法および端末装置 | |
US20130290914A1 (en) | Methods and Apparatus for Floorplanning and Routing Co-Design | |
CN117952065B (zh) | 用于芯片排版的方法、设备和介质 | |
US20070220470A1 (en) | Automating optimal placement of macro-blocks in the design of an integrated circuit | |
JP6646006B2 (ja) | 情報提示装置、情報提示方法及びプログラム | |
Fu et al. | Topology-driven cell layout migration with collinear constraints | |
US8132141B2 (en) | Method and apparatus for generating a centerline connectivity representation | |
US8181143B2 (en) | Method and apparatus for generating a memory-efficient representation of routing data | |
CN108520128A (zh) | 集成电路设计方法和计算机可读存储介质 | |
CN111611761B (zh) | 生成电路版图图案的方法、设备和计算机可读存储介质 | |
Kai et al. | Tofu: A two-step floorplan refinement framework for whitespace reduction | |
US6526553B1 (en) | Chip core size estimation |
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 |