CN113449479B - 一种考虑总线时序匹配的层分配方法 - Google Patents

一种考虑总线时序匹配的层分配方法 Download PDF

Info

Publication number
CN113449479B
CN113449479B CN202110733238.5A CN202110733238A CN113449479B CN 113449479 B CN113449479 B CN 113449479B CN 202110733238 A CN202110733238 A CN 202110733238A CN 113449479 B CN113449479 B CN 113449479B
Authority
CN
China
Prior art keywords
wiring
bus
net
nets
layer
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
CN202110733238.5A
Other languages
English (en)
Other versions
CN113449479A (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.)
Fuzhou University
Original Assignee
Fuzhou University
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 Fuzhou University filed Critical Fuzhou University
Priority to CN202110733238.5A priority Critical patent/CN113449479B/zh
Publication of CN113449479A publication Critical patent/CN113449479A/zh
Application granted granted Critical
Publication of CN113449479B publication Critical patent/CN113449479B/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/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明涉及一种考虑总线时序匹配的层分配方法,本发明在层分配阶段充分考虑总线的时序匹配问题,提出了一种高效的考虑总线时序匹配的层分配器,该布线器基于以下3种有效的方法:1)在层分配前期工作中,采取了新的线网优先级算法;2)在布线结果进行层分配的过程中,结合了贪心策略的思想;3)一种局部调整线网长度的方法来控制线网的长度以控制偏差和减少溢出。本发明不仅能使总线的线长偏差有效地减少,而且在时间方面也有着较大的优化,从而得到一个高质量的总体布线结果。

Description

一种考虑总线时序匹配的层分配方法
技术领域
本发明涉及集成电路计算机辅助设计技术领域,特别是一种考虑总线时序匹配的层分配方法。
背景技术
伴随着超大规模集成电路工艺的迅猛发展,集成电路设计布线阶段所要处理难题的技术复杂度不断提高。由于其布线的规模巨大,布线设计中通常会采用两个阶段进行设计。两个阶段分别为总体布线阶段和详细布线阶段。而总体布线是整个物理设计中极其重要的阶段,总体布线的结果将决定后面详细布线的质量,从而影响到整个物理设计的结果。另外,当前的集成电路工艺中,多层布线技术的工业应用已经非常广泛,布线层数逐渐增加,总体布线与详细布线之间的中间环节——层分配成为了需要关注的重点。为了提高芯片中大规模多层布线的资源利用效率,如何在布线的过程中决定线网最终的放置层次,恰当地连接各布线层,就是层分配阶段必须思考的问题。
贪心算法,就是从一个问题的初始态出发,在每一次的抉择中都选择在目前状态下可选策略中最优越的那一个,经过一次又一次的贪心选择后,可以得出一个问题的最佳解决策略。贪心策略的每一次抉择都是着眼于当下的可选项,而当下的选择对于后续的影响并不在其考虑范围内。因此,贪心策略并不是一个对问题整体的分析求解。
在层分配的布线过程中,线网将依照规定的布线次序进行走线,而一个电路的布线资源是有限的,因此,布线资源会随着布线的进行逐渐减少。也就是说,先行层分配的线网将拥有更多可选的布线资源,而后续分配的线网相比起前者拥有的可选资源减少,这就导致了线网的布线次序对层分配的布线质量有直接影响。因此,在层分配开始布线前找到一个恰当的层分配顺序可以提高布线资源的使用效率,从而得到最好的层分配结果。当期望优化的目标不同时,优先级算法所选取的线网属性也有所不同。
拆线-重布的思想就是在完成初始的布线后挑选某些恶化芯片性能的线网路径进行拆除,然后按照一定的规则将其重新规划路径,更新到原本的布线中,进而达到提高布线质量的目的。拆线-重布的布线方法通常是用于提高线网的布通率,在这基础之上逐渐发展了考虑时序分析、通孔数量等因素,使得在线网能够顺利布通的同时取得期望的高质量结果。
发明内容
有鉴于此,本发明的目的是提供一种考虑总线时序匹配的层分配方法,目的是通过优化层分配算法来最小化总的线长偏差、总的溢出和总的线长。
本发明采用以下方案实现:一种考虑总线时序匹配的层分配方法,包括以下步骤:
步骤S1:获取初始2D布线结果;
步骤S2:计算每个线网的布线顺序;
步骤S3:使用贪心算法获得层分配结果;
步骤S4:根据层分配结果对线网的局部进行线长调整;
步骤S5:输出一个3D的布线连接图。
进一步地,所述步骤S1的具体内容为:总体布线阶段首先将各个金属层的布线资源进行统筹谋划,得到一个不违反拥塞约束且得到一个不违反拥塞约束且时延、线长、溢出都满足物理约束的2D总体布线图G2=(V2,E2);其中,布线图上的布线网格点表示为v2∈V2;布线图上的连接两个网格点(v2 i,v2 j)的边表示为e2∈E2
进一步地,步骤S2中所述计算每个线网的布线顺序采用优先级算法,计算公式如下:
Figure BDA0003140198470000031
其中,Ni表示线网i,pin_number(Ni)表示线网Ni的引脚数,wirelength(Ni)是线网Ni在2D上的布线长度,bits(Ni)是Ni的信号位数,α是用户自定义的系数,参数值为150,根据所有线网的各个属性进行计算,priority(N)越高代表其优先级越高。
进一步地,所述步骤S3的具体内容为:同一总线的线网在2D布线时路径是一致的,这就意味着只要某一层的布线资源充足,总线内所有线网将达到零偏差;但是通道的布线资源耗尽时,线网就需要变换布线层次,这将导致每一次变换布线层次都会产生总线偏差;因此当某一布线通道的布线资源耗尽时,将选择距离最近且有剩余布线资源即上面一层或者下面一层的布线层进行布线,用以缩减总线偏差,并得到一个初始层分配结果即为3D布线连接图;具体包括以下步骤:
步骤S31:寻找线长最长的线网;
步骤S32:检索存在偏差总线线网;
步骤S33:搜索新路径;
步骤S34:判断新路径是否与原布线相交;若相交则执行步骤S35,否则执行步骤S36;
步骤S35:判断是否发生溢出;若是则执行步骤S36,否则拆线重布,继续执行步骤S36;
步骤S36:判断全部检测是否完成,若完成则结束,否则返回步骤S32。
进一步地,步骤S32中所述总线偏差为:
对于总线线网而言,它有r位信号和q个总线引脚组(PG);其中,1个总线引脚组为源引脚组(PG0 i),q-1个为汇总线引脚组(PGi j);为了满足时序的一致,必须尽可能使在源引脚的每一个位信号传输到汇引脚组的时间尽可能相同,即源引脚组和汇引脚组之间的所有引脚对的长度相等;当两个总线引脚组之间的所有引脚对的长度不一致时,则发生了线长偏差;总线线长偏差计算定义如下:
Figure BDA0003140198470000041
其中,WPGi j<k>是第i个总线线网的源引脚组(PGi 0)和第j个汇引脚组(PGi j)之间第k对引脚组的线长,MWPGi j是第i个总线线网的PGi 0和PGi j之间所有引脚组中的最大线长。
进一步地,所述步骤S4具体包括以下步骤:
步骤S41:寻找总线中线长最长的线网:该阶段首先对步骤S3阶段的布线结果给出每个总线中源引脚组到每个目标引脚组的所有信号位线长;每个目标引脚组都连接了总线的所有信号位,若该引脚存在偏差,则势必存在一个从源引脚组到目标引脚组的线长最长的信号位;因此,在每个引脚组对中以线长最长的信号位为目标,通过延长其余线长的信号位达到缩减总线偏差的优化目标;
步骤S42:检测存在偏差的总线线网:步骤S41得到目标信号位的线长后,将对源引脚组、目标引脚组相同的其余信号位逐一采用总线偏差计算方法进行检测,观察其线长是否与目标信号位存在偏差;
步骤S43:当检测到某条线网存在偏差,则从引脚位置回溯线网,搜索新的布线路径;该步骤首先从距离引脚组坐标最远的可拆线位置向周围区域检索可用的布线路径;在回溯阶段,考虑到总线线网往往连接的引脚数量较多,如果将线网整体拆除有可能导致总线偏差增大;因此,仅对局部的线网进行拆线,在拆线-重布阶段中,局部拆线的范围则考虑了只与该引脚有关的线网,避免了拆除的线网过多导致该路径上连接的其他信号位找不到布通路径的情况;
步骤S44:检测新路径是否违反了布线约束:新的路径在缩减总线偏差的同时,要使得新的布线路径能够布通;也这意味着拆线-重布的线网不能违反布线区域的布线约束;保证了拆线-重布的线网具有可布性和正确性;
步骤S45:进行拆线-重布:当检索到某条布线资源充足的通道时,则将原本的布线路径拆除,将检索到的可布通道更新到原本的布线结果中;
步骤S46:判断是否遍历了所有存在偏差的总线线网;对遍历过的线网进行标记,直到所有总线线网都被标记后即算遍历完成;当全部遍历完成,则算法结束;若遍历没有完成则重新返回步骤S41。
进一步地,所述布线区域的布线约束为:在特定的金属层只允许走垂直或者水平方向;同一层的布线不允许相交;不能够产生溢出即不许在没有容量的区域经过,此处容量指每个区域允许结果的线网数量。
与现有技术相比,本发明具有以下有益效果:
(1)本发明使用由引脚数、线长、信号位数控制的优先级算法对所有线网进行优先级排序。通过对不同线网属性的计算,该优先级算法用牺牲了很少的总线长,换取了总线偏差的大幅度缩减。
(2)本发明使用贪心算法将所有线网进行布线,得到初始的层分配方案。贪心算法在问题的决策中总是选取对目前情况最有利的选项。得到一个与最优解比较接近的方案,从而达到优化总线偏差的目标。
(3)本发明参照布线阶段所得到的初始层分配结果,对存在偏差的局部总线线网检测有无可用的新路径,然后在不产生溢出的情况下延长较短的局部线网最终能获得一个低偏差的布线结果。
(4)本发明不仅能使总线的线长偏差有效地减少,而且在时间方面也有着较大的优化,从而得到一个高质量的总体布线结果。
附图说明
图1为本发明实施例的总体布线的结构图及其网格图,其中图1(a)为总体布线结构图,图1(b)为总体布线网格图。
图2为本发明实施例的总体布线过程图,其中,图2(a)为初始3D结构图,图2(b)映射的2D结构图,图2(c)2D布线结果图,图2(d)层分配结果图。
图3为本发明实施例的总线Bi布线举例图(线长已包含通孔)。
图4为本发明实施例的层分配器的流程图。
图5为本发明实施例的局部线长调整流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图4所示,本实施例提供一种考虑总线时序匹配的层分配方法,包括以下步骤:
步骤S1:获取初始2D布线结果;
步骤S2:计算每个线网的布线顺序;
步骤S3:使用贪心算法获得层分配结果;
步骤S4:根据层分配结果对线网的局部进行线长调整;
步骤S5:输出一个3D的布线连接图。
在本实施例中,所述步骤S1的具体内容为:总体布线阶段首先将各个金属层的布线资源进行统筹谋划,得到一个不违反拥塞约束且时延得到一个不违反拥塞约束且时延、线长、溢出指标都满足物理约束的2D总体布线图G2=(V2,E2);其中,布线图上的布线网格点表示为v2∈V2;布线图上的连接两个网格点(v2 i,v2 j)的边表示为e2∈E2
在本实施例中,步骤S2中所述计算每个线网的布线顺序采用优先级算法,计算公式如下:
Figure BDA0003140198470000081
其中,Ni表示线网i,pin_number(Ni)表示线网Ni的引脚数,wirelength(Ni)是线网Ni在2D上的布线长度,bits(Ni)是Ni的信号位数,α是用户自定义的系数,参数值为150。,根据所有线网的各个属性进行计算,priority(N)越高代表其优先级越高。
在α的选择中,尝试了多个参数值,经过多次尝试后测试数据显示,当系数α选择150时不仅在改进效果上表现良好,并且布线改进效果的稳定度也远比其他数值更高,因此在本发明中选择的α参数值为150。
在本实施例中,所述步骤S3的具体内容为:
同一总线的线网在2D布线时路径是一致的,这就意味着只要某一层的布线资源充足,总线内所有线网将达到零偏差;但是通道的布线资源耗尽时,线网就需要变换布线层次,这将导致每一次变换布线层次都会产生总线偏差;因此当某一布线通道的布线资源耗尽时,将选择距离最近且有剩余布线资源即上面一层或者下面一层的布线层进行布线,用以缩减总线偏差,并得到一个初始层分配结果即为3D布线连接图;具体包括以下步骤:
步骤S31:寻找线长最长的线网;
步骤S32:检索存在偏差总线线网;
步骤S33:搜索新路径;
步骤S34:判断新路径是否与原布线相交;若相交则执行步骤S35,否则执行步骤S36;
步骤S35:判断是否发生溢出;若是则执行步骤S36,否则拆线重布,继续执行步骤S36;
步骤S36:判断全部检测是否完成,若完成则结束,否则返回步骤S32。
在本实施例中,步骤S32中所述总线偏差为:
对于总线线网而言,它有r位信号和q个总线引脚组(PG);其中,1个总线引脚组为源引脚组(PG0 i),q-1个为汇总线引脚组(PGi j);为了满足时序的一致,必须尽可能使在源引脚的每一个位信号传输到汇引脚组的时间尽可能相同,即源引脚组和汇引脚组之间的所有引脚对的长度相等;当两个总线引脚组之间的所有引脚对的长度不一致时,则发生了线长偏差;总线线长偏差计算定义如下:
Figure BDA0003140198470000101
其中,WPGi j<k>是第i个总线线网的源引脚组(PGi 0)和第j个汇引脚组(PGi j)之间第k对引脚组的线长,MWPGi j是第i个总线线网的PGi 0和PGi j之间所有引脚组中的最大线长。
在本实施例中,所述步骤S4具体包括以下步骤:
步骤S41:寻找总线中线长最长的线网:该阶段首先对步骤S3阶段的布线结果给出每个总线中源引脚组到每个目标引脚组的所有信号位线长;每个目标引脚组都连接了总线的所有信号位,若该引脚存在偏差,则势必存在一个从源引脚组到目标引脚组的线长最长的信号位;因此,在每个引脚组对中以线长最长的信号位为目标,通过延长其余线长的信号位达到缩减总线偏差的优化目标;
步骤S42:检测存在偏差的总线线网:步骤S41得到目标信号位的线长后,将对源引脚组、目标引脚组相同的其余信号位逐一采用总线偏差计算方法进行检测,观察其线长是否与目标信号位存在偏差;
步骤S43:当检测到某条线网存在偏差,则从引脚位置回溯线网,搜索新的布线路径;该步骤首先从距离引脚组坐标最远的可拆线位置向周围区域检索可用的布线路径;在回溯阶段,考虑到总线线网往往连接的引脚数量较多,如果将线网整体拆除有可能导致总线偏差增大,因此,仅对局部的线网进行拆线,在拆线-重布阶段中,局部拆线的范围则考虑了只与该引脚有关的线网,避免了拆除的线网过多导致该路径上连接的其他信号位找不到布通路径的情况;
步骤S44:检测新路径是否违反了布线约束:新的路径在缩减总线偏差的同时,要使得新的布线路径能够布通;也这意味着拆线-重布的线网不能违反布线区域的布线约束;保证了拆线-重布的线网具有可布性和正确性;
步骤S45:进行拆线-重布:当检索到某条布线资源充足的通道时,则将原本的布线路径拆除,将检索到的可布通道更新到原本的布线结果中;
步骤S46:判断是否遍历了所有存在偏差的总线线网;对遍历过的线网进行标记,直到所有总线线网都被标记后即算遍历完成;当全部遍历完成,则算法结束;若遍历没有完成则重新返回步骤S41。
在代码中所有存在偏差的总线线网是一个集合,存在一个数据结构中可直接使用for代码对其进行遍历,遍历的意义是判断是否对所有的总线线网进行局部调整。
在本实施例中,所述布线区域的布线约束为:在特定的金属层只允许走垂直或者水平方向;同一层的布线不允许相交;不能够产生溢出即不许在没有容量的区域经过,此处容量指每个区域允许结果的线网数量。
较佳的,在本实施例中,在超大规模集成电路设计中,布线设计阶段决定了每一条电路线网在芯片上的位置,布线质量的高低影响着整个集成芯片的功能。在芯片的实际生产中布线层数逐渐增多,而每个布线层的可布区域都具有不同的属性,需要全局考虑每一层的特点。层分配阶段控制了线网和通孔放置的层次。如何分配每个总线线网的布线层次,将影响总线的时序匹配效果,最终将直接影响整个芯片的质量。因此,本实施例在层分配阶段充分考虑总线的时序匹配问题,提出了一种高效的考虑总线时序匹配的层分配器,该布线器基于以下3种有效的方法:1)在层分配前期工作中,采取了新的线网优先级算法;2)在布线结果进行层分配的过程中,结合了贪心策略的思想;3)一种局部调整线网长度的方法来控制线网的长度以控制偏差和减少溢出。本实施例不仅能使总线的线长偏差有效地减少,而且在时间方面也有着较大的优化,从而得到一个高质量的总体布线结果。
1、总体布线与层分配模型:
超大规模集成电路物理设计布线阶段中,芯片的布线区域分布在多个金属层,布线总体布线通常将每个层被分成若干个大小相同的矩形,每个矩形被称为G-Cell。总体布线阶段首先会将各个金属层的布线资源进行统筹谋划,得到一个不违反拥塞约束且时延等指标上都表现良好的2D总体布线图G2=(V2,E2)。其中,布线图上的布线网格点表示为v2∈V2;布线图上的连接两个网格点(v2 i,v2 j)的边表示为e2∈E2。根据图1可以观察到,每个布线层都由数量、形状相仿的规律的多个布线单元G-cell组成。每个布线单元内都放置了一些芯片所需的模块。层分配的输出是所有线网在所有金属层中的具体走线。在该总体布线结构的基础上,每一个布线单元G-cell中选取一个点作为总体布线网格图的顶点v3∈V3。此外,布线模型将同一层布线层中两个相邻的布线单元通过一个布线通道e3∈E3进行连接布线,将其转换为总体布线网格图。
2.总体布线过程:
对布线规划中需求的每一条线网按照优先级进行排序,然后在划分好的布线区域上进行依次布线,最终得到一个具有指导意义的大致走线结果:首先将一个线网在3D网格图上引脚的位置坐标映射到2D网格图中如图2(a)与图2(b)所示;其次,对2D网格图按照一定策略进行布线设计,生成一个2D布线结果如图2(c)所示;最后,根据2D布线结果进行层分配,最终得到3D布线结果如图2(d)所示。
3.总线偏差计算:
对于总线线网而言,它有r位信号和q个总线引脚组(PG)。其中,1个总线引脚组为源引脚组(PG0 i),q-1个为汇总线引脚组(PGi j)。为了满足时序的一致,必须尽可能使在源引脚的每一个位信号传输到汇引脚组的时间尽可能相同,即源引脚组和汇引脚组之间的所有引脚对的长度相等。当两个总线引脚组之间的所有引脚对的长度不一致时,则发生了线长偏差。总线线长偏差计算定义如下:
Figure BDA0003140198470000141
其中WPGi j<k>是第i个总线线网的源引脚组(PGi 0)和第j个汇引脚组(PGi j)之间第k对引脚组的线长,MWPGi j是第i个总线线网的PGi 0和PGi j之间所有引脚组中的最大线长。图3为总线Bi的二维示意图,分别有源引脚组PGi 0,目标引脚组PGi 1、PGi 2,以及两个信号位bit1、bit2,即2个线网。
4.整体流程说明:
算法整体流程如图4所示,1、首先通过前期总体布线算法得到一个初始2D布线结果;2、对所有线网进行优先级计算;3、对2D布线结果使用贪心算法来进行层分配;4.对初始3D布线结果进行局部调整;5、输出布线结果。
5.算法概述:
(1)优先级顺序
在层分配的布线过程中中,线网将依照规定的布线次序进行走线,而一个电路的布线资源是有限的,因此,布线资源会随着布线的进行逐渐减少。也就是说,先行层分配的线网将拥有更多可选的布线资源,而后续分配的线网相比起前者拥有的可选资源减少,这就导致了线网的布线次序对层分配的布线质量有直接影响。因此,在层分配开始布线前找到一个恰当的层分配顺序可以提高布线资源的使用效率,从而得到最好的层分配结果。当期望优化的目标不同时,优先级算法所选取的线网属性也有所不同。
在本算法中,线网的优先级越高,将越早进行层分配。本发明以优化总线偏差为目标,考虑了以下几个线网属性:线长、引脚数、信号位数。线网的线长越长,则必定需求更多的布线资源。根据测试数据可知,总线的线长远大于非总线的线长。假设以线长为主导,将使得总线先布,而非总线后布。实验结果表明,由于总线占用了优质资源后,迫使数量巨大的非总线使用较差的资源,在总线偏差得到显著优化的同时也面临着总线长的剧烈恶化。当线网中存在较多的引脚时,会导致布线过程中需要不断地连接底层布线单元,因而产生较多的通孔和额外线长。因此当选择优先布下引脚数较多的线网时,可以使得总线和非总线交错布下。实验结果表明,相比线长优先的策略,该策略的总线偏差的优化效果和总线长的恶劣程度一同减弱。不同的线网拥有不同的信号位数,信号位数数较多的线网需要更多的优质资源,以保证总线的偏差不会相差过大。假设以信号位数为主导,信号位数更多的线网先行布线。
结合以上的布线数据特点和各属性的数量级特点,线网的布线顺序的考虑如下:以信号位数为主导的优先级可以在优化总线偏差的同时,也有效控制了总线长的增加。利用线长和引脚数的数量特性对布线的影响,综合两者的性质加以区分同信号位数的线网的优先级,扩大总线线网与非总线线网的区分度。
综合以上两点后,本实施例以减少总线偏差为目标,提出了改进的优先级算法。计算公式如下:
Figure BDA0003140198470000151
其中,Ni表示线网i,pin_number(Ni)表示线网Ni的引脚数,wirelength(Ni)是线网Ni在2D上的布线长度,bits(Ni)是Ni的信号位数,α是用户自定义的系数。在α的选择中,尝试了多个参数值,经过多次尝试后测试数据显示,当系数α选择150时不仅在改进效果上表现良好,并且布线改进效果的稳定度也远比其他数值更高,因此在本发明中选择的α参数值为150。
(2)基于贪心策略的层分配算法
首先,对线网需要变换布线层的部分,最邻近的可布层理所应当为最优解。对该线网的后续部分,只要布线资源不耗尽,则能够在该层持续布线,最理想情况下与前一个线网只存在一个通孔的总线偏差,从一定程度上达到全局最优解。其次,当一总线的最终布线结果达到总线偏差相近,甚至是零偏差时,也就意味着每根线网的局部布线都是选择了当前最短路径,与前一个总线线网的通孔数量差距为零或者很小。综上所述,贪心策略对优化总线偏差有非常高的适配性。布线算法如下所示。
Figure BDA0003140198470000161
Figure BDA0003140198470000171
(3)对布线的局部调整算法:
对布线的局部调整算法的提出的目的是为了对层分配初始布线结果的调整与修复,提高布线的质量。
在现有的研究中,拆线-重布是集成电路布线研究中一种常用的算法。拆线-重布的思想就是在完成初始的布线后挑选某些恶化芯片性能的线网路径进行拆除,然后按照一定的规则将其重新规划路径,更新到原本的布线中,进而达到提高布线质量的目的。本实施例的拆线-重布算法在选择目标路径时,只考虑仅关联了目标引脚的局部线网,因此选择拆除的走线长度比较小。此外,在不影响原布线结果的情况下,选取一条新的布线资源充足的路径进行线网重布,所以该拆线重布方案是具有正确性和可布性的。该算法不仅克服了拆线所带来的不可预知的布线结果,并且达到减少总线偏差的优化目标。该阶段的算法流程如图5所示。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (2)

1.一种考虑总线时序匹配的层分配方法,其特征在于:包括以下步骤:
步骤S1:获取初始2D布线结果;
步骤S2:计算每个线网的布线顺序;
步骤S3:使用贪心算法获得层分配结果;
步骤S4:根据层分配结果对线网的局部进行线长调整;
步骤S5:输出一个3D的布线连接图;
所述步骤S1的具体内容为:总体布线阶段首先将各个金属层的布线资源进行统筹谋划,得到一个不违反拥塞约束且时延、线长、溢出都满足物理约束的2D总体布线图G2=(V2,E2);其中,布线图上的布线网格点表示为v2∈V2;布线图上的连接两个网格点(v2 i,v2 j)的边表示为e2∈E2
步骤S2中所述计算每个线网的布线顺序采用优先级算法,计算公式如下:
Figure FDA0003562822320000011
其中,Ni表示线网i,pin_number(Ni)表示线网Ni的引脚数,wirelength(Ni)是线网Ni在2D上的布线长度,bits(Ni)是Ni的信号位数,α是用户自定义的系数,参数值为150,根据所有线网的各个属性进行计算,priority(N)越高代表其优先级越高;
所述步骤S3的具体内容为:
同一总线的线网在2D布线时路径是一致的,这就意味着只要某一层的布线资源充足,总线内所有线网将达到零偏差;但是通道的布线资源耗尽时,线网就需要变换布线层次,这将导致每一次变换布线层次都会产生总线偏差;因此当某一布线通道的布线资源耗尽时,将选择距离最近且有剩余布线资源即上面一层或者下面一层的布线层进行布线,用以缩减总线偏差,并得到一个初始层分配结果即为3D布线连接图;具体包括以下步骤:
步骤S31:寻找线长最长的线网;
步骤S32:检索存在总线偏差线网;
步骤S33:搜索新路径;
步骤S34:判断新路径是否与原布线相交;若相交则执行步骤S35,否则执行步骤S36;
步骤S35:判断是否发生溢出;若是则执行步骤S36,否则拆线重布,继续执行步骤S36;
步骤S36:判断全部检测是否完成,若完成则结束,否则返回步骤S32;
步骤S32中所述总线偏差为:
对于总线线网而言,它有r位信号和q个总线引脚组(PG);其中,1个总线引脚组为源引脚组(PG0 i),q-1个为汇总线引脚组(PGi j);为了满足时序的一致,必须使在源引脚的每一个位信号传输到汇引脚组的时间相同,即源引脚组和汇引脚组之间的所有引脚对的长度相等;当两个总线引脚组之间的所有引脚对的长度不一致时,则发生了线长偏差;总线线长偏差计算定义如下:
Figure FDA0003562822320000021
其中,WPGi j<k>是第i个总线线网的源引脚组(PGi 0)和第j个汇引脚组(PGi j)之间第k对引脚组的线长,MWPGi j是第i个总线线网的PGi 0和PGi j之间所有引脚组中的最大线长;
所述步骤S4具体包括以下步骤:
步骤S41:寻找总线中线长最长的线网:该步骤首先对步骤S3步骤的布线结果给出每个总线中源引脚组到每个目标引脚组的所有信号位线长;每个目标引脚组都连接了总线的所有信号位,若引脚存在偏差,则势必存在一个从源引脚组到目标引脚组的线长最长的信号位;因此,在每个引脚组对中以线长最长的信号位为目标,通过延长其余线长的信号位达到缩减总线偏差的优化目标;
步骤S42:检测存在偏差的总线线网:步骤S41得到目标信号位的线长后,将对源引脚组、目标引脚组相同的其余信号位逐一采用总线偏差计算方法进行检测,观察其线长是否与目标信号位存在偏差;
步骤S43:当检测到某条线网存在偏差,则从引脚位置回溯线网,搜索新的布线路径;该步骤首先从距离引脚组坐标最远的可拆线位置向周围区域检索可用的布线路径;在回溯阶段,考虑到总线线网往往连接的引脚数量多,如果将线网整体拆除导致总线偏差增加;因此,仅对局部的线网进行拆线,在拆线-重布阶段中,局部拆线的范围则考虑了只与该引脚有关的线网,避免了拆除的线网过多导致该路径上连接的其他信号位找不到布通路径的情况;
步骤S44:检测新路径是否违反了布线约束:新的路径在缩减总线偏差的同时,要使得新的布线路径能够布通;也这意味着拆线-重布的线网不能违反布线区域的布线约束;保证了拆线-重布的线网具有可布性和正确性;
步骤S45:进行拆线-重布:当检索到某条布线资源充足的通道时,则将原本的布线路径拆除,将检索到的可布通道更新到原本的布线结果中;
步骤S46:判断是否遍历了所有存在偏差的总线线网;对遍历过的线网进行标记,直到所有总线线网都被标记后即算遍历完成;当全部遍历完成,则算法结束;若遍历没有完成则重新返回步骤S41。
2.根据权利要求1所述的一种考虑总线时序匹配的层分配方法,其特征在于:所述布线区域的布线约束为:金属层只允许走垂直或者水平方向;同一层的布线不允许相交;不能够产生溢出即不许在没有容量的区域经过,此处容量指每个区域允许结果的线网数量。
CN202110733238.5A 2021-06-30 2021-06-30 一种考虑总线时序匹配的层分配方法 Active CN113449479B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110733238.5A CN113449479B (zh) 2021-06-30 2021-06-30 一种考虑总线时序匹配的层分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110733238.5A CN113449479B (zh) 2021-06-30 2021-06-30 一种考虑总线时序匹配的层分配方法

Publications (2)

Publication Number Publication Date
CN113449479A CN113449479A (zh) 2021-09-28
CN113449479B true CN113449479B (zh) 2022-05-10

Family

ID=77814342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110733238.5A Active CN113449479B (zh) 2021-06-30 2021-06-30 一种考虑总线时序匹配的层分配方法

Country Status (1)

Country Link
CN (1) CN113449479B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114297976B (zh) * 2021-12-30 2023-05-09 北京中科睿芯科技集团有限公司 一种用于脉冲逻辑电路的自动布线方法、系统
CN114970442A (zh) * 2022-05-31 2022-08-30 福州大学 考虑总线感知的多层全局布线方法
CN117669477B (zh) * 2024-01-31 2024-04-05 苏州元脑智能科技有限公司 一种集成电路的布线方案确定方法、装置及设备和介质
CN117829084B (zh) * 2024-03-04 2024-05-14 杭州广立微电子股份有限公司 一种三维网格绕线方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673201A (en) * 1992-09-29 1997-09-30 International Business Machines Corporation Sub-problem extraction method for wiring localized congestion areas in VLSI wiring design
CN108805277A (zh) * 2018-06-29 2018-11-13 中国科学技术大学苏州研究院 基于多fpga的深度信念网络加速平台及其设计方法
CN111291525A (zh) * 2020-02-17 2020-06-16 福州大学 考虑总线和非总线线网的层分配方法
CN112861466A (zh) * 2021-02-04 2021-05-28 深圳华大九天科技有限公司 一种布线轨道分配方法、电子设备及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673201A (en) * 1992-09-29 1997-09-30 International Business Machines Corporation Sub-problem extraction method for wiring localized congestion areas in VLSI wiring design
CN108805277A (zh) * 2018-06-29 2018-11-13 中国科学技术大学苏州研究院 基于多fpga的深度信念网络加速平台及其设计方法
CN111291525A (zh) * 2020-02-17 2020-06-16 福州大学 考虑总线和非总线线网的层分配方法
CN112861466A (zh) * 2021-02-04 2021-05-28 深圳华大九天科技有限公司 一种布线轨道分配方法、电子设备及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TMS320DM365视频电路板设计与信号完整性分析;傅骁慧;《万方数据库》;20160129;全文 *
芯片级布图规划中的缓冲器规划算法;陈松等;《中国科学E辑》;20040820(第08期);全文 *

Also Published As

Publication number Publication date
CN113449479A (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
CN113449479B (zh) 一种考虑总线时序匹配的层分配方法
CN110795908B (zh) 偏差驱动的总线感知总体布线方法
CN111291525B (zh) 考虑总线和非总线线网的层分配方法
CN111814420B (zh) 基于拓扑优化和启发式搜索的总体布线方法
CN111709205B (zh) Fpga布线方法
CN110795907A (zh) 一种考虑布线资源松弛的X结构Steiner最小树构造方法
WO1998016891A1 (en) A method for routing of nets in an electronic device
JP2006323643A (ja) 半導体集積回路のフロアプラン設計プログラム、フロアプラン設計装置、および設計方法
CN107832519A (zh) 超大规模集成电路中高性能x结构多层总体布线方法
CN105069228B (zh) 一种在spare cell上加入spare via的方法
CN115983187A (zh) 基于多策略的考虑总线偏差的层分配方法
CN103324773B (zh) 3D集成电路中TSV的Trench沟道布局方法
Hsu et al. Multi-layer global routing considering via and wire capacities
CN112989749A (zh) 一种集成电路版图布线中引脚访问方法及装置
US8010925B2 (en) Method and system for placement of electric circuit components in integrated circuit design
US10936784B2 (en) Planning method for power metal lines
CN111723545B (zh) 超大规模集成电路下基于通孔感知的并行层分配方法
CN112733484A (zh) 基于多策略优化的Slew约束下的X结构Steiner树构造方法
JP2010073073A (ja) レイアウト設計方法、装置及びプログラム
CN101499470B (zh) 集成电路电源布局及其设计方法
CN114970442A (zh) 考虑总线感知的多层全局布线方法
CN113312875B (zh) 基于择优机制的时延优化层分配方法
CN117875254A (zh) 考虑总线拓扑结构的层分配方法
CN116663488B (zh) 一种多层级总体布线方法及系统
CN116127906A (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