CN102054068A - 芯片设计中的线网分配方法与装置 - Google Patents
芯片设计中的线网分配方法与装置 Download PDFInfo
- Publication number
- CN102054068A CN102054068A CN2009102096347A CN200910209634A CN102054068A CN 102054068 A CN102054068 A CN 102054068A CN 2009102096347 A CN2009102096347 A CN 2009102096347A CN 200910209634 A CN200910209634 A CN 200910209634A CN 102054068 A CN102054068 A CN 102054068A
- Authority
- CN
- China
- Prior art keywords
- row
- zero
- sign
- matrix
- gauze
- 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
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种芯片设计中的线网分配方法与装置。该方法用于在集成电路中的信号网络之间减少或消除飞线交叉,以使得在VLSI设计中的网络分配被优化。本发明方法首先为了从至少两个起点中的每一个到至少两个终点中的每一个的路径分配成本而生成一个路径分配成本数据集;第二,生成许多列等于这些至少两个起点和许多行等于这些至少两个终点的一个价值矩阵;下一步,分配该路径分配成本数据集到该价值矩阵的每个元素,以使得从一个起点到一个终点的该路径分配成本被分配到由该起点的一列和该终点的一行所定义的一个元素;最后,通过对该价值矩阵执行一个连接路径分配优化算法来决定一个最低成本连接路径。
Description
技术领域
本发明是关于一种芯片设计中的线网分配方法与装置,尤其是关于一种芯片设计中避免飞线交叉的线网分配方法与装置。
背景技术
在现代的集成电路设计中,一个集成电路中的一个或更多的部分被硬件描述语言(HDL)(比如,Verilog或VHDL)来设计或描述。做为把HDL从代码文件翻译到集成电路的结构布局的一部分,一个编译器通常会被使用来执行这样的功能。通常,一个集成电路编译器的一个方面是执行从一个半导体装置到另一个半导体装置的信号网络的分配和绕线,在这里这两个半导体装置组成该集成电路的一部分。在倒装芯片设计中,并行地优化网络分配和绕线的需要是尤其重要的。在倒装芯片结构设计流程中,关键步骤之一是在倒装片驱动器和倒装片焊点之间造成1对1的逻辑连接,其倒装片焊点一般由粘付于在半导体基片外表面上的焊垫的焊接球来提供。这样的1对1的逻辑连接的结果的质量(QoR)或者网络分配,直接地影响后续再布线RDL(redistributed layer)阶段的布线能力,该RDL布线通常是一种单一层布线。其中飞线交叉是一种最不想要的分配模式,因其势必会造成不可布线的线网或不必要的弯路。
以倒装芯片为例,其线网分配中关键的一步是驱动器与焊球之间一对一的逻辑连接。如图1所示,一种用于倒装芯片的线网分配方法是先基于区域进行分隔,直到驱动器70的数目达到一门限值或者无法再找到合适的分割线;然后每个驱动器70与其可见的最近的焊球71匹配。接着将每两对匹配的驱动器70与焊球71进行交换,看是否可降低交叉线或线路的长度,以进行优化。由图中可见,在一依上述方法得到的驱动器与焊球的逻辑连接,其最初的分配结果有时无法得到后期的优化步骤得到改善。因而,该方法不能提供一全局优化结果,在大型芯片设计中极易造成很差的线网分配的QoR;影响后续单层布线的布通率,导致开放线网或绕线等。
鉴于上述问题,业界亟需一种理想的线网分配技术方案,尽可能的避免飞线交叉,有利于后期的布线。
发明内容
本发明的目的在于提供一种芯片设计中的线网分配方法与装置,其可将线网中的一器件唯一的分配给相应的另一器件而不会引起飞线交叉。
本发明提供一线网分配方法,其将m个焊球分配给n个驱动器,且包含如下步骤:建立一成本矩阵,该成本矩阵中的各元素为将该m个焊球中每一个分别连接至该n个驱动器的线路长度;找出该成本矩阵中每一行的最小元素,由其所在行的各元素中减去该最小元素得一结果矩阵;找出该结果矩阵中每一个零值,如该零值所在行包含一第一标识零则对该零值不作处理,否则将该零值标识为第一标识零;检查该结果矩阵中包含该第一标识零的列是否达到n列,如达到则分配结束;否则对该结果矩阵继续进行处理,直到其包含该第一标识零的列达到n列。
在一实施例中,该线路长度是一焊球与一驱动器间的欧几里德距离与曼哈顿距离的和。该对该结果矩阵继续进行处理,直到其包含该第一标识零的列达到n列的步骤进一步包含:步骤a:以一第二标识标记包含该第一标识零的列;步骤b:检查未被第二标识标记的行或列中是否有一零值:如有,在步骤c以一第三标识将该零值标记为第三标识零;如无,则在步骤d找出所有未被该第二标识标记的行或列中的最小值,并将其从各未被第二标识标记的列中的各元素减去,然后返回步骤b。在该步骤c之后进一步包含:检查该第三标识零所在的行有没有包含第一标识零,如没有则在步骤e依一构建规则选择出第一标识零与第三标识零;否则在步骤f以该第二标识标记该包含第三标识零的行,并去掉包含该第一标识零的列的第二标识。在步骤f之后进一步包含步骤h,检查未被第二标识标记的行或列中是否还有一零值,如有则继续步骤c,否则执行步骤g找出未被第二标识标记的行或列中的最小值,将其加至被第二标识标记的各行的各元素,然后将其自未被第二标识标记的各列的各元素中减去,并返回步骤b。该构建规则是Z0代表步骤c中发现的所在行中没有第一标识零的第三标识零,Z1代表Z0所在列中的第一标识零,Z2表示Z1所在行中的第三标识零;继续该构建规则直到一第三标识零所在列没有第一标识零时终止。在步骤e之后去掉依该构建规则选择出的第一标识零的第一标识,将各第三标识零修改为第一标识零,并去掉该结果矩阵中所有由第二标识标记的各行或列;然后返回该检查该结果矩阵中包含该第一标识零的列是否达到n列的步骤。分配结束时该第一标记零所在的位置描述该n个驱动器与m个焊球间的唯一分配关系。
本发明还提供一线网分配装置,其将m个焊球分配给n个驱动器,且包含:一成本矩阵构建单元;建立一成本矩阵,该成本矩阵中的各元素为将该m个焊球中每一个分别连接至该n个驱动器的线路长度;一结果矩阵构建单元;找出该成本矩阵中每一行的最小元素,由其所在行的各元素中减去该最小元素得一结果矩阵;一分配单元;找出该结果矩阵中每一个零值,如该零值所在行包含一第一标识零则对该零值不作处理,否则将该零值标识为第一标识零;一分配结果检查单元,检查该结果矩阵中包含该第一标识零的列是否达到n列,如达到则分配结束;否则通知该分配单元对该结果矩阵继续进行处理,直到其包含该第一标识零的列达到n列。
本发明的芯片设计中的线网分配方法与装置,唯一确定线网中相应器件间的分配关系,避免飞线交叉的问题。并获得全局优化的设计结果,提高后续单层布线的布通率。
附图说明
图1是一现有线网分配方法的分配结果示意图;
图2是根据本发明线网分配方法一实施例的流程图;
图3是根据图2中本发明线网分配方法中步骤12的流程图;
图4是根据图2中本发明线网分配方法中步骤16的流程图;
图5-7显示了本发明的网络分配方法的流程图;
图8-9举例说明了本发明的具体实施方式;
图10是根据本发明线网分配方法进行分配的焊球与驱动器的位置示意图;
图11是根据本发明线网分配方法分配图10中焊球与驱动器的成本矩阵;
图12-14是根据本发明线网分配方法分配图10中焊球与驱动器过程中的不同阶段产生的结果矩阵;
图15是根据本发明的线网分配装置的示意图;
图16是根据本发明线网分配装置分配的焊球与驱动器位置关系建立的成本矩阵;
图17-28是根据图16中焊球与驱动器的成本矩阵在分配过程中产生的结果矩阵。
具体实施方式
为便于更好的理解本发明的精神,以下结合本发明的优选实施例对其作进一步说明。
本发明是关于一种在芯片设计中避免飞线交叉的线网分配方法与装置,其可保证器件间,如驱动器与焊球,一一匹配的全局优化。
本发明还可应用于分裂焊垫设计(split bond pad design),及立体IC设计(3D IC design)中的硅导穿孔(Through-Silicon-Via,TSV)与焊球单元(bumpcell)匹配问题。
根据本发明,在一芯片设计中将m个焊球分配给n个驱动器(n<=m),使所有的驱动器与其相应的焊球间具有最小距离,避免飞线交叉问题。同时,在线网分配时,还会给线路较短的0°或90°线网较线路较长的45°线网更高的优先权,使整体的线路都较短。
如图2所示,根据本发明的一实施例,该将m个焊球分配给n个驱动器的方法,其首先在步骤10中构造一个n×m的成本矩阵,其中该成本矩阵中的各元素为将一焊球连接至一驱动器的线路长度,具体表述为该焊球与其相应驱动器间的欧几里德距离(Euclid distance)与曼哈顿距离(Manhattandistance)的和。
在步骤11中,针对该成本矩阵的每一行找出一最小元素,且自其所在行的各元素减去该最小元素得一结果矩阵。
接着进入步骤12找出该结果矩阵中的所有零值并进行相应处理,具体的如图3所示:在步骤120中自该结果矩阵中找一零值。在步骤121判断该零值所在行或列中是否有一第一标识零,如该零值所在行或列中没有一第一标识零,则在步骤122将该零值标记为第一标识零;否则至步骤123对该零值不作任何处理。接着在步骤124检查是否所有的零值都被找过,如都找过则进入后续步骤13,否则返回步骤120。
返回图2,在步骤13中,以一第二标识标记包含该第一标识零的列,并检查该结果矩阵中该被第二标识标记的列是否达到n列。如达到,则进入步骤14分配结束,其中所有第一标记零所在的位置描述该n个驱动器与m个焊球间的唯一分配关系。例如,一第一标记零在结果矩阵中的i行,j列,则该第一标记零表示将第j个焊球分配给第i个驱动器(1≤i≤n,1≤j≤m)。当然在其它实施例中,步骤13也可直接检查包含该第一标识零的列是否达到n列,仅在分配没有得到唯一分配结果的情况下,才以该第二标识标记包含该第一标识零的列,进行后续的操作。
如果步骤13中的检查结果是该结果矩阵中的包含该第一标识零的列没有达到n列,则进入步骤15。在步骤15中,检查在未被第二标识标记的行或列中是否有一零值,如有,则进入步骤16以一第三标识将该零值标记为第三标识零,以进行相应处理;否则进入步骤17找出所有未被第二标识标记的行或列中的最小值,并将其从各未被第二标识标记的列中各元素减去,然后返回步骤15。
具体如图4所示,步骤16进一步包含:在步骤160将该零值以一第三标识标记为第三标识零。在步骤161检查该第三标识零所在的行是否包含第一标识零,如该第三标识零所在的行没有第一标识零,至步骤162依一构建规则选择第一标识零与第三标识零。否则,进入步骤163,以第二标识标记该包含第三标识零的行,并去掉包含该第一标识零的列的第二标识。在步骤164检查是否所有未被第二标识标记的行或列中的零值都被处理,如有未被检查的则返回步骤160;否则进入步骤165找出所有未被第二标识标记的行或列中的最小值,将其加至各被第二标识标记的行的各元素,然后自未被第二标识标记的列中的各元素减去该最小值,接着返回步骤15。
具体的,在一实施例中,步骤162是依一构建规则一选择第一标识零与第三标识零而构建一序列,其中:Z0代表步骤161中发现的未在第二标识列中的第三标识零,Z1代表Z0所在列中的第一标识零,Z2表示Z1所在行中的第三标识零;继续该构建规则直到一第三标识零所在列没有第一标识零时终止。去掉选择出的第一标识零的第一标识,将选择出的各第三标识零修改为第一标识零,并去掉结果矩阵中所有由第二标识标记的各行或列;然后返回步骤13。
图5和图6显示了优化倒装片驱动器和倒装片焊点之间的网络分配的方法的流程图。依照图5的步骤103,首先,通过图6中显示的方法产生了一个路径分配成本的数据集。
依照图6的步骤203,首先,欧几里德距离由测量一个倒装片驱动器和多个倒装片焊点之间的距离来决定。这样的一个倒装片驱动器可以和这样的多个倒装片焊点构成1对1的逻辑连接。或者欧几里德距离也可以由任何其它的可比较的方法来决定。步骤205,曼哈顿距离由测量一个倒装片驱动器和多个倒装片焊点之间的距离来决定。这样的一个倒装片驱动器可以和这样的多个倒装片焊点可构成1对1的逻辑连接。或者曼哈顿距离也可以由任何其它的可比较的方法来决定。步骤207,把第一步决定的欧几里德距离和第二步决定的曼哈顿距离加起来以产生一个路径分配成本的数据。最后步骤209,这个路径分配成本数据被储存到路径分配成本的数据集。在不限制图6所描述之方法的普遍性的情况下,像这样的路径分配成本的数据集也可以由测量一个倒装片驱动器和多个倒装片焊点之间的距离来产生。这样的一个倒装片驱动器可以和这样的多个倒装片焊点可构成1对1的逻辑连接。这样的距离可以是欧几里德距离或者曼哈顿距离。或者这样的距离也可以由任何其它的可以决定这样距离的方法来产生。
进一步地依照图5,步骤105包含一个价值矩阵。这个价值矩阵是由步骤103中所产生的分配成本数据集所产生和填充的。分配成本数据集填充着这个价值矩阵的每个元素。这样的价值矩阵可以由形成一个相应的矩阵表格来产生。这样的矩阵表格有行和列来对应每个倒装片驱动器以及它们相对应的分配成本数据。这些分配成本数据是和多个倒装片焊点相关联的。而每个倒装片驱动器可以和这样的多个倒装片焊点可构成1对1的逻辑连接。然而,这个价值矩阵也可由把这个矩阵实施成多套的具有一个迭代循环功能的功能块来产生。这些功能块是用分配成本数据来填充这样的价值矩阵的。分配成本数据集填充着这个价值矩阵的每个元素。
进一步地依照图5,第三个步骤包含在倒装片驱动器和倒装片焊点之间分配网络分配,以使得网络分配通过执行像Kun-Munkres算法这样的一个分配分配的优化算法来被优化。Kun-Munkres算法可以按照图7中描述的方法来实施。
依照图7,在步骤301中,一个价值矩阵按照图6中所显示的方法形成了,以使得这个矩阵的每个元素代表着分配一个倒装片驱动器到一个倒装片焊点的成本。在步骤303,这个价值矩阵是由成本分配数据集的文件产生和填充。这个价值矩阵更进一步地通过旋转矩阵来修改,以使得那里至少有和行一样多的列,并且让k=min(n,m)。在步骤305中,对于矩阵的每一行,找到最小的元素并且从它所在行的每个元素中减去它。在步骤307,执行步骤305直到所有的行都已经被计算。在步骤309中,在产生的矩阵中寻找一个零(Z)。在步骤311和313,假如在行或列中没有以星号标记的零,那么就用星号标记这个零(Z)。在步骤315,对矩阵中的每个元素都执行同样操作。在步骤317中,把包含有带星号标记的零的每个列都覆盖起来。在步骤319,如果K个列被覆盖,带星号标记的零就描述了一组独特的分配。因此在步骤321,分配的对就被它们在价值矩阵中的带星号标记的零的位置指示出来了。如果C(i,j)是一个带星号标记的零,那么如此情形可能是与行i或行j相关联的倒装片驱动器,被分配给如此情形可能是与行i或行j相关联的倒装片焊点。在步骤319,如果比K少的列被覆盖,那么步骤323被执行。在步骤323中,寻找一个未被覆盖的零并且在其右上角以撇号标记它。在步骤325,假如在包含带撇号标记的零所在的行中没有以星号标记的零,那么步骤335就被执行。在步骤335中,通过首先让Z0代表在步骤323中找到的未被覆盖的带撇号的零,构造一系列交替出现的带含撇号标记的零和带星号标记的零。让Z1表示在Z0的列当中的以星号标记的零,让Z2表示在Z1的行当中的以撇号标记的零。迭代地继续这个过程直到这个系列终止在一个以撇号标记的零,而在这个以撇号标记的零所在的列当中没有以星号标记的零。然后,把这个系列中的每个以星号标记的零的星号去掉,把这个系列中的每个以撇号标记的零加上星号标记,抹掉所有的撇号并且把矩阵中的每个行列的覆盖去掉。最后,回到步骤317。依照步骤323,假如依照步骤325在包含着有撇号标记的零的行里面有带星号标记的零,那么覆盖这个行,并且在步骤327,把包含有带星号标记的零的列的覆盖去掉。在步骤329,迭代地继续这个过程直到没有未被覆盖的零剩下。在步骤331,保存最小的未被覆盖的值并且执行步骤333。在步骤333中,把找到和存储的值加到每个覆盖的行的每个元素,并且把这个值从每个未覆盖的列的每个元素上减去。不改变任何的星号标记,撇号标记,或者被覆盖的行列,回到步骤323。
在不限制上面所描述之方法的普遍性的情况下,其它的分配分配优化算法也可以被用来优化倒装片驱动器和倒装片焊点之间的网络分配。这样的例子包括任何解决了多项式时间的分配问题的组合的优化算法,原始对偶方法,和其它类似的或者等同的方法。
进一步地依照图5并且相对于步骤109之后导致的价值矩阵,根据Kun-Munkres算法,分配的对是由价值矩阵中的带星号标记的零的位置来指出的。明确地说,假如C(i,j)是一个带星号标记的零,那么与行i相关联的或者是个倒装片驱动器或者是个倒装片焊点的元素,就被分配给与列j相关联的或者是个倒装片驱动器或者是个倒装片焊点的元素。
在此被教的方法被应用来优化在一个半导体芯片的倒装片驱动器单元(焊垫)和倒装片焊点之间的网络分配。这个半导体芯片在其芯片接触面上有金属突起。
图8举例说明了本发明的一个具体实施方式。该图显示了一个传统焊垫设计501,其中金属接触处507和焊垫驱动器电路505在同一个单元。在一个分裂焊垫设计503中,焊垫513和焊垫驱动器509通过金属511连接起来,其中焊垫513和焊垫驱动器509或者是和半导体装置在同一层上,或者是和半导体装置在不同的层。在焊垫和焊垫驱动器之间的网络分配可通过使用在前述描述的方法来进行优化。
图9举例说明了本发明的一个具体实施方式。这个图显示了一个球栅阵列(BGA)装置的一部分。它包括装配在一个基片601上的一个半导体芯片。这个芯片的输入/输出与金属突起603有接触处;这个突起经由RDL 605和通道607把这个芯片接触处609与基片613上的倒装片驱动器611连接起来。这个基片613典型地是用由硅造成的互补型金属氧化物半导体构造而成。然而,举例来说,诸如锗,砷化镓,金刚砂,以及其它的半导体材料也可以被使用。基片更进一步地有从第一层615延伸到第二层617的贯穿孔洞619。这些贯穿孔洞被以金属填充,因此它们是可导电的通道607。和粘付于通道607的金属填充的RDL 605粘付在一起的焊接球603(焊点)提供了与外面部件的连接。在第一层615上的这个倒装片驱动器611和这个倒装片焊点603之间的网络分配可以用在前述具体实施方式中描述的方法来进行优化。这个具体实施方式并不限制于分配倒装片驱动器和倒装片焊点之间的网络。这个具体实施方式可以被用来分配在第一层上的任何半导体驱动器单元和在同一层上的任何其它的半导体装置之间的信号网络。或者这个具体实施方式可以被用来分配在第一层上的任何半导体驱动器单元和任何RDL和焊点之间的信号网络。
图10是一倒装芯片中焊球与驱动器的位置示意图,以下根据本发明的一实施例将图10中四个焊球50、51、52、53分配给四个驱动器60、61、62、63。其中焊球50与驱动器60间为线路长度为1的90°线网关系,焊球51与驱动器61间为线路长度为1的90°线网关系,焊球52与驱动器62间为线路长度为1的90°线网关系,焊球53与驱动器63间为线路长度为1的90°线网关系,四个驱动器60、61、62、63的位置为边长为1的正方形关系。
首先建立一个4×4的成本矩阵,其中该成本矩阵中的各元素为将一焊球连接至一驱动器的线路长度,其表述为该焊球与其相应驱动器间的欧几里德距离(Euclid distance)与曼哈顿距离(Manhattan distance)的和。以焊球50为例,其至驱动器60的欧几里德距离与曼哈顿距离均为1,故其对应元素为2;其至驱动器61的欧几里德距离为1.4,曼哈顿距离为2,故其对应元素为3.4;其至驱动器62的欧几里德距离为2,曼哈顿距离为2,故其对应元素为4;其至驱动器63的欧几里德距离为2.2,曼哈顿距离为3,故其对应元素为5.2。类似的,分别计算出该成本矩阵中的其它元素,得图11中所示的一成本矩阵。
找出该成本矩阵中各行的最小元素且自其所在行的各元素减去该最小元素得图12中的结果矩阵。
自该结果矩阵中找一零值,如第一行第一列的零值,其所在行或列中没有一第一标识零,则将该零值标记为第一标识零,如星号零。如此反复,直至所有零值都被找出,此时结果矩阵如图13所示。
如图14所示,以一第二标识标记包含该第一标识零的列,如△。经检查该结果矩阵中包含该被△标记的列达到4列,表明分配结束。其中第一行第一列的星号零表示将焊球50分配给分配器60,第二行第二列的星号零表示将焊球51分配给分配器61,第三行第三列的星号零表示将焊球52分配给分配器62,第四行第四列的星号零表示将焊球53分配给分配器63。由该分配结果可以看出,本发明的分配方法使所有的驱动器与其相应的焊球间具有最小距离,避免飞线交叉问题。同时,在线网分配时,还给线路较短的0°或90°线网较线路较长的45°线网更高的优先权,使整体的线路都较短。
如图15所示,对应本发明的线网分配方法,本发明还提供一线网分配装置2。该线网分配装置2包含一成本矩阵构建单元20、一结果矩阵构建单元21、一分配单元22,及一分配结构检查单元23。
图16-29给出了本发明的线网分配方法的另一实施例,其是将三个焊球p、q、r分别分配给三个驱动器a、b、c。
首先如图16所示,成本矩阵构建单元20根据该三个焊球p、q、r与三个驱动器a、b、c的位置关系建立一成本矩阵。
接着如图17所示,由该结果矩阵构建单元21找出该成本矩阵的每一行中的最小元素,且自其所在行的各元素减去该最小元素得一结果矩阵。
分配单元22找出该结果矩阵中的所有零值并进行相应处理。先自该结果矩阵中找一零值,如ap(代表a行p列,下同)位置对应的零值。由于该零值所在行或列中没有一第一标识零,则将该零值标记为第一标识零,如星号零。对该零值,接着找出其它的零值,由于该两零值所在列已有一星号零,故不作任何处理。此时的结果矩阵如图18所示。
在图19中分配单元22以一第二标识,如划线,标记包含该第一标识零的列,并通知分配结果检查单元23检查是否分配结束。分配结果检查单元23检查发现该结果矩阵中只有一列被第二标识标记的列,于是通知分配单元22继续进行分配。
分配单元22在未被第二标识标记的行或列中没有发现一零值,于是找出所有未被第二标识标记的行或列中的最小值,即aq位置的1,并从q、r列中各元素减去1,得图20所示的结果矩阵。接着如图21所示,分配单元22在未被第二标识标记的行或列中找一零值,如aq位置的零值,以一第三标识,如撇号,将该零值标记为撇号零,由于其所在行有星号零,故以划线方式标记该包含撇号零的行,并去掉包含该星号零的列的划线。接着检查发现bp位置的零值,标为撇号零。由于该撇号零所在行没有星号零,故进入选择星号零与撇号零的操作。
依构建规则依次选择星号零与撇号零,其中:bp位置的零值为Z0,ap位置的零值为Z1,aq位置的零值为Z2。去掉ap位置的星号零的星号,将bp、bq位置的撇号零修改为星号零,并去掉结果矩阵中a行的划线,然后返回通知分配结果检查单元23检查是否分配完成。如图22所示,分配结果检查单元23以划线标记方式进行检查,发现该结果矩阵中只有两列被划线的列,于是通知分配单元22继续进行分配。
如图23所示,由于分配单元22在未划线的行或列中没有发现一零值,于是找出所有未被第二标识标记的行或列中的最小值,即ar位置的1,并从r列中各元素减去1。如图24所示,找出ar位置的零值,标记为撇号零,由于其所在行有星号零,故以划线方式标记该包含撇号零的行,并去掉包含该星号零的q列的划线。由于未被划线的零值都被处理,因而找出所有未被划线的行或列中的最小值,即1,将其加至各划线的行的各元素,然后自未被划线的列中的各元素减去1,得图25中的结果矩阵。接着由分配单元22检查在未划线的行或列中是否能发现一零值,并进行相应处理最终得到图26中的结果矩阵。
依构建规则依次选择图26中的星号零与撇号零,其中:cp位置的零值为Z0,bp位置的零值为Z1,bq位置的零值为Z2,aq位置的零值为Z3。去掉ap位置的星号零的星号,将bp、bq位置的撇号零修改为星号零,并去掉结果矩阵中a行的划线,从而得到图27中的结果矩阵。
然后分配单元22通知分配结果检查单元23检查是否分配完成。如图28所示,分配结果检查单元23以划线标记方式进行检查,发现该结果矩阵中有三列被划线的列,表明分配成功结束。其中所有星号零所在的位置描述各驱动器与相应焊球间的唯一分配关系,即焊球r分配给驱动器a,焊球q分配给驱动器b,焊球p分配给驱动器c。
本发明的线网分配方法与装置,通过寻找第一标识零得到相应的两个器件间的唯一分配关系。在用于芯片设计中将焊球分配至相应驱动器时,使分配的焊球与驱动器对间具有最小距离,避免飞线交叉问题;进而提高后续单层布线的布通率。同时,在线网分配时,还会给线路较短的0°或90°线网较线路较长的45°线网更高的优先权,使整体的线路都较短;具有全局优化的优点。
本发明的技术内容及技术特点已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰。因此,本发明的保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (29)
1.一种线网分配方法,将m个焊球分配给n个驱动器,且包含如下步骤:
建立一成本矩阵,该成本矩阵中的各元素为将该m个焊球中每一个分别连接至该n个驱动器的线路长度;
找出该成本矩阵中每一行的最小元素,由其所在行的各元素中减去该最小元素得一结果矩阵;
找出该结果矩阵中每一个零值,如该零值所在行包含一第一标识零则对该零值不作处理,否则将该零值标识为第一标识零;
检查该结果矩阵中包含该第一标识零的列是否达到n列,如达到则分配结束;否则对该结果矩阵继续进行处理,直到其包含该第一标识零的列达到n列。
2.根据权利要求1所述的线网分配方法,其中该线路长度是一焊球与一驱动器间的欧几里德距离与曼哈顿距离的和。
3.根据权利要求1所述的线网分配方法,其中该对该结果矩阵继续进行处理,直到其包含该第一标识零的列达到n列的步骤进一步包含:
步骤a:以一第二标识标记包含该第一标识零的列;
步骤b:检查未被第二标识标记的行或列中是否有一零值:如有,在步骤c以一第三标识将该零值标记为第三标识零;如无,则在步骤d找出所有未被该第二标识标记的行或列中的最小值,并将其从各未被第二标识标记的列中的各元素减去,然后返回步骤b。
4.根据权利要求3所述的线网分配方法,其在该步骤c之后进一步包含:
检查该第三标识零所在的行有没有包含第一标识零,如没有则在步骤e依一构建规则选择出第一标识零与第三标识零;否则在步骤f以该第二标识标记该包含第三标识零的行,并去掉包含该第一标识零的列的第二标识。
5.根据权利要求4所述的线网分配方法,其在步骤f之后进一步包含步骤h,检查未被第二标识标记的行或列中是否还有一零值,如有则继续步骤c,否则执行步骤g找出未被第二标识标记的行或列中的最小值,将其加至被第二标识标记的各行的各元素,然后将其自未被第二标识标记的各列的各元素中减去,并返回步骤b。
6.根据权利要求4所述的线网分配方法,其中该构建规则是:
Z0代表步骤c中发现的所在行中没有第一标识零的第三标识零,Z1代表Z0所在列中的第一标识零,Z2表示Z1所在行中的第三标识零;继续该构建规则直到一第三标识零所在列没有第一标识零时终止。
7.根据权利要求6所述的线网分配方法,其中在步骤e之后去掉依该构建规则选择出的第一标识零的第一标识,将各第三标识零修改为第一标识零,并去掉该结果矩阵中所有由第二标识标记的各行或列;然后返回该检查该结果矩阵中包含该第一标识零的列是否达到n列的步骤。
8.根据权利要求1所述的线网分配方法,其中分配结束时该第一标记零所在的位置描述该n个驱动器与m个焊球间的唯一分配关系。
9.根据权利要求1-8之一所述的线网分配方法,其中n≤m。
10.一种线网分配方法,包含:
(a)为了从至少两个起点中的每一个到至少两个终点中的每一个的路径分配成本而生成一个路径分配成本数据集;
(b)生成许多列等于这些至少两个起点和许多行等于这些至少两个终点的一个价值矩阵;
(c)分配该路径分配成本数据集到该价值矩阵的每个元素,以使得从一个起点到一个终点的该路径分配成本被分配到由被该起点识别的一列和被该终点识别的一行所定义的一个元素;以及
(d)通过对该价值矩阵执行一个连接路径分配优化算法来决定一个最低成本连接路径。
11.根据权利要求10所述的线网分配方法,其中这些至少两个起点和这些至少两个终点是VLSI设计中的信号网络。
12.根据权利要求11所述的线网分配方法,其中该路径分配成本数据集通过把从这些至少两个起点中的每一个到这些至少两个终点中的每一个的一个欧几里德距离加上从这些至少两个起点中的每一个到这些至少两个终点中的每一个的一个曼哈顿距离来生成。
13.根据权利要求12所述的线网分配方法,其中旋转该价值矩阵以使得有至少和行一样多的列。
14.根据权利要求13所述的线网分配方法,其中该连接路径分配优化算法是一个Kun-Munkres算法。
15.根据权利要求14所述的线网分配方法,其中这些至少两个起点中的每一个是一个焊垫单元并且这些至少两个终点中的每一个是一个焊垫驱动器单元。
16.一个电子装置包含:
(a)在芯片接触处上有金属突起的一个半导体芯片;
(b)具有被周边区域围绕的一个中心区域的一个绝缘的基片,该基片有一个第一表面和一个第二表面并且一个形成图案的金属层从该第一表面延伸至该第二表面并且填充该中心区域;
(c)具有一个第一表面和一个第二表面的一个装置基片,该装置基片另包含从该装置基片的该第一表面延伸到该第二表面的有传导性的通道,这些有传导性的通道从在该装置基片的该第一表面上的至少两个起始接触点连接到在该装置基片的该第二表面上的至少两个终止接触点,其中从在该装置基片的该第一表面上的这些至少两个起始接触点到在该装置基片的该第二表面上的这些至少两个终止接触点的一个连接路径由这些步骤决定,这些步骤包含:
(i)为了从这些至少两个起始接触点中的每一个到这些至少两个终止接触点中的每一个的路径分配成本而生成一个路径分配成本数据集;
(ii)生成许多列等于这些至少两个起始接触点和许多行等于这些至少两个终止接触点的一个价值矩阵;
(iii)分配该路径分配成本数据集到该价值矩阵的每个元素,以使得从一个起始接触点到一个终止接触点的该路径分配成本被分配到由该起始接触点的一列和该终止接触点的一行所定义的一个元素;以及
(iv)通过使用一个连接路径分配优化算法来决定一个最低成本连接路径;以及
(d)通过把在芯片接触处上的这些金属突起连接到在该绝缘的基片的该第一表面上的这个形成图案的金属层和把在该绝缘的基片的该第二表面上的这个形成图案的金属层连接到从该装置基片的该第一表面延伸到该装置基片的该第二表面的这些有传导性的通道,在芯片接触处上的这些金属突起被连接到在该装置基片的该第二表面上的这些至少两个起始接触点,其中这些有传导性的通道把在该装置基片的该第一表面上的这些至少两个起始接触点连接到在该装置基片的该第二表面上的这些至少两个终止接触点。
17.根据权利要求16所述的电子装置,其中从在该装置基片的该第一表面上的这些至少两个起始接触点到在该装置基片的该第二表面上的这些至少两个终止接触点的该连接路径由这些步骤决定,这些步骤另包含通过把从这些至少两个起始接触点中的每一个到这些至少两个终止接触点中的每一个的一个欧几里德距离加上从这些至少两个起始接触点中的每一个到这些至少两个终止接触点中的每一个的一个曼哈顿距离来生成该路径分配成本数据集。
18.根据权利要求17所述的电子装置,其中从在该装置基片的该第一表面上的这些至少两个起始接触点到在该装置基片的该第二表面上的这些至少两个终止接触点的该连接路径由这些步骤决定,这些步骤另包含旋转该价值矩阵以使得有至少和行一样多的列。
19.根据权利要求18所述的电子装置,其中从在该装置基片的该第一表面上的这些至少两个起始接触点到在该装置基片的该第二表面上的这些至少两个终止接触点的该连接路径由这些步骤决定,这些步骤另包含决定该最低成本连接路径,其中该连接路径分配优化算法是Kun-Munkres算法。
20.根据权利要求19所述的电子装置,其中这些至少两个起始接触点中的每一个是一个焊垫并且这些至少两个终止接触点中的每一个是一个焊垫驱动器。
21.一种线网分配装置,将m个焊球分配给n个驱动器,其包含:
一成本矩阵构建单元,建立一成本矩阵,该成本矩阵中的各元素为将该m个焊球中每一个分别连接至该n个驱动器的线路长度;
一结果矩阵构建单元,找出该成本矩阵中每一行的最小元素,由其所在行的各元素中减去该最小元素得一结果矩阵;
一分配单元,找出该结果矩阵中每一个零值,如该零值所在行包含一第一标识零则对该零值不作处理,否则将该零值标识为第一标识零;
一分配结果检查单元,检查该结果矩阵中包含该第一标识零的列是否达到n列,如达到则分配结束;否则通知该分配单元对该结果矩阵继续进行处理,直到其包含该第一标识零的列达到n列。
22.根据权利要求21所述的线网分配装置,其中该线路长度是一焊球与一驱动器间的欧几里德距离与曼哈顿距离的和。
23.根据权利要求21所述的线网分配装置,其中该分配单元对该结果矩阵继续进行处理,直到其包含该第一标识零的列达到n列时需执行:
以一第二标识标记包含该第一标识零的列;
检查未被第二标识标记的行或列中是否有一零值:如有,以一第三标识将该零值标记为第三标识零;如无,则找出所有未被该第二标识标记的行或列中的最小值,并将其从各未被第二标识标记的列中的各元素减去,然后返回检查未被第二标识标记的行或列中是否有一零值。
24.根据权利要求23所述的线网分配装置,其在以一第三标识将该零值标记为第三标识零之后进一步包含:
检查该第三标识零所在的行有没有包含第一标识零,如没有则依一构建规则选择出第一标识零与第三标识零;否则以该第二标识标记该包含第三标识零的行,并去掉包含该第一标识零的列的第二标识。
25.根据权利要求24所述的线网分配装置,其在以该第二标识标记该包含第三标识零的行,并去掉包含该第一标识零的列的第二标识之后进一步检查未被第二标识标记的行或列中是否还有一零值,如有则继续以一第三标识将该零值标记为第三标识零,否则找出未被第二标识标记的行或列中的最小值,将其加至被第二标识标记的各行的各元素,然后将其自未被第二标识标记的各列的各元素中减去,并返回检查未被第二标识标记的行或列中是否有一零值。
26.根据权利要求24所述的线网分配装置,其中该构建规则是:
Z0代表步骤c中发现的所在行中没有第一标识零的第三标识零,Z1代表Z0所在列中的第一标识零,Z2表示Z1所在行中的第三标识零;继续该构建规则直到一第三标识零所在列没有第一标识零时终止。
27.根据权利要求26所述的线网分配装置,其中在依一构建规则选择出第一标识零与第三标识零之后去掉依该构建规则选择出的第一标识零的第一标识,将各第三标识零修改为第一标识零,并去掉该结果矩阵中所有由第二标识标记的各行或列;然后通知该分配结果检查单元检查该结果矩阵中包含该第一标识零的列是否达到n列。
28.根据权利要求21所述的线网分配装置,其中分配结束时该第一标记零所在的位置描述该n个驱动器与m个焊球间的唯一分配关系。
29.根据权利要求21-28之一所述的线网分配装置,其中n≤m。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910209634.7A CN102054068B (zh) | 2009-10-30 | 2009-10-30 | 芯片设计中的线网分配方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910209634.7A CN102054068B (zh) | 2009-10-30 | 2009-10-30 | 芯片设计中的线网分配方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102054068A true CN102054068A (zh) | 2011-05-11 |
CN102054068B CN102054068B (zh) | 2014-06-18 |
Family
ID=43958388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910209634.7A Active CN102054068B (zh) | 2009-10-30 | 2009-10-30 | 芯片设计中的线网分配方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102054068B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116070575A (zh) * | 2023-01-12 | 2023-05-05 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
CN117933179A (zh) * | 2024-01-26 | 2024-04-26 | 上海合见工业软件集团有限公司 | 一种最短飞线路径的获取方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020147958A1 (en) * | 2000-12-07 | 2002-10-10 | Steven Teig | Method and apparatus for adaptively selecting the wiring model for a design region |
CN1529864A (zh) * | 2000-12-06 | 2004-09-15 | ���ܿ���ϵͳ����˾ | 在布局中考虑到斜布线的方法和装置 |
CN1862546A (zh) * | 2006-06-15 | 2006-11-15 | 清华大学 | 一个快速的集成电路可布性分析方法 |
CN101430724A (zh) * | 2007-11-09 | 2009-05-13 | 英业达股份有限公司 | 布线可行性评估方法 |
CN101533419A (zh) * | 2008-03-11 | 2009-09-16 | 英业达股份有限公司 | 布线路径的显示方法及其电脑可读取的记录媒体 |
-
2009
- 2009-10-30 CN CN200910209634.7A patent/CN102054068B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529864A (zh) * | 2000-12-06 | 2004-09-15 | ���ܿ���ϵͳ����˾ | 在布局中考虑到斜布线的方法和装置 |
US20020147958A1 (en) * | 2000-12-07 | 2002-10-10 | Steven Teig | Method and apparatus for adaptively selecting the wiring model for a design region |
CN1862546A (zh) * | 2006-06-15 | 2006-11-15 | 清华大学 | 一个快速的集成电路可布性分析方法 |
CN101430724A (zh) * | 2007-11-09 | 2009-05-13 | 英业达股份有限公司 | 布线可行性评估方法 |
CN101533419A (zh) * | 2008-03-11 | 2009-09-16 | 英业达股份有限公司 | 布线路径的显示方法及其电脑可读取的记录媒体 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116070575A (zh) * | 2023-01-12 | 2023-05-05 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
CN116070575B (zh) * | 2023-01-12 | 2023-08-15 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
CN117933179A (zh) * | 2024-01-26 | 2024-04-26 | 上海合见工业软件集团有限公司 | 一种最短飞线路径的获取方法、电子设备及存储介质 |
CN117933179B (zh) * | 2024-01-26 | 2024-09-20 | 上海合见工业软件集团有限公司 | 一种最短飞线路径的获取方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102054068B (zh) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10910344B2 (en) | Systems and methods for releveled bump planes for chiplets | |
CN103219325B (zh) | 多维集成电路结构及其形成方法 | |
US9773726B2 (en) | Three-dimensional integrated circuit integration | |
US10503402B2 (en) | Architecture and implementation of cortical system, and fabricating an architecture using 3D wafer scale integration | |
CN102024083A (zh) | 一种提取含有冗余金属的互连结构的电容的方法 | |
US20100218151A1 (en) | Wiring design method for wiring board | |
WO2012082092A1 (en) | Inter-die connection within an integrated circuit formed of a stack of circuit dies | |
CN102054068A (zh) | 芯片设计中的线网分配方法与装置 | |
WO2001048553A1 (en) | A method for maximizing integrated circuit die production | |
CN104766806A (zh) | 晶圆三维集成的方法 | |
CN114330212A (zh) | 芯片管脚的排布方法、装置、计算机设备及存储介质 | |
US20180032660A1 (en) | Redistribution Layer Routing for Integrated Fan-Out Wafer-Level Chip-Scale Packages | |
US8513815B2 (en) | Implementing integrated circuit mixed double density and high performance wire structure | |
US10296698B2 (en) | Forming multi-sized through-silicon-via (TSV) structures | |
US6374398B1 (en) | Efficient database for die-per-wafer computations | |
Liu et al. | Integrated algorithm for 3-D IC through-silicon via assignment | |
US7208350B2 (en) | Method and device for producing layout patterns of a semiconductor device having an even wafer surface | |
TWI519982B (zh) | Method and device for network distribution in wafer design | |
CN103116663A (zh) | 填充冗余金属的方法及冗余金属填充模式查找表建立方法 | |
CN104766828A (zh) | 晶圆三维集成的方法 | |
CN113506790B (zh) | 一种芯片及其制备方法、电子设备 | |
WO2018063197A1 (en) | Interconnector with bundled interconnects | |
CN117521589A (zh) | 芯片中的走线处理方法、装置、处理设备及存储介质 | |
CN109791923A (zh) | 用于减小应力的圆化的金属迹线拐角 | |
CN108763706A (zh) | 一种用于单向设计的切口再分配和dsa模板分配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |