CN102682176B - 基于元胞自动机和赋权超图的大规模集成电路划分方法 - Google Patents
基于元胞自动机和赋权超图的大规模集成电路划分方法 Download PDFInfo
- Publication number
- CN102682176B CN102682176B CN 201210154573 CN201210154573A CN102682176B CN 102682176 B CN102682176 B CN 102682176B CN 201210154573 CN201210154573 CN 201210154573 CN 201210154573 A CN201210154573 A CN 201210154573A CN 102682176 B CN102682176 B CN 102682176B
- Authority
- CN
- China
- Prior art keywords
- hypergraph
- power
- circuit
- cellular
- array
- 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
技术领域
本发明涉及一种设计大规模集成电路用的基于元胞自动机和赋权超图的大规模集成电路划分方法。
背景技术
电路划分在使用硬件描述语言设计大规模集成电路中占有重要的地位。随着集成电路技术的快速发展,在一个芯片上集成几百万门甚至几千万门电路已成为现实,因此在大规模集成电路设计中使用电路划分,可有效地降低对集成电路进行模拟或综合的复杂性等要求。电路划分也是层次化设计思想的重要一环,电路可以在不同级别上进行划分:进行系统级划分把一个系统划分到一组印刷电路板上,进行板级划分把印刷电路板上的电路划分成一组芯片,进行芯片级划分把芯片中的电路划分成更小的电路。电路划分还有一个重要的原因就是满足封装性要求,电路中门的数目与输入输出引脚数目之间的关系受Rent规则约束,每个芯片上输出引脚的数目以及门电路的数目都不能无限制增加,加之对大规模集成电路封装性要求,所以必须对大规模集成电路进行划分。研究出一个好的电路划分方法是提高大规模集成电路设计性能的必要条件。
请参见图1所示,现有技术的电路划分方法,第一步,用硬件描述语言描述被划分的电路101,得到电路源代码102;第二步,词法分析电路的源代码,得到对应的单词符号103;第三步,在词法分析基础上进行语法分析,得到对应的语法短语104;第四步,在语法分析基础上进行语义分析,得到对应的类型信息105;第五步,在语义分析基础上生成中间代码,构造对应的电路线网106;第六步,根据中间代码生成的线网,调用划分程序109对电路进行划分;第七步,根据划分结果修改对应的线网,得到修改后线网107;第八步,对修改后线网进行电路输出,得到划分后电路描述源代码108。
从现有技术的电路划分系统中有若干种逻辑电路的划分法,这些划分法从互连线数目最小,划分后电路子集的逻辑单元数目均匀分布等不同的方面来实现,其中:基于迁移的划分法。首先,产生电路的随机初始划分,同一个电路逻辑单元不能同时属于两个电路子集。在迁移优化阶段,该划分法在两个电路子集中各选取一个电路逻辑单元进行成对交换,这两个电路逻辑单元分别属于两个不同的电路子集且收益最大,从而每次都利用交换过程最大限度地改进电路划分质量。在这个过程中,划分法记录割切达到最小值时刻的电路划分结果,且一旦交换了选择的两个电路逻辑单元,在整个迁移过程余下的优化改进中,将这两个电路逻辑单元锁定使得它们不再被选中,重复上述过程直到所有可能的电路逻辑单元都经迁移之后,然后回滚到累计收益最大值即割切最小值的时刻。该划分法得到的电路划分结果不稳定,离散性很大,因此限制了该划分法所能解决问题的规模。
水平嵌套划分法。首先,选择一个电路逻辑单元,把这个电路逻辑单元标上0,然后把那些和这个电路逻辑单元相连的电路逻辑单元标上1,之后对于那些还未标上号码,但是和已经标上号码的电路逻辑单元相邻的电路逻辑单元,将其标号为相连的电路逻辑单元号码上加1;直到一半的电路逻辑单元标上号码,标号过程才结束。那些已经标上号码的电路逻辑单元集合设为一个电路子集,其他电路逻辑单元为另一个电路子集。该划分法只有在选取的初始电路逻辑单元接近外围时,得到的电路划分结果相对较好,因此得到的电路划分结果也不稳定。
多水平划分法。首先,采用随机匹配将某些电路逻辑单元结合在一起,得到下一水平层的粗化电路图,重复此过程直到粗化电路图足够小为止,即得到一个最小电路图。然后,采用划分法对最小电路图进行对分,得到一个初始二划分。之后,将最小电路图投影回初始电路图,在每一水平层的细化电路划分中,按照贪心原则选择收益值最大的电路逻辑单元进行迁移优化,得到最后的电路划分结果。2008年中国专利局公告的由冷明,郁松年和孙凌宇申报,中国专利号为:200710043765.3号《基于多水平划分法的大规模集成电路划分方法》的发明专利,针对现有技术方案中因采用随机策略进行匹配和贪心原则进行迁移优化,导致无法逃离局部最优的划分,提供了一种改进的基于多水平划分法的大规模集成电路划分方法,有效地提高了大规模集成电路划分的效率和性能。该发明专利在多水平划分法的粗化阶段,通过对结点属性进行赋权无向图中所有结点的核值求解排序,按照基于结点核值的非严格降序访问处于未匹配状态的结点,依据一定规则对其进行匹配,从而将连接性好的结点合并在一起;在多水平划分法的优化阶段,采用免疫克隆优化程序改进贪心原则的局部搜索方法,对在每一水平层投影的划分进行优化,借助克隆操作、克隆变异操作、接种免疫疫苗操作、克隆选择操作,使得改进后的方法在利用启发信息搜索局部最优解的同时,更大自由地对具有潜力的解空间进行搜索,增加全局搜索能力。然而,由于该发明专利采用赋权无向图作为大规模集成电路划分问题的数学模型,因此存在着赋权无向图最优划分和大规模集成电路最优划分的不一致性。
本发明采用赋权超图对电路划分问题进行数学建模,其中电路逻辑单元表示为赋权超图中的结点,电路单元间的连线表示为赋权超图中的超边。相比赋权无向图而言,赋权超图为电路提供了更为精确的模型:每条超边可以连接两个以上的结点,对应于电路单元间的信号可以连接两个以上的电路逻辑单元。近而,本发明将大规模集成电路划分问题转换为赋权超图划分问题,其中大规模集成电路划分问题要求每个电路子集所包含的电路逻辑单元数目相等,对应于赋权超图划分问题的平衡约束条件,划分结果使得这些电路子集之间的内连线数据达到最小,对应于赋权超图划分问题的最小化总截权。2012年中国专利局公告的由孙凌宇,冷明和冷子阳申报,中国专利号为:201210150329.7号《基于结点属性函数的大规模集成电路的核值计算方法》的发明专利,在采用多水平划分法求解赋权超图划分问题的粗化阶段中,提供了所需的基于结点属性函数的大规模集成电路的核值计算方法。该发明专利有利于在赋权超图的结点匹配过程中,发挥结点核值导向性作用,使得粗化后超图中结点权值倾向于大小一致,并最大程度地减少超边的数目以及超边权值之和,为大规模集成电路多水平划分的后续阶段提供更优的粗化超图。
此外,本发明采用元胞自动机对赋权超图划分问题进行数学建模,其中元胞对应于赋权超图中的结点,邻接元胞对应于邻接超边所包含的结点,元胞的状态对应于所在的划分子集,进而采用快速的元胞收益值和划分割切值的计算方法,有效地降低了大规模集成电路划分方法的空间复杂度和时间复杂度,并提高了大规模集成电路划分的性能。
发明内容
本发明的目的在于针对已有技术存在的不足,提供一种基于元胞自动机和赋权超图的大规模集成电路划分方法,提高大规模集成电路划分的效率和性能。为达到上述目的,本发明的构思如下:实现电路线网到赋权超图的转换,并保存为赋权超图文件;然后启动基于元胞自动机的赋权超图划分程序,对生成的赋权超图进行划分;最后依据赋权超图的划分结果,修改电路对应的线网,并通过遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中。
根据上述的发明构思,本发明的技术方案是这样实现的:一种基于元胞自动机和赋权超图的大规模集成电路划分方法,其特征在于,具体步骤如下。
步骤1,用硬件描述语言描述该电路,生成该电路的源代码。
步骤2,词法分析,从左到右一个个读入该电路的源代码,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词。
步骤3,语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据硬件描述语言的语法规则,确定整个字符流是否构成一个语法上正确的硬件描述语言程序。
步骤4,语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息。
步骤5,中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示。
步骤6,赋权超图文件生成,基于中间代码构造文本描述的电路对应的线网,经过电路线网到赋权超图的转换之后,保存为赋权超图文件。
步骤7,赋权超图划分,启动基于元胞自动机的赋权超图划分程序,读取赋权超图文件,采用基于元胞自动机的压缩存储格式对赋权超图进行存储,对生成的赋权超图进行划分,将最终得到的划分结果存储在赋权超图划分文件中。
步骤8,修改线网,在检测到基于元胞自动机的赋权超图划分程序完成划分之后,从赋权超图划分文件中读取相应的划分结果,根据划分结果修改电路对应的线网。
步骤9,电路输出,遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中。
上述的步骤6中,所述的赋权超图文件生成的步骤如下。
步骤6.1,基于中间代码构造电路源代码描述电路对应的线网,生成完整电路线网。一个完整的电路线网看作是一个根模块,它由层次化的子模块实例和电路逻辑单元通过信号互连构成,且每个子模块内部由端口、电路逻辑单元、嵌套子模块的实例通过信号连接构成。
步骤6.2, 从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元编号。
步骤6.3 ,从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元之间的信号编号,并确立每个信号x的连接方式,实现到赋权超图的转换。其中,电路线网中的电路逻辑单元用赋权超图的结点表示,电路线网中的信号用赋权超图的超边表示。结点的权值代表电路逻辑单元的大小,超边的权值代表电路逻辑单元之间信号连线的权值。i为赋权超图中结点的编号,取值范围为1到电路线网中电路逻辑单元的总个数n。j为赋权超图中超边的编号,取值范围为1到电路线网中信号的总个数m。
步骤6.4, 将转换得到的赋权超图保存为赋权超图文件。
上述的步骤7中,所述的基于元胞自动机的赋权超图划分方法的步骤如下。
步骤7.1,读取赋权超图文件,采用基于元胞自动机的压缩存储格式对赋权超图进行存储,其中元胞对应于赋权超图中的结点,邻接元胞对应于赋权超图中邻接超边所包含的结点。
步骤7.2,元胞初始化,遍历每个元胞并随机给定元胞所处的状态0或1,分别代表元胞对应结点所处的划分子集V1或V2,从而得到初始划分。
步骤7.3,初始化二维辅助数组EDG[2][m],依据初始划分,初始化二维辅助数组EDG[2][m]。
步骤7.4,计算初始划分的割切值,依据二维辅助数组EDG[2][m],快速计算当前划分的割切值。
步骤7.5,循环初始化,初始化循环计数器COUNT为0。
步骤7.6,遍历每个元胞是否结束,如果访问未结束,即存在当前元胞未被访问,则转步骤7.7;否则访问结束,转步骤7.13。
步骤7.7,计算当前元胞的收益值,根据当前元胞的状态和邻接元胞的状态,快速计算当前元胞的收益值。
步骤7.8,演化当前元胞状态,如果当前元胞的收益值大于零,当前元胞状态一定从当前状态from翻转到翻转状态to,否则当前元胞状态以一定概率从当前状态from翻转到翻转状态to。
步骤7.9,如果当前元胞状态从当前状态from翻转到翻转状态to,则转步骤7.10,否则转步骤7.6。
步骤7.10,更新二维辅助数组EDG[2][m],遍历元胞的所有邻接超边e,执行EDG[from][e]减1操作,EDG[to][e]加1操作。
步骤7.11,更新当前划分的割切值,依据二维辅助数组EDG[2][m],快速计算当前划分的割切值。
步骤7.12,更新已找到的最优划分,转步骤7.6。
步骤7.13,循环判断,循环计数器COUNT加1,若满足COUNT达到设定演化次数的条件1或者全部元胞都不再改变自身状态的条件2时,执行步骤7.14,否则返回步骤7.6。
步骤7.14,运行基于FM-EE方法的赋权超图划分程序:由于在基于元胞自动机的赋权超图划分过程中,可能违背赋权超图划分问题的平衡约束条件,因此在基于元胞自动机的赋权超图划分所求解的基础上,运行基于FM-EE方法的赋权超图划分方法,使划分解满足平衡约束条件,从而得到赋权超图划分问题的划分解。
步骤7.15,将最终得到的赋权超图划分结果存储在赋权超图划分文件中。
上述的步骤6.3中,所述的确立信号x连接方式的步骤如下。
步骤6.3.1,依次处理信号x的每个管脚连接,支持跨层次连接,寻找到连接端的电路逻辑单元y。
步骤6.3.2,如果电路逻辑单元y已经存在信号x的连接中,则忽略该电路逻辑单元y。否则在信号x的连接中增加该电路逻辑单元y。
上述的步骤7.1中,所述的赋权超图的基于元胞自动机的压缩存储格式如下。
步骤7.1.1,使用ID数组存储元胞对应于赋权超图中结点的编号信息,且ID数组的大小为赋权超图中的结点个数。
步骤7.1.2,使用state数组存储元胞的状态信息,且state数组的大小为赋权超图中的结点个数。
步骤7.1.3,使用vwgts数组存储元胞对应于赋权超图中结点的权值信息,且vwgts数组的大小为赋权超图中的结点个数。
步骤7.1.4,使用xadj数组存储每个结点所有邻接超边列表的起始位置信息,即第i条结点的终止位置为第i+1条结点的起始位置减1,且xadj数组的大小为赋权超图中的结点个数加1, xadj数组最后一个元素用于存放最后一条结点的终止位置。
步骤7.1.5,使用adjncy数组存储每个结点所有邻接超边的列表信息,第i条结点的邻接超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1]。
步骤7.1.6,使用eptr数组存储每条超边所包含的结点列表的起始位置信息,即第j条超边的终止位置为第j+1条超边的起始位置减1,且eptr数组的大小为赋权超图中的超边个数加1, eptr数组最后一个元素用于存放最后一条超边的终止位置。
步骤7.1.7,使用eind数组存储每条超边所包含结点的列表信息,第j条超边的邻接结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr[j+1]-1]。
步骤7.1.8,使用hewgts数组存储超边的权值信息,且hewgts数组的大小为赋权超图中的超边个数。
上述的步骤7.3中,所述的初始化二维辅助数组EDG[2][m]的步骤如下。
步骤7.3.1,二维辅助数组EDG[2][m]清零。
步骤7.3.2,读取eptr数组和eind数组存储的每条超边所包含的结点信息,基于初始划分计算每条超边在划分子集V1和V2的结点个数,即二维辅助数组EDG[2][m]的两行分别存放每条超边在划分子集V1和V2的结点个数。
上述的步骤7.4和步骤7.11中,所述的快速计算当前划分的割切值的步骤如下。
步骤7.4.1,划分割切值清零。
步骤7.4.2,遍历每条超边是否结束,如果访问未结束,即存在超边e未被访问,则转步骤7.4.3;否则访问结束,返回划分割切值。
步骤7.4.3,如果满足EDG[0][e] ≥1的条件1和EDG[1][e]≥1的条件2时,意味着超边e在划分子集V1和V2的结点个数都大于等于1,即可判定超边e是两栖边,并将划分割切值累加上当前超边的权值;否则判定超边e不是两栖边,划分割切值不变。
步骤7.4.4,转步骤7.4.2。
上述的步骤7.7中,所述的快速计算当前元胞收益值的步骤如下。
步骤7.7.1,元胞收益值清零。
步骤7.7.2,读取元胞的当前状态from和翻转状态to。
步骤7.7.3,遍历元胞的所有邻接超边e,若二维数组EDG[from][e]值为1,则将收益值加上超边e的权值;若二维数组EDG[to][e]值为0,则将收益值减去超边e的权值。
步骤7.7.4,返回元胞收益值。
本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点。
1、提高了电路划分的效率。
本发明基于元胞自动机和赋权超图的大规模集成电路划分方法,由于通过电路线网到赋权超图文件的转换,然后启动基于元胞自动机的赋权超图划分程序,对生成的赋权超图进行划分,从而避免了划分方法直接在电路线网上进行划分,并且可以通过设置划分方法的参数来获取较优的划分结果后,再进行电路线网的修改,从而有效地提高了电路划分的效率。
2、提高了电路划分的性能。
本发明基于元胞自动机和赋权超图的大规模集成电路划分方法,借助二维辅助数组EDG[2][m]存储每条超边在划分子集的结点个数,实现了快速的元胞收益值和划分割切值的计算方法,有效地避免了遍历超边中的结点。基于ISPD98测试基准给出的18 组电路,进行了赋权无向图和赋权超图划分方法、迁移方法和元胞自动机、以及不同演化代数和接受劣解概率情况下的对比实验。实验数据表明,相比赋权无向图划分方法和迁移方法,该方法有效地找到比现有技术更优的电路划分结果,降低了空间复杂度和时间复杂度,最终显著地提高了电路划分的性能。
通过以下对本发明基于元胞自动机和赋权超图的大规模集成电路划分方法的实例结合其附图的描述,可以进一步理解本发明的目的、具体结构特征和优点。
图1是现有技术的电路划分系统中电路划分方法的流程图。
图2是本发明基于元胞自动机和赋权超图的大规模集成电路划分方法的流程图。
图3是本发明的赋权超图的基于元胞自动机的压缩存储格式。
图4是本发明的基于元胞自动机的赋权超图划分方法的流程图。
图5表中给出了基于元胞自动机的赋权无向图划分方法、基于FM的赋权超图划分方法和基于元胞自动机的赋权超图划分方法的割切最小值和平均值对比实验数据表。
图6表中给出了本发明基于元胞自动机的赋权超图划分方法在不同演化代数和接受劣解概率情况下的割切最小值和平均值对比实验数据。
具体实施方式。
为了能够更清楚地理解本发明基于元胞自动机和赋权超图的大规模集成电路划分方法的技术内容,特举以下实例详细说明。
现有技术的电路划分方法的流程图如图1所示,第一步,用硬件描述语言描述被划分的电路101,得到电路源代码102;第二步,词法分析电路的源代码,得到对应的单词符号103;第三步,在词法分析基础上进行语法分析,得到对应的语法短语104;第四步,在语法分析基础上进行语义分析,得到对应的类型信息105;第五步,在语义分析基础上生成中间代码,构造对应的电路线网106;第六步,根据中间代码生成的线网,调用划分程序109对电路进行划分;第七步,根据划分结果修改对应的线网,得到修改后线网107;第八步,对修改后线网进行电路输出,得到划分后电路描述源代码108。
本实施例的基于元胞自动机和赋权超图的大规模集成电路划分方法的流程图如图2所示,用硬件描述语言描述被划分的电路201,得到电路源代码202;词法分析电路的源代码,得到对应的单词符号203;在词法分析基础上进行语法分析,得到对应的语法短语204;在语法分析基础上进行语义分析,得到对应的类型信息205;在语义分析基础上,构造对应的内部中间代码206;基于内部中间代码构造文本描述的电路对应的线网207,经过电路线网到赋权超图的转换之后,保存为赋权超图文件210;启动基于元胞自动机的赋权超图划分程序215,读取赋权超图文件210,得到基于元胞自动机的压缩存储格式的赋权超图212;进入到划分阶段,进行基于元胞自动机的赋权超图划分程序213,对生成的赋权超图进行划分;进入到平衡阶段,运行基于FM-EE方法的赋权超图划分程序214,使赋权超图的划分结果满足平衡约束条件,并将最终得到的划分结果存储为赋权超图划分文件211;在检测到基于元胞自动机的赋权超图划分程序215完成划分之后,从赋权超图划分文件211中读取相应的划分结果,根据划分结果修改电路对应的线网,得到划分结果对应的修改后线网208;遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储为电路描述文件209。
本实施例的赋权超图文件的文件存储格式参见在先技术[1] “G. Karypis and V. Kumar. HMetis 1.5.3: A Hypergraph Partitioning Package [R]. Technical report, Department of Computer Science, University of Minnesota, 1998.”和在先技术[2] “孙凌宇,冷明,郭恺强,朱平. 一种VLSI设计到超图的转换系统[J]. 计算机工程与应用, 2012, Vol.29, Issue.2, Pages 7-16.”。
本实施例的基于FM-EE方法的赋权超图划分程序参见在先技术[3] “Karypis G, Aggarwal R, Kumar V, Shekhar S. Multilevel hypergraph partitioning: Applications in VLSI domain[J]. IEEE transactions on very large scale integration systems, 1999, Vol.7, Issue.1, Pages 69-79.”。
本实施例的赋权超图的基于元胞自动机的压缩存储格式如图3所示。图例302所示的元胞存储结构,其中不仅存储了自身的编号、状态和权值,还存储了邻接超边的起始位置。基于元胞自动机的压缩存储格式使用ID数组303存储元胞对应于赋权超图中结点的编号信息,且ID数组303的大小为赋权超图中的结点个数。使用state数组304存储元胞的状态信息,且state数组304的大小为赋权超图中的结点个数。使用vwgts数组305存储结点的权值信息,且vwgts数组305的大小为赋权超图中的结点个数。使用xadj数组306存储每个结点所有邻接超边列表的起始位置信息,即第i条结点的终止位置为第i+1条结点的起始位置减1,且xadj数组306的大小为赋权超图中的结点个数加1, xadj数组306最后一个元素用于存放最后一条结点的终止位置。使用adjncy数组307存储每个结点所有邻接超边的列表信息。使用hewgts数组308存储超边的权值信息,且hewgts数组308的大小为赋权超图中的超边个数。使用eptr数组309存储每条超边所包含的结点列表的起始位置信息,即第j条超边的终止位置为第j+1条超边的起始位置减1,且eptr数组309的大小为赋权超图中的超边个数加1, eptr数组309最后一个元素用于存放最后一条超边的终止位置。使用eind数组310存储每条超边所包含结点的列表信息。假设数组地址从零开始,结点编号从零开始,则第i条结点的邻接超边列表存储在adjncy数组307中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1];第j条超边的邻接结点列表存储在eind数组310中,从eind[eptr[j]]到eind[eptr[j+1]-1]。图例301的赋权超图包含总共7个结点和8条超边,其中第6个结点的权值为7,有2条邻接超边f、h,对应的权值为4、1,且相应的邻接结点分别为结点7、3、6和结点4、6。
本实施例的基于元胞自动机的赋权超图划分方法的流程图如图4所示,步骤如下。
A01:读取赋权超图文件。
A02:元胞初始化。
A03:初始化二维辅助数组EDG[2][m]。
A04:计算初始划分的割切值。
A05:初始化循环计数器COUNT为0。
A06:遍历每个元胞是否结束,如果访问未结束,即存在当前元胞未被访问,则转步骤A07;否则访问结束,转步骤A13。
A07:计算当前元胞的收益值。
A08:演化当前元胞状态。
A09:如果当前元胞状态从当前状态from翻转到翻转状态to,则转步骤A10,否则转步骤A 06。
A10:更新二维辅助数组EDG[2][m]。
A11:更新当前划分的割切值。
A12:更新已找到的最优划分,转步骤A06。
A13:循环计数器COUNT加1,若满足COUNT达到设定演化次数的条件1或者全部元胞都不再改变自身状态的条件2时,执行步骤A 14,否则返回步骤A 06。
A14: 运行基于FM-EE方法的赋权超图划分程序。
A15:将最终得到的赋权超图划分结果存储在赋权超图划分文件中。
本实施例中,基于元胞自动机和赋权超图的大规模集成电路划分方法采用ANSI C来实现,操作系统为WIN2003,运行在2.4GHz的Intel公司的Xeon-CPU-E5620芯片上,内存为8G。实验方案所用的测试基准电路为1998年IBM公司Austin研究实验室的Alpert教授给出的18组电路测试基准ISPD98。ISPD98是基于IBM公司Austin、Burlington、Rochester设计部门给出的一系列内部电子产品经过转换得到,包括总线仲裁器、总线电桥芯片、内存及周边元件扩展总线接口、通讯适配器、内存控制器、处理器和图形适配器等。本实施例分别按照在先技术[4]“孙凌宇, 冷明, 彭宣戈. 一种ISPD98电路网表到图的转换算法[J]. 井冈山学院学报(自然科学), 2008, Vol.29, Issue.4, Pages 19-21.”给出的ISPD98电路测试基准到赋权无向图转换方法,以及在先技术[5]“冷明, 孙凌宇, 郭恺强. 一种ISPD98电路网表到赋权超图的转换算法[J]. 微电子学与计算机, 2011, Vol.28, Issue.9, Pages 111-114.”给出的ISPD98电路测试基准到赋权超图转换方法的伪代码,采用ANSI C编程实现,将ISPD98电路划分问题转换为赋权无向图划分问题和赋权超图划分问题。其中,在转换后的赋权无向图划分问题中,电路单元表示为赋权无向图的结点,电路单元间的连线表示为赋权无向图的边。在转换后的赋权超图划分问题中,电路单元表示为赋权超图的结点,电路单元间的连线表示为赋权超图的超边。电路划分要求每个电路子集所包含的元件数目相等,对应于划分问题的平衡约束条件,划分结果使得这些电路子集之间的连线数据达到最小,对应于划分问题的最小化总截权。ISPD98电路测试基准的18 组电路转换到赋权无向图后,赋权无向图中的结点数范围从12752到210613,边数范围从109183到2235716;ISPD98电路测试基准的18 组电路转换到赋权超图后,赋权超图中的结点数范围从12752 到210613,赋权超边数范围从14111到201920。实验方案针为了保证实验结果的可重复性和公正性,针对每组电路测试基准转换后的赋权无向图和赋权超图,本实施例进行了20次二划分的对比实验。每次实验设定平衡约束参数为0.02,允许划分得到的结点子集权值之和偏差为所有结点子集权值之和的2%。对于实验结果采用的评估指标为20次划分实验中得到的划分割切最小值(Min)和划分割切平均值Ave);为了保证实验结果的可重复性,在20次对比实验中固定选用了20个不同的随机数种子。
本实施例进行了基于元胞自动机的赋权无向图划分方法(CA-Graph) (参见在先技术[6]“孙凌宇,冷明,彭宣戈. 一种基于元胞自动机的无向图剖分优化算法[J]. 计算机工程与应用, 2008, Vol.44, Issue.24, Pages 46-49.”) 、基于FM的赋权超图划分方法(FM-HyperGraph) (参见在先技术[7]“Fiduccia C, Mattheyses R. A linear-time heuristics for improving network partitions[C]. Proceedings of the 19th Design Automation Conference. Los Alamitos: IEEE Computer Society Press, 1982, Pages 175-181.”)和本发明基于元胞自动机的赋权超图划分方法(CA-HyperGraph)的割切最小值和平均值的对比实验。在CA-Graph和CA-HyperGraph方法中,设定的演化代数是400,接受劣解的概率为0.05,即元胞的当前收益值小于或等于零时进行元胞状态翻转的概率为0.05。
图5表中给出了基于元胞自动机的赋权无向图划分方法、基于FM的赋权超图划分方法和基于元胞自动机的赋权超图划分方法的割切最小值和平均值对比实验数据表。实验数据对比表明:⑴CA-Graph的赋权无向图划分方法得到的割切值远大于CA-HyperGraph和FM-HyperGraph赋权超图划分方法。表明赋权超图相比赋权无向图而言,为电路划分提供了更为精确的模型:每条超边可以连接两个以上的结点,对应于电路单元间的连线可以连接两个以上的电路单元;⑵CA-HyperGraph和FM-HyperGraph方法分别得到8组电路的割切最小值,表明CA-HyperGraph方法,具备和FM-HyperGraph方法相同的逃离局部最优能力。然而,相比CA-HyperGraph方法的演化规则,FM-HyperGraph方法基于按结点收益值排序的散列结构,对收益值最大的结点进行迁移,增加了其时空复杂度和实现难度。
本实施例还进行了基于元胞自动机的赋权超图划分方法在设定不同演化代数和接受劣解概率情况下的割切最小值和平均值的两组对比实验:⑴第一组对比实验:设定演化代数是400,接受劣解的概率分别为0.10、0.05和0.02;⑵第二组对比实验:设定演化代数是800,接受劣解的概率分别为0.10、0.05和0.02。
图6表中给出了本发明基于元胞自动机的赋权超图划分方法在不同演化代数和接受劣解概率情况下的割切最小值和平均值对比实验数据。实验数据对比表明:⑴在相同的演化代数情况下,割切最小值基本没有变化;在相同的接受劣解概率情况下,割切最小值随着演化代数的增加而变小。两者表明演化代数越大,方法求解的割切最小值越小。⑵在相同的演化代数情况下,割切平均值随着接受劣解的概率变小而变小。表明接受劣解的概率越小,方法求解的割切平均值越小。⑶在相同的演化代数情况下,割切最小值即使发生个别的变化,其趋势也是随着接受劣解的概率的变小而变小。⑷在相同的接受劣解概率情况下,割切平均值随着演化代数的增加而变小。
实验结果展示了基于元胞自动机和赋权超图的大规模集成电路划分方法良好的性能:⑴相比赋权无向图划分方法,赋权超图划分方法取得的划分有了较大的改进;⑵相比迁移方法,元胞自动机具备相同的逃离局部最优能力,并降低了其时空复杂度和实现难度;⑶本发明基于元胞自动机的赋权超图划分方法的演化代数决定了割切最小值发现的概率,接受劣解的概率决定了割切平均值变小的倾向。
Claims (1)
1.一种基于元胞自动机和赋权超图的大规模集成电路划分方法,其特征在于,具体步骤如下:
步骤1,用硬件描述语言描述该电路,生成该电路的源代码;
步骤2,词法分析,从左到右一个个读入该电路的源代码,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词;
步骤3,语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据硬件描述语言的语法规则,确定整个字符流是否构成一个语法上正确的硬件描述语言程序;
步骤4,语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息;
步骤5,中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示;
步骤6,赋权超图文件生成,基于中间代码构造文本描述的电路对应的线网,经过电路线网到赋权超图的转换之后,保存为赋权超图文件;
步骤7,赋权超图划分,启动基于元胞自动机的赋权超图划分程序,读取赋权超图文件,采用基于元胞自动机的压缩存储格式对赋权超图进行存储,对生成的赋权超图进行划分,将最终得到的划分结果存储在赋权超图划分文件中;
步骤8,修改线网,在检测到基于元胞自动机的赋权超图划分程序完成划分之后,从赋权超图划分文件中读取相应的划分结果,根据划分结果修改电路对应的线网;
步骤9,电路输出,遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中;
上述的步骤6中,所述的赋权超图文件生成的步骤如下:
步骤6.1,基于中间代码构造电路源代码描述电路对应的线网,生成完整电路线网;
一个完整的电路线网看作是一个根模块,它由层次化的子模块实例和电路逻辑单元通过信号互连构成,且每个子模块内部由端口、电路逻辑单元、嵌套子模块的实例通过信号连接构成;
步骤6.2, 从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元编号;
步骤6.3 ,从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元之间的信号编号,并确立每个信号x的连接方式,实现到赋权超图的转换;其中,电路线网中的电路逻辑单元用赋权超图的结点表示,电路线网中的信号用赋权超图的超边表示;结点的权值代表电路逻辑单元的大小,超边的权值代表电路逻辑单元之间信号连线的权值;i为赋权超图中结点的编号,取值范围为1到电路线网中电路逻辑单元的总个数n;j为赋权超图中超边的编号,取值范围为1到电路线网中信号的总个数m;
步骤6.4, 将转换得到的赋权超图保存为赋权超图文件;
上述的步骤7中,所述的基于元胞自动机的赋权超图划分方法的步骤如下:
步骤7.1,读取赋权超图文件,采用基于元胞自动机的压缩存储格式对赋权超图进行存储,其中元胞对应于赋权超图中的结点,邻接元胞对应于赋权超图中邻接超边所包含的结点;
步骤7.2,元胞初始化,遍历每个元胞并随机给定元胞所处的状态0或1,分别代表元胞对应结点所处的划分子集V1或V2,从而得到初始划分;
步骤7.3,初始化二维辅助数组EDG[2][m],依据初始划分,初始化二维辅助数组EDG[2][m];
步骤7.4,计算初始划分的割切值,依据二维辅助数组EDG[2][m],快速计算当前划分的割切值;
步骤7.5,循环初始化,初始化循环计数器COUNT为0;
步骤7.6,遍历每个元胞是否结束,如果访问未结束,即存在当前元胞未被访问,则转步骤7.7;否则访问结束,转步骤7.13;
步骤7.7,计算当前元胞的收益值,根据当前元胞的状态和邻接元胞的状态,快速计算当前元胞的收益值;
步骤7.8,演化当前元胞状态,如果当前元胞的收益值大于零,当前元胞状态一定从当前状态from翻转到翻转状态to,否则当前元胞状态以一定概率从当前状态from翻转到翻转状态to;
步骤7.9,如果当前元胞状态从当前状态from翻转到翻转状态to,则转步骤7.10,否则转步骤7.6;
步骤7.10,更新二维辅助数组EDG[2][m],遍历元胞的所有邻接超边e,执行EDG[from][e]减1操作,EDG[to][e]加1操作;
步骤7.11,更新当前划分的割切值,依据二维辅助数组EDG[2][m],快速计算当前划分的割切值;
步骤7.12,更新已找到的最优划分,转步骤7.6;
步骤7.13,循环判断,循环计数器COUNT加1,若满足COUNT达到设定演化次数的条件1或者全部元胞都不再改变自身状态的条件2时,执行步骤7.14,否则返回步骤7.6;
步骤7.14,运行基于FM-EE方法的赋权超图划分程序,由于在基于元胞自动机的赋权超图划分过程中,可能违背赋权超图划分问题的平衡约束条件,因此在基于元胞自动机的赋权超图划分所求解的基础上,运行基于FM-EE方法的赋权超图划分方法,使划分解满足平衡约束条件,从而得到赋权超图划分问题的划分解;
步骤7.15,将最终得到的赋权超图划分结果存储在赋权超图划分文件中;
上述的步骤6.3中,所述的确立信号x连接方式的步骤如下:
步骤6.3.1,依次处理信号x的每个管脚连接,支持跨层次连接,寻找到连接端的电路逻辑单元y;
步骤6.3.2,如果电路逻辑单元y已经存在信号x的连接中,则忽略该电路逻辑单元y;否则在信号x的连接中增加该电路逻辑单元y;
上述的步骤7.1中,所述的赋权超图的基于元胞自动机的压缩存储格式如下:
步骤7.1.1,使用ID数组存储元胞对应于赋权超图中结点的编号信息,且ID数组的大小为赋权超图中的结点个数;
步骤7.1.2,使用state数组存储元胞的状态信息,且state数组的大小为赋权超图中的结点个数;
步骤7.1.3,使用vwgts数组存储元胞对应于赋权超图中结点的权值信息,且vwgts数组的大小为赋权超图中的结点个数;
步骤7.1.4,使用xadj数组存储每个结点所有邻接超边列表的起始位置信息,即第i条结点的终止位置为第i+1条结点的起始位置减1,且xadj数组的大小为赋权超图中的结点个数加1, xadj数组最后一个元素用于存放最后一条结点的终止位置;
步骤7.1.5,使用adjncy数组存储每个结点所有邻接超边的列表信息,第i条结点的邻接超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1];
步骤7.1.6,使用eptr数组存储每条超边所包含的结点列表的起始位置信息,即第j条超边的终止位置为第j+1条超边的起始位置减1,且eptr数组的大小为赋权超图中的超边个数加1, eptr数组最后一个元素用于存放最后一条超边的终止位置;
步骤7.1.7,使用eind数组存储每条超边所包含结点的列表信息,第j条超边的邻接结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr[j+1]-1];
步骤7.1.8,使用hewgts数组存储超边的权值信息,且hewgts数组的大小为赋权超图中的超边个数;
上述的步骤7.3中,所述的初始化二维辅助数组EDG[2][m]的步骤如下:
步骤7.3.1,二维辅助数组EDG[2][m]清零;
步骤7.3.2,读取eptr数组和eind数组存储的每条超边所包含的结点信息,基于初始划分计算每条超边在划分子集V1和V2的结点个数,即二维辅助数组EDG[2][m]的两行分别存放每条超边在划分子集V1和V2的结点个数;
上述的步骤7.4和步骤7.11中,所述的快速计算当前划分的割切值的步骤如下:
步骤7.4.1,划分割切值清零;
步骤7.4.2,遍历每条超边是否结束,如果访问未结束,即存在超边e未被访问,则转步骤7.4.3;否则访问结束,返回划分割切值;
步骤7.4.3,如果满足EDG[0][e] ≥1的条件1和EDG[1][e]≥1的条件2时,意味着超边e在划分子集V1和V2的结点个数都大于等于1,即可判定超边e是两栖边,并将划分割切值累加上当前超边的权值;否则判定超边e不是两栖边,划分割切值不变;
步骤7.4.4,转步骤7.4.2;
上述的步骤7.7中,所述的快速计算当前元胞收益值的步骤如下:
步骤7.7.1,元胞收益值清零;
步骤7.7.2,读取元胞的当前状态from和翻转状态to;
步骤7.7.3,遍历元胞的所有邻接超边e,若二维数组EDG[from][e]值为1,则将收益值加上超边e的权值;若二维数组EDG[to][e]值为0,则将收益值减去超边e的权值;
步骤7.7.4,返回元胞收益值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210154573 CN102682176B (zh) | 2012-05-18 | 2012-05-18 | 基于元胞自动机和赋权超图的大规模集成电路划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210154573 CN102682176B (zh) | 2012-05-18 | 2012-05-18 | 基于元胞自动机和赋权超图的大规模集成电路划分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102682176A CN102682176A (zh) | 2012-09-19 |
CN102682176B true CN102682176B (zh) | 2013-12-25 |
Family
ID=46814096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201210154573 Expired - Fee Related CN102682176B (zh) | 2012-05-18 | 2012-05-18 | 基于元胞自动机和赋权超图的大规模集成电路划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102682176B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103310071B (zh) * | 2013-06-26 | 2016-01-06 | 福州大学 | 一种基于多级grasp的vlsi电路划分方法 |
CN103440673B (zh) * | 2013-07-18 | 2016-05-25 | 清华大学 | 基于元胞自动机的刻蚀表面演化模型压缩方法 |
CN103902374B (zh) * | 2014-04-08 | 2017-01-18 | 冷明 | 基于元胞自动机和赋权有向超图的云计算任务调度方法 |
CN104331321B (zh) * | 2014-10-09 | 2017-04-19 | 冷明 | 基于禁忌搜索和负载均衡的云计算任务调度方法 |
CN104679966B (zh) * | 2015-03-26 | 2017-06-16 | 孙凌宇 | 基于多层次方法和离散粒子群的赋权超图优化划分方法 |
CN105159762B (zh) * | 2015-08-03 | 2018-09-07 | 冷子阳 | 基于贪心策略的启发式云计算任务调度方法 |
CN112183000B (zh) * | 2020-10-10 | 2023-03-07 | 上海思尔芯技术股份有限公司 | 一种支持互连约束的超图划分方法 |
CN113139357B (zh) * | 2021-04-08 | 2024-09-10 | 国微集团(深圳)有限公司 | 基于区域中心负载均衡的自适应电路分割方法 |
CN113221501B (zh) * | 2021-04-16 | 2022-09-09 | 上海国微思尔芯技术股份有限公司 | 用于平衡电路不同划分间互联数的方法及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904848B2 (en) * | 2006-03-14 | 2011-03-08 | Imec | System and method for runtime placement and routing of a processing array |
CN100492377C (zh) * | 2007-07-13 | 2009-05-27 | 上海大学 | 基于多水平划分法的大规模集成电路划分方法 |
US8463587B2 (en) * | 2009-07-28 | 2013-06-11 | Synopsys, Inc. | Hierarchical order ranked simulation of electronic circuits |
-
2012
- 2012-05-18 CN CN 201210154573 patent/CN102682176B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102682176A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102682176B (zh) | 基于元胞自动机和赋权超图的大规模集成电路划分方法 | |
CN102693340B (zh) | 基于多水平划分法和赋权超图的大规模集成电路划分方法 | |
CN103761080B (zh) | 一种基于SQL的MapReduce作业生成方法及系统 | |
US5805462A (en) | Automatic synthesis of integrated circuits employing boolean decomposition | |
CN103412853B (zh) | 一种针对文档转换器的测试用例自动生成方法 | |
Allam | Components and development in big data system: A survey | |
CN106777027B (zh) | 大规模并行处理行列混合数据存储装置及存储、查询方法 | |
CN103885839A (zh) | 基于多水平划分法和赋权有向超图的云计算任务调度方法 | |
Xue et al. | A segment-based approach for large-scale ontology matching | |
CN106919769A (zh) | 一种基于多层次方法和赋权超图的层次式fpga布局布线方法 | |
CN100492377C (zh) | 基于多水平划分法的大规模集成电路划分方法 | |
Katebi et al. | Large-scale Boolean matching | |
Cong | Pin assignment with global routing for general cell designs | |
CN111475588A (zh) | 数据处理方法及装置 | |
Van Dam et al. | Re-use of an ontology for modelling urban energy systems | |
CN102663216B (zh) | 基于结点属性函数的大规模集成电路的核值计算方法 | |
Danopoulos et al. | Fpga acceleration of approximate knn indexing on high-dimensional vectors | |
CN104679966A (zh) | 基于多层次方法和离散粒子群的赋权超图优化划分方法 | |
CN103646194A (zh) | 一种基于形式化验证的同步数据流程序的可信排序方法 | |
CN103870342B (zh) | 云计算环境中的基于结点属性函数的任务核值计算方法 | |
CN103902374B (zh) | 基于元胞自动机和赋权有向超图的云计算任务调度方法 | |
CN110765100A (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
Su et al. | Efficient subhypergraph matching based on hyperedge features | |
Lai et al. | Bipartite permutation graphs with application to the minimum buffer size problem | |
Irani et al. | A methodology for solving problems: problem modeling and heuristic generation |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131225 Termination date: 20140518 |