多时钟系统的平面布图规划方法

文档序号:6555215阅读:178来源:国知局
专利名称:多时钟系统的平面布图规划方法
技术领域
本发明属于集成电路计算机辅助设计技术领域,具体涉及一种新的布图规划方法,尤其涉及一种对多时钟系统的平面布局布图规划方法。
背景技术
集成电路布图规划算法的研究在近年来受到了广泛重视,但是目前研究重点还主要集中在基于面积、线长以及关键路径时间延迟的优化几个方面。伴随着电路规模的不断增大,多时钟系统已经越来越普遍,由于要同时考虑不同时钟域和同一时钟域不同模块之间的关系,在布图规划时考虑到多时钟问题将成为必然。本发明将有针对性的提出基于多时钟平面布图规划问题。

发明内容
本发明的目的是提出一种针对多时钟域的超大规模集成电路布图规划方法。
传统的超大规模集成电路布图规划问题描述如下给定一组由N个模块组成的集合B={b1,b2,...,bN},对bi∈B(i=0,1,...,N),有一组参数{hi,wi,αi}与其相对应,分别代表该模块的高度、宽度和面积,其中αi固定不变,τi=wi/hi可以在一定范围内变化,布图规划的目标是在使这些模块不相互重叠的前提下,使外包所有模块的最小矩形的面积最小,同时使模块间连线的总长度最短。
通常布图规划系统需要用一种数据结构将相应的布局表示出来,本发明采用了序列对[1]的表示方法。序列对表示法包括两个由所有模块的名字组成的序列X、Y。根据序列对表示法,两个模块之间的位置关系如下(1)如果在X、Y中模块a都在模块b前面,则在平面布局中,模块b在模块a的右侧,相应的序列对为(…a...b...,...a...b...);(2)如果在X中模块a都在模块b前面,在Y中模块a都在模块b后面,则在平面布局中,模块a在模块b的上方(模块b在模块a的下方),相应的序列对为(…a...b...,...b...a...)。
优化策略选择模拟退火算法[6],优化过程中使用如下几种操作策略(1)交换X序列中两个模块的位置;(2)交换Y序列中两个模块的位置;(3)同时交换X序列和Y序列中两个模块的位置;
(4)交换X序列中两个时钟域的位置;(5)交换Y序列中两个时钟域的位置;(6)同时交换X序列和Y序列中两个时钟域的位置;(7)旋转操作。
与单时钟系统相比较,多时钟系统具有如下特点(1)电路中具有两个或两个以上非同源的时钟。
(2)通常每个模块只有一个时钟,本发明中我们假定每个模块只有一个时钟。
(3)不同时钟域之间存在信号交互。
本发明中的符号含义如下N模块总数,Ni第f个时钟域的模块数,K时钟域的个数,hi模块i的垂直方向的长度,wi模块i水平方向的长度,ai模块i的面积,b(i)第i个模块,C(b(i))模块b(i)的时钟域,τiτi=wi/hi,bij第i个时钟域的第j个模块,clocki第i个时钟域,node(i)约束图中的第i个时钟域,V约束图中节点的集合,X序列对表示法中的第一个序列,Y序列对表示法中的第二个序列。
对于一个多时钟系统,由于不同时钟域之问的区别与联系,其平面布图规划要比单时钟系统更加复杂,通常要求不同时钟域之间相互分开,同一时钟域的模块尽可能靠近。根据这一原则,首先针对多时钟系统平面布局的特点,提出允许的多时钟系统平面布局定义,然后在此基础上提出相应的基于多时钟系统的平面布图规划算法。
对于多时钟域的平面布局,不同时钟域的模块之间位置关系如下对于任意两个时钟域Dclcok1={bi1,bi2,...,bim},Dclockj={bj0,bj1,...,Bjn},]]>m、n分别为第i、j个时钟域的模块个数,根据上一节对多时钟域平面布局特点的分析,可以得出Dclocki∩Dclockj=φ]]>|Dclocki∪Dclockj|=m+n]]>假定相应的序列对为(X,Y)=(...bii1...bii2......biim...,...bjj1...bjj2......bjjn...)]]>仅包含Dclocki∪Dclockj的子序列对为(X′,Y′)=(b0i1b0i2...b0imb1j1b1j2...b1jn)]]>定义b(i)∈(X′,Y′)在X′和Y′中的位置分别为pX′(b(i))和pY′(b(i))。
根据上面的定义,再定义如下两种不允许的情形。
情形1∃bik,bil∈Dclocki(0<k,l≤|Dclocki|),pX′(bik)≤pX′(bil)]]>且pY′(biK)≤pY′(bil),如果∃bjm∈Dclockj0<m≤|Dclockj|]]>使pX′(bik)<pX′(bjm)pX′(bil)>pX′(bjm)pY′(bik)<pY′(bjm)pY′(bil)>pY′(bjm)]]>成立。
情形2∃bik,bil∈Dclocki(0<k,l≤|Dclocki|),pX′(bik)≤pX′(bil)]]>且pY′(bik)≥pY′(bil)如果∃bjm∈Dclockj0<m≤|Dclockj|,]]>使pX′(bik)<pX′(bjm)pX′(bil)>pX′(bjm)pY′(bik)>pY′(bjm)pY′(bil)<pY′(bjm)]]>成立。
定义1一个平面布局是允许的当且仅当其相对应的序列对不存在情形1和情形2。
为了更清楚的表述一个平面布局是否为可允许的,下面我们引入水平时钟域约束图和垂直时钟域约束图。
定义2水平时钟域约束图如果时钟域clockj的任一个模块在时钟域clockk的任一个模块的左边,则在水平约束图中存在一条从node(j)到node(k)的有向边。
定义3垂直时钟域约束图如果时钟域clockk的任一个模块在时钟域clockj的任一个模块的上边,则在垂直时钟域约束图中存在一条从node(j)到node(k)的有向边。
定理1一个多时钟系统的平面布局是允许的当且仅当其水平时钟域的约束图和垂直时钟域的约束图不存在环。
证明充分性的证明可以通过允许的平面布局的定义得到,下面使用反正法证明必要性。
假定一个允许的具有K个时钟域的平面布局的水平时钟域约束图中有一个环。不失一般性我们假定水平时钟约束图中存在一个环{node(1),node(2),...,node(n),node(1)},根据约束图的定义,我们可以得到∃bli∈clock1b2j∈clock2]]>pX′(b1i)<pX′(b2j)pY′(b1i)<pY′(b2j)---(1)]]>∃b2k∈clock2b3l∈clock2]]>pX′(b2k)<pX′(b3l)pY′(b2k)<pY′(b3l)---(2)]]>因为平面布局是允许的,因此b1i∈clock1b2j∈clock2pX′(b1i)<pX′(b2j)pY′(b1i)<pY′(b2j)---(3)]]>b2k∈clock2b3l∈clock2pX′(b2k)<pX′(b3l)pY′(b2k)<pY′(b3l)---(4)]]>类似的,可以得到bik∈clockib(i+1)l∈clocki+1(1≤i<n)pX′(bik)<pX′(b(i+1)l)pY′(bik)<pY′(b(i+1)l)---(5)]]>根据(5),可以得到b1i∈clock1bnj∈clock2
pX′(b1i)<pX′(bnj)pY′(b1i)<pY′(bnj)---(6)]]>但是,根据假设,约束图中存在一条从node(n)到node(1),因此∃b1i∈clock1bnj∈clock2]]>pX′(b1i)>pX′(bnj)pY′(b1i)>pY′(bnj)---(7)]]>(6)和(7)矛盾,因此,假设不成立,即一个允许的平面布局不存在环。
根据定理1,删除一个时钟域约束图中的环的过程就是一个将不允许的平面布局转化为允许的平面布局的过程。其步骤如下(1)如果约束图中的节点数不为零,计算水平约束图和垂直约束图中所有节点的入度和出度,否则结束;(2)根据计算的结果求得最小入度和最小出度的节点;(3)如果最小入度min(Din)=0或最小出度min(Dout)=0,则在约束图中去除相应的节点,转到第1步。否则进入第4步;(4)求得max(Din+Dout)=0所对应的节点。将此节点所对应时钟域的所有模块均移到每个序列的最后,同时保持该时钟域内部各模块的相对位置不变。然后转到第1步。
最后得到优化的超大规模集成电路布图布局,其外包所有模块的最小矩形的面积最小,而且模块间连线的总长度最短。
相应的伪代码如下算法1Algorithm IWhile V is not empty{For i=1 to NCalculate the in-degree and out-degree in both horizontal and verticalconstraint graphFind min in-degree mininand min out-degree minoutIf(min(Din)=0)or min(Dout)=0Remove the corresponding nodeElseFind the node v with max-degree
Extract blocks of the corresponding clock domain and put them to the last ofsequences with the relative position in this clock domain unchangedEnd for算法1由于每一次都要将非允许的平面布局转化为允许的平面布局,仅转化过程的时间复杂度为O(K·N),运算时间比较长。所以本发明进一步提出算法2,从一开始就避免非允许的平面布局出现。其本质是优化过程总是从一个允许的平面布局转到另一个允许的平面布局。为实现从一个允许的平面布局到另一个允许的平面布局,首先要使初始平面布局为允许的,然后进行优化,在优化过程中引入了两个时钟域的交换操作,其示意图见附图5。
算法2的步骤如下(1)构造初始序列对如下Xinitial=Yinitial=(b11,b12,...,b1N1,b21,b22,...,b2N2,...,bK1,bK2,...,bKNK),定义b(i)=Xinitial(i),下面采用模拟退火算法;(2)随机产生
.
ElseTENT-EXCHGE(C(b(elem1)),C(b(elem2))).Δcost=cost(new_place)-cost(place)if(Δcost>0)place=new_placeelse if(rand(0,1)>e-Δcost/T)place=new_placetimes=times+1 ododsoft block adjustmentend由于算法2加入了时钟域的交换,因此保证了每一次交换后布局都是允许的。
算法中对软核采用了参考文献[6]中的构造法,即对每一个软核b(i)都有11个候选的水平宽度,分别表示为wi1,wi2,...,wi10,其计算公式如下wi1=ai/τi‾]]>
wi2=0.9·ai/τi‾+0.1·ai/τi‾]]>wi3=0.8·ai/τi‾+0.2·ai/τi‾]]>wi4=0.7·ai/τi‾+0.3·ai/τi‾]]>wi5=0.6·ai/τi‾+0.4·ai/τi‾]]>wi6=0.5·ai/τi‾+0.5·ai/τi‾]]>wi7=0.4·ai/τi‾+0.6·ai/τi‾]]>wi8=0.3·ai/τi‾+0.7·ai/τi‾]]>wi9=0.2·ai/τi‾+0.8·ai/τi‾]]>wi10=0.1·ai/τi‾+0.9·ai/τi‾]]>wi11=ai/τi‾]]>在优化过程中每个软核的水平宽度总是根据上面的计算公式得到,解空间分析根据上面的分析我们可以看出,当系统中只有一个时钟域时,本发明提出的算法其解空间与序列对相同,为 即转化为一个单时钟系统。在多时钟系统中,由于每次总是进行同一时钟域内部模块之间的交换以及各个时钟域之间的交换,所以其解空间的大小要小于传统的序列对表示法。具体解空间大小分析如下仅考虑各个时钟域内部模块之间的交换,其解空间的大小为 仅考虑各个时钟域之间的交换,其解空间的大小为O((K!)2)。
因此,同时考虑时钟域内部模块和时钟域之间的交换其解空间的大小为((K!)2Σi=1K(Nj!)2)]]>由此可见,本发明引入了时钟域的交换,在不引入额外时间开销的情况下,其解空间大大降低。


图1为不允许情形1的图示。
图2为不允许情形2的图示。
图3为图1的时钟域约束图。其中,(a)水平约束图,(b)为垂直约束图。
图4为图2的时钟域约束图。其中,(a)水平约束图,(b)为垂直约束图。
图5为两个时钟域的交换过程图示。
图6为ami49的布图效果(λ=1)。
图7为test196的布图效果。
具体实施例方式
本发明选择了MCNC中模块数最多的ami49和用四个ami49生成的test196作为benchmark,其信息如表1,目标函数为λ1cost(area)+(1-λ1)cost(wire),退火过程中同一温度下循环200次,对所有核均有0.333≤τi≤3。实验步骤如下1、对benchmark加入相应的时钟域的信息,每个模块只属于一个时钟域。
2、读取相应的benchmark信息。
3、根据算法2进行优化。
实验结果如图6、图7和表2。图中不同的填充线代表不同的时钟域。
根据实验结果可以看出本发明提出的多时钟系统的平面布局算法在保证允许平面布局的同时,芯片的面积和连线总长度也得到了很好的优化。
表1

表2

参考文献[1]H.Murata,K.Fujiyoshi,S.Nakatake,and Y.Kajitani,“VLSI module placement based onrectangle-packing by the sequence-pair,”IEEE Trans.Computer-Aided Design,vol.15,pp.1518-1524,Dec.1996. X.Tang and D.F.Wong,“FAST-SPA fast algorithm for block placement based sequencepair,”Proc.ASPDAC,pp.521-526,2001. Hua Xiang,Xiaoping Tang,and Martin D.F.Wong Bus-Driven Floorplanning IEEETRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS ANDSYSTEMS,VOL.23,NO.11,pp.1522-1530 NOVEMBER 2004[4]D.F.Wong and C.L.Liu,“A New Algorithm for Floorplan Designs”in Proc.23rd ACM/IEEEDesign Automation Conf.pp.101-107,1986[5]Jae-Gon Kim,Yeong-Dae Kim A Linear Programming-Based Algorithm for Floorplanning inVLSI Design IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATEDCIRCUITS AND SYSTEMS,VOL.22,NO.5,MAY 2003 pp 584-592[6]VLSI计算机辅助设计理论和方法复旦大学出版社1990PP257-259
权利要求
1.一种多时钟的平面布图规划方法,其布图规划问题描述如下给定一组由N个模块组成的集合B={b1,b2,...,bN},对bi∈B(i=0,1,...,N),有一组参数{hi,wi,ai}与其相对应,分别代表该模块的高度、宽度和面积,其中ai固定不变,τi=wi/hi可以在一定范围内变化,布图规划的目标是在使这些模块不相互重叠的前提下,使外包所有模块的最小矩形的面积最小,同时使模块间连线的总长度最短;其中采用序列对表示法表示规划系统的布局由所有模块的名字组成序列X、Y;其特征在于对于多时钟域的平面布局,不同时钟域的模块之间位置关系如下对于任意两个时钟域Dclcoki={bi1,bi2,...,bim},Dclockj={bj0,Bj1,...Bjn},]]>m、n分别为第i、j个时钟域的模块个数,有Dclocki∩Dclockj=φ]]>|Dclocki∪Dclockj|=m+n]]>假定相应的序列对为(X,Y)=(...bii1...bii2......biim...,...bjj1...bjj2......bjjn...),]]>仅包含Dclocki∪Dclockj的子序列对为(X′,Y′)=(b0i1b0i2...b0imb1j1b1j2...b1jn)]]>定义b(i)∈(X′,Y′)在X′和Y′中的位置分别为pX′(b(i))和pY′(b(i));根据上面的定义,再定义如下两种不允许的情形情形1∃bik,bil∈Dclocki(0<k,l≤|Dclocki|),]]>pX′(bik)≤pX′(bil)且pY′(biK)≤pY′(bil),如果∃bjm∈Dclockj0<m≤|Dclockj|]]>使pX′(bik)<pX′(bjm)pX′(bil)>pX′(bjm)pY′(bik)<pY′(bjm)pY′(bil)>pY′(bjm)]]>成立;情形2∃bik,bil∈Dclocki(0<k,l≤|Dclocki|),]]>pX′(bik)≤pX′(bil)且pY′(bik)≥pY′(bil)如果∃bjm∈Dclockj0<m≤|Dclockj|,]]>使pX′(bik)<pX′(bjm)pX′(bil)>pX′(bjm)pY′(bik)>pY′(bjm)pY′(bil)<pY′(bjm)]]>成立;定义1一个平面布局是允许的当且仅当其相对应的序列对不存在情形1和情形2;引入水平时钟域约束图和垂直时钟域约束图定义2水平时钟域约束图如果时钟域clockj的任一个模块在时钟域clockk的任一个模块的左边,则在水平约束图中存在一条从node(j)到node(k)的有向边;定义3垂直时钟域约束图如果时钟域clockk的任一个模块在时钟域clockj的任一个模块的上边,则在垂直时钟域约束图中存在一条从node(j)到node(k)的有向边;定理1一个多时钟系统的平面布局是允许的当且仅当其水平时钟域的约束图和垂直时钟域的约束图不存在环;于是,本发明的解决方法归结为将不允许的平面布局转化为允许的平面布局,具体步骤为(1)如果约束图中的节点数不为零,计算水平约束图和垂直约束图中所有节点的入度和出度,否则结束;(2)根据计算的结果求得最小入度和最小出度的节点;(3)如果最小入度min(Din)=0或最小出度min(Dout)=0,则在约束图中去除相应的节点,转到第1步。否则进入第4步;(4)求得max(Din+Dout)=0所对应的节点,将此节点所对应时钟域的所有模块均移到每个序列的最后,同时保持该时钟域内部各模块的相对位置不变,然后转到第1步;上述符号的含义如下N模块总数,Ni第i个时钟域的模块数,K时钟域的个数,hi模块i的垂直方向的长度,wi模块i水平方向的长度,ai模块i的面积,b(i)第i个模块,C(b(i))模块b(i)的时钟域,τiτi=wi/hi,bij第i个时钟域的第j个模块,clocki第i个时钟域,node(i)约束图中的第i个时钟域,V约束图中节点的集合,X序列对表示法中的第一个序列,Y序列对表示法中的第二个序列。
2.一种多时钟的平面布图规划方法,其其布图规划问题描述如下给定一组由N个模块组成的集合B={b1,b2,...,bN},对bi∈B(i=0,1,...,N),有一组参数{hi,wi,ai}与其相对应,分别代表该模块的高度、宽度和面积,其中ai固定不变,τi=wi/hi可以在一定范围内变化,布图规划的目标是在使这些模块不相互重叠的前提下,使外包所有模块的最小矩形的面积最小,同时使模块间连线的总长度最短;其中采用序列对表示法表示规划系统的布局由所有模块的名字组成序列X、Y其特征在于对于多时钟域的平面布局,不同时钟域的模块之间位置关系如下对于任意两个时钟域Dclcoki={bi1,bi2,...,bim},Dclockj={bj0,Bj1,...Bjn},]]>m、n分别为第i、j个时钟域的模块个数,根据上一节对多时钟域平面布局特点的分析,可以得出Dclocki∩Dclockj=φ]]>|Dclocki∪Dclockj|=m+n]]>假定相应的序列对为(X,Y)=(...bii1...bii2......biim...,...bjj1...bjj2......bjjn...),]]>仅包含Dclocki∪Dclockj的子序列对为(X′,Y′)=(b0i1b0i2...b0imb1j1b1j2...b1jn)]]>定义b(i)∈(X′,Y′)在X′和Y′中的位置分别为pX′(b(i))和pY′(b(i));根据上面的定义,再定义如下两种不允许的情形;情形1∃bik,bil∈Dclocki(0<k,l≤|Dclocki|),]]>pX′(bik)≤pX′(bil)且pY′(biK)≤pY′(bil),如果∃bjm∈Dclockj0<m≤|Dclockj|]]>使pX′(bik)<pX′(bjm)pX′(bil)>pX′(bjm)pY′(bik)<pY′(bjm)pY′(bil)>pY′(bjm)]]>成立;情形2∃bik,bil∈Dclocki(0<k,l≤|Dclocki|),]]>pX′(bik)≤pX′(bil)且pY′(bik)≥pY′(bil)如果∃bjm∈Dclockj0<m≤|Dclockj|,]]>使pX′(bik)<pX′(bjm)pX′(bil)>pX′(bjm)pY′(bik)>pY′(bjm)pY′(bil)<pY′(bjm)]]>成立;定义1一个平面布局是允许的当且仅当其相对应的序列对不存在情形1和情形2;引入水平时钟域约束图和垂直时钟域约束图定义2水平时钟域约束图如果时钟域clockj的任一个模块在时钟域clockk的任一个模块的左边,则在水平约束图中存在一条从node(j)到node(k)的有向边;定义3垂直时钟域约束图如果时钟域clockk的任一个模块在时钟域clockj的任一个模块的上边,则在垂直时钟域约束图中存在一条从node(j)到node(k)的有向边;定理1一个多时钟系统的平面布局是允许的当且仅当其水平时钟域的约束图和垂直时钟域的约束图不存在环;于是,本发明的解决方法归结为将不允许的平面布局转化为允许的平面布局,具体步骤为(1)构造初始序列对如下Xinitial=Yinitial=(b11,b12,...,b1N1,b21,b22,...,b2N2,...,bK1,BK2,...,bKNK),定义b(i)=Xinitial(i),下面采用模拟退火算法;(2)随机产生[0,N)之间的两个整数elem1和elem2,即0≤elem1,elem2<N;(3)如果rand(0,1)<change_ratio,根据构造法调整hiwi(i=elem1)否则进入第4步;(4)如果rand(0,1)<rotate_ratio,旋转b(elem1),即交换hiwi(i=elem1),否则进入第5步;(5)如果rand(0,1)<swap_ratio,则,如果b(elem1),b(elem2)属于同一时钟域,根据概率尝试做下面三种操作①交换b(elem1),b(elem2)在X中的位置;②交换b(elem1),b(elem2)在Y中的位置;③同时交换b(elem1),b(elem2)在X和Y中的位置;如果b(elem1),b(elem2)不属于同一时钟域,根据概率尝试做下面三种操作①在X中交换b(elem1),b(elem2)所对应的两个时钟域的位置;②在Y中交换b(elem1),b(elem2)所对应的两个时钟域的位置;③在X,Y中交换b(elem1),b(elem2)所对应的两个时钟域的位置;(6)计算Δcost=cost(new_place)-cost(place),根据模拟退火算法确定接受上面的操作还是拒绝上面的操作,或结束优化过程。
全文摘要
本发明属集成电路计算机辅助设计技术领域,具体为一种多时钟系统的平面布图规划方法。本发明给出了允许的多时钟平面布局定义以及相应的定理和证明,并基于序列对的表示法和模拟退火算法提出了多时钟平面布图规划方法。本方法在不增加时间复杂度的前提下,根据多时钟系统的特点大大减小了解空间。实验结果表明,本发明对多时钟域平面布局有良好效果,可广泛应用于集成电路计算机辅助设计中。
文档编号G06F17/50GK1804849SQ200610023480
公开日2006年7月19日 申请日期2006年1月19日 优先权日2006年1月19日
发明者赵长虹, 陈建, 周晓方, 周电 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1