首页> 中国专利> 基于多水平划分法和赋权超图的大规模集成电路划分方法

基于多水平划分法和赋权超图的大规模集成电路划分方法

摘要

本发明涉及一种基于多水平划分法和赋权超图的大规模集成电路划分方法,其采用赋权超图对电路进行数学建模,将电路线网到赋权超图的转换,并保存为赋权超图文件;然后启动基于多水平划分法的赋权超图划分程序,对生成的赋权超图进行划分;最后依据赋权超图的划分结果,修改电路对应的线网,并通过遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中。采用本发明的基于多水平划分法和赋权超图的大规模集成电路划分方法,不仅仅有效地提高了电路划分的效率,还显著地提高了电路划分的性能,具有较好的实用性。

著录项

  • 公开/公告号CN102693340A

    专利类型发明专利

  • 公开/公告日2012-09-26

    原文格式PDF

  • 申请/专利权人 孙凌宇;冷明;冷子阳;

    申请/专利号CN201210155738.6

  • 发明设计人 冷明;孙凌宇;冷子阳;

    申请日2012-05-19

  • 分类号G06F17/50(20060101);G06F17/30(20060101);

  • 代理机构

  • 代理人

  • 地址 343009 江西省吉安市吉州区安宁路15号6栋101

  • 入库时间 2023-12-18 06:37:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-07-06

    未缴年费专利权终止 IPC(主分类):G06F17/50 授权公告日:20140409 终止日期:20150519 申请日:20120519

    专利权的终止

  • 2014-04-09

    授权

    授权

  • 2012-11-21

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20120519

    实质审查的生效

  • 2012-09-26

    公开

    公开

说明书

技术领域

本发明涉及一种设计大规模集成电路用的基于多水平划分法和赋权超图的大规模集成电路划分方法。

背景技术

电路划分在使用硬件描述语言设计大规模集成电路中占有重要的地位。随着集成电路技术的快速发展,在一个芯片上集成几百万门甚至几千万门电路已成为现实,因此在大规模集成电路设计中使用电路划分,可有效地降低对集成电路进行模拟或综合的复杂性等要求。电路划分也是层次化设计思想的重要一环,电路可以在不同级别上进行划分:进行系统级划分把一个系统划分到一组印刷电路板上,进行板级划分把印刷电路板上的电路划分成一组芯片,进行芯片级划分把芯片中的电路划分成更小的电路。电路划分还有一个重要的原因就是满足封装性要求,电路中门的数目与输入输出引脚数目之间的关系受Rent规则约束,每个芯片上输出引脚的数目以及门电路的数目都不能无限制增加,加之对大规模集成电路封装性要求,所以必须对大规模集成电路进行划分。研究出一个好的电路划分方法是提高大规模集成电路设计性能的必要条件。

请参见图1所示,现有技术的电路划分方法,第一步,用硬件描述语言描述被划分的电路101,得到电路源代码102;第二步,词法分析电路的源代码,得到对应的单词符号103;第三步,在词法分析基础上进行语法分析,得到对应的语法短语104;第四步,在语法分析基础上进行语义分析,得到对应的类型信息105;第五步,在语义分析基础上生成中间代码,构造对应的电路线网106;第六步,根据中间代码生成的线网,调用划分程序109对电路进行划分;第七步,根据划分结果修改对应的线网,得到修改后线网107;第八步,对修改后线网进行电路输出,得到划分后电路描述源代码108。

从现有技术的电路划分系统中有若干种逻辑电路的划分法,这些划分法从互连线数目最小,划分后电路子集的逻辑单元数目均匀分布等不同的方面来实现,其中:基于迁移的划分法。首先,产生电路的随机初始划分,同一个电路逻辑单元不能同时属于两个电路子集。在迁移优化阶段,该划分法在两个电路子集中各选取一个电路逻辑单元进行成对交换,这两个电路逻辑单元分别属于两个不同的电路子集且收益最大,从而每次都利用交换过程最大限度地改进电路划分质量。在这个过程中,划分法记录割切达到最小值时刻的电路划分结果,且一旦交换了选择的两个电路逻辑单元,在整个迁移过程余下的优化改进中,将这两个电路逻辑单元锁定使得它们不再被选中,重复上述过程直到所有可能的电路逻辑单元都经迁移之后,然后回滚到累计收益最大值即割切最小值的时刻。该划分法得到的电路划分结果不稳定,离散性很大,因此限制了该划分法所能解决问题的规模。

水平嵌套划分法。首先,选择一个电路逻辑单元,把这个电路逻辑单元标上0,然后把那些和这个电路逻辑单元相连的电路逻辑单元标上1,之后对于那些还未标上号码,但是和已经标上号码的电路逻辑单元相邻的电路逻辑单元,将其标号为相连的电路逻辑单元号码上加1;直到一半的电路逻辑单元标上号码,标号过程才结束。那些已经标上号码的电路逻辑单元集合设为一个电路子集,其他电路逻辑单元为另一个电路子集。该划分法只有在选取的初始电路逻辑单元接近外围时,得到的电路划分结果相对较好,因此得到的电路划分结果也不稳定。

多水平划分法。首先,采用随机匹配将某些电路逻辑单元结合在一起,得到下一水平层的粗化电路图,重复此过程直到粗化电路图足够小为止,即得到一个最小电路图。然后,采用划分法对最小电路图进行对分,得到一个初始二划分。之后,将最小电路图投影回初始电路图,在每一水平层的细化电路划分中,按照贪心原则选择收益值最大的电路逻辑单元进行迁移优化,得到最后的电路划分结果。2008年中国专利局公告的由冷明,郁松年和孙凌宇申报,中国专利号为:200710043765.3号《基于多水平划分法的大规模集成电路划分方法》的发明专利,针对现有技术方案中因采用随机策略进行匹配和贪心原则进行迁移优化,导致无法逃离局部最优的划分,提供了一种改进的基于多水平划分法的大规模集成电路划分方法,有效地提高了大规模集成电路划分的效率和性能。该发明专利在多水平划分法的粗化阶段,通过对结点属性进行赋权无向图中所有结点的核值求解排序,按照基于结点核值的非严格降序访问处于未匹配状态的结点,依据一定规则对其进行匹配,从而将连接性好的结点合并在一起;在多水平划分法的优化阶段,采用免疫克隆优化程序改进贪心原则的局部搜索方法,对在每一水平层投影的划分进行优化,借助克隆操作、克隆变异操作、接种免疫疫苗操作、克隆选择操作,使得改进后的方法在利用启发信息搜索局部最优解的同时,更大自由地对具有潜力的解空间进行搜索,增加全局搜索能力。然而,由于该发明专利采用赋权无向图作为大规模集成电路划分问题的数学模型,因此存在着赋权无向图最优划分和大规模集成电路最优划分的不一致性。

本发明采用赋权超图对电路划分问题进行数学建模,其中电路逻辑单元表示为赋权超图中的结点,电路单元间的连线表示为赋权超图中的超边。相比赋权无向图而言,赋权超图为电路提供了更为精确的模型:每条超边可以连接两个以上的结点,对应于电路单元间的信号可以连接两个以上的电路逻辑单元。近而,本发明将大规模集成电路划分问题转换为赋权超图划分问题,其中大规模集成电路划分问题要求每个电路子集所包含的电路逻辑单元数目相等,对应于赋权超图划分问题的平衡约束条件,划分结果使得这些电路子集之间的内连线数据达到最小,对应于赋权超图划分问题的最小化总截权。

2012年中国专利局公告的由孙凌宇,冷明和冷子阳申报,中国专利号为:201210150329.7号《基于结点属性函数的大规模集成电路的核值计算方法》的发明专利,在采用多水平划分法求解赋权超图划分问题的粗化阶段中,提供了所需的基于结点属性函数的大规模集成电路的核值计算方法。该发明专利有利于在赋权超图的结点匹配过程中,发挥结点核值导向性作用,使得粗化后超图中结点权值倾向于大小一致,并最大程度地减少超边的数目以及超边权值之和,为大规模集成电路多水平划分的后续阶段提供更优的粗化超图。2012年中国专利局公告的由冷明,孙凌宇和冷子阳申报,中国专利号为:201210154573.0号《基于元胞自动机和赋权超图的大规模集成电路划分方法》的发明专利,采用元胞自动机对赋权超图划分问题进行数学建模,其中元胞对应于赋权超图中的结点,邻接元胞对应于邻接超边所包含的结点,元胞的状态对应于所在的划分子集,进而采用快速的元胞收益值和划分割切值的计算方法,有效地降低了大规模集成电路划分方法的空间复杂度和时间复杂度。

发明内容

本发明的目的在于针对已有技术存在的不足,提供一种基于多水平划分法和赋权超图的大规模集成电路划分方法,提高大规模集成电路划分的效率和性能。为达到上述目的,本发明的构思如下。

实现电路线网到赋权超图的转换,并保存为赋权超图文件;然后启动基于多水平划分法的赋权超图划分程序,对生成的赋权超图进行划分;最后依据赋权超图的划分结果,修改电路对应的线网,并通过遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中。

在多水平划分法的粗化阶段,通过对赋权超图中所有结点进行基于结点属性函数的核值求解排序,进而基于结点核值的非严格降序访问处于未匹配状态的结点,依据一定规则对其进行匹配,从而将连接性好的结点合并在一起,为大规模集成电路多水平划分的后续阶段提供更优的粗化超图。

在多水平划分法的优化阶段,采用禁忌搜索程序改进贪心原则的局部搜索方法,对在每一水平层粗化赋权超图投影的划分进行优化,借助适当的禁忌约束规则和藐视准则,使得改进后的搜索方法在利用启发信息搜索局部最优解的同时,更大自由地对具有潜力的解空间进行搜索,增加全局搜索能力。

 根据上述的发明构思,本发明的技术方案是这样实现的:一种基于多水平划分法和赋权超图的大规模集成电路划分方法,其特征在于,具体步骤如下。

步骤1,用硬件描述语言描述该电路,生成该电路的源代码。

步骤2,词法分析,从左到右一个个读入该电路的源代码,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词。

步骤3,语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据硬件描述语言的语法规则,确定整个字符流是否构成一个语法上正确的硬件描述语言程序。

步骤4,语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息。

步骤5,中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示。

步骤6,赋权超图文件生成,基于中间代码构造文本描述的电路对应的线网,经过电路线网到赋权超图的转换之后,保存为赋权超图文件。

步骤7,赋权超图划分,启动基于多水平划分法的赋权超图划分程序,读取赋权超图文件,采用基于多水平划分法的压缩存储格式对赋权超图进行存储,对生成的赋权超图进行划分,将最终得到的划分结果存储在赋权超图划分文件中。

步骤8,修改线网,在检测到基于多水平划分法的赋权超图划分程序完成划分之后,从赋权超图划分文件中读取相应的划分结果,根据划分结果修改电路对应的线网,将划分结果对应的电路逻辑单元搬移到指定的划分子集V1或V2中。

步骤9,电路输出,遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中。

上述的步骤6中,所述的赋权超图文件生成的步骤如下。

步骤6.1,基于中间代码构造电路源代码描述电路对应的线网,生成完整电路线网。一个完整的电路线网看作是一个根模块,它由层次化的子模块实例和电路逻辑单元通过信号互连构成,且每个子模块内部由端口、电路逻辑单元、嵌套子模块的实例通过信号连接构成。

步骤6.2, 从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元编号。

步骤6.3,从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元之间的信号编号,并确立每个信号x的连接方式,实现到赋权超图的转换。其中,电路线网中的电路逻辑单元用赋权超图的结点表示,电路线网中的信号用赋权超图的超边表示。结点的权值代表电路逻辑单元的大小,超边的权值代表电路逻辑单元之间信号连线的权值。i为赋权超图中结点的编号,取值范围为1到电路线网中电路逻辑单元的总个数n。j为赋权超图中超边的编号,取值范围为1到电路线网中信号的总个数m。

步骤6.4, 将转换得到的赋权超图保存为赋权超图文件。 

上述的步骤6.3中,所述的确立信号x连接方式的步骤如下。

步骤6.3.1,依次处理信号x的每个管脚连接,支持跨层次连接,寻找到连接端的电路逻辑单元y。

步骤6.3.2,如果电路逻辑单元y已经存在信号x的连接中,则忽略该电路逻辑单元y。否则在信号x的连接中增加该电路逻辑单元y。

上述的步骤7中,所述的基于多水平划分法的赋权超图划分方法的步骤如下。

步骤7.1,读取赋权超图文件,采用基于多水平划分法的压缩存储格式对赋权超图进行存储。

步骤7.2,进入到多水平划分法的粗化阶段,采用赋权超图的结点匹配程序将某些结点结合在一起,得到下一水平层的粗化赋权超图,重复此过程直到粗化赋权超图足够小为止,即得到一个最小赋权超图。

步骤7.3,进入到多水平划分法的初始划分阶段,运行基于FM方法的赋权超图划分程序,得到最小赋权超图的初始二划分。

步骤7.4,进入到多水平划分法的优化阶段,从最小赋权超图投影回初始赋权超图,在每一水平层的细化赋权超图中,采用禁忌搜索程序对细化赋权超图的投影划分进行优化。

步骤7.5,进入到平衡阶段,运行基于FM-EE方法的赋权超图划分程序,由于在基于多水平划分法的赋权超图划分过程中,可能违背赋权超图划分问题的平衡约束条件,因此在基于多水平划分法的赋权超图划分所求解的基础上,运行基于FM-EE方法的赋权超图划分方法,使划分解满足平衡约束条件,从而得到赋权超图划分问题的划分解。

步骤7.6,将最终得到的赋权超图划分结果存储在赋权超图划分文件中。

上述的步骤7.1中,所述的赋权超图的基于多水平划分法的压缩存储格式如下。

步骤7.1.1,使用vwgts数组存储赋权超图中结点的权值信息,且vwgts数组的大小为赋权超图中的结点个数。

步骤7.1.2,使用xadj数组存储每个结点所有邻接超边列表的起始位置信息,即第i条结点的终止位置为第i+1条结点的起始位置减1,且xadj数组的大小为赋权超图中的结点个数加1, xadj数组最后一个元素用于存放最后一条结点的终止位置。

步骤7.1.3,使用adjncy数组存储每个结点所有邻接超边的列表信息,第i条结点的邻接超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1]。

步骤7.1.4,使用eptr数组存储每条超边所包含的结点列表的起始位置信息,即第j条超边的终止位置为第j+1条超边的起始位置减1,且eptr数组的大小为赋权超图中的超边个数加1, eptr数组最后一个元素用于存放最后一条超边的终止位置。

步骤7.1.5,使用eind数组存储每条超边所包含结点的列表信息,第j条超边的邻接结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr[j+1]-1]。

步骤7.1.6,使用hewgts数组存储超边的权值信息,且hewgts数组的大小为赋权超图中的超边个数。

上述的步骤7.2中,所述的当前水平层粗化赋权超图的结点匹配程序的步骤如下。

步骤7.2.1,标注当前水平层粗化赋权超图中所有结点处于未匹配状态。

步骤7.2.2,运行赋权超图的结点核值计算程序,基于结点属性函数值进行当前水平层粗化赋权超图中所有结点的核值求解,并按照结点的核值进行非严格降序排序。

步骤7.2.3,按照结点核值的非严格降序访问处于未匹配状态的结点v;如果结点v还有邻接结点未匹配,那么选取处于没有匹配状态的且权值最大的邻接超边的邻接结点u和结点v匹配,且标注这两个结点为匹配状态;如果结点v所有邻接匹配结点处于匹配状态,那么结点v仍处于未匹配状态,在粗化过程中直接拷贝到下一水平层的粗化赋权超图中。

步骤7.2.4,步骤重复上一步,直至所有结点访问结束。

上述的步骤7.2.2中,所述的赋权超图的结点核值计算程序的步骤如下。

步骤7.2.2.1,计算出所有结点的属性函数值。

步骤7.2.2.2,对所有结点的属性函数值进行非严格降序的计数排序。

步骤7.2.2.3,按照结点属性函数值的非严格降序次序访问每个结点,计算每个结点v的核值。

上述的步骤7.2.2.3中,所述的结点v的核值计算的步骤如下。

步骤7.2.2.3.1,将结点v的属性函数值作为核值输出。

步骤7.2.2.3.2,将结点v从所在的超边e中删除。

步骤7.2.2.3.3,如果超边e删除结点v后,仍包含两个及以上结点,则超边e仍然存在,否则删除超边e。

步骤7.2.2.3.4,重新计算结点v的邻接结点u的属性函数值。

步骤7.2.2.3.5,更新邻接结点u属性函数值的非严格降序计数排序的次序。

上述的步骤7.4中,所述的禁忌搜索程序的步骤如下。

步骤7.4.1,初始化二维辅助数组EDG[2][m],依据当前水平层细化赋权超图的投影划分,初始化二维辅助数组EDG[2][m]。

步骤7.4.2,计算当前水平层细化赋权超图的投影划分的割切值,依据二维辅助数组EDG[2][m],快速计算当前水平层细化赋权超图的投影划分的割切值。

步骤7.4.3,计算所有边界结点的收益值,根据当前水平层细化赋权超图的投影划分,找出所有边界结点,并快速计算每个边界结点的收益值。

步骤7.4.4,将所有边界结点的收益值插入到所在划分子集V1或V2的自由状态散列结构中。

步骤7.4.5,循环初始化,初始化循环计数器COUNT为0。

步骤7.4.6,选择迁移方向和迁移结点,依据当前划分以及平衡容忍度参数,选择迁移方向(假设迁移方向是划分子集A迁移到划分子集B)和迁移结点(假设迁移结点是结点v)。

步骤7.4.7,删除结点v迁移前的收益值,将结点v迁移前的收益值从结点v迁移前所在的划分子集A的自由状态散列结构或禁忌状态散列结构中删除。

步骤7.4.8,更新二维辅助数组EDG[2][m],遍历迁移结点v的所有邻接超边e,执行EDG[A][e]减1操作,EDG[B][e]加1操作。

步骤7.4.9,更新当前划分的割切值,依据二维辅助数组EDG[2][m],快速计算当前划分的割切值。

步骤7.4.10,更新已找到的最优划分。

步骤7.4.11,计算结点v迁移后的收益值,根据结点v所在划分子集B和所在划分子集的另一侧划分子集A,快速计算结点v迁移后的收益值。

步骤7.4.12,插入结点v迁移后的收益值,将结点v迁移后的收益值插入到结点v迁移后所在的划分子集B的禁忌状态散列结构中。

步骤7.4.13,更新结点v的邻接结点u的收益值,遍历迁移结点v的所有邻接超边e中所有邻接结点u,快速计算邻接结点u的收益值,并更新相应的散列结构。

步骤7.4.14,重复步骤7.4.6、7.4.7、7.4.8、7.4.9、7.4.10、7.4.11、7.4.12、7.4.13,直至循环计数器COUNTER到达给定的上限。

上述的步骤7.4.1中,所述的初始化二维辅助数组EDG[2][m]的步骤如下。

步骤7.4.1.1,二维辅助数组EDG[2][m]清零。

步骤7.4.1.2,读取eptr数组和eind数组存储的每条超边所包含的结点信息,基于当前水平层细化赋权超图的投影划分,计算每条超边在划分子集V1和V2的结点个数,即二维辅助数组EDG[2][m]的两行分别存放每条超边在划分子集V1和V2的结点个数。

上述的步骤7.4.2和步骤7.4.9中,所述的快速计算当前划分的割切值的步骤如下。

步骤7.4.2.1,划分割切值清零。

步骤7.4.2.2,遍历每条超边是否结束,如果访问未结束,即存在超边e未被访问,则转步骤7.4.2.3;否则访问结束,返回划分割切值。

步骤7.4.2.3,如果满足EDG[0][e] ≥1的条件1和EDG[1][e]≥1的条件2时,意味着超边e在划分子集V1和V2的结点个数都大于等于1,即可判定超边e是两栖边,并将划分割切值累加上当前超边的权值;否则判定超边e不是两栖边,划分割切值不变。

步骤7.4.2.4,转步骤7.4.2.2。

上述的步骤7.4.3、7.4.11和7.4.13中,所述的快速计算结点v收益值的步骤如下。

步骤7.4.3.1,结点v的收益值清零。

步骤7.4.3.2,读取结点v的所在划分子集from和所在划分子集的另一侧划分子集to。

步骤7.4.3.3,遍历结点v的所有邻接超边e,若二维数组EDG[from][e]值为1,则将收益值加上超边e的权值;若二维数组EDG[to][e]值为0,则将收益值减去超边e的权值。

步骤7.4.3.4,返回结点v的收益值。

上述的步骤7.4.6,所述的选择迁移方向和迁移结点的步骤如下。

步骤7.4.6.1,计算当前划分的平衡状态。

步骤7.4.6.2,如果当前划分的平衡状态满足平衡容忍度参数,则在划分子集V1或V2的自由状态散列结构中,选择收益值最大的边界结点为被迁移结点v,迁移方向为结点v所在的划分子集A到另一侧划分子集B。

步骤7.4.6.3,如果当前划分的平衡状态不满足平衡容忍度参数,则迁移方向为当前划分较重的划分子集A到另一侧较轻的划分子集B,如果划分子集A的自由状态散列结构不为空,在划分子集A的自由状态散列结构中,选择收益值最大的边界结点v为被迁移结点;否则在划分子集A的禁忌状态散列结构中,选择收益值最大的边界结点v为被迁移结点。

上述的步骤7.4.13中,所述的更新相应的散列结构的邻接结点u的收益值的步骤如下。

步骤7.4.13.1,如果邻接结点u因为结点v的迁移成为边界结点,那么将邻接结点u的新收益值插入到邻接结点u所在的划分子集的自由状态散列结构中。

步骤7.4.13.2,如果邻接结点u因为结点v的迁移成为非边界结点,那么将邻接结点u的旧收益值从邻接结点u所在的划分子集的自由状态散列结构或禁忌状态散列结构中删除。

步骤7.4.13.3,如果邻接结点u在结点v的迁移前后始终为边界结点,且在结点v迁移前,邻接结点u的收益值已插入至所在划分子集的自由状态散列结构中,则只需将邻接结点u所处划分子集的自由状态散列结构的旧收益值更新为新收益值。

步骤7.4.13.4,如果邻接结点u在结点v的迁移前后始终为边界结点,且在结点v迁移前,邻接结点u的收益值已插入至所在划分子集的禁忌状态散列结构中,则将禁忌状态散列结构中邻接结点u的旧收益值删除,然后将邻接结点u的新收益值插入到邻接结点u所在的划分子集的自由状态散列结构中。

 本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点。

1、提高了电路划分的效率。

本发明基于多水平划分法和赋权超图的大规模集成电路划分方法,由于通过电路线网到赋权超图文件的转换,然后启动基于多水平划分法的赋权超图划分程序,对生成的赋权超图进行划分,从而避免了划分方法直接在电路线网上进行划分,并且可以通过设置划分方法的参数来获取较优的划分结果后,再进行电路线网的修改,从而有效地提高了电路划分的效率。

2、提高了电路划分的性能。

本发明基于多水平划分法和赋权超图的大规模集成电路划分方法,借助二维辅助数组EDG[2][m]存储每条超边在划分子集的结点个数,实现了快速的结点收益值和划分割切值的计算方法,有效地避免了遍历超边中的结点。相比赋权无向图划分方法和迁移方法,该方法有效地找到比现有技术更优的电路划分结果,降低了空间复杂度和时间复杂度,最终显著地提高了电路划分的性能。

通过以下对本发明基于多水平划分法和赋权超图的大规模集成电路划分方法的实例结合其附图的描述,可以进一步理解本发明的目的、具体结构特征和优点。

图1是现有技术的电路划分系统中电路划分方法的流程图。

图2是本发明基于多水平划分法和赋权超图的大规模集成电路划分方法的流程图。

图3是本发明的赋权超图的基于多水平划分法的压缩存储格式。

图4是本发明基于多水平划分法和赋权超图的大规模集成电路划分过程中优化阶段的禁忌搜索程序的流程图。

 具体实施方式。

为了能够更清楚地理解本发明基于多水平划分法和赋权超图的大规模集成电路划分方法的技术内容,特举以下实例详细说明。

 现有技术的电路划分方法的流程图如图1所示,第一步,用硬件描述语言描述被划分的电路101,得到电路源代码102;第二步,词法分析电路的源代码,得到对应的单词符号103;第三步,在词法分析基础上进行语法分析,得到对应的语法短语104;第四步,在语法分析基础上进行语义分析,得到对应的类型信息105;第五步,在语义分析基础上生成中间代码,构造对应的电路线网106;第六步,根据中间代码生成的线网,调用划分程序109对电路进行划分;第七步,根据划分结果修改对应的线网,得到修改后线网107;第八步,对修改后线网进行电路输出,得到划分后电路描述源代码108。

 本实施例的基于多水平划分法和赋权超图的大规模集成电路划分方法的流程图如图2所示,用硬件描述语言描述被划分的电路201,得到电路源代码202;词法分析电路的源代码,得到对应的单词符号203;在词法分析基础上进行语法分析,得到对应的语法短语204;在语法分析基础上进行语义分析,得到对应的类型信息205;在语义分析基础上,构造对应的内部中间代码206;基于内部中间代码构造文本描述的电路对应的线网207,经过电路线网到赋权超图的转换之后,保存为赋权超图文件210;启动基于多水平划分法的赋权超图划分程序216,读取赋权超图文件210,得到基于多水平划分法的压缩存储格式的赋权超图212;进入到多水平划分法的粗化阶段,调用赋权超图的结点匹配程序217,将某些赋权超图的结点结合在一起,得到每一水平层的粗化赋权超图213;进入到多水平划分法的初始划分阶段,调用最小赋权超图的划分程序218对最小赋权超图进行对分,得到最小赋权超图初始二划分214;进入到多水平划分法的优化阶段,从最小赋权超图投影回初始赋权超图,在每一水平层的细化赋权超图中,调用细化赋权超图的划分优化程序219对划分进行优化,得到每一水平层细化赋权超图的划分215;进入到平衡阶段,运行基于FM-EE方法的赋权超图划分程序220,使初始赋权超图的划分结果满足平衡约束条件,并将最终得到的划分结果存储为赋权超图划分文件211;在检测到基于多水平划分法的赋权超图划分程序216完成划分之后,从赋权超图划分文件211中读取相应的划分结果,根据划分结果修改电路对应的线网,得到划分结果对应的修改后线网208;遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储为电路描述文件209。

赋权无向图划分问题的定义参见在先技术[1] “冷明. 基于多水平方法的无向图剖分及其在VLSI设计中的应用研究[D]. 上海:上海大学, 2008.”。作为赋权无向图划分问题研究的深入和延续,本发明阐述了赋权超图划分问题的相关定义如下。

定义1:对于一赋权超图 ,其中,。现将超图的结点划分为两个结点子集和,满足和,称该划分为超图的二划分。

定义2:用定义结点的非负权值,即表示结点的权值。用定义超边的非负权值,即表示超边的权值。

定义3:对于一赋权超图,若,我们称是结点的邻接超边,且记为结点的邻接超边集。

定义4:对于一赋权超图给定的二划分,假定结点,则结点的邻接超边中所有结点全部处在同一结点子集的邻接超边权值之和,称为结点的内联度,记为。结点的邻接超边中结点处在不同结点子集的邻接超边权值之和,称为结点的外联度,记为。该划分的割切为属于不同结点子集的超边权值之和,即划分割切记为。

定义5:对于一赋权超图给定的二划分,设结点属于划分。当该结点从迁移到,迁移前原始划分与迁移后新划分的割切差,称为该结点的收益。

定义6:给定平衡约束参数,对于一赋权超图,超图二划分优化问题是寻找划分,使得该划分的割切最小化,即目标函数记为,且同时满足约束条件。

 本实施例的赋权超图文件的文件存储格式参见在先技术[2] “G. Karypis and V. Kumar. HMetis 1.5.3: A Hypergraph Partitioning Package [R]. Technical report, Department of Computer Science, University of Minnesota, 1998.”和在先技术[3] “孙凌宇,冷明,郭恺强,朱平. 一种VLSI设计到超图的转换系统[J]. 计算机工程与应用, 2012, Vol.29, Issue.2, Pages 7-16.”。

本实施例的基于FM方法的赋权超图划分程序参见在先技术[4] “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.”。

 本实施例的赋权超图的基于多水平划分法的压缩存储格式如图3所示。存储结构使用adjncy数组304存储每个结点所有邻接超边的列表信息。使用xadj数组303存储每个结点所有邻接超边列表的起始位置信息,即第i条结点的终止位置为第i+1条结点的起始位置减1,且xadj数组303的大小为赋权超图中的结点个数加1, xadj数组303最后一个元素用于存放最后一条结点的终止位置。使用eind数组307存储每条超边所包含结点的列表信息。使用eptr数组306存储每条超边所包含的结点列表的起始位置信息,即第j条超边的终止位置为第j+1条超边的起始位置减1,且eptr数组306的大小为赋权超图中的超边个数加1, eptr数组306最后一个元素用于存放最后一条超边的终止位置。使用vwgts数组302存储结点的权值信息,且vwgts数组302的大小为赋权超图中的结点个数。使用hewgts数组305存储超边的权值信息,且hewgts数组305的大小为赋权超图中的超边个数。假设数组地址从零开始,结点编号从零开始,则第i条结点的邻接超边列表存储在adjncy数组304中,从adjncy[xadj[i]]到adjncy[xadj[i+1]-1];第j条超边的邻接结点列表存储在eind数组307中,从eind[eptr[j]]到eind[eptr[j+1]-1]。图例301包含总共7个结点和8条超边,其中第6个结点的权值为7,有2条邻接超边f、h,对应的权值为4、1,且相应的邻接结点分别为结点7、3、6和结点4、6。

本实施例的赋权超图的结点核值计算程序参见在先技术[5] “孙凌宇,冷明,冷子阳.基于结点属性函数的大规模集成电路的核值计算方法 [P].2012. 发明专利申请号201210150329.7.”。

本实施例的基于FM-EE方法的赋权超图划分程序参见在先技术[6] “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.”。

本实施例的散列结构参见在先技术[4] “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.”。

本实施例的基于多水平划分法和赋权超图的大规模集成电路划分过程中优化阶段的禁忌搜索程序的流程图如图4所示,步骤如下。

A01:初始化二维辅助数组EDG[2][m],依据当前水平层细化赋权超图的投影划分,初始化二维辅助数组EDG[2][m]。

A02:计算当前水平层细化赋权超图的投影划分的割切值,依据二维辅助数组EDG[2][m],快速计算当前水平层细化赋权超图的投影划分的割切值。

A03:计算所有边界结点的收益值,根据当前水平层细化赋权超图的投影划分,找出所有边界结点,并快速计算每个边界结点的收益值。

A04:将所有边界结点的收益值插入到所在划分子集V1或V2的自由状态散列结构中。

A05:循环初始化,初始化循环计数器COUNT为0。

A06:选择迁移方向和迁移结点,依据当前划分以及平衡容忍度参数,选择迁移方向(假设迁移方向是划分子集A迁移到划分子集B)和迁移结点(假设迁移结点是结点v)。

A07:删除结点v迁移前的收益值,将结点v迁移前的收益值从结点v迁移前所在的划分子集A的自由状态散列结构或禁忌状态散列结构中删除。

A08:更新二维辅助数组EDG[2][m],遍历迁移结点v的所有邻接超边e,执行EDG[A][e]减1操作,EDG[B][e]加1操作。

A09:更新当前划分的割切值,依据二维辅助数组EDG[2][m],快速计算当前划分的割切值。

A10:更新已找到的最优划分。

A11:计算结点v迁移后的收益值,根据结点v所在划分子集B和所在划分子集的另一侧划分子集A,快速计算结点v迁移后的收益值。

A12:插入结点v迁移后的收益值,将结点v迁移后的收益值插入到结点v迁移后所在的划分子集B的禁忌状态散列结构中。

A13:更新结点v的邻接结点u的收益值,遍历迁移结点v的所有邻接超边e中所有邻接结点u,快速计算邻接结点u的收益值,并更新相应的散列结构。

A14: 重复步骤A06、A07、A08、A09、A10、A11、A12、A13,循环计数器COUNT加1,直至循环计数器COUNTER到达给定的上限。

 本实施例中,基于多水平划分法和赋权超图的大规模集成电路划分方法采用ANSI C来实现,操作系统为WIN2003,运行在2.4GHz的Intel公司的Xeon-CPU-E5620芯片上,内存为8G。实验方案所用的测试基准电路为1998年IBM公司Austin研究实验室的Alpert教授给出的18组电路测试基准ISPD98。ISPD98是基于IBM公司Austin、Burlington、Rochester设计部门给出的一系列内部电子产品经过转换得到,包括总线仲裁器、总线电桥芯片、内存及周边元件扩展总线接口、通讯适配器、内存控制器、处理器和图形适配器等。本实施例分别按照在先技术[7]“孙凌宇, 冷明, 彭宣戈. 一种ISPD98电路网表到图的转换算法[J]. 井冈山学院学报(自然科学), 2008, Vol.29, Issue.4, Pages 19-21.”给出的ISPD98电路测试基准到赋权无向图转换方法,以及在先技术[8]“冷明, 孙凌宇, 郭恺强. 一种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个不同的随机数种子。实验结果说明基于多水平划分法和赋权超图的大规模集成电路划分方法良好的性能:⑴相比赋权无向图划分方法,赋权超图划分方法取得的划分有了较大的改进;⑵相比迁移方法等其它方法,多水平划分法具备相同的逃离局部最优能力,并大幅度地降低了其时空复杂度和实现难度。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号