CN116362194A - 布线资源预分配方法、装置、计算设备及存储介质 - Google Patents
布线资源预分配方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN116362194A CN116362194A CN202310319749.1A CN202310319749A CN116362194A CN 116362194 A CN116362194 A CN 116362194A CN 202310319749 A CN202310319749 A CN 202310319749A CN 116362194 A CN116362194 A CN 116362194A
- Authority
- CN
- China
- Prior art keywords
- resource
- target
- wiring
- allocation
- total
- 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.)
- Pending
Links
Images
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/394—Routing
- G06F30/3947—Routing global
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种布线资源预分配方法、装置、计算设备及存储介质,属于电子设计自动化领域。所述方法包括:确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解,得到各个所述目标线网在所述目标网格中的资源分配量。通过将本发明中的布线资源预分配方法,在集成电路布线之前进行资源的预分配,能够极大地避免布线拥塞的问题,提高集成电路版图资源的利用率。
Description
技术领域
本发明涉及电子设计自动化领域,尤其涉及一种布线资源预分配方法、装置、计算设备及计算机可读存储介质。
背景技术
随着晶体管尺寸的不断缩小以及单元和目标线网数量的增加,设计芯片变得越来越困难,布线是继布局和时钟树综合之后的重要物理实施任务,布线阶段被分为全局布线和详细布线,全局布线是详细布线的基础,保证布线结果的可行性和合理性。全局布线解决方案的质量直接影响芯片面积、速度、功耗和完成设计周期所需的迭代次数,因此该布线过程在决定电路性能方面起着重要作用。由于有限资源和目标线网序的影响,布线不可避免地会出现拥塞。因此,一个高质量的资源预分配方法对版图布线有十分重要的作用。
在现有方法中,大多数布线算法首先通过二维布线加层分配或者直接三维布线的方式,使用顺序布线得到全部目标线网的初始布线解。在布线过程中会因为目标线网的资源争抢导致很多的拥塞,之后再通过拆线重布的方式来解决拥塞的问题。然而,这会使得拆线重布需要十分巨大的时间成本和人力成本,大多数布线方法的拥塞问题都是通过这种后处理的方式进行解决,而不会在布线之初就处理好目标线网之间的资源分配问题。
发明内容
本发明的主要目的在于提供一种布线资源预分配方法、装置、计算设备及计算机可读存储介质,旨在解决现有集成电路的布线方案中由于没有资源预先分配导致布线拥塞的技术问题。
为实现上述目的,本发明提供一种布线资源预分配方法,所述布线资源预分配方法包括以下步骤:
所述布线资源预分配方法包括以下步骤:
确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;
将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以对所述目标资源需求量进行二次规划,得到各个所述目标线网在所述目标网格中的资源分配量。
可选地,所述将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解的步骤,包括:
将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,并对输入至所述资源预分配模型中的所有所述目标资源需求量进行汇总,得到总目标资源需求量;
建立所述总目标资源需求量与所述布线资源总量之间的目标二次函数,以所述总目标资源需求量与所述布线资源总量之间的最小差值为目标对所述目标资源需求量进行二次规划调整。
可选地,所述将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解的步骤,包括:
将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,同时获取所述目标线网在所述集成电路版图中的资源需求总量;
根据所述资源需求总量构建所述目标资源需求量的约束条件,对所述目标资源需求量进行约束,以进行二次规划调整
可选地,所述将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解的步骤,包括:
将所述资源预分配模型进行二次项展开,以将所述资源预分配模型转化为资源迭代模型;
将各个所述目标资源需求量组成的集合作为目标向量,输入至所述资源迭代模型以进行迭代二次规划求解。
可选地,所述将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解,得到各个所述目标线网在所述目标网格中的资源分配量的步骤之后,所述方法还包括:
确定所述目标网格的拥塞权值,将所述资源分配量作为资源权值连同所述拥塞权值输入至预设的布线成本函数,以得到所述目标网格的布线成本值;
基于各个所述目标网格的布线成本值,对集成电路版图中的所有线网进行全局布线。
可选地,所述基于各个所述目标网格的布线成本值,对集成电路版图中的所有线网进行全局布线的步骤,包括:
基于各个所述目标网格的布线成本值,确定集成电路版图中的各个线网对应可经过网格的布线成本总值集合;
获取所述线网的可接受线长范围,根据所述可接受线长范围确定所述布线成本总值集合对应的目标斯坦纳树拓扑。
可选地,所述获取所述线网的可接受线长范围的步骤,包括:
确定所述线网中的各个连接点,并确定所述连接点间形成的外接矩形;
根据所述外接矩形,确定各个所述连接点组合的所有边向量;
根据所述所有边向量计算得到所述线网的各个总线长;
根据所述总线长确定所述线网对应的最优斯坦纳树线长;
将所述最优斯坦纳树线长作为可接受线长范围的下限,以及将所述线网在所述集成电路版图中的资源需求总量作为所述可接受线长范围的上限。
此外,为实现上述目的,本发明还提供一种布线资源预分配装置,所述布线资源预分配装置,包括:
资源统计模块,用于确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;
资源规划模块,用于将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以对所述目标资源需求量进行二次规划,得到各个所述目标线网在所述目标网格中的资源分配量。
此外,为实现上述目的,本发明还提供一种计算设备,包括处理器、存储单元、以及存储在所述存储单元上的可被所述处理器执行的布线资源预分配程序,其中,所述布线资源预分配程序被所述处理器执行时,实现如上所述的布线资源预分配方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有布线资源预分配程序,其中,所述布线资源预分配程序被处理器执行时,实现如上所述的布线资源预分配方法的步骤。
本发明技术方案中的布线资源预分配方法,通过确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划,得到各个所述目标线网在所述目标网格中的资源分配量的步骤,在对集成电路进行布线之前,在给定每个网格所具有的布线资源的基础上,对于线网在网格中的资源需求进行资源的预分配,可以极大地减轻在布线过程中出现拥塞问题,避免拆线重布情形的发生。并且本申请将布线资源预分配的问题转化为二次规划求解的问题,能够更大限度地求解出多个线网在网格中的总需求与所在网格的总资源基本保持一致,使得每个网格中资源都能够被最大化地利用,提高集成电路版图的资源利用率,这样一来,解决好资源分配的问题,布线拥塞问题也就自然而然得到更好地解决。
附图说明
图1为本发明实施例方案涉及的计算设备的硬件运行环境的结构示意图;
图2为本发明布线资源预分配方法第一实施例的流程示意图;
图3为本发明布线资源预分配方法涉及的一实施例步骤S20之后的流程示意图;
图4为本发明布线资源预分配方法涉及的H,V-树示意图;
图5为本发明布线资源预分配方法涉及的设计资源模型示意图;
图6为本发明布线资源预分配方法涉及的GCell资源方向示意图;
图7为本发明布线资源预分配方法涉及的斯坦纳树描述示意图;
图8为本发明布线资源预分配方法涉及的潜在的直角斯坦纳树示意图;
图9为本发明布线资源预分配方法涉及的拓扑压缩示意图;
图10为本发明布线资源预分配方法涉及的可变聚类示意图;
图11为本发明布线资源预分配方法涉及的边平移示意图;
图12为本发明布线资源预分配方法涉及的A*拐点预测示意图;
图13为本发明布线资源预分配装置的框架结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提出一种计算设备,所述计算设备可以为个人计算机、计算机工作站、服务器等数据处理设备。
如图1所示,图1是本发明实施例方案涉及的计算设备的硬件运行环境的结构示意图。
如图1所示,该计算设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储单元1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示器(Display)、输入单元比如控制面板,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WIFI接口)。存储单元1005可以是高速RAM存储单元,也可以是稳定的存储单元(non-volatile memory),例如磁盘存储单元。存储单元1005可选的还可以是独立于前述处理器1001的存储装置。作为一种计算机存储介质的存储单元1005中可以包括布线资源预分配程序。
本领域技术人员可以理解,图1中示出的硬件结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种计算机可读存储介质的存储单元1005可以包括操作系统、用户接口模块、网络通信模块以及布线资源预分配程序。
在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储单元1005中存储的布线资源预分配程序,并执行以下操作:
确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;
将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以对所述目标资源需求量进行二次规划,得到各个所述目标线网在所述目标网格中的资源分配量。
进一步地,处理器1001可以调用存储器1005中存储的布线资源预分配程序,还执行以下操作:
将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,并对输入至所述资源预分配模型中的所有所述目标资源需求量进行汇总,得到总目标资源需求量;
建立所述总目标资源需求量与所述布线资源总量之间的目标二次函数,以所述总目标资源需求量与所述布线资源总量之间的最小差值为目标对所述目标资源需求量进行二次规划调整。
进一步地,处理器1001可以调用存储器1005中存储的布线资源预分配程序,还执行以下操作:
将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,同时获取所述目标线网在所述集成电路版图中的资源需求总量;
根据所述资源需求总量构建所述目标资源需求量的约束条件,对所述目标资源需求量进行约束,以进行二次规划调整。
进一步地,处理器1001可以调用存储器1005中存储的布线资源预分配程序,还执行以下操作:
将所述资源预分配模型进行二次项展开,以将所述资源预分配模型转化为资源迭代模型;
将各个所述目标资源需求量组成的集合作为目标向量,输入至所述资源迭代模型以进行迭代二次规划求解。
进一步地,处理器1001可以调用存储器1005中存储的布线资源预分配程序,还执行以下操作:
确定所述目标网格的拥塞权值,将所述资源分配量作为资源权值连同所述拥塞权值输入至预设的布线成本函数,以得到所述目标网格的布线成本值;
基于各个所述目标网格的布线成本值,对集成电路版图中的所有线网进行全局布线。
进一步地,处理器1001可以调用存储器1005中存储的布线资源预分配程序,还执行以下操作:
确定所述线网中的各个连接点,并确定所述连接点间形成的外接矩形;
根据所述外接矩形,确定各个所述连接点组合的所有边向量;
根据所述所有边向量计算得到所述线网的各个总线长;
根据所述总线长确定所述线网对应的最优斯坦纳树线长;
将所述最优斯坦纳树线长作为可接受线长范围的下限,以及将所述线网在所述集成电路版图中的资源需求总量作为所述可接受线长范围的上限;其中,所述资源需求总量由H-V树得到。
为了便于理解本发明以下各个实施例,对本发明的主要技术方案进行简要说明:
本发明利用版图资源与线网需求之间的关系,通过在二维布线前加入资源预分配,通过资源预分配得到线网的资源权值图,进而在布线过程中参考权值图与拥塞图进行加权布线,以缓解在布线过程中线网之间产生的拥塞。本发明实现了利用资源预分配解决线网之间由于资源争抢而导致的拥塞问题,缓解了线网间的拥塞和拆线重布的运行时间。本发明与现有技术相比,可以在更短的时间内得到更好的布线结果,特别是大大避免了拆线重布这一严重影响布线效率的情景发生。
本发明实施例提供一种布线资源预分配方法。
请参照图2,图2为本发明布线资源预分配方法第一实施例的流程示意图;在本发明第一实施例中,所述布线资源预分配方法包括以下步骤:
步骤S10,确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;
在本实施例中,布线资源预分配方法针对的可以是全局布线。集成电路版图(以下简称版图)指的是整个集成电路区域。网格(GCell,global routing cells)指的是在整个集成电路区域按照集成电路版图的规格或其他实际需要进行的划分区域,目标网格是针对每一个网格而言的,不同的目标网格在版图中可以被划分为相同的面积,但往往具有的不同的布线资源数量。这里的资源可以理解为可以进行布线的轨道长度、或者面积等。目标网格中的布线资源总量指的是对于一个网格来说,其网格区域内具有的可布线的资源总量。
在本实施例中,可以根据下列公式(1)确定目标网格中的布线资源总量:
其中,ri为集成电路设计中第i个GCell的资源总数(量),#track为在GCell内的布线轨道数量。为障碍物的面积,/>为目标网格i的总面积;网格的有效面积为除障碍物外的其他面积之和,有效面积也即对应布线资源总量。
上述确定目标网格中布线资源总量的过程也称为资源模型建立过程。
由于本发明主要是协调资源供给和资源需求之间的问题,上面已经确定了资源供给,在此对确定版图中的各个线网的资源需求量进行相关说明:
跨多个网格区域的线网总需求如公式(2)所示。
dj=min(wl(H_tree),wl(V_tree)) (2)
其中,dj是第j个线网的需求值,需求可以由H,V-树中线长最小的来估计。
单个网格区域的线网(称为局部线网(LocalNet))需求如式(3)所示。
dj=HPWL(GCell)·#pins/2 (3)
此公式(3)中#pins为此单个网格区域的线网的引脚个数,HPWL为传统的线长估算模型使用半周长线长模型。
使用H,V-树,既保留了估算的准确性,时间复杂度上也没有较大的增加。
对于方便对上述H,V-树的理解,请参照图4,如图所示:
H树是线网只有一根贯通整个BBox(一线网中所有给定点的外接矩形)且为横向的轴,连接上线网内的点要么在横轴上,要么与横轴通过垂直线相连。其中H树的横轴在线网中的位置为所有给定点的重心的y坐标,V树反之。
需要补充的是,在布线实践中,两点线网占总设计的百分之60%,在两点线网下使用HPWL是精确的,因为两点的布线线长都为其外接矩形的半周长。在大于两点的情况下,通过线网的H,V-树来得到其估算线长,H,V-树中线段长度总和最小的即为其线网的估算长度。
上述的过程可以认为是需求模型的搭建过程。
步骤S20,将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以对所述目标资源需求量进行二次规划,得到各个所述目标线网在所述目标网格中的资源分配量。
目标网格中各个目标线网指的是经过目标网格的每个线网。目标资源需求量是某一线网在某一网格中的资源需求量。资源预分配模型可以用于进行二次规划求解,输出每个目标线网在其目标网格中实际所要分配的资源量。
在一实施例中,所述步骤S20,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解的步骤,包括:
步骤a,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,并对输入至所述资源预分配模型中的所有所述目标资源需求量进行汇总,得到总目标资源需求量;
步骤b,建立所述总目标资源需求量与所述布线资源总量之间的目标二次函数,以所述总目标资源需求量与所述布线资源总量之间的最小差值为目标对所述目标资源需求量进行二次规划调整。
在另一实施例中,
步骤c,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,同时获取所述目标线网在所述集成电路版图中的资源需求总量;
步骤d,根据所述资源需求总量构建所述目标资源需求量的约束条件,对所述目标资源需求量进行约束,以进行二次规划调整。
为了便于理解上述步骤S20以及与步骤S20相关的两个实施例,可以用下列公式(4)~(6)进行表示和说明:
公式(4)也即表征步骤b提到的目标二次函数。
其中xi,j为第j个线网在第i个GCell上被分配的资源数(在实际分配之前也即目标资源需求量,求解之后即为资源分配量),ri为第i个GCell的资源总数(布线资源总量)。
此外,考虑到既为所有线网在第i个GCell上的需求总和应当接近GCell的资源总数,这使得线网能够充分利用GCell的资源,且不会超过GCell所能提供的资源。需要对公式(4)进行约束。如下列公式(5)所示:
除此之外,资源预分配模型应当在线网需求不变的约束下。资源预分配并不会使得线网的需求降低,即线网的总线长是不变的。其中Nj为第j个线网,而dj是第j个线网在整个版图上的总需求。线网所对应的GCell集合是由此线网的BBox(外接矩形,上文也提到)覆盖的GCell组成。
所以,将公式(4)(5)结合就是资源预分配模型,资源预分配模型如式(6)所示。
从上述公式(6)中可以看出,各个目标线网xi,j的叠加求和得到的值(总目标资源需求量)与布线资源总量ri越接近,也就是求最小值,那么也就意味着各个网格中布线资源总量越能够被线网所充分利用,从而据此提高整个版图的资源利用率,并且提高利用率也就实现解决了布线拥塞问题,因为出现布线拥塞主要就是在每个网格中的布线与网格实际的布线资源总量不匹配导致的。
进一步地,需要对公式(6)进行展开和转化,将其转化为二次规划问题以得到各个所述资源分配量的更优解。
在一实施例中,所述步骤S20,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解的步骤,包括:
步骤e,将所述资源预分配模型进行二次项展开,以将所述资源预分配模型转化为资源迭代模型;
步骤f,将各个所述目标资源需求量组成的集合作为目标向量,输入至所述资源迭代模型以进行迭代二次规划求解。
将资源迭代模型(6)二次项展开,转换为二次规划模型(7)
s.t.Ax=b (7)
首先将资源迭代目标(4)通过和转换为二次规划目标(8)
其中x和xT分别为目标向量和目标向量的转置向量,目标向量由目标资源需求量组成;
用惩罚函数法在线网约束(9)这一项加入罚参数u,将原本的约束优化问题转换为了无约束优化问题,罚参数用于在迭代过程中调节约束。将(8)与(9)结合,得到资源迭代模型(10)。
使用梯度下降规则来迭代求解资源迭代模型(10)。将(10)整理合并,并将目标转换为与x和u有关系的函数表达式。
整理得,
通过
简化函数表达,最终f(x,u)为,
(14)也即加入罚函数便于迭代求最优解的资源迭代模型。也即步骤e中所述资源迭代模型,且该模型为加入罚函数和应用梯度下降规则的资源迭代模型。
此外,对于罚函数的梯度下降迭代,将分为两个循环,外循环控制罚参数u,设k为外循环已经迭代过的轮次,内循环在不同外循环的罚参数下进行变量x的更新,设t为内循环已经迭代过轮次。其中uk表示第k轮外循环的罚参数,xt表示第t轮内循环的变量值。迭代的初始状态,设罚参数为u0,x0,0。
通过梯度下降求解内层循环,其中下降方向为,
步长为,
通过方向与步长更新变量值,
xt+1=xt+αt·pt (17)
内层循环结束后通过系数β来调节罚参数,uk+1=β·uk,再执行内层循环。
在该实施例中,将资源预分配的模型建模为二次规划数学模型,集成电路设计规模巨大,直接对有等式约束的二次规划求解难度大时间长,资源预分配的结果并不需要满足此等式达到最优,为此使用迭代方法来求解此二次规划问题,同时使用罚函数法将有约束模型转换为无约束问题,方便迭代求解。
在一实施例中,由于在迭代求解模型时往往十分耗时,针对其二次规划中的矩阵特点做了相应的高性能加速。
迭代模型函数二次项中,QG和QN矩阵为特殊矩阵,其中QG是分块对角矩阵,而QN为对角对称矩阵。这两个矩阵的系数只会由(0,1)组成。在做xTQx乘积运算时,可直接根据设计中GCell与Net之间的关系来作为运算优化。
如图5所示,设计中的GCell和Net(线网)为多对多关系,设计中关系与二次项矩阵的变量是一致的。GCell与Net之间的关系是多对多,Net在GCell内的映射表现在QG中,如以下例子中,Net1与GCell1和GCell2的变量x1和x2映射,即在QG[1,1]、QG[1,2]、QG[2,1]和QG[2,2]上值为1。同理GCell在Net中的映射也是如此。将设计所有映射转换为矩阵相加既可得到最终的二项式矩阵。
图5的模型矩阵为(18)所示,
在运算向量与QG,N矩阵的乘积时,通过矩阵的特点转换为向量根据线网与GCell之间的关系做加法运算。使用专用的矩阵乘法而避免冗余的乘法运算。
同时在实际迭代运算时,只需有线网与GCell关系,而不用存储Q矩阵且使用优化后的矩阵运算。
优化前一次迭代的运算时间复杂度为0(n4),其中n为迭代变量的个数,空间复杂度为0(n2)。进行矩阵优化后,其运算时间复杂度为0(n2),空间复杂度为o(n2),大幅提升了迭代求解的效率。
本发明技术方案中的布线资源预分配方法,通过确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解,得到各个所述目标线网在所述目标网格中的资源分配量的步骤,在对集成电路进行布线之前,在给定每个网格所具有的布线资源的基础上,对于线网在网格中的资源需求进行资源的预分配,可以极大地减轻在布线过程中出现拥塞问题,避免拆线重布情形的发生。并且本申请将布线资源预分配的问题转化为二次规划求解的问题,能够更大限度地求解出多个线网在网格中的总需求与所在网格的总资源基本保持一致,使得每个网格中资源都能够被最大化地利用,提高集成电路版图的资源利用率,这样一来,解决好资源分配的问题,布线拥塞问题也就自然而然得到更好地解决。
请参照图3,在一实施例中,所述步骤S20之后,所述方法还包括:
步骤S30,确定所述目标网格的拥塞权值,将所述资源分配量作为资源权值连同所述拥塞权值输入至预设的布线成本函数,以得到所述目标网格的布线成本值;
确定所述目标网格的拥塞权值的过程:
GCell可以做二维处理,也可以做三维处理,将三维的GCell方格压缩就得到GCell网格。
可以参照图6,GCell方格的中点作为的所有布线的起点与终点,为了能够更细粒度地控制每个GCell的拥塞,对于三维GCell而言,由布线产生的拥塞将从与布线层同一平面的四个方向以及连通上下两层的竖直方向上考虑。
其中GCell内的金属层布线资源将从四个方向(E,S,W,N)上的布线轨道数量所决定。每个方向上的资源个数独立运算,公式如下:
(19)实际上和(1)是一致的,其中,GCell的资源为GCell的有效面积与覆盖的轨道条数的乘积后取四舍五入,按照N方向举例,此公式得到GCell中的资源在N方向上的有效布线轨道条数为4,既此GCell在N方向的资源。
GCell的需求决定于穿过此GCell的金属线条数,若线段起点或终点为GCell的中心,则只计算线段穿过的那个方向,若线段穿过GCell,则在竖直或水平方向上都需要记录其布线需求,每个方向上的线需求单位为1。
金属线在不同方向布线是独立的,但通孔的放置会阻碍任何方向的金属线的经过,对此,将通孔(via)的需求与线(wire)需求融合在一起作为此GCell总需求d:
通过GCell内的资源与需求,就能得到此GCell的拥塞程度,拥塞权值函数如下:
在确定了所述目标网格的拥塞权值之后,将所述资源分配量作为资源权值连同所述拥塞权值输入至预设的布线成本函数(22)
在资源预分配的加入下,GCell的权值除了由布线拥塞组成,还依赖于资源预分配的结果。为了能够充分考虑这两者对布线时的影响,将这两个权值放置于同一权值函数序,将这一函数称之为布线成本函数。
其中,Wg为GCell的布线成本(值),c和r为拥塞系数和资源系数,可以根据需要设定。拥塞、资源系数将表征布线成本在拥塞或资源上的倾斜程度,此系数作为工具的超参数存在,用于调节在布线过程中资源预分配和拥塞对其产生的影响,Wc和Wr分别为拥塞权值和资源权值,Wr也就是资源分配量。
需要指出的是,拥塞权值Wc在布线的过程是动态变化的,所以Wg也随之动态变化。
步骤S40,基于各个所述目标网格的布线成本值,对集成电路版图中的所有线网进行全局布线。
在确定了版图中各个目标网格的布线成本值,就可以据此规划每个线网所经过多个网格时使得每个网格的布线成本值越低越好,从而避免布线时可能产生的拥塞,基于此对所有线网进行全局布线。
在一实施例中,所述步骤S40,包括:
步骤g,基于各个所述目标网格的布线成本值,确定集成电路版图中的各个线网对应可经过网格的布线成本总值集合;
在确定了每个网格的布线成本值,就可以得到和确定每个线网所可以经过的网格的布线成本总值,由于线网中的各个连接点可以组成不同连接关系的线网,所以由连接点组成的线网基于不同的布线,就存在多个布线成本总值,也就是走过的网格会存在差异,进而得到布线成本总值组成的集合,即布线成本总值集合。
步骤h,获取所述线网的可接受线长范围,根据所述可接受线长范围确定所述布线成本总值集合对应的目标斯坦纳树拓扑。
布线成本总值集合对应的目标斯坦纳树拓扑是布线成本总值集合中相对较低的布线成本总值对应的斯坦纳树形成的拓扑,在建立目标斯坦纳树拓扑时需要协调布线成本与线网布线时的线长,从而得到更优解,所以在线网的可接受线长范围的限制内,来确定更优的目标斯坦纳树拓扑。即在加入资源预分配后,更多的是关注于斯坦纳树能否在线长最优的情况下更符合权值的分布。
在一实施例中,所述步骤h,获取所述线网的可接受线长范围,包括:
确定所述线网中的各个连接点,并确定所述连接点间形成的外接矩形;
根据所述外接矩形,确定各个所述连接点组合的所有边向量;
根据所述所有边向量计算得到所述线网的各个总线长;
根据所述总线长确定所述线网对应的最优斯坦纳树线长;
将所述最优斯坦纳树线长作为可接受线长范围的下限,以及将所述线网在所述集成电路版图中的资源需求总量作为所述可接受线长范围的上限;其中,所述资源需求总量由H-V树得到。
为了便于理解该实施例中的上述各个步骤,请参照图7和图8进行说明:
如图7所示,所有点都将被放缩至单位为1的网格图上,为更方便描述所有点组合,采用点的相对位置来唯一表示这个点组合。图7中的P1,P2,P3和P4表示一个由四个点组成的组合,对这四个点的y坐标进行升序排列,最后以y坐标得到的点的x坐标下标为3142,这数字将被表示为这些点的相对位置。还通过潜在的最优化线长向量(POWV)来表示此点组合的所有边数量,POWV由(h1,h2,h3,v1,v2,v3)组成,此向量的每一维度表示在当前位置是上有多少根线段。
如图8所示,POWV在这三种情况表示为①(1,1,1,1,1,1),②(1,1,1,1,2,1),③(1,1,1,1,1,2),POWV可以简单地通过h1+h2+h3+v1+v2+v3来计算线网的总线长。为此,本文将最优斯坦纳树线长作为POWV的下限,而将H,V-树作为POWV的上限,以用于约束生成出来的POWV处于一个可接受的线长范围。最后生成所有点组合下的POWV的斯坦纳树拓扑,也即目标斯坦纳树拓扑,大幅缩减了一些可能的斯坦纳树拓扑,提高了布线质量。
上述过程可以认为是一种斯坦纳树建库的过程。
在一实施例中,对于拓扑生成的过程:
请参照图9,对于查找过程,对线网进行拓扑压缩。
请参照图10,通过可变聚类解决了大线网的生成,同时设计了一个基于可变聚类的代价函数,函数在最优线长与查找时间做了折中。
在不同权值下,将大线网的多个点分为若干个子线网,每个子线网得到对应的斯坦纳树拓扑,为了将这些子线网连接起来,将所有子线网的重心作为其特征点,将这些特征点用斯坦纳树连接起来,使子线网之间存在拓扑关系。
请参照图11,为了避免在后续布线过程中拥塞导致无法布通,在拓扑阶段就要考虑斯坦纳树对版图拥塞的影响。尽量将需要布线的拓扑边平移到拥塞程度小的区域,为此,将已有的拓扑树进行边移动,以避开拥塞,这样的移动并不会改变斯坦纳树的长度。
此外,请参照图12,在一实施例中,还设计了一个A*拐点估计算法,通过A*规则确定拐点。
通过x点到终点预连线的方法来估计通孔数量。由于L型布线简单,只有两种解决方案,时间复杂度低,所以预连线中的布线方式采用L型布线。当两点之间能够绕通,若这x点到终点呈直线拓扑,那么这两点之间并没有通孔,若x点到终点呈斜线拓扑,则通过L型布线绕通意味着有一种解决方案是只需要一个通孔即可完成x点到终点的布线。而最终解决方案的通孔数一定是大于等于L型布线所产生的通孔数,所以以L型布线的通孔数作为估计是收敛的。x点到终点的估计通孔由预布线情况计算而来。假设与x点相连并将x点作为终点的线段为x点的前置线段,在预布线成功的情况下,通孔会在x点出现,由前置线段与预布线线段产生,将这样的通孔称之为附属通孔。预布线通孔数与附属通孔数之和即为估计通孔数。
当两点无法绕通时,若为直线,则表明两点的连线上有障碍,当为直线拓扑且拓扑线上有障碍是,最好布线方案是使用U型布线,而U型布线需要两个通孔,所以直线不能布通时,预估通孔的下界为2,。当为斜线时,L型布线不能布通,所以一定会再新增一个拐点避开障碍,预估通孔的下界也为2。由于预布线并没有布通,无法测算前置线段与预布线线段产生的通孔,所以在无法绕通时,预估通孔数都为2。
此外,参照图13,图13为本发明布线资源预分配装置的框架结构示意图。本发明还提出一种布线资源预分配装置,所述布线资源预分配装置包括:
资源统计模块A10,用于确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;
资源规划模块A20,用于将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解,得到各个所述目标线网在所述目标网格中的资源分配量。
可选地,所述资源规划模块A20,还用于:
将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,并对输入至所述资源预分配模型中的所有所述目标资源需求量进行汇总,得到总目标资源需求量;
建立所述总目标资源需求量与所述布线资源总量之间的目标二次函数,以所述总目标资源需求量与所述布线资源总量之间的最小差值为目标对所述目标资源需求量进行二次规划调整。
可选地,所述资源规划模块A20,还用于:
将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,同时获取所述目标线网在所述集成电路版图中的资源需求总量;
根据所述资源需求总量构建所述目标资源需求量的约束条件,对所述目标资源需求量进行约束,以进行二次规划调整。
可选地,所述资源规划模块A20,还用于:
将所述资源预分配模型进行二次项展开,以将所述资源预分配模型转化为资源迭代模型;
将各个所述目标资源需求量组成的集合作为目标向量,输入至所述资源迭代模型以进行迭代二次规划求解。
可选地,所述资源规划模块A20,还用于:
确定所述目标网格的拥塞权值,将所述资源分配量作为资源权值连同所述拥塞权值输入至预设的布线成本函数,以得到所述目标网格的布线成本值;
基于各个所述目标网格的布线成本值,对集成电路版图中的所有线网进行全局布线。
可选地,所述资源规划模块A20,还用于:
基于各个所述目标网格的布线成本值,确定集成电路版图中的各个线网对应可经过网格的布线成本总值集合;
获取所述线网的可接受线长范围,根据所述可接受线长范围确定所述布线成本总值集合对应的目标斯坦纳树拓扑。
可选地,所述资源规划模块A20,还用于:
确定所述线网中的各个连接点,并确定所述连接点间形成的外接矩形;
根据所述外接矩形,确定各个所述连接点组合的所有边向量;
根据所述所有边向量计算得到所述线网的各个总线长;
根据所述总线长确定所述线网对应的最优斯坦纳树线长;
将所述最优斯坦纳树线长作为可接受线长范围的下限,以及将所述线网在所述集成电路版图中的资源需求总量作为所述可接受线长范围的上限;其中,所述资源需求总量由H-V树得到。
本发明的布线资源预分配装置具体实施方式与上述布线资源预分配方法各实施例基本相同,在此不再赘述。
此外,本发明还提供一种计算机可读存储介质。本发明计算机可读存储介质上存储有布线资源预分配程序,其中,布线资源预分配程序被处理器执行时,实现如上述的布线资源预分配方法的步骤。
其中,布线资源预分配程序被执行时所实现的方法可参照本发明布线资源预分配方法的各个实施例,此处不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储单元中,使得存储在该计算机可读存储单元中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种布线资源预分配方法,其特征在于,所述布线资源预分配方法包括以下步骤:
确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;
将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以对所述目标资源需求量进行二次规划,得到各个所述目标线网在所述目标网格中的资源分配量。
2.如权利要求1所述的布线资源预分配方法,其特征在于,所述将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解的步骤,包括:
将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,并对输入至所述资源预分配模型中的所有所述目标资源需求量进行汇总,得到总目标资源需求量;
建立所述总目标资源需求量与所述布线资源总量之间的目标二次函数,以所述总目标资源需求量与所述布线资源总量之间的最小差值为目标对所述目标资源需求量进行二次规划调整。
3.如权利要求1所述的布线资源预分配方法,其特征在于,所述将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解的步骤,包括:
将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型,同时获取所述目标线网在所述集成电路版图中的资源需求总量;
根据所述资源需求总量构建所述目标资源需求量的约束条件,对所述目标资源需求量进行约束,以进行二次规划调整。
4.如权利要求1所述的布线资源预分配方法,其特征在于,所述将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解的步骤,包括:
将所述资源预分配模型进行二次项展开,以将所述资源预分配模型转化为资源迭代模型;
将各个所述目标资源需求量组成的集合作为目标向量,输入至所述资源迭代模型以进行迭代二次规划求解。
5.如权利要求1所述的布线资源预分配方法,其特征在于,所述将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解,得到各个所述目标线网在所述目标网格中的资源分配量的步骤之后,所述方法还包括:
确定所述目标网格的拥塞权值,将所述资源分配量作为资源权值连同所述拥塞权值输入至预设的布线成本函数,以得到所述目标网格的布线成本值;
基于各个所述目标网格的布线成本值,对集成电路版图中的所有线网进行全局布线。
6.如权利要求5所述的布线资源预分配方法,其特征在于,所述基于各个所述目标网格的布线成本值,对集成电路版图中的所有线网进行全局布线的步骤,包括:
基于各个所述目标网格的布线成本值,确定集成电路版图中的各个线网对应可经过网格的布线成本总值集合;
获取所述线网的可接受线长范围,根据所述可接受线长范围确定所述布线成本总值集合对应的目标斯坦纳树拓扑。
7.如权利要求6所述的布线资源预分配方法,其特征在于,所述获取所述线网的可接受线长范围的步骤,包括:
确定所述线网中的各个连接点,并确定所述连接点间形成的外接矩形;
根据所述外接矩形,确定各个所述连接点组合的所有边向量;
根据所述所有边向量计算得到所述线网的各个总线长;
根据所述总线长确定所述线网对应的最优斯坦纳树线长;
将所述最优斯坦纳树线长作为可接受线长范围的下限,以及将所述线网在所述集成电路版图中的资源需求总量作为所述可接受线长范围的上限。
8.一种布线资源预分配装置,其特征在于,所述布线资源预分配装置,包括:
资源统计模块,用于确定集成电路版图中的目标网格以及所述目标网格中的布线资源总量;
资源规划模块,用于将所述目标网格中各个目标线网的目标资源需求量作为变量,将作为变量的所述目标资源需求量和所述布线资源总量输入至预设的资源预分配模型以进行二次规划求解,得到各个所述目标线网在所述目标网格中的资源分配量。
9.一种计算设备,其特征在于,所述计算设备包括处理器、存储单元、以及存储在所述存储单元上的可被所述处理器执行的布线资源预分配程序,其中,所述布线资源预分配程序被所述处理器执行时,实现如权利要求1至7中任一项所述的布线资源预分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有布线资源预分配程序,其中,所述布线资源预分配程序被处理器执行时,实现如权利要求1至7中任一项所述的布线资源预分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310319749.1A CN116362194A (zh) | 2023-03-22 | 2023-03-22 | 布线资源预分配方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310319749.1A CN116362194A (zh) | 2023-03-22 | 2023-03-22 | 布线资源预分配方法、装置、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116362194A true CN116362194A (zh) | 2023-06-30 |
Family
ID=86906598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310319749.1A Pending CN116362194A (zh) | 2023-03-22 | 2023-03-22 | 布线资源预分配方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116362194A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117725879A (zh) * | 2024-01-31 | 2024-03-19 | 苏州元脑智能科技有限公司 | 一种集成电路的布线方案确定方法、装置及设备和介质 |
CN117829085A (zh) * | 2024-03-04 | 2024-04-05 | 中国科学技术大学 | 一种适用于芯片布线的连通图生成方法 |
-
2023
- 2023-03-22 CN CN202310319749.1A patent/CN116362194A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117725879A (zh) * | 2024-01-31 | 2024-03-19 | 苏州元脑智能科技有限公司 | 一种集成电路的布线方案确定方法、装置及设备和介质 |
CN117725879B (zh) * | 2024-01-31 | 2024-04-12 | 苏州元脑智能科技有限公司 | 一种集成电路的布线方案确定方法、装置及设备和介质 |
CN117829085A (zh) * | 2024-03-04 | 2024-04-05 | 中国科学技术大学 | 一种适用于芯片布线的连通图生成方法 |
CN117829085B (zh) * | 2024-03-04 | 2024-05-17 | 中国科学技术大学 | 一种适用于芯片布线的连通图生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7234370B2 (ja) | ニューラルネットワークを使用した集積回路フロアプランの生成 | |
CN116362194A (zh) | 布线资源预分配方法、装置、计算设备及存储介质 | |
US11574105B1 (en) | Using a barycenter compact model for a circuit network | |
US6480991B1 (en) | Timing-driven global placement based on geometry-aware timing budgets | |
Kim et al. | A SimPLR method for routability-driven placement | |
WO2021082867A1 (zh) | 偏差驱动的总线感知总体布线方法 | |
JP2954894B2 (ja) | 集積回路設計方法、集積回路設計のためのデータベース装置および集積回路設計支援装置 | |
Liu et al. | PSO-based power-driven X-routing algorithm in semiconductor design for predictive intelligence of IoT applications | |
CN101206686A (zh) | 设计时钟域中锁存器的布图的方法和计算机系统 | |
Dousti et al. | Minimizing the latency of quantum circuits during mapping to the ion-trap circuit fabric | |
CN102637217B (zh) | 基于云计算平台的大规模集成电路布线系统 | |
Shojaei et al. | Planning for local net congestion in global routing | |
Agnesina et al. | Autodmp: Automated dreamplace-based macro placement | |
Zhong et al. | Floorplanning and topology synthesis for application-specific network-on-chips | |
CN112861466B (zh) | 一种布线轨道分配方法、电子设备及计算机可读存储介质 | |
Wen et al. | Via-based redistribution layer routing for InFO packages with irregular pad structures | |
Bai et al. | Timing-aware fill insertions with design-rule and density constraints | |
CN110912718A (zh) | 一种降低异构三维片上网络布图功耗的方法 | |
Ying et al. | An analytical approach to floorplanning for hierarchical building blocks layout (VLSI) | |
Krishna et al. | Optimization of wire-length and block rearrangements for a modern IC placement using evolutionary techniques | |
Guan et al. | A novel thermal-aware floorplanning and tsv assignment with game theory for fixed-outline 3-D ICs | |
CN116467981A (zh) | 集成电路布局方法、设备及计算机可读存储介质 | |
WO2023130434A1 (zh) | 用于设计布局的方法、装置、设备、介质以及程序产品 | |
Lin et al. | An Incremental Placement Flow for Advanced FPGAs With Timing Awareness | |
Montenegro et al. | Implementation in ALBERTA of an automatic tetrahedral mesh generator |
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 |