CN113283209B - 互连线设计方法及装置、芯片、电子设备和计算机可读存储介质 - Google Patents

互连线设计方法及装置、芯片、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN113283209B
CN113283209B CN202110563438.0A CN202110563438A CN113283209B CN 113283209 B CN113283209 B CN 113283209B CN 202110563438 A CN202110563438 A CN 202110563438A CN 113283209 B CN113283209 B CN 113283209B
Authority
CN
China
Prior art keywords
grid
terminals
terminal
group
winding
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
Application number
CN202110563438.0A
Other languages
English (en)
Other versions
CN113283209A (zh
Inventor
姜泽雄
陈建龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110563438.0A priority Critical patent/CN113283209B/zh
Publication of CN113283209A publication Critical patent/CN113283209A/zh
Application granted granted Critical
Publication of CN113283209B publication Critical patent/CN113283209B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种互连线设计方法、互连线设计装置、芯片、电子设备和计算机可读存储介质。该互连线设计方法包括:确定待设计的布线层中需要互连线的至少一组端子以及至少一组端子的连线区域,其中,布线层包括多个功能模块,连线区域在多个功能模块之间,至少一组端子中的每一组端子包括分别属于不同模块的多个端子;采用扩散遍历法在连线区域内依次确定至少一组端子中每一组端子的互连线;以及检验至少一组端子的互连线是否满足要求。该互连线设计方法可以应用于例如芯片的布线层的互连线设计,提高设计效率、优化走线布局并降低时间和人力成本。

Description

互连线设计方法及装置、芯片、电子设备和计算机可读存储 介质
技术领域
本公开的实施例涉及一种互连线设计方法、互连线设计装置、芯片、电子设备和计算机可读存储介质。
背景技术
在集成电路的后端设计中,大型芯片通常采用层次化的设计方法,将芯片划分为若干个模块。随着芯片规模越来越大,芯片顶层划分模块越来越多,模块之间的互连总线也越来越多。为了满足芯片的高性能的要求,如何高效的规划顶层互连走线,寻找最佳路径,直接影响芯片实现的迭代时间,如果规划不合理,会占用大量绕线资源,增加芯片的面积和成本。
发明内容
本公开至少一实施例提供一种互连线设计方法,包括:确定待设计的布线层中需要互连线的至少一组端子以及所述至少一组端子的连线区域,其中,所述布线层包括多个功能模块,所述连线区域在所述多个功能模块之间,所述至少一组端子中的每一组端子包括分别属于不同模块的多个端子;采用扩散遍历法在所述连线区域内依次确定所述至少一组端子中每一组端子的互连线;以及检验所述至少一组端子的互连线是否满足要求。
例如,在本公开至少一实施例提供的互连线设计方法中,所述至少一组端子包括第一组端子,所述第一组端子包括需要相互连接的第一端子和第二端子;其中,采用扩散遍历法依次确定所述至少一组端子中每一组端子的互连线包括:在所述连线区域构建排布为多行多列的网格;对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),其中,Z1代表在第一方向的绕线资源,Z2代表在第二方向的绕线资源,x和y分别表示每个网格在所述第一方向和所述第二方向的坐标,所述第一方向不同于所述第二方向,若所述网格在所述第一方向为有效绕线网格,则Z1标识为第一有效标识,若所述网格在所述第一方向为无效绕线网格,则Z1标识为第一无效标识,若所述网格在所述第二方向为有效绕线网格,则Z2标识为第二有效标识,若所述网格在所述第二方向为无效绕线网格,则Z2标识为第二无效标识;以及根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第一端子和第二端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,以得到所述第一端子和所述第二端子之间的互连线。
例如,在本公开至少一实施例提供的互连线设计方法中,根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第一端子和第二端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,包括:将所述第一端子所在的网格标记为F0,将与所述第一端子所在的网格相邻的有效绕线网格标记为F1,将与标记为F1的网格相邻的有效绕线网格标记为F2,将标记为F2的网格相邻的有效绕线网格标记为F3,直至将所述第二端子所在的网格标记为FN,N为大于3的正整数;以标记号从小到大的顺序,建立从网格F1到网格FN的连线,作为第一端子和第二端子的互连线。
例如,在本公开至少一实施例提供的互连线设计方法中,在从网格F1到网格FN的连线包括多种连线的情况下,按照最短路径原则选择靠近所述多行多列的网格中部的连线。
例如,在本公开至少一实施例提供的互连线设计方法中,所述网格在所述第一方向为无效绕线网格,包括:所述网格在所述第一方向被完全占用,或者所述网格在所述第一方向无法进行布线;所述网格在所述第二方向为无效绕线网格,包括:所述网格在所述第二方向被完全占用,或者所述网格在所述第二方向无法进行布线。
例如,在本公开至少一实施例提供的互连线设计方法中,所述第一有效标识包括所述网格在第一方向上的有效走线数量,所述第二有效标识包括所述网格在第二方向上的有效走线数量。
例如,在本公开至少一实施例提供的互连线设计方法中,所述至少一组端子还包括第二组端子,所述第二组端子包括需要相互连接的第三端子和第四端子;采用扩散遍历方式依次确定所述至少一组端子中每一组端子的互连线还包括:对每个网格再次建立绕线资源函数F(x,y)=(Z1,Z2),并根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第三端子和第四端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,以得到所述第三端子和所述第四端子之间的互连线。
例如,在本公开至少一实施例提供的互连线设计方法中,对每个网格再次建立绕线资源函数F(x,y)=(Z1,Z2),并根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第三端子和第四端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,包括:将所述第三端子所在的网格标记为S0,将与所述第三端子所在的网格在第一方向上相邻的且标记为第一有效标识的网格标记为S1,将与所述第三端子所在的网格在第二方向上相邻的且标记为第二有效标识的网格标记为S1,将与标记为S1的网格在第一方向上相邻的且标记为第一有效标识的网格标记为S2,将与标记为S1的网格在第二方向上相邻的且标记为第二有效标识的网格标记为S2,直至将所述第四端子所在的网格标记为SN;以标记号从小到大的顺序,建立从网格S1到网格SN的连线,作为第三端子和第四端子的连接线。
例如,在本公开至少一实施例提供的互连线设计方法中,在从网格S1到网格SN的连线包括多种连线的情况下,按照最短路径原则选择靠近所述多行多列的网格中部的连线。
例如,在本公开至少一实施例提供的互连线设计方法中,所述至少一组端子还包括第K组端子,所述第K组端子包括需要相互连接的第2K-1端子和第2K端子,K为大于2的正整数;其中,采用扩散遍历方式依次确定所述至少一组端子中每一组端子的互连线还包括:再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第五端子和第六端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,以得到所述第五端子和所述第六端子之间的互连线。
例如,在本公开至少一实施例提供的互连线设计方法中,检验所述至少一组端子的互连线是否满足要求,包括:在所述至少一组端子中每一组端子的互连线确定后,再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并检验每个网格的绕线资源函数F(x,y)=(Z1,Z2)是否满足需求。
例如,在本公开至少一实施例提供的互连线设计方法中,若每个网格的绕线资源函数F(x,y)=(Z1,Z2)满足需求,则结束设计;若部分网格的绕线资源函数F(x,y)=(Z1,Z2)不满足需求,则拓宽所述连线区域,在所述部分网格旁边增加网格,以使每个网格的绕线资源函数F(x,y)=(Z1,Z2)满足需求。
本公开至少一实施例还提供一种芯片,该芯片包括多个布线层,所述多个布线层包括第一布线层,所述第一布线层包括多个功能模块,所述多个功能模块采用本公开实施例提供的互连线设计方法进行设计并连线。
本公开至少一实施例还提供一种电子设备,该电子设备包括处理器和存储器,其中,所述存储器上存储有计算机可执行程序,所述计算机可执行程序被所述处理器执行时,实现上述任一项所述的互连线设计方法。
本公开至少一实施例还提供一种计算机可读存储介质,所述存储介质内存储有计算机可执行程序,所述计算机可执行程序被处理器执行时,实现上述任一项所述的互连线设计方法。
本公开至少一实施例还提供一种互连线设计装置,用于对待设计的布线层进行互连线设计,其中,所述互连线设计装置包括第一确定单元、第二确定单元和检验单元;第一确定单元配置为确定所述待设计的布线层中需要互连线的至少一组端子以及所述至少一组端子的连线区域,其中,所述布线层包括多个功能模块,所述连线区域在所述多个功能模块之间,所述至少一组端子中的每一组端子包括分别属于不同模块的多个端子;第二确定单元配置为采用扩散遍历法在所述连线区域内依次确定所述至少一组端子中每一组端子的互连线;以及检验单元配置为检验所述至少一组端子的互连线是否满足要求。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一实施例提供的互连线设计方法的流程图;
图2为本公开至少一实施例提供的待设计的布线层的示意图;
图3为本公开至少一实施例提供的待设计的布线层的另一示意图;
图4为本公开至少一实施例提供的待设计的布线层中连线区域的示意图;
图5为本公开至少一实施例提供的在连线区域中构建网格的示意图;
图6为本公开至少一实施例提供的在网格中实现第一端口与第二端口的互连线的示意图;
图7A和图7B为本公开至少一实施例提供的网格在第一端口与第二端口互连线后的绕线资源分别在第一方向和第二方向的示意图;
图8为本公开至少一实施例提供的待设计的布线层中多组端子的互连线的示意图;
图9A和图9B为本公开至少一实施例提供的网格在多组端子互连线后的绕线资源分别在第一方向和第二方向的示意图;
图10为本公开至少一实施例提供的芯片的示意图;
图11为本公开至少一实施例提供的一种电子设备的示意性框图;
图12为本公开至少一实施例提供的一种计算机可读存储介质的示意图;以及
图13为本公开至少一实施例提供的一种互连线设计装置的框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在规划芯片布线层(例如顶层)互连走线的过程中,技术人员通常通过手动规划走线,在规划完成后再检查时序和拥塞,判断走线是否合理,绕线资源是否足够。然而,这种方式需要经过多轮迭代,才能完成评估,迭代时间长且规划结果也不够优化。
例如,在一种实施方式中,技术人员通常采用如下的步骤进行走线规划:
步骤一:梳理待规划的布线层中需要互连线的模块和数目,并初步根据互连线要求的性能和当前工艺下单位尺寸(例如一微米)内允许的走线数目,确定绕线规则,然后按照绕线规则,梳理模块之间的可以走线的区域(以下称为沟道)的绕线需求。
步骤二:梳理每个模块的连接触点,根据走线距离最短原则,规划互连线的大概走向,并根据每个沟道允许的走线数目,初步分配绕线资源。
步骤三:按照上述规划的互连线,通过手动或者脚本加绕线指引,完成互连线的初步估算资源。
步骤四:按照互连线的初步规划,完成互连线,并进行时序分析。
在上述规划过程中,如果出现互连线拥塞问题(即绕线资源不足)或者时序问题,需要返回重新检查互连线的规划是否有问题,或者是绕线资源分配有问题,并重新规划正确的互连线以及分配合理的绕线资源。
可见,在上面的实施方式中,通过手动或者脚本规划互连线和分配绕线,效率低下;并且,在互连线时序有问题时,需要等互连线完成后分析时序时才会发现,迭代时间会比较长;另外,在绕线资源分配不合理时,也需要等互连线完成后分析拥塞情况后才会发现。由此导致互连线的设计时间长,浪费人力,且设计效果不佳。
本公开的实施例提供一种互连线设计方法以及芯片,该互连线设计方法包括:确定待设计的布线层中需要互连线的至少一组端子以及至少一组端子的连线区域,其中,布线层包括多个功能模块,连线区域在多个功能模块之间,至少一组端子中的每一组端子包括分别属于不同模块的多个端子;采用扩散遍历法在连线区域内依次确定至少一组端子中每一组端子的互连线;以及检验至少一组端子的互连线是否满足要求。该互连线设计方法可以应用于高性能布线层(例如芯片顶层)的互连线设计,提高设计效率、优化走线布局并降低时间和人力成本。
下面,通过几个具体的示例来详细介绍本公开实施例提供的互连线设计方法以及芯片。
本公开至少一实施例提供一种互连线设计方法,如图1所示,该互连线设计方法包括步骤S101-步骤S103。
步骤S101:确定待设计的布线层中需要互连线的至少一组端子以及该至少一组端子的连线区域。
例如,待设计的布线层包括多个功能模块,连线区域在多个功能模块之间。例如,在一些实施例中,每个功能模块包括驱动电路以及将驱动电路与其他电路电连接的连接接口(即端子);或者,在另一些实施例中,每个功能模块包括芯片安装区域以及连接接口(即端子),芯片安装区域可以用于安装芯片,连接接口用于将安装的芯片与其他电路电连接,以实现预定的功能。
例如,图2示出了一种示例性的待设计的布线层,如图2所示,该待设计的布线层10包括多个功能模块M1-M10,连线区域在多个功能模块M1-M10之间,该连线区域为多个功能模块M1-M10之间能够连续走线的区域,该区域不包括该待设计的布线层中设置有功能模块的区域以及其他无法布线的区域。例如,在一些实施例中,如图3所示,该连线区域为不规则形状,图中示出为连线区域20。
例如,至少一组端子中的每一组端子包括分别属于不同模块的多个端子,每一组端子需要进行互连线,以实现模块间的电连接,以用于实现数据、信号、电力的传输。
例如,在图2示出的示例中,多个功能模块M1-M10分别具有端子A1-E2。例如,功能模块M1与功能模块M2分别具有需要相互连接的端子A1和A2,以实现功能模块M1与功能模块M2的电连接;功能模块M3与功能模块M4分别具有需要相互连接的端子B1和B2,以实现功能模块M3与功能模块M4的电连接;功能模块M5与功能模块M6分别具有需要相互连接的端子C1和C2,以实现功能模块M5与功能模块M6的电连接;功能模块M7与功能模块M8分别具有需要相互连接的端子D1和D2,以实现功能模块M7与功能模块M8的电连接;功能模块M9与功能模块M10分别具有需要相互连接的端子E1和E2,以实现功能模块M9与功能模块M10的电连接。
例如,确定待设计的布线层中需要互连线的至少一组端子可以包括确定该至少一组端子中每一组端子的位置以及需要互连接的走线数目等信息。
步骤S102:采用扩散遍历法在连线区域内依次确定至少一组端子中每一组端子的互连线。
例如,本公开的实施例中,扩散遍历法指的是通过走线路径扩散的方式确定至少一组端子中每一组端子的所有可行的布线路线,并在所有可行的布线路线中选择满足规则的路线,例如满足布线最短原则、资源充足原则等规则的路线,以优化布线设计。
例如,在一些实施例中,如图2和图3所示,至少一组端子包括第一组端子A,第一组端子A包括需要相互连接的第一端子A1和第二端子A1,如上所述,第一端子A1和第二端子A1分别属于功能模块M1和M2,从而通过第一端子A1和第二端子A1的互连线,可实现功能模块M1和M2的电连接。
例如,可以首先确定第一组端子A的互连线。如图4所示,以连线区域20为设计范围,采用扩散遍历法依次确定至少一组端子中每一组端子的互连线包括:在连线区域20内构建排布为多行多列的网格30,如图5所示;对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),Z1代表在第一方向的绕线资源(例如是否可以走线或者可以走多少线),Z2代表在第二方向的绕线资源,x和y分别表示每个网格在第一方向和第二方向的坐标,第一方向不同于第二方向,例如第一方向垂直于第二方向(例如其中一个X轴方向而另一个为Y轴方向);若网格在第一方向为有效绕线网格,则Z1标识为第一有效标识,若网格在第一方向为无效绕线网格,则Z1标识为第一无效标识,若网格在所述第二方向为有效绕线网格,则Z2标识为第二有效标识,若网格在所述第二方向为无效绕线网格,则Z2标识为第二无效标识;然后,根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第一端子和第二端子在第一方向或者第二方向上依次通过网格进行连接扩展,以得到第一端子A1和第二端子A2之间的互连线。
例如,在一些实施例中,如图5所示,每个网格的形状可以为多边形,例如长方形或者正方形(图中示出的情况)等。例如,当网格的形状为正方形时,每个网格在第一方向和第二方向允许的走线数量相同,例如,每个网格的宽度可以根据布线层的尺寸、需要互连接的端子之间需要连线的数量以及工艺的需求而定,例如,在一些示例中,每个网格的宽度可以为1微米-6微米之间。例如,当网格的形状为长方形时,每个网格在第一方向和第二方向允许的走线数量不同,具体可以根据模块的位置以及模块之间需要连线的走线数量而定。本公开的实施例对网格的具体形式不做限定。
例如,在一些实施例中,网格在第一方向为无效绕线网格包括:网格在第一方向被完全占用,例如该网格内已走线,且不再具有绕线资源,或者网格在第一方向无法进行布线,例如图3中的无效区域31,该区域内具有其他结构或者由于其他原因而无法进行布线。类似地,网格在第二方向为无效绕线网格包括:网格在第二方向被完全占用,或者网格在第二方向无法进行布线。
例如,在一些实施例中,第一有效标识包括网格在第一方向上的有效走线数量,即在第一方向上还可以进行走线的数量;第二有效标识包括网格在第二方向上的有效走线数量,即在第二方向上还可以进行走线的数量;从而清楚显示每个网格在不同方向的绕线资源。
例如,在一些示例中,由于网格在第一方向和第二方向分别具有绕线资源,在设计时,网格在第一方向的绕线资源函数和网格在第二方向的绕线资源函数可以分别进行考虑,例如Z1=f1(x,y)、Z2=f2(x,y)。例如,网格在第一方向被完全占用的情况下,Z1标识为0,网格在第一方向无法进行布线的情况下,Z1标识为-1;类似地,网格在第二方向被完全占用的情况下,Z2标识为0,网格在第二方向无法进行布线的情况下,Z2标识为-1。例如,在一些示例中,网格在第一方向的绕线资源Z1最多为90,此时,在网格在第一方向没有被占用的情况下,第一有效标识可以为90,若网格在第一方向被部分占用,例如被占用40,此时剩余的绕线资源为50,则第一有效标识可以为50;类似地,网格在第二方向的绕线资源Z2最多为90,此时,在网格在第二方向没有被占用的情况下,第一有效标识可以为90,若网格在第二方向被部分占用,例如被占用40,此时第二有效标识可以为50。
例如,由于连接第一组端子A时,连线区域20内的具有绕线资源的各个网格均没有被占用,此时,该各个网格在第一方向和第二方向均具有充足的绕线资源,例如Z1和Z2均表示为90,此时,根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第一端子和第二端子在第一方向或者第二方向上依次通过网格进行连接扩展可以包括:如图5所示,将第一端子A1所在的网格标记为0,将与第一端子所在的网格相邻的有效绕线网格标记为1,将与标记为1的网格相邻的有效绕线网格标记为2,将标记为2的网格相邻的有效绕线网格标记为3…直至将第二端子A2所在的网格标记为N(N为大于3的正整数),图中示出为37;然后以标记号从小到大的顺序,建立从网格1到网格N的连线,作为第一端子A1和第二端子A2的互连线。
例如,在具体实施时,可以先判断第一端子A1(即连线起点)位置是否为有效绕线网格,如果是,则该起点标记为0,然后往外扩散,判断与标记为0的格子相邻的每个格子,如果某个相邻的格子是有效绕线网格,则将该相邻格子标记为1,以此类推,1往外的有效格子都标记为2…当往外扩散的格子前沿碰到第二端子A2(即连线终点)时,扩散结束。按照0、1、2…的路径从起点到终点连线,就是一条有效的绕线路径。例如,如果从起点往外扩散的所有网格在碰到连线终点前,这些网格的所有相邻的格子都是无效绕线格子,则说明从连线起点到连线终点没有有效绕线路径。
例如,由上述扩散遍历法得到的从网格1到网格N的连线包括多种连线时,可以按照最短路径原则选择靠近多行多列的网格中部的连线,例如选择为图6中示出的连线。
例如,在一些实施例中,如图2和图3所示,至少一组端子还包括第二组端子B,第二组端子B包括需要相互连接的第三端子B1和第四端子B2,第三端子B1和第四端子B2分别属于功能模块M3和M4,因此在第三端子B1和第四端子B2互连线后,功能模块M3和M4电连接。
此时,在布线层中已经设计了至少一组端子的互连线后,采用扩散遍历方式依次确定至少一组端子中每一组端子的互连线包括:如图7A和图7B所示,对每个网格再次建立绕线资源函数F(x,y)=(Z1,Z2),图7A示出的是在第一方向(水平方向)的绕线资源,图7B示出的是在第二方向(竖直方向)的绕线资源。另外,为示出清楚且简洁,图中仅示出第一端子A1和第二端子A2之间的互连线旁边的绕线资源,由于其他部分的绕线资源均未被占用,因此其他部分的网格的绕线资源均为90,图中对此未示出。
例如,在上述示例中,第一端子A1和第二端子A2的互连线需要占用两个网格的绕线资源,因此在图7A中,水平方向延伸的走线部分占用了两行网格在第一方向的绕线资源,因此水平方向延伸的走线的上下两侧网格被标记为0,表明该网格在第一方向的绕线资源被完全占用,成为在第一方向的无效绕线网格;另外,竖直方向延伸的走线部分占用了两列网格在第二方向的绕线资源,而没有占用该两列网格在水平方向的绕线资源,因此在图7A中,竖直方向延伸的走线部分的左右两侧网格被标记为90,表明该网格在第一方向的绕线资源没被占用,仍然为在第一方向的有效绕线网格。
类似地,在图7B中,竖直方向延伸的走线部分占用了两列网格在第二方向(竖直方向)的绕线资源,因此竖直方向延伸的走线的左右两侧网格被标记为0,表明该网格在第二方向的绕线资源被完全占用,成为在第二方向的无效绕线网格;另外,水平方向延伸的走线部分占用了两行网格在第一方向的绕线资源,而没有占用该两行网格在竖直方向的绕线资源,因此在图7B中,水平方向延伸的走线部分的上下两侧网格被标记为90,表明该网格在第二方向的绕线资源没被占用,仍然为在第二方向的有效绕线网格。
然后,根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第三端子B1和第四端子B2在第一方向或者第二方向上依次通过网格进行连接扩展,以得到第三端子B1和第四端子B2之间的互连线。
例如,如图7A和图7B所示,将第三端子B1所在的网格标记为0,结合第一方向和第二方向的绕线资源,将与第三端子B1所在的网格在第一方向上相邻的且标记为第一有效标识的网格标记为1,将与第三端子B1所在的网格在第二方向上相邻的且标记为第二有效标识的网格标记为1,将与标记为1的网格在第一方向上相邻的且标记为第一有效标识的网格标记为2,将与标记为1的网格在第二方向上相邻的且标记为第二有效标识的网格标记为2,直至将第四端子B4所在的网格标记为N(此处N为大于2的正整数),图中示出为28;结合图7A和图7B,以标记号从小到大的顺序,建立从网格1到网格N的连线,作为第三端子B1和第四端子B2的连接线。
例如,由上述扩散遍历法得到的从网格1到网格N的连线包括多种连线,此时,按照最短路径原则选择靠近多行多列的网格中部的连线,例如最终获得第三端子B1和第四端子B2之间的互连线如图8所示。
例如,在一些实施例中,至少一组端子还包括第K组端子,第K组端子包括需要相互连接的第2K-1端子和第2K端子,K为大于2的正整数;其中,采用扩散遍历方式依次确定至少一组端子中每一组端子的互连线还包括:再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第五端子和第六端子在第一方向或者第二方向上依次通过网格进行连接扩展,以得到第五端子和第六端子之间的互连线。
例如,如图2和图3所示,至少一组端子还包括第三组端子C,此时,K=3,第三组端子包括需要相互连接的第五端子C1和第六端子C2;此时,采用扩散遍历方式依次确定至少一组端子中每一组端子的互连线还包括:再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第五端子C1和第六端子C2在第一方向或者第二方向上依次通过网格进行连接扩展,以得到第五端子C1和第六端子C2之间的互连线。第五端子C1和第六端子C2之间的具体连接方式可以参照上述第三端子B1和第四端子B2互连接的扩散遍历法,在此不再赘述。
例如,在图2和图3的示例中,至少一组端子还包括第四组端子D和第五组端子E,此时,K=4和5,第四组端子D包括需要互连接的第七端子D1和第八端子D2,第五组端子E包括互连接的第九端子E1和第十端子E2。例如,采用上述扩散遍历法依次连接第四组端子D和第五组端子E,最终获得如图8所示的互连线设计。
例如,在其他实施例中,至少一组端子还可以包括第六组端子、第七组端子等更多组端子,即K还可以为大于5的其他正整数,此时,这些端子均可以采用上述方法进行互连接,在此不再赘述。
例如,在上述实施例中,每组端子都能找到有效的绕线路径,则表明连线区域20的绕线资源没有拥塞问题。例如,如果有某些端子没能找到有效的绕线路径,则可以拓宽连线区域20的尺寸,以使得每组端子都能找到有效的绕线路径。
步骤S103:检验至少一组端子的互连线是否满足要求。
例如,在至少一组端子中每一组端子的互连线确定后,再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并检验每个网格的绕线资源函数F(x,y)=(Z1,Z2)是否满足需求。
例如,在图2和图3的示例中,在第一组端子A-第五组端子E的互连线依次确定后,再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2)的结果如图9A和图9B所示,图9A示出的是在第一方向(水平方向)的绕线资源,图9B示出的是在第二方向(竖直方向)的绕线资源。
例如,可以结合每组端子之间需要互连线的走线数量、每组端子的互连线占用的网格数量以及每个网格允许的走线数量,再次确认每个网格的绕线资源函数F(x,y)=(Z1,Z2)是否满足需求,例如每个网格允许的走线数量是否充足,是否满足下一步的连线需求,若每个网格的绕线资源函数F(x,y)=(Z1,Z2)均满足需求,则结束设计;若部分网格的绕线资源函数F(x,y)=(Z1,Z2)不满足需求,则可以拓宽连线区域20,在不满足需求的部分网格旁边增加网格,以使每个网格的绕线资源函数F(x,y)=(Z1,Z2)满足需求。例如,拓宽连线区域20可以通过缩小模块尺寸、移动模块位置或者扩大布线层尺寸等方式实现,本公开的实施例对此不作具体限定。
例如,本公开实施例提供的上述互连线设计方法可以由处理器执行计算机可执行指令实现,该计算机可执行指令可以存储于存储介质中。
通过本公开实施例提供的上述互连线设计方法,可以缩短互连线的设计周期、提高工作效率并节约人力。例如,该设计方法可以应用于高性能布线层(例如芯片顶层)的互连线设计,优化走线布局、充分利用布线空间、提高芯片性能并降低芯片成本;并且,通过在设计过程中引入绕线资源函数F(x,y)=(Z1,Z2),可以精确计算连线区域中各个位置,例如每个网格处,的绕线资源,可提前解决走线拥塞问题,避免走线设计完成后才发现走线拥塞问题而导致需要重新设计、浪费时间和人力的问题。
本公开至少一实施例还提供一种芯片,图10示出了该芯片的结构示意图。如图10所示,该芯片包括多个布线层102,多个布线层102包括第一布线层1021,第一布线层1021包括多个功能模块,多个功能模块采用本公开实施例提供的互连线设计方法进行设计并连线。
例如,该芯片还包括基板101,多个布线层102设置在基板101上,第一布线层1021为多个功能层102中与基板101距离最远的布线层。由于芯片中距离基板101最远的顶层布线层往往承载多个模块,结构复杂且配置为实现更多功能,因此采用本公开实施例提供的设计方法设计该顶层布线层可以得到更优化的布线设计,提高芯片研发效率,降低成本。
本公开至少一实施例还提供一种电子设备,图11为该电子设备的示意性框图。如图11所示,该电子设备包括处理器1001和存储器1003,存储器上1003存储有计算机可执行程序,该计算机可执行程序被处理器1001执行时,可实现上述互连线设计方法,本公开实施例提供的互连线设计方法中的一个或多个步骤。
例如,如图11所示,该电子设备还可以包括通信接口1002和通信总线1004,处理器1001、通信接口1002、存储器1003通过通信总线1004实现相互通信,处理器1001、通信接口1002、存储器1003等组件之间也可以通过网络连接进行通信。本公开的实施例对网络的类型和功能在此不作限制。
例如,存储器1003用于非瞬时性地存储计算机可执行程序。处理器1001用于运行计算机可执行程序时,计算机可执行程序被处理器1001运行时实现本公开实施例提供的互连线设计方法中的一个或多个步骤。关于该互连线设计方法的各个步骤的具体实现以及相关解释内容可以参见上述互连线设计方法的实施例,在此不作赘述。
例如,处理器1001执行存储器1003上所存储的程序而实现互连线设计方法的实现方式,与前述互连线设计方法的实施例部分所提及的实现方式相同,这里也不再赘述。
例如,通信总线1004可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
例如,通信接口1002用于实现电子设备与其他设备之间的通信。
例如,处理器1001和存储器1003可以设置在服务器端(或云端)。
例如,处理器1001可以控制电子设备中的其它组件以执行期望的功能。处理器1001可以是中央处理器(CPU)、网络处理器(NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(CPU)可以为X86或ARM架构等。
例如,存储器1003可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可执行指令,处理器1001可以运行所述计算机可执行指令,以实现电子设备的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
例如,关于电子设备执行互连线设计方法的过程的详细说明可以参考互连线设计方法的实施例中的相关描述,重复之处不再赘述。
本公开至少一实施例还提供一种计算机可读存储介质,图12为该计算机可读存储介质的示意图。例如,如图12所示,存储介质1100内存储有计算机可执行程序1101,计算机可执行程序1101被处理器执行时,实现上述互连线设计方法,即本公开实施例提供的互连线设计方法中的一个或多个步骤。
例如,该存储介质1100可以应用于上述电子设备中。例如,存储介质1100可以包括电子设备中的存储器1003。
例如,关于存储介质1100的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。
本公开至少一实施例还提供一种互连线设计装置,图13为该互连线设计装置的框图。该互连线设计装置可以用于对待设计的布线层进行互连线设计,并且可以实现本公开实施例提供的互连线设计方法。
例如,如图13所示,互连线设计装置200包括第一确定单元210、第二确定单元220以及检验单元230。
例如,第一确定单元210配置为确定待设计的布线层中需要互连线的至少一组端子以及至少一组端子的连线区域。例如,布线层包括多个功能模块,连线区域在多个功能模块之间,至少一组端子中的每一组端子包括分别属于不同模块的多个端子。例如,该第一确定单元210可以实现本公开实施例提供的互连线设计方法的步骤S101。
例如,第二确定单元220配置为采用扩散遍历法在连线区域内依次确定至少一组端子中每一组端子的互连线。例如,该第二确定单元220可以实现本公开实施例提供的互连线设计方法的步骤S102。
例如,检验单元230配置为检验至少一组端子的互连线是否满足要求。例如,该检验单元230可以实现本公开实施例提供的互连线设计方法的步骤S103。
例如,第一确定单元210、第二确定单元220和检验单元230可以为硬件、软件、固件以及它们的任意可行的组合。例如,第一确定单元210、第二确定单元220和检验单元230可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
例如,在一些示例中,第一确定单元210确定待设计的布线层中需要互连线的至少一组端子可以包括确定该至少一组端子中每一组端子的位置以及需要互连接的走线数目等信息。
例如,参考图2和图3,第一确定单元210确定的至少一组端子包括第一组端子A,第一组端子A包括需要相互连接的第一端子A1和第二端子A1,第一端子A1和第二端子A1分别属于功能模块M1和M2,从而通过第一端子A1和第二端子A1的互连线,可实现功能模块M1和M2的电连接。
例如,在一些实施例中,第二确定单元220可以包括构建子单元、标识子单元和连线子单元。第二确定单元220可以首先确定第一组端子A的互连线。如图4所示,以连线区域20为设计范围,第二确定单元220采用扩散遍历法依次确定至少一组端子中每一组端子的互连线包括:采用构建子单元在连线区域20内构建排布为多行多列的网格30,参考图5;对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),Z1代表在第一方向的绕线资源(例如是否可以走线或者可以走多少线),Z2代表在第二方向的绕线资源,x和y分别表示每个网格在第一方向和第二方向的坐标,第一方向不同于第二方向,例如第一方向垂直于第二方向(例如其中一个为X轴方向而另一个为Y轴方向);标识子单元配置为:若网格在第一方向为有效绕线网格,则将Z1标识为第一有效标识,若网格在第一方向为无效绕线网格,则将Z1标识为第一无效标识,若网格在所述第二方向为有效绕线网格,则将Z2标识为第二有效标识,若网格在所述第二方向为无效绕线网格,则将Z2标识为第二无效标识;然后,连接子单元配置为根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第一端子和第二端子在第一方向或者第二方向上依次通过网格进行连接扩展,以得到第一端子A1和第二端子A2之间的互连线。
例如,在一些实施例中,参考图5,每个网格的形状可以为多边形,例如长方形或者正方形(图中示出的情况)等。例如,当网格的形状为正方形时,每个网格在第一方向和第二方向允许的走线数量相同,例如,每个网格的宽度可以根据布线层的尺寸、需要互连接的端子之间需要连线的数量以及工艺的需求而定,例如,在一些示例中,每个网格的宽度可以为1微米-6微米之间。例如,当网格的形状为长方形时,每个网格在第一方向和第二方向允许的走线数量不同,具体可以根据模块的位置以及模块之间需要连线的走线数量而定。本公开的实施例对网格的具体形式不做限定。
例如,在一些实施例中,网格在第一方向为无效绕线网格包括:网格在第一方向被完全占用,例如该网格内已走线,且不再具有绕线资源,或者网格在第一方向无法进行布线,例如图3中的无效区域31,该区域内具有其他结构或者由于其他原因而无法进行布线。类似地,网格在第二方向为无效绕线网格包括:网格在第二方向被完全占用,或者网格在第二方向无法进行布线。
例如,在一些实施例中,第一有效标识包括网格在第一方向上的有效走线数量,即在第一方向上还可以进行走线的数量;第二有效标识包括网格在第二方向上的有效走线数量,即在第二方向上还可以进行走线的数量;从而清楚显示每个网格在不同方向的绕线资源。
例如,在一些示例中,由于网格在第一方向和第二方向分别具有绕线资源,在设计时,网格在第一方向的绕线资源函数Z1和网格在第二方向的绕线资源函数Z2可以分别进行考虑。例如,网格在第一方向被完全占用的情况下,Z1标识为0,网格在第一方向无法进行布线的情况下,Z1标识为-1;类似地,网格在第二方向被完全占用的情况下,Z2标识为0,网格在第二方向无法进行布线的情况下,Z2标识为-1。例如,在一些示例中,网格在第一方向的绕线资源Z1最多为90,此时,在网格在第一方向没有被占用的情况下,第一有效标识可以为90,若网格在第一方向被部分占用,例如被占用40,此时剩余的绕线资源为50,则第一有效标识可以为50;类似地,网格在第二方向的绕线资源Z2最多为90,此时,在网格在第二方向没有被占用的情况下,第一有效标识可以为90,若网格在第二方向被部分占用,例如被占用40,此时第二有效标识可以为50。
例如,由于连接第一组端子A时,连线区域20内的具有绕线资源的各个网格均没有被占用,此时,该各个网格在第一方向和第二方向均具有充足的绕线资源,例如Z1和Z2均表示为90,此时,根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第一端子和第二端子在第一方向或者第二方向上依次通过网格进行连接扩展可以包括:如图5所示,将第一端子A1所在的网格标记为0,将与第一端子所在的网格相邻的有效绕线网格标记为1,将与标记为1的网格相邻的有效绕线网格标记为2,将标记为2的网格相邻的有效绕线网格标记为3…直至将第二端子A2所在的网格标记为N,图中示出为37;然后以标记号从小到大的顺序,建立从网格1到网格N的连线,作为第一端子A1和第二端子A2的互连线。
例如,在具体实施时,第二确定单元220的标识子单元可以先判断第一端子A1(即连线起点)位置是否为有效绕线网格,如果是,则将该起点标记为0,然后往外扩散,判断与标记为0的格子相邻的每个格子,如果某个相邻的格子是有效绕线网格,则将该相邻格子标记为1,以此类推,1往外的有效格子都标记为2…当往外扩散的格子前沿碰到第二端子A2(即连线终点)时,扩散结束。按照0、1、2…的路径从起点到终点连线,就是一条有效的绕线路径。例如,如果从起点往外扩散的所有网格在碰到连线终点前,这些网格的所有相邻的格子都是无效绕线格子,则说明从连线起点到连线终点没有有效绕线路径。
例如,由上述扩散遍历法得到的从网格1到网格N的连线包括多种连线时,可以按照最短路径原则选择靠近多行多列的网格中部的连线,例如选择为图6中示出的连线。
例如,在一些实施例中,参考图2和图3,第一确定单元210确定的至少一组端子还包括第二组端子B,第二组端子B包括需要相互连接的第三端子B1和第四端子B2,第三端子B1和第四端子B2分别属于功能模块M3和M4,因此在第三端子B1和第四端子B2互连线后,功能模块M3和M4电连接。
此时,在布线层中已经设计了至少一组端子的互连线后,第二确定单元220采用扩散遍历方式依次确定至少一组端子中每一组端子的互连线包括:参考图7A和图7B,例如,采用构建子单元对每个网格再次建立绕线资源函数F(x,y)=(Z1,Z2),图7A示出的是在第一方向(水平方向)的绕线资源,图7B示出的是在第二方向(竖直方向)的绕线资源。另外,为示出清楚且简洁,图中仅示出第一端子A1和第二端子A2之间的互连线旁边的绕线资源,由于其他部分的绕线资源均未被占用,因此其他部分的网格的绕线资源均为90,图中对此未示出。
例如,在上述示例中,第一端子A1和A2第二端子A2的互连线需要占用两个网格的绕线资源,因此在图7A中,水平方向延伸的走线部分占用了两行网格在第一方向的绕线资源,因此水平方向延伸的走线的上下两侧网格被例如标识子单元标记为0,表明该网格在第一方向的绕线资源被完全占用,成为在第一方向的无效绕线网格;另外,竖直方向延伸的走线部分占用了两列网格在第二方向的绕线资源,而没有占用该两列网格在水平方向的绕线资源,因此在图7A中,竖直方向延伸的走线部分的左右两侧网格被例如标识子单元标记为90,表明该网格在第一方向的绕线资源没被占用,仍然为在第一方向的有效绕线网格。
类似地,在图7B中,竖直方向延伸的走线部分占用了两列网格在第二方向(竖直方向)的绕线资源,因此竖直方向延伸的走线的左右两侧网格被例如标识子单元标记为0,表明该网格在第二方向的绕线资源被完全占用,成为在第二方向的无效绕线网格;另外,水平方向延伸的走线部分占用了两行网格在第一方向的绕线资源,而没有占用该两行网格在竖直方向的绕线资源,因此在图7B中,水平方向延伸的走线部分的上下两侧网格被例如标识子单元标记为90,表明该网格在第二方向的绕线资源没被占用,仍然为在第二方向的有效绕线网格。
然后,第二确定单元220的连接子单元配置为根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第三端子B1和第四端子B2在第一方向或者第二方向上依次通过网格进行连接扩展,以得到第三端子B1和第四端子B2之间的互连线。
例如,参考图7A和图7B,第二确定单元220的标识子单元配置为将第三端子B1所在的网格标记为0,结合第一方向和第二方向的绕线资源,将与第三端子B1所在的网格在第一方向上相邻的且标记为第一有效标识的网格标记为1,将与第三端子B1所在的网格在第二方向上相邻的且标记为第二有效标识的网格标记为1,将与标记为1的网格在第一方向上相邻的且标记为第一有效标识的网格标记为2,将与标记为1的网格在第二方向上相邻的且标记为第二有效标识的网格标记为2,直至将第四端子B4所在的网格标记为N,图中示出为28;结合图7A和图7B,连接子单元以标记号从小到大的顺序,建立从网格1到网格N的连线,作为第三端子B1和第四端子B2的连接线。
例如,由上述扩散遍历法得到的从网格1到网格N的连线包括多种连线,此时,按照最短路径原则选择靠近多行多列的网格中部的连线,例如最终获得第三端子B1和第四端子B2之间的互连线如图8所示。
例如,在一些实施例中,第一确定单元210确定的至少一组端子还包括第K组端子,第K组端子包括需要相互连接的第2K-1端子和第2K端子,K为大于2的正整数;此时,第二确定单元220采用扩散遍历方式依次确定至少一组端子中每一组端子的互连线还包括:(例如采用构建子单元)再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并(例如采用标识子单元)对每个网格进行标记,然后(例如采用连接子单元)根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第五端子和第六端子在第一方向或者第二方向上依次通过网格进行连接扩展,以得到第五端子和第六端子之间的互连线。
例如,参考图2和图3,第一确定单元210确定的至少一组端子还包括第三组端子C,此时,K=3,第三组端子包括需要相互连接的第五端子C1和第六端子C2;此时,第二确定单元220采用扩散遍历方式依次确定至少一组端子中每一组端子的互连线还包括:(例如采用构建子单元)再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并(例如采用标识子单元)对每个网格进行标记,然后(例如采用连接子单元)根据网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将第五端子C1和第六端子C2在第一方向或者第二方向上依次通过网格进行连接扩展,以得到第五端子C1和第六端子C2之间的互连线。第五端子C1和第六端子C2之间的具体连接方式可以参照上述第三端子B1和第四端子B2互连接的扩散遍历法,在此不再赘述。
例如,在图2和图3的示例中,第一确定单元210确定的至少一组端子还包括第四组端子D和第五组端子E,此时,K=4和5,第四组端子D包括需要互连接的第七端子D1和第八端子D2,第五组端子E包括互连接的第九端子E1和第十端子E2。例如,第二确定单元220采用上述扩散遍历法依次连接第四组端子D和第五组端子E,最终获得如图8所示的互连线设计。
例如,在其他实施例中,第一确定单元210确定的至少一组端子还可以包括第六组端子、第七组端子E等更多组端子,即K还可以为大于5的其他正整数,此时,这些端子均可以采用上述方法进行互连接,在此不再赘述。
例如,在上述实施例中,每组端子都能找到有效的绕线路径,则表明连线区域20的绕线资源没有拥塞问题。例如,如果有某些端子没能找到有效的绕线路径,则可以拓宽连线区域20的尺寸,以使得每组端子都能找到有效的绕线路径。
例如,在至少一组端子中每一组端子的互连线确定后,检验单元230配置为再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并检验每个网格的绕线资源函数F(x,y)=(Z1,Z2)是否满足需求。
例如,在图2和图3的示例中,在第一组端子A-第五组端子E的互连线依次确定后,检验单元230对每个网格建立绕线资源函数F(x,y)=(Z1,Z2)的结果如图9A和图9B所示,图9A示出的是在第一方向(水平方向)的绕线资源,图9B示出的是在第二方向(竖直方向)的绕线资源。
例如,在一些实施例中,检验单元230可以包括判断子单元、结束子单元以及配置子单元。例如,检验单元230的判断子单元可以配置为结合每组端子之间需要互连线的走线数量、每组端子的互连线占用的网格数量以及每个网格允许的走线数量,再次确认每个网格的绕线资源函数F(x,y)=(Z1,Z2)是否满足需求,例如每个网格允许的走线数量是否充足,是否满足下一步的连线需求,若每个网格的绕线资源函数F(x,y)=(Z1,Z2)均满足需求,则结束子单元结束设计;若部分网格的绕线资源函数F(x,y)=(Z1,Z2)不满足需求,则检验单元230的配置子单元可以配置为拓宽连线区域20,在不满足需求的部分网格旁边增加网格,以使每个网格的绕线资源函数F(x,y)=(Z1,Z2)满足需求。例如,配置子单元可以配置为通过缩小模块尺寸、移动模块位置或者扩大布线层尺寸等方式实现拓宽连线区域20的目的,本公开的实施例对此不作具体限定。
需要说明的是,本公开的实施例中,互连线设计装置200的各个单元与前述的互连线设计方法的各个步骤对应,关于互连线设计装置200的更多功能可以参考关于互连线设计方法的相关描述,此处不再赘述。图13所示的互连线设计装置200的组件和结构只是示例性的,而非限制性的,根据需要,互连线设计装置200还可以包括其他组件和结构。
还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本公开的实施例的附图中,层或区域的尺寸被放大或缩小,即这些附图并非按照实际的比例绘制。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以权利要求的保护范围为准。

Claims (15)

1.一种互连线设计方法,包括:
确定待设计的布线层中需要互连线的至少一组端子以及所述至少一组端子的连线区域,其中,所述布线层包括多个功能模块,所述连线区域在所述多个功能模块之间,所述至少一组端子中的每一组端子包括分别属于不同模块的多个端子;
采用扩散遍历法在所述连线区域内依次确定所述至少一组端子中每一组端子的互连线;以及
检验所述至少一组端子的互连线是否满足要求;
其中,所述至少一组端子包括第一组端子,所述第一组端子包括需要相互连接的第一端子和第二端子;其中,采用扩散遍历法依次确定所述至少一组端子中每一组端子的互连线包括:
在所述连线区域构建排布为多行多列的网格;以及
根据所述网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将所述第一端子和第二端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,以得到所述第一端子和所述第二端子之间的互连线,其中,所述第一方向不同于所述第二方向。
2.根据权利要求1所述的互连线设计方法,其中,采用扩散遍历法依次确定所述至少一组端子中每一组端子的互连线还包括:
对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),其中,Z1代表在所述第一方向的绕线资源,Z2代表在所述第二方向的绕线资源,x和y分别表示每个网格在所述第一方向和所述第二方向的坐标,若所述网格在所述第一方向为有效绕线网格,则Z1标识为第一有效标识,若所述网格在所述第一方向为无效绕线网格,则Z1标识为第一无效标识,若所述网格在所述第二方向为有效绕线网格,则Z2标识为第二有效标识,若所述网格在所述第二方向为无效绕线网格,则Z2标识为第二无效标识。
3.根据权利要求2所述的互连线设计方法,其中,根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第一端子和第二端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,包括:
将所述第一端子所在的网格标记为F0,将与所述第一端子所在的网格相邻的有效绕线网格标记为F1,将与标记为F1的网格相邻的有效绕线网格标记为F2,将标记为F2的网格相邻的有效绕线网格标记为F3,直至将所述第二端子所在的网格标记为FN,N为大于3的正整数;
以标记号从小到大的顺序,建立从网格F1到网格FN的连线,作为第一端子和第二端子的互连线。
4.根据权利要求3所述的互连线设计方法,其中,在从网格F1到网格FN的连线包括多种连线的情况下,按照最短路径原则选择靠近所述多行多列的网格中部的连线。
5.根据权利要求2-4任一所述的互连线设计方法,其中,
所述网格在所述第一方向为无效绕线网格,包括:所述网格在所述第一方向被完全占用,或者所述网格在所述第一方向无法进行布线;
所述网格在所述第二方向为无效绕线网格,包括:所述网格在所述第二方向被完全占用,或者所述网格在所述第二方向无法进行布线。
6.根据权利要求2-4任一所述的互连线设计方法,其中,所述第一有效标识包括所述网格在第一方向上的有效走线数量,所述第二有效标识包括所述网格在第二方向上的有效走线数量。
7.根据权利要求2-4任一所述的互连线设计方法,其中,所述至少一组端子还包括第二组端子,所述第二组端子包括需要相互连接的第三端子和第四端子;
采用扩散遍历方式依次确定所述至少一组端子中每一组端子的互连线还包括:
对每个网格再次建立绕线资源函数F(x,y)=(Z1,Z2),并根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第三端子和第四端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,以得到所述第三端子和所述第四端子之间的互连线。
8.根据权利要求7所述的互连线设计方法,其中,对每个网格再次建立绕线资源函数F(x,y)=(Z1,Z2),并根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第三端子和第四端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,包括:
将所述第三端子所在的网格标记为S0,将与所述第三端子所在的网格在第一方向上相邻的且标记为第一有效标识的网格标记为S1,将与所述第三端子所在的网格在第二方向上相邻的且标记为第二有效标识的网格标记为S1,将与标记为S1的网格在第一方向上相邻的且标记为第一有效标识的网格标记为S2,将与标记为S1的网格在第二方向上相邻的且标记为第二有效标识的网格标记为S2,直至将所述第四端子所在的网格标记为SN;
以标记号从小到大的顺序,建立从网格S1到网格SN的连线,作为第三端子和第四端子的连接线。
9.根据权利要求8所述的互连线设计方法,其中,所述至少一组端子还包括第K组端子,所述第K组端子包括需要相互连接的第2K-1端子和第2K端子,K为大于2的正整数;其中,采用扩散遍历方式依次确定所述至少一组端子中每一组端子的互连线还包括:
再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并根据所述网格是否标记为所述第一方向上的第一有效标识或者所述第二方向上的第二有效标识,将所述第2K-1端子和第2K端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,以得到所述第2K-1端子和所述第2K端子之间的互连线。
10.根据权利要求1-4任一所述的互连线设计方法,其中,检验所述至少一组端子的互连线是否满足要求,包括:
在所述至少一组端子中每一组端子的互连线确定后,再次对每个网格建立绕线资源函数F(x,y)=(Z1,Z2),并检验每个网格的绕线资源函数F(x,y)=(Z1,Z2)是否满足需求。
11.根据权利要求10所述的互连线设计方法,其中,若每个网格的绕线资源函数F(x,y)=(Z1,Z2)满足需求,则结束设计;
若部分网格的绕线资源函数F(x,y)=(Z1,Z2)不满足需求,则拓宽所述连线区域,在所述部分网格旁边增加网格,以使每个网格的绕线资源函数F(x,y)=(Z1,Z2)满足需求。
12.一种芯片,包括多个布线层,所述多个布线层包括第一布线层,所述第一布线层包括多个功能模块,所述多个功能模块采用权利要求1-11任一所述的互连线设计方法进行设计并连线。
13.一种电子设备,包括:处理器和存储器,
其中,所述存储器上存储有计算机可执行程序,
所述计算机可执行程序被所述处理器执行时,实现权利要求1至11中任一项所述的互连线设计方法。
14.一种计算机可读存储介质,所述存储介质内存储有计算机可执行程序,所述计算机可执行程序被处理器执行时,实现权利要求1至11中任一项所述的互连线设计方法。
15.一种互连线设计装置,用于对待设计的布线层进行互连线设计,其中,所述互连线设计装置包括:
第一确定单元,配置为确定所述待设计的布线层中需要互连线的至少一组端子以及所述至少一组端子的连线区域,其中,所述布线层包括多个功能模块,所述连线区域在所述多个功能模块之间,所述至少一组端子中的每一组端子包括分别属于不同模块的多个端子;
第二确定单元,配置为采用扩散遍历法在所述连线区域内依次确定所述至少一组端子中每一组端子的互连线;以及
检验单元,配置为检验所述至少一组端子的互连线是否满足要求;
其中,所述至少一组端子包括第一组端子,所述第一组端子包括需要相互连接的第一端子和第二端子;其中,采用扩散遍历法依次确定所述至少一组端子中每一组端子的互连线包括:
在所述连线区域构建排布为多行多列的网格;以及
根据所述网格是否标记为第一方向上的第一有效标识或者第二方向上的第二有效标识,将所述第一端子和第二端子在所述第一方向或者所述第二方向上依次通过所述网格进行连接扩展,以得到所述第一端子和所述第二端子之间的互连线,其中,所述第一方向不同于所述第二方向。
CN202110563438.0A 2021-05-24 2021-05-24 互连线设计方法及装置、芯片、电子设备和计算机可读存储介质 Active CN113283209B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110563438.0A CN113283209B (zh) 2021-05-24 2021-05-24 互连线设计方法及装置、芯片、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110563438.0A CN113283209B (zh) 2021-05-24 2021-05-24 互连线设计方法及装置、芯片、电子设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113283209A CN113283209A (zh) 2021-08-20
CN113283209B true CN113283209B (zh) 2023-01-31

Family

ID=77280958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110563438.0A Active CN113283209B (zh) 2021-05-24 2021-05-24 互连线设计方法及装置、芯片、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113283209B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102405690A (zh) * 2009-01-28 2012-04-04 诺斯特里集团有限责任公司 互连器件的电气和电子元件采用绝缘导线
CN102663169A (zh) * 2012-03-21 2012-09-12 领佰思自动化科技(上海)有限公司 集成电路版图设计规则检查的方法及其系统
CN103605863A (zh) * 2013-11-27 2014-02-26 中国人民解放军国防科学技术大学 集成电路时钟网格主干尺寸的规划方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8330489B2 (en) * 2009-04-28 2012-12-11 International Business Machines Corporation Universal inter-layer interconnect for multi-layer semiconductor stacks
CN101840202B (zh) * 2010-05-25 2012-04-18 重庆邮电大学 一种控制系统建模中的功能块智能布线方法
CN101894178B (zh) * 2010-05-31 2013-05-22 清华大学 基于可满足性问题sat的可制造性热点拆线重布方法
CN101980216B (zh) * 2010-10-18 2012-11-28 清华大学 基于网块的快速多层布线方法
CN102063536B (zh) * 2010-12-17 2012-11-14 清华大学 基于模式匹配的电源/地线网络与布图规划的协同设计方法
CN109753721B (zh) * 2018-12-29 2020-03-10 广东高云半导体科技股份有限公司 Fpga器件布局布线显示方法、装置、设备及存储介质
CN112463087B (zh) * 2019-09-09 2023-02-17 西安诺瓦星云科技股份有限公司 Led显示屏配屏方法和装置
CN111914507B (zh) * 2020-07-23 2022-09-20 清华大学 一种快速单磁通量子rsfq电路布线方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102405690A (zh) * 2009-01-28 2012-04-04 诺斯特里集团有限责任公司 互连器件的电气和电子元件采用绝缘导线
CN102663169A (zh) * 2012-03-21 2012-09-12 领佰思自动化科技(上海)有限公司 集成电路版图设计规则检查的方法及其系统
CN103605863A (zh) * 2013-11-27 2014-02-26 中国人民解放军国防科学技术大学 集成电路时钟网格主干尺寸的规划方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
串扰最小化的网格模式下的双层通道布线;冯刚等;《小型微型计算机系统》;20040721(第07期);全文 *
带有引线端预处理的区域布线算法;杨柳等;《计算机辅助设计与图形学学报》;20060120(第01期);全文 *

Also Published As

Publication number Publication date
CN113283209A (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
US10418354B2 (en) Integrated circuit and computer-implemented method of manufacturing the same
CN111368493B (zh) 一种基于稀疏网格的自动版图布线生成方法
CN115577664B (zh) 一种可编程逻辑器件时钟信号布线的方法及装置
CN100382087C (zh) 半导体器件、半导体器件的布线方法及制造方法
CN113283209B (zh) 互连线设计方法及装置、芯片、电子设备和计算机可读存储介质
US20080134122A1 (en) Methods for Tiling Integrated Circuit Designs
US7091614B2 (en) Integrated circuit design for routing an electrical connection
CN116306486A (zh) 芯片设计的设计规则检查方法及相关设备
CN109688758A (zh) 用于确定数据中心故障的方法、装置、电子设备和介质
JP2006155119A (ja) Lsi物理設計方法、プログラム及び装置
JP2680867B2 (ja) 径路レイアウト方法
CN111199133B (zh) 一种自动布线绕线的方法
US7284223B2 (en) Wiring method, program, and apparatus
CN117744553B (zh) 现场可编程门阵列建模方法、装置、设备及存储介质
CN108829840B (zh) 一种电子围栏地图构建方法及装置
JP2021534471A (ja) 回路配線記憶方法、fpgaシステムおよび記憶媒体
CN112858873A (zh) 一种基于二端测试的引脚资源分配方法及系统
KR100335332B1 (ko) 회로시뮬레이션장치 및 그 시뮬레이션방법
CN117807940A (zh) 芯片的布局设计方法、装置、计算机设备以及芯片
JP3560451B2 (ja) 半導体集積回路のレイアウト方法
CN112183006A (zh) 时延评估方法及装置、可读存储介质
CN117010322B (zh) 标准单元的检查方法、装置及设备
CN117350234A (zh) 总线布线方法及装置、计算装置和存储介质
Angelov Metric-And-Topological Approach Analytical Checkup
CN116306466A (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