本发明涉及一种用于芯片设计的智能布线方法及系统,属于集成电路自动布线领域。
背景技术:
随着集成电路技术的快速发展,集成电路进入了超深亚微米时代,这样使得电子器件的特征尺寸越来越小,芯片的规模越来越大,越来越多的元器件可以集成在单一的芯片上,复杂度急剧上升,而对于版图中的布线方法由人工设计布线方法早已无法满足集成电路设计的需要,计算机自动布线已经在版图设计布线中占有越来越大的比例。而布线的算法对于布线的速度、效率有着极其重要的影响,如何能够设计出所需要时间空间更少、复杂度更低、效率更高的算法成为了半导体计算机辅助设计所面临的巨大问题。针对于详细布线,传统的平面布线算法,如李氏迷宫路由算法(lee’smazeroutingalgorithm),其通常用于版图两点之间确定连接的最短路径,具体是通过将版图划分成网格,从起始网格开始,通过对所有未使用的相邻网格进行升序编号,最终搜索到终止格从而得到最短路径。但其采用广度优先遍历算法,算法效率不高,同时还需将划分的网格进行编号,方法较复杂。
技术实现要素:
本发明的目的在于提供一种用于芯片设计的智能布线方法及系统,用于解决现有在芯片设计时方法复杂、效率不高的问题。
为了解决上述问题,本发明采用以下技术方案:
一种用于芯片设计的智能布线方法,包括以下步骤:
步骤一:获取未布线芯片图像,所述未布线芯片图像为二值化图像;
步骤二:根据预先设定的元器件之间的连接关系以及对应的连接引脚,利用搜索布线机制进行自动布线,获取布线图;
步骤三:构建布线网络模型,对所述布线网络模型进行训练,得到训练好的网络模型;
步骤四:将待布线的测试布线图输入到训练好的网络模型,输出测试布线图;
所述搜索布线机制的过程为:
1)以二值图像中的一个元器件的一个连接点作为初始点pn,其连接对象作为目标点pm,m和n为二值图像中的非0元素的像素点的序号,则由初始点指向目标点的向量为
2)连接点pn和pm,判断连线上是否存在像素值为a的点,若不存在,以该连线作为连接点pn和pm之间的线路,并进行布线;若存在,进行步骤3);
3)利用方向搜索矩阵a,以初始点pn的像素坐标pi,j为中心点所在的区域附近的八个布线区域进行搜索,其中的八个布线区域分别以像素坐标为pi+2,j-2,pi-2,j,pi-2,j-2,pi,j-2,pi,j+2,pi+2,j-2,pi+2,j,pi+2,j+2作为中心点进行搜索,获取每个中心点对应的搜索矩阵bn,n=1,…,8;将矩阵a与矩阵bn进行逐点相乘后求和,根据所述求和的结果划分继续搜索的区域,当求和的结果小于等于mab且大于等于3ab时,该布线区域方向上存在元器件,则该布线区域不进行布线,反之,确定能够布线的布线区域,并得到初始点的布线区域的表示模型;其中,方向搜索矩阵a与搜索矩阵bn均为m×m,其中m为奇数;
4)根据获取的初始点的布线区域的表示模型,结合布线路径规则获取布线区域上的最优连接点,进行初始点pn与所述最优连接点的布线;
5)以移动后的连接点作为初始点,获取该移动后的连接点到目标点的向量,用以更新向量
6)在完成布线后,根据布线调整规则,进行布线的调整,获得整个芯片的布线。
进一步地,获取布线区域的表示模型包括:
当布线区域为一个时,设定正向搜索点对应的高斯分布为
当布线区域为两个且相邻时,将两个布线区域对应的两个高斯分布的峰值点进行连接,并以外边缘线作为两相邻点的表示模型;两布线区域不相邻时,则按照上述单个搜索点方式获取的高斯分布构成一个表示模型。
进一步地,所述布线路径规则包括如下步骤:
步骤a,获取向量
步骤b,根据获取的参考方向的表示模型
步骤c,以初始点的表示模型
进一步地,所述修正模型的表达式为:
其中,
进一步地,步骤二中,在搜索到目标点之后,还包括反向布线的步骤:
以目标点作为初始点,按照上述步骤3)-步骤6)进行布线搜索,获取目标点到初始点的反向布线,判断初始点到目标点的布线方向和所述反向布线是否相交,若相交,则由初始点到交点的布线和由目标点到交点的布线构成初始点和目标点的布线;若不相交,从预搜索方向中选择除已搜索方向外最近邻的方向作为新的搜索方向。
进一步地,所述布线调整规则包括布线的重合调整、线间距、线与元器件之间的间距、布线拐角的调整。
本发明还包括一种用于芯片设计的智能布线系统,包括存储器和处理器,所述处理器执行所述存储器存储的上述一种用于芯片设计的智能布线方法的方案。
本发明的有益效果为:
本发明通过对预先布置好的元器件进行布线,即首先获取未布线芯片的二值化图像,根据预先设定的元器件之间的连接关系以及对应的连接引脚,利用搜索布线机制进行自动布线,获取布线图;其中的搜索机制能够较好地确定两个元器件之间的连线,实现了自动布线。
同时,本发明通过构建的网络模型,能够对已经布线好的芯片进行训练,实现待布线芯片的布线,提高了布线的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍:
图1是本发明的一种用于芯片设计的智能布线方法实施例的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行介绍。为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,本发明所针对的具体场景为芯片设计的布线场景,即在进行信号完整性仿真时进行的布线仿真,其对象为元器件已预布置完毕的理想模拟图像,即无元器件布置不合理的情况,可直接用于后续的元器件布线的模拟图像。
本发明提供的是一种用于芯片设计的智能布线方法,如图1所示,包括如下步骤:
步骤一:获取未布线芯片图像,所述未布线芯片图像为二值化图像;
本实施例中,是将元器件实际尺寸按比例在仿真模拟图像中进行预先布置,之后,通过采集元器件图像,对采集的元器件图像中的像素点类别为元器件的像素点的值置a,a∈(0,255],其他像素点的值置0,获取未布线芯片图像。
步骤二:根据预先设定的元器件之间的连接关系以及对应的连接引脚,利用搜索布线机制进行自动布线,获取布线图;
其中元器件之间的连接关系为设计的芯片电路中元器件之间的连接关系是已知且确定的,即各元器件的引脚与需要连接的元器件之间的引脚的关系是确定的。
其中的搜索布线机制的自动布线过程为:
1)以二值图像中的一个元器件的一个连接点作为初始点pn,其连接对象作为目标点pm,m和n为二值图像中的非0元素的像素点的序号,则由初始点指向目标点的向量为
2)连接点pn和pm,判断连线上是否存在像素值为a的点,若不存在,以该连线作为连接点pn和pm之间的线路,并进行布线;若存在,进行步骤3);
本实施例中的像素值a取1,这样使得后续的计算更加简单。
3)利用方向搜索矩阵a,以初始点pn的像素坐标pi,j为中心点所在的区域附近的八个布线区域进行搜索,其中的八个布线区域分别以像素坐标为pi+2,j-2,pi-2,j,pi-2,j-2,pi,j-2,pi,j+2,pi+2,j-2,pi+2,j,pi+2,j+2作为中心点进行搜索,获取每个中心点对应的搜索矩阵bn,n=1,…,8;将矩阵a与矩阵bn进行逐点相乘后求和,根据所述求和的结果划分继续搜索的区域,当求和的结果小于等于mab且大于等于3ab时,该布线区域方向上存在元器件,则该布线区域不进行布线,反之,确定能够布线的布线区域,并得到初始点的布线区域的表示模型;其中,方向搜索矩阵a与搜索矩阵bn均为m×m,其中m为奇数,本实施例中取3,方向搜索矩阵a各元素均为b,其取值范围为1-255。
上述实施例中初始点的布线区域的表示模型的获取过程为:
需要说明的是,上述实施例中确定的布线区域可能为一个,也可能为多个;不同个数且位于不同方向上的布线区域,其表示模型是不同的,具体分析如下:
当确定的能够布线的布线区域为一个时,以对应布线区域的高斯分布为表示模型,则正向搜索点对应的高斯分布为
当确定的能够布线的布线区域为至少两个时,分以下几种情况:
当布线区域为两个时,分为相邻和非相邻;即两布线区域相邻时,则按上述单个搜索点方式获取的高斯分布联合构成一个两相邻点的表示模型,具体地,分别对两个搜索点生成两个高斯分布,连接两个高斯分布的峰值点,以外边缘线作为两相邻点的表示模型;两布线区域不相邻时,则按照上述单个搜索点方式获取的高斯分布构成一个表示模型;
当布线区域为至少三个时,可分为全相邻、非全相邻和不相邻的情况,而非全相邻情况可视为由若干个全相邻和单个搜索点组成,对于全相邻的搜索点按上述相邻搜索点构建方式构建;
4)根据获取初始点的布线区域的表示模型,结合布线路径规则获取布线区域上的最优连接点,进行初始点pi,j与所述最优连接点的布线;
其中,本实施例中的布线路径规则为:
步骤a,获取向量
步骤b,根据获取的参考方向的表示模型
其中,修正模型的表达式为:
其中,
步骤c,以初始点的表示模型
上述实施例中的零方向为定义pi,j指向pi,j+2的向量为零方向,且各搜索点与零方向夹角角度分布于[0,2π)。
上述实施例中的方案是为了降低计算量,选择高斯分布的7个角度方向;当然作为其他实施方式,为了更准确地获取实际布线方向,其可以选择更多的角度。
需要说明的是,若搜索区域中多像素点与搜索方向之间的距离一致,则选择距离初始点最远的像素点作为连接点,若距离初始点最远的像素点仍并非一个,随机选择其中一个作为连接点。
作为其他实施方式,本实施例中也可以一次进行多个像素点的移动,具体的是,设置需要移动像素点的个数m(m>1),从初始点起始,令其表示模型为
5)以移动后的连接点作为初始点,获取初始点到目标点的向量,用以更新向量
进一步的,为了保证布线的准确性,本发明中在搜索到目标点之后,还可以以目标点作为初始点,按照上述步骤3)-6)进行布线搜索,获取目标点到初始点的反向布线,判断所述正向布线方向和反向布线是否相交,若相交,则选择一个交点,由初始点到交点的正向布线和由目标点到交点的反向布线构成最终布线;若不相交,从预搜索方向中选择除已搜索方向外最近邻的方向作为新的搜索方向。
6)在完成布线后,根据布线调整规则,进行布线的调整,获得整个芯片的布线。
本实施例中,布线完成后的布线调整规则包括:
1、当存在布线后重合的部分,根据重合处对应的两组两段布线进行比较max(f),max(f)较小的进行调整,调整方式同样为修正方向选择;
2、设置线宽、线间距以及线与元器件之间的间距,对布线进行调整;具体的,对于不满足条件的线段,先调整距离元器件较远的线;设置走线,即将斜方向的线调整为均为正方向的线;设置拐角,即将拐角点调整为固定钝角形式;
3、无法实现的区域依次删除max(f)较小的布线,直至满足条件,调整后满足条件的布线保留,被删除的线重新选择方向进行布线,直至所有元器件的布线均满足布线优化要求。
需要说明的是,上述布线调整规则可根据实际需求自行增加、删除和修改。
步骤三:构建布线网络模型,对所述布线网络模型进行训练,得到训练好的网络模型;
本实施例中构建的布线网络模型为神经网络模型,具体训练过程,由于是现有技术,此处不再过多的介绍。
其中,上述布线网络模型的训练是根据已经布线好的布线图作为输出,未布线的芯片图作为输入进行训练的;这样就可以根据已经布线好的布线图,实现大批量的相同芯片的布线,提高了效率。
步骤四:将待布线的测试布线图输入到训练好的网络模型,输出测试布线图。
本实施例中,为了能够批量进行芯片的布线,其能够通过人工智能学习的方法,根据已经标注的训练模板,进行网络模型的训练,实现批量芯片的布线。
作为其他实施方式,本发明还包括对测试布线图进行布线评价的步骤,具体的,对训练集进行人为标注评价,确定对应的评价等级,之后构建神经网络模型,进行训练,将所述布线图输出到已经训练好的神经网络模型中,输出相应的布线评价等级。
基于与方法同样的发明构思,本发明还提供了一种用于芯片设计的智能布线系统,包括存储器和处理器,其中处理器执行存储器存储的上述一种用于芯片设计的智能布线方法实施例,由于上述方法实施例已作了详细的介绍,此处不再过多赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全软件实施例或结合软件或硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。