集成电路的总体布线方法及设备和存储介质
阅读说明:本技术 集成电路的总体布线方法及设备和存储介质 (Method and apparatus for global routing of integrated circuits and storage medium ) 是由 张旋 张亚东 陈建利 李起宏 陆涛涛 于 2021-03-15 设计创作,主要内容包括:本公开提供了集成电路的总体布线方法及设备和存储介质,该方法包括:获取集成电路的网表信息和各电路层内元件的位置信息;构造三维网格并确定三维网格内的各个网格的拥塞值;基于网表信息和位置信息确定集成电路的初始布线结果;根据拥塞值,通过拆线重布在三维空间内调整初始布线结果,并通过构建多层级的三维网格加快布线速度,得到最终布线结果。本公开能够有效降低布线的拥塞程度,改善总体布线的布线结果。(The present disclosure provides an integrated circuit general wiring method, apparatus and storage medium, the method comprising: obtaining netlist information of the integrated circuit and position information of elements in each circuit layer; constructing a three-dimensional grid and determining the congestion value of each grid in the three-dimensional grid; determining an initial routing result of the integrated circuit based on the netlist information and the position information; and adjusting an initial wiring result in the three-dimensional space through disconnecting and redistributing according to the congestion value, and accelerating the wiring speed by constructing a multi-level three-dimensional grid to obtain a final wiring result. The method and the device can effectively reduce the congestion degree of the wiring and improve the wiring result of the overall wiring.)
技术领域
本公开涉及自动化电子设计领域,具体涉及一种集成电路的总体布线方法及设备和存储介质。
背景技术
集成电路设计中,网表是描述元件连接关系的,一般是一个遵循某种简单标记语法的文本文件,常用作布线的参考文件。伴随芯片规模的扩大,网表内元件的数量在急剧增加,这导致集成电路布线的难度大幅度上升。
为了提高可布线性,现代版图工具一般将集成电路的布线划分为总体布线和详细布线,其中,总体布线为详细布线的每个连接线提供一个大致的布线范围,从而有效降低详细布线的堵塞程度,提高布线的成功率。对于总体布线来说,现代版图工具采用如下技术:将三维的网格映射到二维空间上进行布线结果的搜索,从而减小搜索解的空间大小;接着,在二维空间得到搜索解后,将对应搜索解的二维布线结果通过层分配技术转换为三维布线结果。
然而,层分配技术会使总体布线的布线结果存在线路拥塞甚至无法布置的情况,布线质量难以得到保证。如果直接在三维网格上搜索总体布线的布线结果,虽然布线结果的质量有所提升,但是版图工具所花费的时间会增加。
发明内容
为了解决上述技术问题,本公开提供了一种集成电路的总体布线方法及设备和存储介质,能够改善总体布线的布线结果。
一方面本公开提供了一种集成电路的总体布线方法,包括:
获取所述集成电路的网表信息和各电路层内元件的位置信息,所述集成电路包括一个个相互平行的电路层;
在各层电路层上构建二维网格而形成三维网格,并基于所述位置信息确定所述三维网格内各网格的拥塞值;
基于所述网表信息和所述位置信息确定所述集成电路的初始布线结果;
根据所述拥塞值调整所述初始布线结果,得到最终布线结果。
可选地,所述三维网格为多级,且当前级的三维网格为上一级三维网格的相邻网格合并后得到的;
基于所述位置信息确定所述三维网格内各网格的拥塞值,包括:确定各级所述三维网格内各网格的拥塞值,得到各级拥塞值;
根据所述拥塞值调整所述初始布线结果,包括:确定所述初始布线结果中同一电路层内二端线网在起始级三维网格上的布线范围,然后从所述起始级的上一级开始,根据当前级拥塞值从所述二端线网在下一级多层二维网格上的布线范围内确定所述二端线网在当前级多层二维网格上的布线范围,直到确定了所述二端线网在最上一级多层二维网格上的布线范围。
可选地,确定各级所述三维网格内各网格的拥塞值,包括:获取最上一级三维网格内各网格包含的轨道数量,并根据所述轨道数量和所述位置信息确定最上一级三维网格内各网格的拥塞值。
可选地,确定各级所述三维网格内各网格的拥塞值,还包括:针对非最上一级三维网格的各网格,获取该网格在上一级三维网格内所包括各网格的拥塞值,并根据获取的多个拥塞值确定该网格的拥塞值。
可选地,基于所述网表信息和所述位置信息确定所述初始布线结果,包括:
将所述位置信息从三维坐标映射到二维坐标;
将所述网表信息和所述二维坐标输入FLUTE模型,获取所述FLUTE模型生成的二维最小直角斯坦纳树;
通过层分配模型将所述二维最小直角斯坦纳树还原为三维树状结构,得到所述初始布线结果。
可选地,根据所述二端线网的长度和各级所述三维网格的网格尺寸,在所述二维网络的多级中确定所述起始级。
可选地,确定所述初始布线结果中同一电路层内二端线网在起始级三维网格上的布线范围,包括:
将所述起始级的拥塞值以及所述二端线网两端的位置信息输入A*模型,获取所述A*模型生成的布线结果,以得到所述二端线网两端在所述起始级三维网格上的布线范围。
可选地,根据当前级拥塞值从所述二端线网在下一级多层二维网格上的布线范围内确定所述二端线网在当前级多层二维网格上的布线范围,包括:
将所述当前级拥塞值以及所述二端线网在下一级多层二维网格上的布线范围输入迷宫算法模型中,获取所述迷宫算法模型生成的布线结果,以得到所述二端线网在当前级多层二维网格上的布线范围。
另一方面,本公开还提供了一种集成电路的总体布线设备,包括:
处理器;
存储器,用于存储一个或多个程序;
其中,所述一个或多个程序被所述处理器执行,使得所述处理器实现如上所述的任一种集成电路的总体布线方法。
另一方面,本公开又提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上所述的任一种集成电路的总体布线方法。
本公开的有益效果是:
本公开基于位置信息确定三维网格内各网格的拥塞值,然后基于网表信息和位置信息确定集成电路的初始布线结果,并根据拥塞值调整初始布线结果,得到最终布线结果。该总体布线过程中考虑了集成电路元件分布导致的拥塞值来得到最终布线结果,因而最终布线结果的布线拥塞程度能够有效降低,从而提高了布线的成功率,改善了总体布线的布线结果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚。
图1所示为本公开集成电路的总体布线方法的流程图;
图2所示为一个示例性的集成电路的初始布线结果;
图3所示为多层二维网格粗化过程的示意图;
图4所示为一个示例性的三维网格;
图5所示为布线细化过程的示意图;
图6所示为本公开集成电路的总体布线设备的一个交互界面;
图7所示为本公开集成电路的总体布线设备的一种结构示意图。
具体实施方式
为了便于理解本公开,下面将参照相关附图对本公开进行更全面的描述。附图中给出了本公开的较佳实施例。但是,本公开可以通过不同的形式来实现,并不限于本文所描述的实施例。相反的,提供这些实施例的目的是使对本公开内容的理解更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。在本公开的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本公开。
现代版图工具采用如下技术实现总体布线:将三维的网格映射到二维空间上进行布线结果的搜索,接着在二维空间得到搜索解后将对应搜索解的二维布线结果通过层分配技术转换为三维布线结果。其中,层分配技术会使总体布线的布线结果存在线路拥塞甚至无法布置的情况,布线质量难以得到保证。
基于此,本公开提供了一种集成电路的总体布线方法及设备和存储介质,能够改善总体布线的布线结果。
实施例一
图1示出本公开实施例一提供的一种集成电路的总体布线方法流程示意图。本公开实施例一提供的集成电路的总体布线方法通过集成电路的总体布线设备执行,参照图1,该集成电路的总体布线方法,包括:
步骤S110,获取集成电路的网表信息和各电路层内元件的位置信息。
具体地,网表信息为集成电路中元件之间的连接关系,只说明两元件之间具有连接关系并不具体指定这两元件之间连线所经过的路径;位置信息为集成电路内各元件的位置,包括一些需要连线的元件的位置信息和一些不需要连线的元件的位置信息。
步骤S120,在各层电路层上构建二维网格而形成三维网格,并基于位置信息确定三维网格内各网格的拥塞值。
需要强调的是,本公开实施例所述的三维网格不同于正方体魔方那样在三个相互垂直的面上都有网格。本公开实施例所述的三维网格,是指:沿一个方向分布多层,然后各层上有网格。
需要说明的是,集成电路集成过程中会将元件如图2所示分层布置,因而集成电路包括一个个相互平行的电路层且各个电路层上布置有一些元件,其中,对于同一电路层的多个元件,若需要连接则使用设置在该电路层内的电线;对于不同电路层的多个元件,若需要连接则使用穿过电路层通孔的电线。
上述在各层电路层上构造三维网格,即是如图2所示构造一个层数等于集成电路电路层的多层二维网格。具体地,二维网格的网格大小可以采用预设值,也可以依据上述位置信息确定元件分布的密集程度并根据元件分布的密集程度进行设定;二维网格内网格可以均匀分布,即各个网格大小设置为相等,这样便于统一处理。
上述三维网格内各网格的拥塞值,是一个与网格内元件分布有关系的数值。示例性地,一个网格被元件完全占据,则该网格无法布线,该网格的拥塞值相应地表示该网格没有供布线的空间。
步骤S130,基于网表信息和位置信息确定集成电路的初始布线结果。
上述网表信息描述集成电路内元件之间的连接关系,上述位置信息描述集成电路内元件的位置,根据元件的位置则能够确定具有连接关系的元件的连线路径,从而得到所述初始布线结果。这里初始布线结果可以基于现有的任一种布线方法获得,位置信息对于初始布线结果的贡献只限于指示需要连线元件的位置以便确定连线的端点,初始布线结果获取过程中不考虑需要连线元件和不需要连线元件对连线的阻碍作用。
步骤S140,根据拥塞值调整初始布线结果,得到最终布线结果。
需要说明的是,上述初始布线结果为一个三维的布线结果,既包括处于同一电路层上的连线,还包括处于不同电路层之间的连线。图2所示为一个示例性的集成电路的初始布线结果,参照图2,初始布线结果不仅涉及同一电路层内多个元件之间进行连线(例如元件D与元件E,又例如元件D与元件F),还涉及不同电路层上多个元件之间进行连线(例如元件B与元件C)。不同电路层上多个元件之间进行连线通过电路层上设置通孔实现。
本公开实施例中,初始布线结果是将集成电路元件依据网表指示的连接关系进行连接后的初始结果,最终布线结果是根据拥塞值调整初始布线结果后得到的结果,从而最终布线结果因考虑了集成电路元件分布导致的拥塞值而使得布线拥塞程度有效降低,提高了布线的成功率,改善了总体布线的布线结果。
在一个可选的实施例中,三维网格为多级,且参照图3:当前级的三维网格为上一级三维维网格的相邻网格合并后得到的;步骤S120中基于位置信息确定三维网格内各网格的拥塞值,包括:确定各级三维网格内各网格的拥塞值,得到各级拥塞值;步骤S140中根据拥塞值调整初始布线结果,包括:确定初始布线结果中同一电路层内二端线网在起始级三维网格上的布线范围,然后从起始级的上一级开始,根据当前级拥塞值从二端线网在下一级多层二维网格上的布线范围内确定二端线网在当前级多层二维网格上的布线范围,直到确定了二端线网在最上一级多层二维网格上的布线范围。
具体地,二端线网即两个端之间的连线,结合图2,同一电路层上二端线网的两个端点可以是以下任意一种:元件和元件(例如元件D与元件E,又例如元件D与元件F)、元件和斯坦纳点。当然,这里的二端线网不仅包括初始布线结果中同一电路层上由两端构成的一个完整线网,如元件C和通孔之间的线网;还包括同一电路层上一个完整的多端线网拆分后得到的多个二端线网,如元件D、E、F之间的多端线网拆分后得到的二端线网,即,元件D和元件E之间的线网,以及元件D和元件F之间的线网。将多端线网拆分为二端线网是根据拓扑信息进行拆分的,即从多端线网中提取出任何两个有连接关系的端的二端线网。
该实施例中,初始布线结果对于最终布线结果来说,是限定了各电路层上布线端。
下面对本实施例进行详细说明。
上述初始布线结果可以通过以下过程确定:将位置信息从三维坐标映射到二维坐标;将网表信息和二维坐标输入FLUTE模型(集成电路的总体布线设备上运行FLUTE算法的模型,FLUTE算法即基于快速查找表的矩形斯坦纳最小树构造算法),获取FLUTE模型生成的二维最小直角斯坦纳树;通过层分配模型(集成电路的总体布线设备上运行层分配算法的模型)将二维最小直角斯坦纳树还原为三维树状结构,三维树状结构上各元件之间的连接线路即组成初始布线结果,这样初始布线结果为集成电路的一个线路最短的布线结果,避免布线冗余,减小了布线成本。
图3所示为一个多级的三维网格。参照图3,在集成电路的电路层不只一层的情况下,各级三维网格皆是多层二维网格且各级多层二维网格的层数等于集成电路电路层层数。在以下描述中,如图3所示,记最上一级三维网格为一级三维网格并顺次排列各级三维网格。
具体地,上一级三维网格的相邻网格合并后得到当前级的三维网格,这是一个三维网格按由上到下顺序逐级粗化而得到多级三维网格的过程,可以是读取第一预设数值R和第二预设数值C,然后将上一级三维网格中相邻的R×C个网格合并后得到当前级的三维网格,其中,R表示合并的网格行数,C表示合并的网格列数。鉴于此,多级三维网格中最下一级三维网格为一个网格行数小于R或网格列数小于C的三维网格,这样多级三维网格的总级数由一级三维网格的行数和列数决定。图3所示的多级三维网格即上述方式得到,其中,R=2且C=2。
图4所示为一个一级三维网格,其中,各网格内设有轨道且部分网格内分布有元件,其中,轨道是布线过程中在网格内预设的参考线,元件之间的连接线可以沿轨道以及贴附在轨道两侧设置,一个网格内的轨道数量往往由网格尺寸与轨道的预设间距确定,网格内轨道数量越大表示该网格允许布置的连接线越多;元件的位置示意了元件在网格内占据的空间,元件在网格内占据的空间越多则网格预留给布线的空间越少。对于一级三维网格来说,拥塞值W1(i,j)与轨道数量呈负相关关系,与网格被元件占据的面积呈正相关关系。
鉴于此,关于k级三维网格内第i行第j列网格(i,j)的拥塞值Wk(i,j),可以采用如下过程确定:
(1)若k=1,则参照图4,获取三维网格内各网格包含的轨道数量,并根据轨道数量和以上所述元件的位置信息确定拥塞值W1(i,j)。
(2)若k≠1,则获取k级三维网格(i,j)在(k-1)级三维网格上所包括各网格(i',j')的拥塞值W(k-1)(i',j'),并根据获取的多个拥塞值W(k-1)(i',j')确定该网格的拥塞值Wk(i,j)。具体地,集成电路的总体布线设备在执行过程中,可以根据预设的优先方向扫描k级三维网格(i,j)在(k-1)级三维网格上所包括的网格来获取拥塞值W(k-1)(i',j'),其中,若优先方向为横向,则按行扫描各网格来提取拥塞值W(k-1)(i',j');若优先方向为纵向向,则按列扫描各网格来提取拥塞值W(k-1)(i',j')。根据获取的多个拥塞值W(k-1)(i',j')确定该网格的拥塞值Wk(i,j),可以是将多个拥塞值W(k-1)(i',j')加和求平均以得到Wk(i,j),进一步,可以结合优先方向每扫描完一行(优先方向为横向)或扫描完一列(优先方向为纵向)求一次拥塞值平均值并且在最后求得到的拥塞值平均值的平均值,从而获取拥塞值Wk(i,j)。
应当理解的是,上述根据当前级拥塞值从二端线网在下一级多层二维网格上的布线范围内确定二端线网在当前级多层二维网格上的布线范围,即将下一级多层二维网格上的布线范围映射到当前级多层二维网格内,然后在当前级多层二维网格内被映射的范围中提取出当前级拥塞值较小(拥塞值越小表示网格内存在越多的适宜布线的空间)的网格进行布线,这是一个将布线范围从下一级到当前级进行缩小的过程,是一个布线细化的过程。所述起始级是布线细化过程开始基于的一级,布线细化过程中各级皆在起始级之上,本实施例中亦表示为级数小于起始级级数。
图5示例性地示出二级三维网格到一级三维网格的细化过程。参照图5,二级三维网格中灰色网格为根据二级拥塞值从二端线网在三级三维网格上的布线范围内确定的二端线网在二级三维网格上的布线范围。在二级三维网格到一级三维网格的细化过程中,先将二级三维网格上二端线网的布线范围映射到一级三维网格上(即一级三维网格里的灰色网格),接下来在一级三维网格上根据一级拥塞值从灰色网格里确定二端线网的布线范围。示例性地,若一级三维网格中点线经过的网格的拥塞值皆小于虚线经过的网格,则将点线经过的网格确定为两元件在一级三维网格上的布线范围。
上述从起始级的上一级开始按由下到上顺序逐级细化来调整初始布线结果,可以是当初始布线结果中某一二端线网在当前级三维网格内经过的网格的拥塞值大于阈值后进行。对于初始布线结果中的在当前级三维网格内经过的网格的拥塞值不大于拥塞阈值的各连线,可以不进行调整。
进一步,上述起始级和二端线网是一一对应的关系,起始级是基于二端线网的长度和各级三维网格的网格尺寸而在三维网络的多级中确定的。二端线网的长度越大,二端线网对应起始级的级数越高。可以对二端线网的分级预设各级长度范围,通过各级长度范围来确定二端线网对应的起始级。
示例性地,图2所示初始布线结果中具有三个二端线网:通孔-C、DE和DF,且三个二端线网存在以下关系:DE>通孔-C>DF。基于二端线网的长度和各级三维网格的网格尺寸,可以从二维网络的多级中确定三个二端线网对应的起始级如下:二端线网DE的起始级为三级,二端线网通孔-C的起始级为二级,二端线网DF的起始级为一级,这样二端线网DE在图3所示三级三维网格上确定起始级三维网格上的布线范围,二端线网通孔-C在图3所示二级三维网格上确定起始级三维网格上的布线范围,二端线网DF在图3所示一级三维网格上确定起始级三维网格上的布线范围。
应当理解的是,二端线网所对应起始级的级数越小,二端线网布线范围细化所经历的级数越少,这样使得初始布线结果的调整过程耗时越短。
进一步,上述确定初始布线结果中同一电路层内二端线网在起始级三维网格上的布线范围,包括:将起始级的拥塞值以及二端线网两端的位置信息输入A*模型,获取A*模型生成的布线结果,以得到二端线网两端在起始级三维网格上的布线范围。具体地,A*模型为集成电路的总体布线设备上运行A*寻路算法的模型,起始级的拥塞值输入A*模型后用于确定A*寻路算法中要避开的障碍物(即拥塞值大于拥塞阈值的网格),二端线网两端的位置信息输入A*模型后用于确定A*寻路算法中路径的起点和终点,最后A*寻路算法在所述起点到所述终点之间搜索一条避开障碍物且距离最短的路径作为布线路径,该布线路径所涉及的网格即二端线网在起始级三维网格上的布线范围。
进一步,上述根据当前级拥塞值从二端线网在下一级多层二维网格上的布线范围内确定二端线网在当前级多层二维网格上的布线范围,包括:将当前级拥塞值以及二端线网在下一级多层二维网格上的布线范围输入迷宫算法模型中,获取迷宫算法模型生成的布线结果,以得到二端线网在当前级多层二维网格上的布线范围。具体地,迷宫算法模型为集成电路的总体布线设备上运行迷宫算法的模型,下一级多层二维网格上的布线范围输入迷宫算法模型后该布线范围内一个网格作为迷宫算法的一个节点,当前级拥塞值输入迷宫算法模型用于确定迷宫算法中不可继续搜索下去的节点,具体地,当前级多层二维网格中拥塞值大于拥塞阈值的网格即迷宫算法中不可继续搜索下去的节点。
本公开实施例基于多级三维网格对初始布线结果进行调整得到最终布线结果,其中,初始布线结果采用FLUTE模型和层分配模型,相较于直接在三维空间内搜索初始布线结果来说具有耗时短的优势,且初始布线结果为集成电路的一个线路最短的布线结果;然后,基于多级多层二维网格对初始布线结果进行调整,该过程能够减少层分配过程对最终布线结果的影响,使得布线拥塞程度显著降低。在调整初始布线结果的过程中,多层二维网格的使用使得初始布线结果的调整始终处于三维空间中,对于有效降低布线拥塞程度具有重要意义;上述逐级细化布线的过程以及起始级的使用都能够减少调整初始布线结果所耗费的时间。
图6所示为集成电路的总体布线设备提供的一个交互界面,用户在该交互界面设置上述总体布线的布线方法中需要的参数。参照图6,集成电路的总体布线会因电路功能等原因进行线网分块,“Net Name”一栏和Net To Route一栏相结合给出了一个集成电路的所有网表,其中,“Net Name”一栏里列出了当前需要集成电路的总体布线设备布线的网表。Auto Tap Width选项,勾选的情况下布线宽度自动设置,反之布线宽度通过Layer里的Width一栏设置。Layer一栏供选择及设置集成电路的电路层,Layer Name一列列出了电路层名字;Avall一列给出勾选框以便用户选择勾选框后的电路层是否要进行元件布线;某一电路层名字后的“H”和“V”供上述优先方向的选择,其中,若“H”赋值为1则优先方向为横向,若“V”赋值为1则优先方向为纵向;某一电路层名字后的“Spacing”供设置电线与周围器件或其它电线的间距。
实施例二
参考图7,本公开还提出了一种适于用来实现本公开实施例的示例性设备的框图。需要明白的是,图7显示的设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,设备200以通用计算设备的形式表现。设备200的组件可以包括但不限于:一个或者多个处理器或者处理单元210,存储器220,连接不同系统组件(包括存储器220和处理单元210)的总线201。
总线201表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备200典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器220可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)221和/或高速缓存存储器222。设备200可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统223可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线201相连。存储器220可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开实施例各实施例的功能。
具有一组(至少一个)程序模块2241的程序/实用工具224,可以存储在例如存储器220中,这样的程序模块2241包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块2241通常执行本公开实施例所描述的实施例中的功能和/或方法。
进一步地,设备200也可以与显示器300通信连接,用于显示半导体器件的仿真结果,该显示器300可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,该显示器300也可以是触摸屏。
进一步地,该设备200还可与一个或者多个使得用户能与该设备200交互的设备通信,和/或与使得该设备200能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口230进行。并且,设备200还可以通过网络适配器240与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器240通过总线201与设备200的其它模块通信。应当明白,尽管图中未示出,可以结合设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元210通过运行存储在系统存储器220中的程序,从而执行各种功能应用以及数据处理,例如实现本公开实施例一所提供的集成电路的总体布线方法。
实施例三
本公开实施例三还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行本公开实施例一所提供的集成电路的总体布线方法,该方法包括:
获取集成电路的网表信息和各电路层内元件的位置信息;
在各个电路层上构建二维网格而形成三维网格,并基于位置信息确定三维网格内各网格的拥塞值;
基于网表信息和位置信息确定集成电路的初始布线结果;
根据拥塞值调整初始布线结果,得到最终布线结果。
本公开实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸如Java、Smalltalk、C++),还包括常规的过程式程序设计语言诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
此外,在本文中,所含术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后应说明的是:显然,上述实施例仅仅是为清楚地说明本公开所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本公开的保护范围之中。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:飞机显示系统和方法