CN1804849B - 多时钟系统的平面布图规划方法 - Google Patents
多时钟系统的平面布图规划方法 Download PDFInfo
- Publication number
- CN1804849B CN1804849B CN 200610023480 CN200610023480A CN1804849B CN 1804849 B CN1804849 B CN 1804849B CN 200610023480 CN200610023480 CN 200610023480 CN 200610023480 A CN200610023480 A CN 200610023480A CN 1804849 B CN1804849 B CN 1804849B
- Authority
- CN
- China
- Prior art keywords
- clock
- prime
- module
- zone
- node
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明属集成电路计算机辅助设计技术领域,具体为一种多时钟系统的平面布图规划方法。本发明给出了允许的多时钟平面布局定义以及相应的定理和证明,并基于序列对的表示法和模拟退火算法提出了多时钟平面布图规划方法。本方法在不增加时间复杂度的前提下,根据多时钟系统的特点大大减小了解空间。实验结果表明,本发明对多时钟域平面布局有良好效果,可广泛应用于集成电路计算机辅助设计中。
Description
技术领域
本发明属于集成电路计算机辅助设计技术领域,具体涉及一种新的布图规划方法,尤其涉及一种对多时钟系统的平面布局布图规划方法。
背景技术
集成电路布图规划算法的研究在近年来受到了广泛重视,但是目前研究重点还主要集中在基于面积、线长以及关键路径时间延迟的优化几个方面。伴随着电路规模的不断增大,多时钟系统已经越来越普遍,由于要同时考虑不同时钟域和同一时钟域不同模块之间的关系,在布图规划时考虑到多时钟问题将成为必然。本发明将有针对性的提出基于多时钟平面布图规划问题。
发明内容
本发明的目的是提出一种针对多时钟域的超大规模集成电路布图规划方法。
传统的超大规模集成电路布图规划问题描述如下:
给定一组由N个模块组成的集合B={b1,b2,...,bN},对bi∈B(i=0,1,...,N),有一组参数{hi,wi,ai}与其相对应,分别代表该模块的高度、宽度和面积,其中ai固定不变,τ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:第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:序列对表示法中的第二个序列。
对于一个多时钟系统,由于不同时钟域之间的区别与联系,其平面布图规划要比单时钟系统更加复杂,通常要求不同时钟域之间相互分开,同一时钟域的模块尽可能靠近。根据这一原则,首先针对多时钟系统平面布局的特点,提出允许的多时钟系统平面布局定义,然后在此基础上提出相应的基于多时钟系统的平面布图规划算法。
对于多时钟域的平面布局,不同时钟域的模块之间位置关系如下:
假定相应的序列对为
仅包含的子序列对为:
定义b(i)∈(X’,Y’)在X’和Y’中的位置分别为:
pX’(b(i))和pY’(b(i))。
根据上面的定义,再定义如下两种不允许的情形。
情形1:
成立。
情形2:
成立。
定义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)},根据约束图的定义,我们可以得到
因为平面布局是允许的,因此
类似的,可以得到
根据(5),可以得到
但是,根据假设,约束图中存在一条从node(n)到node(1),因此
(6)和(7)矛盾,因此,假设不成立,即一个允许的平面布局不存在环。
根据定理1,删除一个时钟域约束图中的环的过程就是一个将不允许的平面布局转化为允许的平面布局的过程。其步骤如下:
(1)如果约束图中的节点数不为零,计算水平约束图和垂直约束图中所有节点的入度和出度,否则结束;
(2)根据计算的结果求得最小入度和最小出度的节点;
(3)如果最小入度min(Din)=0或最小出度min(Dout)=0,则在约束图中去除相应的节点,转到第1步。否则进入第4步;
(4)求得max(Din+Dout)=0所对应的节点。将此节点所对应时钟域的所有模块均移到每个序列的最后,同时保持该时钟域内部各模块的相对位置不变。然后转到第1步。
最后得到优化的超大规模集成电路布图布局,其外包所有模块的最小矩形的面积最小,而且模块间连线的总长度最短。
相应的伪代码如下:
算法1:
Algorithm I
While V is not empty{
For i=1 to N
Calcula te the in-degree and out-degree in both horizontal and vertical
constraint graph
Find min in-degree minin and min out-degree minout
If(min(Din)=0)or min(Dout)=0
Remove the corresponding node
Else
Find the node v with max-degree
Extract blocks of the corresponding clock domain and put them to the last of
sequences with the relative position in this clock domain unchanged
End 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)随机产生[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),根据模拟退火算法确定接受上面的操作还是拒绝上面的操作,或结束优化过程。
该算法的伪代码如下:
算法2:
Algorithm II
begin
Let both of the initial sequences of X and Y be
Xinitial=Yinitial=(b11,b12,...,b1N1,b21,b22,...,b2N2,...,bK1,bK2,...,bKNK)
Let b(i)=Xinitial(i)
Simulated annealing algorithm is adopted in the following.
Produce two random integerselem1 and elem2 between[0,N).i.e.0≤elem1,elem2<N.
If(rand(0,1)<change_ratio)
TENT-CHANGE(hiwi)(i=elem1)
Else if(rand(0,1)<rotate_ratio)
TENT-ROTATE b(elem1)
Else if(rand(0,1)<swap_ratio)
If clock(b(elem1))=clock(b(elem2))
TENT-EXCHGE b(elem1),b(elem2)in X or Y or both X and Y according to FAST-SP[2].
Else
TENT-EXCHGE(C(b(eleml)),C(b(elem2))).Δcost=cost(new place)-cost(place)
if(Δcost>0)
place=new_place
else if(rand(0,1)>e-Δcost/T)
place=new_place
times=times+1 od
od
soft block adjustment
end
由于算法2加入了时钟域的交换,因此保证了每一次交换后布局都是允许的。
算法中对软核采用了参考文献[6]中的构造法,即对每一个软核b(i)都有11个候选的水平宽度,分别表示为wi1,wi2,...,wi10,其计算公式如下:
在优化过程中每个软核的水平宽度总是根据上面的计算公式得到,
解空间分析
根据上面的分析我们可以看出,当系统中只有一个时钟域时,本发明提出的算法其解空间与序列对相同,为即转化为一个单时钟系统。在多时钟系统中,由于每次总是进行同一时钟域内部模块之间的交换以及各个时钟域之间的交换,所以其解空间的大小要小于传统的序列对表示法。具体解空间大小分析如下:
仅考虑各个时钟域之间的交换,其解空间的大小为O((K!)2)。
因此,同时考虑时钟域内部模块和时钟域之间的交换其解空间的大小为
由此可见,本发明引入了时钟域的交换,在不引入额外时间开销的情况下,其解空间大大降低。
附图说明
图1为不允许情形1的图示。
图2为不允许情形2的图示。
图3为图1的时钟域约束图。其中,(a)水平约束图,(b)为垂直约束图。
图4为图2的时钟域约束图。其中,(a)水平约束图,(b)为垂直约束图。
图5为两个时钟域的交换过程图示。
图6为ami49的布图效果(λ1=1)。
图7为test196的布图效果。
具体实施方式
本发明选择了MCNC中模块数最多的ami49和用四个ami49生成的test196作为benchmark,其信息如表1,目标函数为λ1 cost(area)+(1-λ1)cost(wire),退火过程中同一温度下循环200次,对所有核均有0.333≤τi≤3。实验步骤如下:
1、对benchmark加入相应的时钟域的信息,每个模块只属于一个时钟域。
2、读取相应的benchmark信息。
3、根据算法2进行优化。
实验结果如图6、图7和表2。图中不同的填充线代表不同的时钟域。
根据实验结果可以看出本发明提出的多时钟系统的平面布局算法在保证允许平面布局的同时,芯片的面积和连线总长度也得到了很好的优化。
表1:
电路 | 模块数 | 时钟域数目 | 各模块的面积和 |
Ami49 | 49 | 5 | 35.45 |
test196 | 196 | 10 | 141.8 |
表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.
[2]X.Tang and D.F.Wong,“FAST-SP:A fast algorithm for block placement based sequencepair,”Proc.ASPDAC,pp.521-526,2001.
[3]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-1530NOVEMBER 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.
Claims (1)
1.一种多时钟的平面布图规划方法,其布图规划问题描述如下:给定一组由N个模块组成的集合B={b1,b2,...,bN},对bi∈B(i=0,1,...,N),有一组参数{hi,wi,ai}与其相对应,分别代表该模块的高度、宽度和面积,其中ai固定不变,τi=wi/hi可以在一定范围内变化,布图规划的目标是在使这些模块不相互重叠的前提下,使外包所有模块的最小矩形的面积最小,同时使模块间连线的总长度最短;
其中采用序列对表示法表示规划系统的布局:由所有模块的名字组成序列X、Y;其特征在于:对于多时钟域的平面布局,不同时钟域的模块之间位置关系如下:
对于任意两个时钟域m、n分别为第i、j个时钟域的模块个数,有:
假定相应的序列对为
定义b(i)∈(X′,Y′)在X′和Y′中的位置分别为:
pX′(b(i))和pY′(b(i));
根据上面的定义,再定义如下两种不允许的情形:
情形1:
如果 使
成立;
情形2:
如果 使
成立;
定义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:序列对表示法中的第二个序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610023480 CN1804849B (zh) | 2006-01-19 | 2006-01-19 | 多时钟系统的平面布图规划方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610023480 CN1804849B (zh) | 2006-01-19 | 2006-01-19 | 多时钟系统的平面布图规划方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1804849A CN1804849A (zh) | 2006-07-19 |
CN1804849B true CN1804849B (zh) | 2010-05-12 |
Family
ID=36866864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610023480 Expired - Fee Related CN1804849B (zh) | 2006-01-19 | 2006-01-19 | 多时钟系统的平面布图规划方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1804849B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7549137B2 (en) * | 2006-12-14 | 2009-06-16 | International Business Machines Corporation | Latch placement for high performance and low power circuits |
US8645893B1 (en) * | 2012-10-23 | 2014-02-04 | Arm Limited | Method of generating a layout of an integrated circuit comprising both standard cells and at least one memory instance |
CN108920746B (zh) * | 2018-05-17 | 2022-07-26 | 佛山市顺德区中山大学研究院 | 一种集成电路布局规划的预压缩方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547252A (zh) * | 2003-11-28 | 2004-11-17 | 清华大学 | 集成电路布图规划与缓冲器规划集成的布局方法 |
JP2005276991A (ja) * | 2004-03-24 | 2005-10-06 | Seiko Epson Corp | 半導体装置の配置配線方法 |
CN1702656A (zh) * | 2005-06-23 | 2005-11-30 | 复旦大学 | 一种基于权重的平面布图规划方法 |
-
2006
- 2006-01-19 CN CN 200610023480 patent/CN1804849B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547252A (zh) * | 2003-11-28 | 2004-11-17 | 清华大学 | 集成电路布图规划与缓冲器规划集成的布局方法 |
JP2005276991A (ja) * | 2004-03-24 | 2005-10-06 | Seiko Epson Corp | 半導体装置の配置配線方法 |
CN1702656A (zh) * | 2005-06-23 | 2005-11-30 | 复旦大学 | 一种基于权重的平面布图规划方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1804849A (zh) | 2006-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7962879B2 (en) | VLSI artwork legalization for hierarchical designs with multiple grid constraints | |
Wu et al. | Detailed placement algorithm for VLSI design with double-row height standard cells | |
CN102160055B (zh) | 电子电路阶层级数的排序仿真 | |
US20180018419A1 (en) | Integrated circuit implementing standard cells with metal layer segments extending out of cell boundary | |
Anand et al. | Customized simulated annealing based decision algorithms for combinatorial optimization in VLSI floorplanning problem | |
Balasa et al. | On the exploration of the solution space in analog placement with symmetry constraints | |
Wu et al. | Exploring feasibilities of symmetry islands and monotonic current paths in slicing trees for analog placement | |
Du et al. | Complex System Optimization Using Biogeography‐Based Optimization | |
CN1804849B (zh) | 多时钟系统的平面布图规划方法 | |
Park et al. | Grid-based framework for routability analysis and diagnosis with conditional design rules | |
Chen et al. | Multi-layer floorplanning for stacked ICs: Configuration number and fixed-outline constraints | |
Lin et al. | Routability-driven placement algorithm for analog integrated circuits | |
Saravanan et al. | Ontological model-based optimal determination of geometric tolerances in an assembly using the hybridised neural network and Genetic algorithm | |
Qiu et al. | Progress of Placement Optimization for Accelerating VLSI Physical Design | |
Gavrilov et al. | Clustering optimization based on simulated annealing algorithm for reconfigurable systems-on-chip | |
Yang et al. | Analog placement and global routing considering wiring symmetry | |
He et al. | A novel fixed-outline floorplanner with zero deadspace for hierarchical design | |
den Hollander et al. | Kawasaki dynamics with two types of particles: critical droplets | |
Cong et al. | An analytical placer for mixed-size 3D placement | |
He et al. | Symmetry-aware TCG-based placement design under complex multi-group constraints for analog circuit layouts | |
Geng et al. | Reinforcement Learning within Tree Search for Fast Macro Placement | |
CN104239590A (zh) | 一种集成电路版图验证中的图形结构调整方法 | |
Gupta et al. | Adaptive memetic algorithm on novel CBLSP algorithm for O-Tree implementation | |
Liu et al. | Performance-driven X-architecture routing algorithm for artificial intelligence chip design in smart manufacturing | |
Cao et al. | Metamodel assisted robust optimization under interval uncertainly based on reverse model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
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: 20100512 Termination date: 20130119 |