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

基于动态凸化的电路划分局部搜索方法技术

技术编号:29758762 阅读:22 留言:0更新日期:2021-08-20 21:12
本发明专利技术涉及一种基于动态凸化的电路划分局部搜索方法。首先将电路划分问题表示为有向无环划分问题(DAGP),进一步转化为一个有约束的非线性整数规划问题;在此基础上,提出一种针对K路划分的局部搜索算法,该算法不仅可以满足非循环约束,而且时间复杂度为线性时间。

【技术实现步骤摘要】
基于动态凸化的电路划分局部搜索方法
本专利技术属于超大规模集成电路(VLSI)物理设计自动化
,具体涉及一种基于动态凸化的电路划分局部搜索方法,可广泛应用在物理设计的布局、逻辑仿真和仿真阶段。
技术介绍
由于当前集成电路的规模较大,在物理设计等环节直接进行操作难度很大,同时也很耗时。因此采用电路划分用来减小物理设计的规模是常用的方法。它的思路是将电路划分为多个子电路,同时子电路之间的连接关系尽可能的少。划分方法首先将电路转化为有向无环划分问题(简称DAGP)即给定一个逻辑电路,把这个电路看作有向图,每个顶点代表一个逻辑门,如果逻辑门的输出为另一个逻辑门的输入,我们就在这两个顶点之间连接一条输入指向输出的有向边。对于该划分问题,在满足平衡约束和非圈约束的同时,对顶点进行分块,使割边数最小化。划分问题是一个NP-完备问题,对于一般图甚至不存在性能比恒定的近似算法。因此,在实践中经常使用启发法。根据目前已有的算法,没有进一步改进由启发式方法获得的局部最优DAGP问题的研究。
技术实现思路
本专利技术的目的在于根据DAGP问题的特殊结构,提供一种基于动态凸化的电路划分局部搜索方法,来弥补以往工作中存在的求解质量或运行时间上的不足。为实现上述目的,本专利技术的技术方案是:一种基于动态凸化的电路划分局部搜索方法,包括:(1)将DAGP问题转化为一个有约束的非线性整数规划问题;(2)在FM启发算法的基础上,提出一种基于动态凸化的电路划分局部搜索算法来求解DAGP问题。在本专利技术一实施例中,所述步骤(1)的具体实现方式如下:把DAGP问题表述为一个有约束的非线性整数规划问题,其数学公式如下:其中顶点vi表示模块i,(vi,vj)表示顶点vi与vj所连接的边,cij为顶点vi与vj所连接边的权重,yij为二进制变量,逻辑电路中割边的总权重通过来计算;X为满足平衡约束和无环约束的解集,k表示划分后块的数量,n为电路中模块的数量,yij的表达式为:在本专利技术一实施例中,所述步骤(2)的具体实现方式如下:基于FM启发算法,提出一种基于DAGP问题的局部搜索算法,局部搜索算法开始于给定的初始解,通过在块之间移动顶点来减少代价,执行多次直到没有任何改进为止;每个顶点在一轮移动过程中最多只能移动一次,并且一个顶点一旦被移动就会被锁定;如果顶点没有被锁定,且不违反平衡和非循环约束,则这个顶点是可移动的;对于非循环约束,采用依赖图来检查其是否存在有向环;依赖图是表示块之间连接关系的有向图,每个顶点表示一个块;采用拓扑排序算法检查依赖图是否存在有向环;在一轮移动中,选择一个增益最高的可行方案进行迭代地移动,其中增益为一次移动后代价函数的减少值,顶点vi从划分Vxi移动到划分Vj的增益公式定义如下:gain(xi,j)=A(x1,...,xi-1,j,xi+1,...,xn)-A(x1,...,xi,...,xn)令Ni为顶点vi相邻的顶点,即Ni={u∈V|(u,vi)∈E,or(vi,u)∈E};令E(xi,j)=Ni∩Vj,gain(xi,j)=|E(xi,j)|-|I(xi)|+g(xi,j).使用桶列表结构来存储顶点的增益,它用于选择具有最大增益的可行移动;储存k个桶数组,每个块一个;通过计算顶点的随机拓扑排序产生初始解如下:初始时列表L是空的;迭代地,随机取一个入度为零的顶点添加到列表L,然后删除顶点和它的输出边;重复这个过程,直到所有的顶点都在列表L中;显然,一个给定的有向图的拓扑排序的解决方案是对所有顶点的线性排序;如果存在一条边(vi,vj),则顶点vi会出现在顶点vj之前;通过将列表L从左到右划分为k个块来获得初始解,以保持非循环性;算法执行一轮的时间复杂度为O(mk),其中m为边的数量。相较于现有技术,本专利技术具有以下有益效果:本专利技术将划分问题转化为DAGP问题,提出一种基于动态凸化的电路划分局部搜索算法,该算法的复杂度为线性时间,运行效率高效。具体实施方式下面,对本专利技术的技术方案进行具体说明。本专利技术一种基于动态凸化的电路划分局部搜索方法,包括:(1)将DAGP问题转化为一个有约束的非线性整数规划问题;(2)在FM启发算法的基础上,提出一种基于动态凸化的电路划分局部搜索算法来求解DAGP问题。首先,把DAGP问题表述为一个有约束的非线性整数规划问题,其数学公式如下:其中顶点vi表示模块i,(vi,vj)表示顶点vi与vj所连接的边,cij为顶点vi与vj所连接边的权重,yij为二进制变量,逻辑电路中割边的总权重通过来计算;X为满足平衡约束和无环约束的解集,k表示划分后块的数量,n为电路中模块的数量,yij的表达式为:接着,基于FM启发算法,提出一种基于DAGP问题的局部搜索算法,局部搜索算法开始于给定的初始解,通过在块之间移动顶点来减少代价,执行多次直到没有任何改进为止;每个顶点在一轮移动过程中最多只能移动一次,并且一个顶点一旦被移动就会被锁定;如果顶点没有被锁定,且不违反平衡和非循环约束,则这个顶点是可移动的;对于非循环约束,采用依赖图来检查其是否存在有向环;依赖图是表示块之间连接关系的有向图,每个顶点表示一个块;采用拓扑排序算法检查依赖图是否存在有向环;在一轮移动中,选择一个增益最高的可行方案进行迭代地移动,其中增益为一次移动后代价函数的减少值,顶点vi从划分Vxi移动到划分Vj的增益公式定义如下:gain(xi,j)=A(x1,...,xi-1,j,xi+1,...,xn)-A(x1,...,xi,...,xn)令Ni为顶点vi相邻的顶点,即Ni={u∈V|(u,vi)∈E,or(vi,u)∈E};令E(xi,j)=Ni∩Vj,gain(xi,j)=|E(xi,j)|-|I(xi)|+g(xi,j).使用桶列表结构来存储顶点的增益,它用于选择具有最大增益的可行移动;储存k个桶数组,每个块一个;通过计算顶点的随机拓扑排序产生初始解如下:初始时列表L是空的;迭代地,随机取一个入度为零的顶点添加到列表L,然后删除顶点和它的输出边;重复这个过程,直到所有的顶点都在列表L中;显然,一个给定的有向图的拓扑排序的解决方案是对所有顶点的线性排序;如果存在一条边(vi,vj),则顶点vi会出现在顶点vj之前;通过将列表L从左到右划分为k个块来获得初始解,以保持非循环性;算法执行一轮的时间复杂度为O(mk),其中m为边的数量。以上是本专利技术的较佳实施例,凡依本专利技术技术方案所作的改变,所产生的功能作用未超出本专利技术技术方案的范围时,均属于本专利技术的保护范围。本文档来自技高网...

【技术保护点】
1.一种基于动态凸化的电路划分局部搜索方法,其特征在于,包括:/n(1)将DAGP问题转化为一个有约束的非线性整数规划问题;/n(2)在FM启发算法的基础上,提出一种基于动态凸化的电路划分局部搜索算法来求解DAGP问题。/n

【技术特征摘要】
1.一种基于动态凸化的电路划分局部搜索方法,其特征在于,包括:
(1)将DAGP问题转化为一个有约束的非线性整数规划问题;
(2)在FM启发算法的基础上,提出一种基于动态凸化的电路划分局部搜索算法来求解DAGP问题。


2.根据权利要求1所述的基于动态凸化的电路划分局部搜索方法,其特征在于,所述步骤(1)的具体实现方式如下:
把DAGP问题表述为一个有约束的非线性整数规划问题,其数学公式如下:



其中顶点vi表示模块i,(vi,vj)表示顶点vi与vj所连接的边,cij为顶点vi与vj所连接边的权重,yij为二进制变量,逻辑电路中割边的总权重通过来计算;X为满足平衡约束和无环约束的解集,k表示划分后块的数量,n为电路中模块的数量,yij的表达式为:





3.根据权利要求2所述的基于动态凸化的电路划分局部搜索方法,其特征在于,所述步骤(2)的具体实现方式如下:
基于FM启发算法,提出一种基于DAGP问题的局部搜索算法,局部搜索算法开始于给定的初始解,通过在块之间移动顶点来减少代价,执行多次直到没有任何改进为止;每个顶点在一轮移动过程中最多只能移动一次,并且一个顶点一旦被移动就会被锁定;如果顶点没有被锁定,且不违反平衡和非循环约束,则这个顶点是可移动的;
...

【专利技术属性】
技术研发人员:陈建利陈家瑞黄志鹏
申请(专利权)人:福州大学
类型:发明
国别省市:福建;35

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

1