CN103984794A - 一种针对软模块的固定边框的集成电路布图规划方法 - Google Patents
一种针对软模块的固定边框的集成电路布图规划方法 Download PDFInfo
- Publication number
- CN103984794A CN103984794A CN201410130262.XA CN201410130262A CN103984794A CN 103984794 A CN103984794 A CN 103984794A CN 201410130262 A CN201410130262 A CN 201410130262A CN 103984794 A CN103984794 A CN 103984794A
- Authority
- CN
- China
- Prior art keywords
- cloth
- list
- solution
- floorplan
- delete
- 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.)
- Granted
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种针对软模块的固定边框的集成电路布图规划方法,该方法先采用SA算法以固定边框和总线长为目标搜索布图解的解空间,布图解采用NPE表示,对每个所得的布图解,应用形状曲线相加算法来获得其最优的布图实现;然后对SA搜索到的布图解进行判断;如果布图解已满足固定边框约束,则直接对其进行总线长优化,将线长优化后的布图解作为最终的布图解输出,完成布图规划;如果布图解不满足固定边框约束,则先应用IAD算子对其进行后布图优化,然后再进行总线长优化;优点是新增了后布图优化步骤,放宽了SA优化时对解的苛刻的固定边框约束,从而有效提高了算法速度和布图成功率;同时对总线长进行了二次优化,可以获得较低的总线长的布图结果。
Description
技术领域
本发明涉及一种集成电路布图规划方法,尤其是涉及一种针对软模块的固定边框的集成电路布图规划方法。
背景技术
布图规划(Floorplanning)是集成电路物理设计中的一个重要步骤。随着SoC(系统级芯片)设计规模和复杂性的日益增长,基于可复用IP核的层次化设计已成为当今SoC设计的主要手段。在层次化设计中,集成电路的形状和面积通常在更高层设计中就已确定,因此,现代布图规划实际上是一种固定边框的布图规划(Fixed-OutlineFloorplaning,FOF),FOF已成为当前集成电路物理设计的一个研究热点。在布图规划中,有两种类型的模块:软模块和硬模块,软模块指的是模块面积不变,高宽比可以在一定范围内变化的模块;硬模块指的是模块面积和高宽比均不能变化的固定模块。相对于硬模块,软模块具有更强的灵活性,在布图规划取得了广泛的应用。
在FOF问题中,不仅要求所有模块不重叠的放置到指定边框的区域内,而且需要同时优化线长和功耗等指标,因此,它要比传统的自由边框(Outline-free)的布图规划复杂得多。目前为了解决FOF问题,研究人员提出了很多方法,其中比较常用的有以下几种方法:第一种方法是文献1Adya S N and Markov I L.Fixed-outline foorplanning:enabling hierarchical design[J].IEEE Transactions on Very Large Scale Integration(VLSI)Systems,2003,11(6):1120-1135.(Adya S N和Markov I L.固定边框的布图规划使层次化设计成为可能[J].IEEE超大规模集成系统学报,2003,11(6):1120-1135)中提出的一种基于序列对表示和模拟退火算法(Simulated Annealing,SA)的固定边框布图规划算法,该方法将固定边框约束作为惩罚项加入到目标函数。然而,在对软模块进行布图规划时,由于给定的边框约束非常苛刻(芯片空白面积率低于1%),单纯依赖SA算法难以保证获得较高的布图成功率。第二种方法是文献2He Ou,Dong She-qin,and Bian Ji-nian.A novelfixed-outline floorplanner with zero deadspace for hierarchical design[C].IEEE/ACMInternational Conference on Computer-Aided Design,San Jose,California,USA,2008,16-23.(何鸥,董社勤,边计年.一种新的用于层次化设计的零空白面积的固定边框布图规划器[J],IEEE/ACM计算机辅助设计国际会议,圣何塞,加利福尼亚,美国,2008,16-23)中提出的基于有序四叉树(Ordered Quadtree)布图表示,它通过迭代构建和求解一组四变量的二次方程组来处理固定边框约束,实现了100%的面积利用率,但耗时较长。第三种方法是文献3Zhan Yong,Feng Yan,and Sapatnekar S S.A fixed-die floorplanningalgorithm using an analytical approach[C].11th Asia and South Pacific Design AutomationConference,Yokohama,Japan,2006,771-776.(Zhan Yong,Feng Yan,and Sapatnekar S S.一种基于分析的固定芯片布图规划方法[C].第11届亚洲和南太平洋设计自动化会议,横滨,日本,2006,771-776)中提出的一种基于二次分析的方法,在10%空白面积率下实现了90%以上的布图成功率,但由于该方法将模块位置限制在芯片的某个子区域内,减少了总线长优化的空间,难以获得较低的总线长。第四种方法是文献4Lin Jai-ming andHung Zhi-xiong.SKB-Tree:A fixed-outline driven representation for modern floorplanningproblems[J].IEEE Transactions on Very Large Scale Integration(VLSI)Systems,2012,20(3):473-484.(Lin Jai-ming and Hung Zhi-xiong.SKB树:一种固定边框驱动的用于现代布图规划问题的布图表示方法,IEEE超大规模集成系统学报,2012,20(3):473-484)中提出的一种布图表示——SKB(SKewed B*-tree),通过不断的将所有模块分割到若干子树,再将每个子树放置在指定宽度的区域内来实现固定边框约束,但这种布图表示方法由于搜索过程中易导致解结构变动过大,因此存在算法收敛速度慢的问题。
综上所述,现有针对软模块的集成电路布图规划方法布图成功率较高的则布图时间较长,而布图时间较短的则布图成功率较低或总线长较长,因此,研究一种可在较短时间内获得较高布图成功率和较低总线长的集成电路布图规划算法具有重要意义。
发明内容
本发明所要解决的技术问题是提供一种可在较短时间内获得较高布图成功率和较低总线长的针对软模块的固定边框的集成电路布图规划方法。
本发明解决上述技术问题所采用的技术方案为:一种针对软模块的集成电路布图规划方法,包括以下步骤:
①读入集成电路的模块和互连信息文件,随机产生NPE表示的初始布图解;
②以总线长和固定边框约束为目标采用SA算法搜索解空间,并将搜索到的布图解记为S1;
③对布图解S1进行判定:如果布图解S1满足指定的固定边框约束,将所得的布图解作为固定边框约束下的最优布图解输出;如果布图解S1不满足固定边框约束,则对布图解S1进行后布图优化,后布图优化的具体过程为:
③-1如果布图解中两个操作数运算后产生的空白面积大于等于Ath,则这两个操作数之间的组合称为非优组合,其中操作数为组成集成电路的独立软模块或由多个独立软模块运算得到的复合模块(独立软模块对应布图解的Slicing Tree中的叶节点,复合模块对应布图解的Slicing Tree中的分支节点),A/400≤Ath≤A/500,其中A为集成电路中所有软模块的总面积,找出S1中所有的非优组合,按照所产生空白面积从大到小顺序将每个非优组合中面积较小的操作数保存到列表Delete_Op_List中,Delete_Op_List(j)表示该列表的第j个元素,j=1,2,……,k,k为S1中非优组合的总数;
③-2将S1赋予S2,将S2作为后布图优化的初始解,对S2进行优化:
a.取出列表Delete_Op_List中的第一个操作数Delete_Op_List(1),从S2中删除Delete_Op_List(1)及其对应的运算符,得到S2’;
b.将Delete_Op_List(1)与S2’中除列表Delete_Op_List中操作数以外的其他操作数分别进行“*”和“+”组合,每一次组合产生一个新的布图解,对每个所得的布图解,应用形状曲线相加算法计算出其形状曲线Γ,在Γ上找出最接近固定边框的顶点作为该布图解的布图实现;
c.将函数Cost=W+H/λ作为目标函数来评估每一种组合下所得到布图解的质量,其中W为布图解的宽度,H为布图解的高度,λ为固定边框的高宽比,将其中Cost取值最小的布图解作为优化解,记为S3;
d.判定Delete_Op_List(1)是否是复合模块:如果不是,则将S3作为对S2第1次优化后的布图解;如果是,则将Delete_Op_List(1)拆分为多个独立软模块,并将它们按照面积从大到小的顺序逐一插入到S2’中,每个独立软模块的插入方法与步骤b和步骤c所示的Delete_Op_List(1)的插入方法相同,并且后一个独立软模块是插入到前一位独立软模块插入后得到的优化解中,由此得到第1次优化的布图解S4,将S3和S4进行比较,将两者中Cost更小的布图解作为对S2第1次优化后的布图解;
e.将对S2经1次优化后得到的布图解重新赋给S2,按照步骤a~步骤d中的相同的方法依次对列表Delete_Op_List保存中的其他操作数进行优化处理,由此得到S2经k次优化后的布图解作为固定边框约束条件下的最优布图解输出;
④对所得的固定边框约束下的最优布图解,通过交换同一运算符下两个操作数位置进行总线长优化,得到最终布图解。
所述的步骤b中,对Delete_Op_List(1)与S2’中除列表Delete_Op_List中保存的操作数以外的其他操作数每进行一次“*”或“+”组合运算所得到的布图解,应用形状曲线相加算法计算出其相应的形状曲线后,对形状曲线进行插值处理后然后找出形状曲线上最接近固定边框的顶点作为该布图解的布图实现。
与现有技术相比,本发明的优点在于:(1)采用NPE表示布图解,不仅计算简便,而且可以利用形状曲线相加技术获得每个布图解所有可能的布图实现,从而可以减少算法搜索的次数,提高算法的运行速度;(2)采用了一种改进的布图规划流程,在传统的布图规划流程之后增加了一个后布图优化步骤,有效提高了固定边框约束下布图规划的成功率;本发明方法先通过SA算法来搜索整个布图解空间,然后对所得的布图解进行判断,当它满足固定边框约束时,就将该布图解作为固定边框约束下的最优布图解输出,完成布图规划;当它不满足固定边框约束时,提出了一种基于IAD算子的后布图优化方法对其进行优化,后优化过程将SA所求得布图解作为后布图优化的初始解,先找出该解中存在的非优组合,然后将这些非优组合中面积较小的操作数采用删除后再插入算子进行优化,最终得到合法的布图解,采用删除后插入算子来消除一对非优组合最多需进行2(n-1)次插入操作,n为软模块的数量;由于经过SA算法优化后,所得布图解中存在的非优组合的数目并不多,因此,新增的后布图优化步骤所需的计算量和前面SA算法相比基本上可以忽略,由此,通过SA算法和后布图优化过程,可以在保证布图成功率较高的基础上,布图时间较短;
当采用插值技术来获得每一种组合下所得布图解的最优实现时,可以进一步减少所得布图的空白面积,同时一定程度上提高布图方法的速度。
附图说明
图1(a)为布图示例;
图1(b)为1(a)中布图的切分树(Slicing Tree,ST)表示;
图2(a)为含有第1种非优组合的布图F1及其对应的ST表示;
图2(b)为对图2(a)进行布图后优化后的结果;
图3(a)为含有第2种非优组合的布图F2及其对应的ST表示;
图3(b)为图3(a)的优化布图;
图4为软模块采用形状曲线表示示意图;
图5(a)为两个软模块m1和m2相应的形状曲线横向相加得到软模块组合m3的示意图;
图5(b)为两个软模块m1和m2相应的形状曲线纵向相加得到软模块组合m3的示意图;
图6为对形状曲线进行插值技术处理示意图;
图7为λ=1时本发明的方法和文献1中Parquet4.0在γ=10%下GSRC和MCNC中5个最大的电路的布图成功率(Success Rate,SR)的比较图;
图8为λ=1时本发明的方法和文献1中Parquet4.0在γ=1%下GSRC和MCNC中5个最大的电路的布图成功率(Success Rate,SR)的比较图;
图9为n300在λ=1~4时的布图结果。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例:一种针对软模块的集成电路固定边框的布图规划方法,包括以下步骤:
①读入集成电路的模块和互连信息文件,随机产生NPE表示的初始布图解;
②以总线长和固定边框约束为目标采用SA算法搜索解空间,并将搜索到的布图解记为S1;
③对布图解S1进行判定:如果布图解S1满足指定的固定边框约束,将所得的布图解作为固定边框约束下的最优布图解输出;如果布图解S1不满足固定边框约束,则对布图解S1进行后布图优化,后布图优化的具体过程为:
③-1如果布图解中两个操作数运算后产生的空白面积大于等于Ath,则这两个操作数之间的组合称为非优组合,其中操作数为组成集成电路的独立软模块或由多个独立软模块运算得到的复合模块(独立软模块对应布图解的Slicing Tree中的叶节点,复合模块对应布图解的Slicing Tree中的分支节点),A/400≤Ath≤A/500,其中A为集成电路中所有软模块的总面积,找出S1中所有的非优组合,按照所产生空白面积从大到小顺序将每个非优组合中面积较小的操作数保存到列表Delete_Op_List中,Delete_Op_List(j)表示该列表的第j个元素,j=1,2,……,k,k为S1中非优组合的总数;
③-2将S1赋予S2,将S2作为后布图优化的初始解,对S2进行优化:
a.取出列表Delete_Op_List中的第一个操作数Delete_Op_List(1),从S2中删除Delete_Op_List(1)及其对应的运算符,得到S2’;
b.将Delete_Op_List(1)与S2’中除列表Delete_Op_List中操作数以外的其他操作数分别进行“*”和“+”组合,每一次组合产生一个新的布图解,对每个所得的布图解,应用形状曲线相加算法计算出其形状曲线Γ,在Γ上找出最接近固定边框的顶点作为该布图解的布图实现;
c.将函数Cost=W+H/λ作为目标函数来评估每一种组合下所得到布图解的质量,其中W为布图解的宽度,H为布图解的高度,λ为固定边框的高宽比,将其中Cost取值最小的布图解作为优化解,记为S3;
d.判定Delete_Op_List(1)是否是复合模块:如果不是,则将S3作为对S2第1次优化后的布图解;如果是,则将Delete_Op_List(1)拆分为多个独立软模块,并将它们按照面积从大到小的顺序逐一插入到S2’中,每个独立软模块的插入方法与步骤b和步骤c所示的Delete_Op_List(1)的插入方法相同,并且后一个独立软模块是插入到前一位独立软模块插入后得到的优化解中,由此得到第1次优化的布图解S4,将S3和S4进行比较,将两者中Cost更小的布图解作为对S2第1次优化后的布图解;
e.将对S2经1次优化后得到的布图解重新赋给S2,按照步骤a~步骤d中的相同的方法依次对列表Delete_Op_List保存中的其他操作数进行优化处理,由此得到S2经k次优化后的布图解作为固定边框约束条件下的最优布图解输出;
④对所得的固定边框约束下的最优布图解,通过交换同一运算符下两个操作数位置进行总线长优化,得到最终布图解。
本发明的设计原理如下所述:
现有的针对基于软模块的FOF问题的输入包括:
(1)一个包含n个软模块的集合M={m1,m2,…,mi,…,mn},mi表示第i个软模块,1≤i≤n,软模块mi的面积为ai、高度为hi和宽度为wi;
(2)软模块mi的高宽比约束:li≤hi/wi≤ri,li=0.3,ri=3;
(3)各个软模块之间的N个线网连接,线网连接用netj表示,j=1,2,…,N;
(4)集成电路芯片的固定边框约束λ(固定边框的高宽比)及允许的最大空白面积率γ。
在FOF问题中,要求确定每个软模块的尺寸及其在芯片中的坐标,使这些软模块互不重叠地放置在指定的固定边框内,同时优化芯片的面积和总线长,其中软模块mi的尺寸为(wi,hi),其在芯片中的坐标为(xi,yi)。
由此可知,固定边框约束下的合法布图须满足下式(1):
W≤Wf,H≤Hf (1)
式(1)中W为所得布图的宽度,H所得布图的高度;Wf为固定边框的宽度,Hf固定边框的高度,可由其中式(2)计算:
式(2)中A为M中所有软模块的总面积;若所得布图不能同时满足式(1)中的两个条件,则该布图为非法布图。迄今已提出多种有效的布图表示方法,如B*-tree、SP、约束图、SKB和NPE等,其中NPE表示具有计算简单和便于处理软模块形状上的灵活性等优点,故本发明中采用NPE表示布图解。NPE表示一般形式为:
E=e1e2…e2n-1,ei∈{1,2,…,n,*,+},1≤i≤2n-1 (3)
式(3)中,1~n分别表示芯片中的n个独立软模块,“*”和“+”表示操作数之间的运算符(Operator,简称op),其中操作数(Operand)可以是一个独立的软模块,也可以是由多个独立软模块运算后产生的复合模块:“*”表示两个操作数横向或水平组合,“+”表示两个操作数纵向或垂直组合。例如,如图1(a)中所示布图可表示成NPE:E=13+24+*,也可用与NPE一一对应的切分树(Slicing Tree,ST)表示,如图1(b)所示。
通过考察不满足固定边框约束的SA算法所得的布图解和与之对应的布图,发现其之所以违反边框约束,是因为是在SA算法所得的布图解中存在以下两种或其中之一的软模块组合:
(1)一个面积较小的独立的软模块(操作数1)和一个面积较大的软模块(操作数2)之间的组合运算;
(2)一个面积较小的复合模块(操作数1)和一个面积较大的软模块(操作数2)之间的组合运算。
在上述两种情况下,由于参与运算的两个操作数之间尺寸相差较大,组合后在布图中会产生较大的空白面积,由此导致所得布图超出指定的固定边框,我们将它们称为非优组合。
我们可以通过消除布图中的非优组合来对布图进行优化使其满足固定边框条件,由此我们可以找出布图中的所有非优组合并将这些非优组合中面积较小的操作数按序先从布图中删除然后再将其插入布图其他的合适地方来实现布图的优化。为了判定非优组合中面积较小的操作数被删除后再插入布图中的最优位置,我们引入函数Cost=W+H/λ作为目标函数来进行评估,其中W为布图解的宽度,H为布图解的高度,λ为固定边框的高宽比,非优组合中面积较小的操作数插入布图中不同位置会得到不同的布图解,我们将这些布图解中Cost最小的布图解作为优化解,由此确定非优组合中面积较小的操作数在布图中的最优位置。
如图2(a)所示的含有第1种非优组合的布图F1及其对应的ST表示,图中的虚线框表示固定边框,标号为0~9对应布图F1中10个软模块m0~m9。如图2(a)中布图F1的高度已满足约束条件,但在宽度上超过了约束,其原因在于布图解中存在一对非优组合运算,即根节点(*)下左孩子m2和右孩子T1之间的横向组合。如果能设法消除布图解中存在的类似的非优组合,就有可能将一个接近于满足固定边框的近似解(SA算法搜索到的布图解)转化为合法的布图解。从图2(a)不难发现,若将软模块m2从F1删除,然后将其重新插入到F1中的合适位置,并适当调整其它软模块的尺寸,就有可能得到一个合法的布图,如图2(b)所示。这是因为:(1)软模块m2删除后所得到的较大空白区域给其它软模块的尺寸调整提供了空间;(2)由于软模块m2面积较小,将它重新插入后不至于对原有已接近于满足边框约束的布图产生过大的改变。可见,通过这样一种先删除后插入操作,可以有效的消除布图解中的非优组合。本申请对SA算法搜索到的布图解进行后优化的方法正是基于这一思想,本申请中将这种新的用于后布图优化的操作方法称为IAD算子。
如何确定布图中的非优组合,本申请中以空白面积作为判定标准,判定方法如下:若两个操作数(op1,op2)横向或纵向组合后产生的空白面积ds(op1,op2)满足下式:
ds(op1,op2)>=Ath (4)
式(4)中Ath是一个经验参数,需经多次试验来确定其合适值,本申请中取A/400≤Ath≤A/500。找出布图解中的非优组合后,即可将其中尺寸较小的操作数(设为md)从原位置删除,然后将其重新插入到布图解的合适位置。由于没有直观的方法来确定md在布图解中最佳的插入位置,因此采用了枚举法,即通过将md和布图解中其他操作数依次进行“*”和“+”组合,然后比较每种组合下的目标函数(Cost=W+H/λ)来确定md在布图解中最佳的插入位置。利用该方法消除一对非优组合最多需进行2(n-1)次插入操作。由于经过SA算法优化后,布图解中非优组合的数目并不多,因此后布图优化所需的计算量和前面的SA算法相比基本上可以忽略。
在非优组合中,尺寸较小的操作数既可能是独立的软模块,也可能是多个(两个或者两个以上)独立软模块组成的复合模块,如图3(a)所示的含有第2种非优组合的布图F2及其对应的ST表示,图中的虚线框表示固定边框,标号为0~9对应布图F21中10个软模块m0~m9,此时尺寸较小的操作数对应ST中的一颗子树,如图3(a)中T2所示。而软模块组合的尺寸一般较独立的软模块要大,插入后会较大程度的改变原已接近于固定边框的布图,若直接应用IAD算子来进行处理,不一定能得到合法的布图解。针对这一情况,采取了两种处理方式:一是将该非优组合中面积较小的操作数作为一个整体,将其从布图中删除后直接进行插入操作;二是将该操作数拆分成一个个的独立软模块,然后按面积从大到小顺序将它们逐一插入到布图中,如图3(b)所示,最后将两种方式下所得结果的更优者作为最终的布图。
由于所给定软模块的尺寸可变,一个NPE对应多种可能的布图实现。我们先将每个软模块表示为一条形状曲线,然后通过对各个软模块对应的形状曲线进行相加来获得每个NPE所有可能的布图实现,然后从中找出最接近固定边框和且产生空白面积最小的顶点作为该布图解的最优实现。由FOF问题的输入可知,任意模块mi的高度wi和宽度hi满足式(5):
式(5)中第一式表示一条位于第一象限的递减曲线,它与两条直线hi/wi=li和hi/wi=ri交点之间的区域为该软模块形状的可行范围,称之为软模块mi的形状曲线,两个交点A和B称为该形状曲线的顶点,如图4所示。由于每个软模块都可用形状曲线来描述,因此,可将它们之间的运算转化为相应形状曲线之间的运算。当两个软模块作“*”或“+”运算时,分别对应于各自的形状曲线进行横向或纵向相加。设m1和m2为两个软模块,其形状曲线分别如图5(a)和图5(b)中A1-A2和B1-B2所示,m3为它们作“*”运算后得到的软模块组合。图5(a)为两个软模块m1和m2相应的形状曲线横向相加得到软模块组合m3的示意图,如图5(a)所示,软模块组合m3的高度h3和宽度w3可由下式计算:
由式(5)可确定m3的高度范围为:h2min≤h3≤h2max。在区间[h2min,h1max],为使m1和m2组合后产生的空白面积(White-Space,WS)最小,h2必与h1取相同值,此时m3中产生的空白面积为零,故在该区间内m3面积保持不变,如图5(a)中C3-C2段所示。而在区间[h1max,h2max],为使m3中的空白面积最小,h1必须取最大值h1max(同时宽度取w1min),此时m3的高度h3=h2,空白面积等于(h2-h1max)*w1min,故其面积随h2(或h3)线性增加,如图5(a)中的C2-C1段所示。由此可知,当两个模块进行“*”运算时,所得软模块组合的面积或保持不变或是其高度的线性函数。因此,在对软模块的形状曲线进行“*”相加(横向相加)时,只需简单地在它们的顶点处进行相应的横向相加就可以了。当两个软模块作“+”运算(纵向相加)时,其形状曲线之间的相加可以用上述类似的方法来实现,如图5(b)所示。由于每次计算新解的布图时都会涉及到较多两个软模块之间的“*”或“+”运算,为提高算法速度,可预先计算出所有软模块两两组合运算的结果。这样每次计算新解时,可节省这部分运算所需的时间。
综上所述,本申请中首先以固定边框约束和总线长为目标,利用SA算法对解空间进行搜索。然后判断SA求得的布图解是否满足固定边框,如果不满足,提出了一种新的IAD算子对该解进行后布图优化,将其转变为满足固定边框的解,再对其进行总线长优化,可以有效的解决软模块的固定边框布图规划问题。
实施例二:本实施例与实施例一基本相同,区别仅在于步骤b中,对Delete_Op_List(1)与S2’中除列表Delete_Op_List中保存的操作数以外的其他操作数每进行一次“*”或“+”组合运算所得到的布图解,应用形状曲线相加算法计算出其相应的形状曲线后,对形状曲线进行插值处理后然后找出形状曲线上最接近固定边框的顶点作为该布图解的布图实现。
应用IAD算子计算NPE的形状曲线(设为Γ),在计算过程中仅记录了Γ上的各顶点,因此可能遇到Γ上相邻两顶点均不满足但其内部一些点却已满足固定边框约束的情况。例如,图6中,顶点A1(x1,y1)和A2(x2,y2)都在固定边框之外,但Ai却落在固定边框内。这时,需对Γ以一定的步长进行插值。设图6中顶点A1和A2处的面积分别为s1和s2,插值步长为δ,则A1-A2之间任一点Ai的面积si和坐标(xi,yi)可计算如下:
将本申请的方法采用C语言编程来实现,并在2.4GHz CPU,2.0GB内存的PC机上对6个GSRC电路和2个MCNC中模块数最多的电路(ami33和ami49)进行了实验。其中SA算法参数设置如下:(1)降温系数α=0.9;(2)每个温度下的迭代次数取20n(n为模块数);(3)初始温度T0=-2Δavg/lnP,Δavg为对初始解作N次扰动下目标函数变化量的平均值。P是退火开始时接受更劣解的概率;(4)终止温度Tf=10-6T0。实验中芯片允许的空白面积百分比γ=1%,所有电路在每个λ下均独立运行100次。
图7和图8分别给出了λ=1时本发明的方法和文献1中Parquet4.0在γ=10%和γ=1%下GSRC和MCNC中5个最大的电路的布图成功率(Success Rate,SR)的比较。由图可见,Parquet4.0在γ=10%时最高仅50%的布图成功率,当γ减少到1%,所有电路的布图成功率下降为零,而本文算法在1%空白面积率的苛刻约束下仍可达100%的布图成功率。
为进一步验证本发明的方法的有效性,本发明的方法在1%空白面积约束下,让高宽比λ以0.5的步长从1增加到6对上述5个电路进行了实验。表1给出了所得的布图成功率SR(%)及空白面积率WS(%)结果。从表1可见,所有电路均获得了99%以上的布图成功率(仅ami33和ami49在部分λ下有1%的失败率),且平均空白面积率≤0.04%。特别是在高宽比达到5:1或6:1时,除ami33外所有电路仍可达100%的成功率,表明本发明的方法对不同高宽比的固定边框约束具有良好的稳定性。
表1不同高宽比下固定边框的布图成功率及空白面积率结果(γ=1%)
表2列出了高宽比λ=1时本文算法和文献3中A-FP,文献1中Parquet4.0,文献2中SAFFOA及文献4中SKB所得到的总线长和运行时间上的比较结果,表中的总线长采用半周长法(HPWL)计算得到,“平均”一行为其它方法对本文方法结果的归一化比值。由表可见,和A-FP基于分析的确定性算法相比,本文算法虽然耗时较长,但可减少高达47.5%总线长。与Parquet4.0,SAFFOA和SKB等同样基于SA的方法相比,所提出算法不仅可分别减少56.2%、23.8%和4.5%的总线长,同时在速度上平均加快了1.042倍,11.123倍和9.048倍。这是因为本文所采用的流程放宽了SA求解时所受的约束,使得算法收敛速度加快。同时在计算新解时采用的预计算和插值技术,也一定程度上减少了算法的运行时间。
表2分别与文献[3,5,1,2,4]总线长及运行时间的比较(λ=1)
注:表中”-”表示原文未给出结果,下同。
表3列出了所提出算法和A-FP,SAFFOA,SKB等方法在不同λ下所得到的总线长的比较。由表可见,当芯片高宽比λ分别为2:1,3:1和4:1时,所提出的算法较A-FP可分别减少38.0%,36.5%和35.3%的总线长;与SAFFOA相比,所提出算法在总线长上分别减少了17.9%,13.7%和14.8%。与SKB相比,本文算法在总线长上分别减少了5.5%,4.1%和5.4%。可见,所提出算法通过对总线长的二次优化,使其在不同的高宽比下都可得到较低的总线长。图9中(a)-(d)分别给出了n300在λ=1~4时的布图结果。
表3本文分别与文献[2][4][3]在不同高宽比下总线长的比较
综上所述,本发明的方法和传统方法相比,该算法新增了一个后布图优化步骤,放宽了SA优化时对解的苛刻的边框约束,从而提高算法的收敛速度。提出了一种新的IAD算子对SA所得的布图解进行后优化,提高了布图成功率。同时在算法中对总线长进行了二次优化。实验结果表明,所提出算法在宽范围的高宽比下可实现接近100%的布图成功率和接近于零的空白面积率,且和已有文献相比,可获得总线长和布图速度都较优的布图结果。
Claims (2)
1.一种针对软模块的固定边框的集成电路布图规划方法,其特征在于包括以下步骤:
①读入集成电路的模块和互连信息文件,随机产生NPE表示的初始布图解;
②以总线长和固定边框约束为目标采用SA算法搜索解空间,并将搜索到的布图解记为S1;
③对布图解S1进行判定:如果布图解S1满足指定的固定边框约束,将所得的布图解作为固定边框约束下的最优布图解输出;如果布图解S1不满足固定边框约束,则对布图解S1进行后布图优化,后布图优化的具体过程为:
③-1如果布图解中两个操作数运算后产生的空白面积大于等于Ath,则这两个操作数之间的组合称为非优组合,其中操作数为组成集成电路的独立软模块或由多个独立软模块运算得到的复合模块(独立软模块对应布图解的Slicing Tree中的叶节点,复合模块对应布图解的Slicing Tree中的分支节点),A/400≤Ath≤A/500,其中A为集成电路中所有软模块的总面积,找出S1中所有的非优组合,按照所产生空白面积从大到小顺序将每个非优组合中面积较小的操作数保存到列表Delete_Op_List中,Delete_Op_List(j)表示该列表的第j个元素,j=1,2,……,k,k为S1中非优组合的总数;
③-2将S1赋予S2,将S2作为后布图优化的初始解,对S2进行优化:
a.取出列表Delete_Op_List中的第一个操作数Delete_Op_List(1),从S2中删除Delete_Op_List(1)及其对应的运算符,得到S2’;
b.将Delete_Op_List(1)与S2’中除列表Delete_Op_List中操作数以外的其他操作数分别进行“*”和“+”组合,每一次组合产生一个新的布图解,对每个所得的布图解,应用形状曲线相加算法计算出其形状曲线Γ,在Γ上找出最接近固定边框的顶点作为该布图解的布图实现;
c.将函数Cost=W+H/λ作为目标函数来评估每一种组合下所得到布图解的质量,其中W为布图解的宽度,H为布图解的高度,λ为固定边框的高宽比,将其中Cost取值最小的布图解作为优化解,记为S3;
d.判定Delete_Op_List(1)是否是复合模块:如果不是,则将S3作为对S2第1次优化后的布图解;如果是,则将Delete_Op_List(1)拆分为多个独立软模块,并将它们按照面积从大到小的顺序逐一插入到S2’中,每个独立软模块的插入方法与步骤b和步骤c所示的Delete_Op_List(1)的插入方法相同,并且后一个独立软模块是插入到前一位独立软模块插入后得到的优化解中,由此得到第1次优化的布图解S4,将S3和S4进行比较,将两者中Cost更小的布图解作为对S2第1次优化后的布图解;
e.将对S2经1次优化后得到的布图解重新赋给S2,按照步骤a~步骤d中的相同的方法依次对列表Delete_Op_List保存中的其他操作数进行优化处理,由此得到S2经k次优化后的布图解作为固定边框约束条件下的最优布图解输出;
④对所得的固定边框约束下的最优布图解,通过交换同一运算符下两个操作数位置进行总线长优化,得到最终布图解。
2.根据权利要求1所述的一种针对软模块的固定边框的集成电路布图规划方法,其特征在于所述的步骤b中,对Delete_Op_List(1)与S2’中除列表Delete_Op_List中保存的操作数以外的其他操作数每进行一次“*”或“+”组合运算所得到的布图解,应用形状曲线相加算法计算出其相应的形状曲线后,对形状曲线进行插值处理后然后找出形状曲线上最接近固定边框的顶点作为该布图解的布图实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410130262.XA CN103984794B (zh) | 2014-04-02 | 2014-04-02 | 一种针对软模块的固定边框的集成电路布图规划方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410130262.XA CN103984794B (zh) | 2014-04-02 | 2014-04-02 | 一种针对软模块的固定边框的集成电路布图规划方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103984794A true CN103984794A (zh) | 2014-08-13 |
CN103984794B CN103984794B (zh) | 2017-01-11 |
Family
ID=51276763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410130262.XA Expired - Fee Related CN103984794B (zh) | 2014-04-02 | 2014-04-02 | 一种针对软模块的固定边框的集成电路布图规划方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984794B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815650A (zh) * | 2015-11-27 | 2017-06-09 | 中国科学院微电子研究所 | 自动优化片上系统层次化模块布局的方法及系统 |
CN108763726A (zh) * | 2018-05-24 | 2018-11-06 | 福州大学 | 一种基于改进粒子群vlsi固定边框布图规划方法 |
CN112364599A (zh) * | 2020-11-27 | 2021-02-12 | 西南科技大学 | 一种固定边框电路布图规划方法 |
CN112668276A (zh) * | 2020-12-31 | 2021-04-16 | 杭州电子科技大学 | 一种基于层次化划分的布图规划方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040233704A1 (en) * | 2003-04-25 | 2004-11-25 | Yasushi Shizuki | Semiconductor integrated circuit device with differential output driver circuit, and system for semiconductor integrated circuit device |
CN101339571A (zh) * | 2007-11-01 | 2009-01-07 | 复旦大学 | 一种vlsi布局规划中集中约束的实现方法 |
CN102902347A (zh) * | 2012-09-28 | 2013-01-30 | 宁波大学 | 一种片上系统的低功耗电压岛划分方法 |
-
2014
- 2014-04-02 CN CN201410130262.XA patent/CN103984794B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040233704A1 (en) * | 2003-04-25 | 2004-11-25 | Yasushi Shizuki | Semiconductor integrated circuit device with differential output driver circuit, and system for semiconductor integrated circuit device |
CN101339571A (zh) * | 2007-11-01 | 2009-01-07 | 复旦大学 | 一种vlsi布局规划中集中约束的实现方法 |
CN102902347A (zh) * | 2012-09-28 | 2013-01-30 | 宁波大学 | 一种片上系统的低功耗电压岛划分方法 |
Non-Patent Citations (3)
Title |
---|
DIPANJAN SENGUPTAA ETAL.: "Multi-objective voltage island floorplanning using sequence pair representation", 《SUSTAINABLE COMPUTING: INFORMATICS AND SYSTEMS》 * |
徐宁等: "BBL布局算法研究", 《计算机辅助设计与图形学学报》 * |
王琳凯等: "一种有效的面向软模块的VLSI布图规划算法", 《小型微型计算机系统》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815650A (zh) * | 2015-11-27 | 2017-06-09 | 中国科学院微电子研究所 | 自动优化片上系统层次化模块布局的方法及系统 |
CN108763726A (zh) * | 2018-05-24 | 2018-11-06 | 福州大学 | 一种基于改进粒子群vlsi固定边框布图规划方法 |
CN112364599A (zh) * | 2020-11-27 | 2021-02-12 | 西南科技大学 | 一种固定边框电路布图规划方法 |
CN112668276A (zh) * | 2020-12-31 | 2021-04-16 | 杭州电子科技大学 | 一种基于层次化划分的布图规划方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103984794B (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10699051B1 (en) | Method and system for performing cross-validation for model-based layout recommendations | |
US6360356B1 (en) | Creating optimized physical implementations from high-level descriptions of electronic design using placement-based information | |
CN106919769B (zh) | 一种基于多层次方法和赋权超图的层次式fpga布局布线方法 | |
TWI479349B (zh) | 模擬積體電路以及電腦可讀取媒體之方法 | |
CN105893585B (zh) | 一种结合标签数据的二部图模型学术论文推荐方法 | |
CN103984794A (zh) | 一种针对软模块的固定边框的集成电路布图规划方法 | |
WO2019056887A1 (zh) | 对大规模可再生能源数据进行概率建模的方法 | |
CN113673192B (zh) | 一种超大规模集成电路spef寄生参数的并行加速提取方法 | |
CN105808582A (zh) | 基于分层策略的决策树并行生成方法和装置 | |
CN102622334B (zh) | 多线程环境下并行xslt转换方法和装置 | |
CN110276081B (zh) | 文本生成方法、装置及存储介质 | |
CN117193988A (zh) | 一种晶圆级架构ai加速芯片的任务调度方法及介质 | |
CN111897895B (zh) | 顾及弯曲特征的道路内部空间冲突解决的协同移位方法 | |
CN109583006B (zh) | 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法 | |
CN108197186B (zh) | 一种应用于社交网络中的动态图匹配查询方法 | |
CN115587560A (zh) | 用于分布式引擎的运行时和存储器高效的属性查询处理 | |
CN103927771B (zh) | 自适应设置Snakes模型形状参数的线状要素移位方法 | |
CN107564289B (zh) | 一种合并交通节点的道路网预处理方法 | |
Ozturk et al. | Statistical inference using stratified judgment post-stratified samples from finite populations | |
CN113239480B (zh) | 一种基于对比分析的结构拓扑优化方法 | |
Zhou | Machine learning based techniques for routing interconnects in very large scale integrated (VLSI) circuits | |
CN104407840A (zh) | 网格分解方法及系统 | |
CN117217141A (zh) | 确定芯片测试的输入的方法和装置 | |
Mateescu et al. | A Comparison of Time-Space Schemes for Graphical Models. | |
Peyer | Shortest paths and Steiner trees in VLSI routing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170111 Termination date: 20190402 |