当前位置: 首页 > 专利查询>复旦大学专利>正文

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

技术编号:2851469 阅读:286 留言:0更新日期:2012-04-11 18:40
本发明专利技术属集成电路计算机辅助设计技术领域,具体为一种多时钟系统的平面布图规划方法。本发明专利技术给出了允许的多时钟平面布局定义以及相应的定理和证明,并基于序列对的表示法和模拟退火算法提出了多时钟平面布图规划方法。本方法在不增加时间复杂度的前提下,根据多时钟系统的特点大大减小了解空间。实验结果表明,本发明专利技术对多时钟域平面布局有良好效果,可广泛应用于集成电路计算机辅助设计中。

【技术实现步骤摘要】

本专利技术属于集成电路计算机辅助设计
,具体涉及一种新的布图规划方法,尤其涉及一种对多时钟系统的平面布局布图规划方法。
技术介绍
集成电路布图规划算法的研究在近年来受到了广泛重视,但是目前研究重点还主要集中在基于面积、线长以及关键路径时间延迟的优化几个方面。伴随着电路规模的不断增大,多时钟系统已经越来越普遍,由于要同时考虑不同时钟域和同一时钟域不同模块之间的关系,在布图规划时考虑到多时钟问题将成为必然。本专利技术将有针对性的提出基于多时钟平面布图规划问题。
技术实现思路
本专利技术的目的是提出一种针对多时钟域的超大规模集成电路布图规划方法。传统的超大规模集成电路布图规划问题描述如下给定一组由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)},根据约束图的定义,我们可以得到&本文档来自技高网...

【技术保护点】
一种多时钟的平面布图规划方法,其布图规划问题描述如下:给定一组由N个模块组成的集合B={b↓[1],b↓[2],…,b↓[N]},对b↓[l]∈B(i=0,1,…,N),有一组参数{h↓[i],w↓[i],a↓[i]}与其相对应,分别代表该模块的高度、宽度和面积,其中a↓[i]固定不变,τ↓[i]=w↓[i]/h↓[i]可以在一定范围内变化,布图规划的目标是在使这些模块不相互重叠的前提下,使外包所有模块的最小矩形的面积最小,同时使模块间连线的总长度最短;其中采用序列对表示法表示规划系统的布局:由所有模块的名字组成序列X、Y;其特征在于:对于多时钟域的平面布局,不同时钟域的模块之间位置关系如下:对于任意两个时钟域D↓[clcok↓[i]]={b↓[i1],b↓[i2],…,b↓[im]}、D↓[clock↓[j]]={b↓[j0],B↓[j1],…,B↓[jn]},m、n分别为第i、j个时钟域的模块个数,有:D↓[clock↓[i]]∩D↓[clock↓[j]]=φ|D↓[clock↓[i]]∪D↓[clock↓[j]]|=m+n假定相应的序列对为(X,Y)=(…b↓[il↓[1]]…b↓[ii↓[2]]……b↓[il↓[m]]…,…b↓[jj↓[1]]…b↓[jj↓[2]]……b↓[jj↓[n]]…),仅包含D↓[clock↓[i]]∪D↓[clock↓[j]]的子序列对为:(X′,Y′)=(b↓[0i↓[1]]b↓[0i↓[2]]…b↓[0l↓[m]]b↓[1↓[j1]]b↓[1↓[j2]]…b↓[1↓[jn]])定义b(i)∈(X′,Y′)在X′和Y′中的位置分别为:p↓[X′](b(i))和p↓[Y′](b(i));根据上面的定义,再定义如下两种不允许的情形:情形1:*b↓[ik],b↓[il]∈D↓[clock↓[j]](0<k,l≤|D↓[clock↓[i]]|),p↓[X′](b↓[ik])≤p↓[X′](b↓[il])且p↓[Y′](b↓[iK])≤p↓[Y′](b↓[il]),如果*b↓[jm]∈D↓[clock↓[j]]0<m≤|D↓[clock↓[j]]|使***成立;情形2:*b↓[ik],b↓[il]∈D↓[clock↓[l]](0<k,l≤|D↓[clock↓[i]]|),p↓[X′](b↓[ik])≤p↓[X′](b↓[il])且p↓[Y′](b↓[ik])≥p↓[Y′](b↓[il...

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:赵长虹陈建周晓方周电
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1