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

文档序号:6369915阅读:201来源:国知局
专利名称:基于多水平划分法和赋权超图的大规模集成电路划分方法
技术领域
本发明涉及一种设计大規模集成电路用的基于多水平划分法和赋权超图的大规模集成电路划分方法。
背景技术
电路划分在使用硬件描述语言设计大規模集成电路中占有重要的地位。随着集成电路技术的快速发展,在一个芯片上集成几百万门甚至几千万门电路已成为现实,因此在大規模集成电路设计中使用电路划分,可有效地降低对集成电路进行模拟或综合的复杂性等要求。电路划分也是层次化设计思想的重要ー环,电路可以在不同级别上进行划分进行系统级划分把ー个系统划分到ー组印刷电路板上,进行板级划分把印刷电路板上的电路划分成一组芯片,进行芯片级划分把芯片中的电路划分成更小的电路。电路划分还有ー个重要的原因就是满足封装性要求,电路中门的数目与输入输出引脚数目之间的关系受Rent规则约束,每个芯片上输出引脚的数目以及门电路的数目都不能无限制増加,加之对大规模集成电路封装性要求,所以必须对大規模集成电路进行划分。研究出一个好的电路划分方法是提高大规模集成电路设计性能的必要条件。请參见图I所示,现有技术的电路划分方法,第一歩,用硬件描述语言描述被划分的电路101,得到电路源代码102 ;第二步,词法分析电路的源代码,得到对应的单词符号103 ;第三步,在词法分析基础上进行语法分析,得到对应的语法短语104 ;第四步,在语法分析基础上进行语义分析,得到对应的类型信息105 ;第五歩,在语义分析基础上生成中间代码,构造对应的电路线网106 ;第六步,根据中间代码生成的线网,调用划分程序109对电路进行划分;第七步,根据划分结果修改对应的线网,得到修改后线网107 ;第八步,对修改后线网进行电路输出,得到划分后电路描述源代码108。从现有技术的电路划分系统中有若干种逻辑电路的划分法,这些划分法从互连线数目最小,划分后电路子集的逻辑单元数目均匀分布等不同的方面来实现,其中基于迁移的划分法。首先,产生电路的随机初始划分,同一个电路逻辑单元不能同时属于两个电路子集。在迁移优化阶段,该划分法在两个电路子集中各选取ー个电路逻辑单元进行成对交換,这两个电路逻辑单元分别属于两个不同的电路子集且收益最大,从而每次都利用交换过程最大限度地改进电路划分质量。在这个过程中,划分法记录割切达到最小值时刻的电路划分结果,且一旦交换了选择的两个电路逻辑单元,在整个迁移过程余下的优化改进中,将这两个电路逻辑単元锁定使得它们不再被选中,重复上述过程直到所有可能的电路逻辑单元都经迁移之后,然后回滚到累计收益最大值即割切最小值的时刻。该划分法得到的电路划分结果不稳定,离散性很大,因此限制了该划分法所能解决问题的規模。水平嵌套划分法。首先,选择ー个电路逻辑单元,把这个电路逻辑单元标上0,然后把那些和这个电路逻辑単元相连的电路逻辑单元标上1,之后对于那些还未标上号码,但是和已经标上号码的电路逻辑単元相邻的电路逻辑単元,将其标号为相连的电路逻辑单元号 码上加I;直到一半的电路逻辑单元标上号码,标号过程才结束。那些已经标上号码的电路逻辑单元集合设为ー个电路子集,其他电路逻辑单元为另ー个电路子集。该划分法只有在选取的初始电路逻辑单元接近外围时,得到的电路划分结果相对较好,因此得到的电路划分结果也不稳定。多水平划分法。首先,采用随机匹配将某些电路逻辑单元结合在一起,得到下一水平层的粗化电路图,重复此过程直到粗化电路图足够小为止,即得到ー个最小电路图。然后,采用划分法对最小电路图进行对分,得到ー个初始ニ划分。之后,将最小电路图投影回初始电路图,在每一水平层的细化电路划分中,按照贪心原则选择收益值最大的电路逻辑单元进行迁移优化,得到最后的电路划分結果。2008年中国专利局公告的由冷明,郁松年和孙凌宇申报,中国专利号为200710043765. 3号《基于多水平划分法的大規模集成电路划分方法》的发明专利,针对现有技术方案中因采用随机策略进行匹配和贪心原则进行迁移优化,导致无法逃离局部最优的划分,提供了一种改进的基于多水平划分法的大規模集成电路划分方法,有效地提高了大規模集成电路划分的效率和性能。该发明专利在多水平划分法的粗化阶段,通过对结点属性进行赋权无向图中所有结点的核值求解排序,按照基于结点核值的非严格降序访问处于未匹配状态的结点,依据一定规则对其进行匹配,从而将 连接性好的结点合并在一起;在多水平划分法的优化阶段,采用免疫克隆优化程序改进贪心原则的局部捜索方法,对在每一水平层投影的划分进行优化,借助克隆操作、克隆变异操作、接种免疫疫苗操作、克隆选择操作,使得改进后的方法在利用启发信息捜索局部最优解的同时,更大自由地对具有潜力的解空间进行捜索,増加全局捜索能力。然而,由于该发明专利采用赋权无向图作为大規模集成电路划分问题的数学模型,因此存在着赋权无向图最优划分和大規模集成电路最优划分的不一致性。本发明采用赋权超图对电路划分问题进行数学建模,其中电路逻辑单元表示为赋权超图中的结点,电路单元间的连线表示为赋权超图中的超边。相比赋权无向图而言,赋权超图为电路提供了更为精确的模型每条超边可以连接两个以上的结点,对应于电路单元间的信号可以连接两个以上的电路逻辑单元。近而,本发明将大規模集成电路划分问题转换为赋权超图划分问题,其中大規模集成电路划分问题要求每个电路子集所包含的电路逻辑单元数目相等,对应于赋权超图划分问题的平衡约束条件,划分结果使得这些电路子集之间的内连线数据达到最小,对应于赋权超图划分问题的最小化总截权。2012年中国专利局公告的由孙凌宇,冷明和冷子阳申报,中国专利号为201210150329. 7号《基于结点属性函数的大規模集成电路的核值计算方法》的发明专利,在采用多水平划分法求解赋权超图划分问题的粗化阶段中,提供了所需的基于结点属性函数的大規模集成电路的核值计算方法。该发明专利有利于在赋权超图的结点匹配过程中,发挥结点核值导向性作用,使得粗化后超图中结点权值倾向于大小一致,并最大程度地減少超边的数目以及超边权值之和,为大規模集成电路多水平划分的后续阶段提供更优的粗化超图。2012年中国专利局公告的由冷明,孙凌宇和冷子阳申报,中国专利号为201210154573. O号《基于元胞自动机和赋权超图的大規模集成电路划分方法》的发明专利,采用元胞自动机对赋权超图划分问题进行数学建模,其中元胞对应于赋权超图中的结点,邻接元胞对应于邻接超边所包含的结点,元胞的状态对应于所在的划分子集,进而采用快速的元胞收益值和划分割切值的计算方法,有效地降低了大規模集成电路划分方法的空间复杂度和时间复杂度。

发明内容
本发明的目的在于针对已有技术存在的不足,提供一种基于多水平划分法和赋权超图的大規模集成电路划分方法,提高大规模集成电路划分的效率和性能。为达到上述目的,本发明的构思如下。实现电路线网到赋权超图的转换,并保存为赋权超图文件;然后启动基于多水平划分法的赋权超图划分程序,对生成的赋权超图进行划分;最后依据赋权超图的划分結果,修改电路对应的线网,并通过遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中。在多水平划分法的粗化阶段,通过对赋权超图中所有结点进行基于结点属性函数的核值求解排序,进而基于结点核值的非严格降序访问处于未匹配状态的结点,依据一定规则对其进行匹配,从而将连接性好的结点合并在一起,为大規模集成电路多水平划分的后续阶段提供更优的粗化超图。
在多水平划分法的优化阶段,采用禁忌捜索程序改进贪心原则的局部捜索方法,对在每一水平层粗化赋权超图投影的划分进行优化,借助适当的禁忌约束规则和藐视准贝1J,使得改进后的捜索方法在利用启发信息捜索局部最优解的同时,更大自由地对具有潜力的解空间进行捜索,増加全局捜索能力。根据上述的发明构思,本发明的技术方案是这样实现的一种基于多水平划分法和赋权超图的大規模集成电路划分方法,其特征在于,具体步骤如下。步骤1,用硬件描述语言描述该电路,生成该电路的源代码。步骤2,词法分析,从左到右一个个读入该电路的源代码,对构成源代码的字符流进行扫描和分解,从而识别出ー个个单词。步骤3,语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据硬件描述语言的语法规则,确定整个字符流是否构成一个语法上正确的硬件描述语言程序。步骤4,语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息。步骤5,中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示。步骤6,赋权超图文件生成,基于中间代码构造文本描述的电路对应的线网,经过电路线网到赋权超图的转换之后,保存为赋权超图文件。步骤7,赋权超图划分,启动基于多水平划分法的赋权超图划分程序,读取赋权超图文件,采用基于多水平划分法的压缩存储格式对赋权超图进行存储,对生成的赋权超图进行划分,将最终得到的划分结果存储在赋权超图划分文件中。步骤8,修改线网,在检测到基于多水平划分法的赋权超图划分程序完成划分之后,从赋权超图划分文件中读取相应的划分结果,根据划分结果修改电路对应的线网,将划分结果对应的电路逻辑单元搬移到指定的划分子集Vl或V2中。步骤9,电路输出,遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中。
上述的步骤6中,所述的赋权超图文件生成的步骤如下。
步骤6. 1,基于中间代码构造电路源代码描述电路对应的线网,生成完整电路线网。一个完整的电路线网看作是ー个根模块,它由层次化的子模块实例和电路逻辑单元通过信号互连构成,且每个子模块内部由端ロ、电路逻辑单元、嵌套子模块的实例通过信号连接构成。步骤6. 2,从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元编号。步骤6. 3,从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元之间的信号编号,并确立每个信号X的连接方式,实现到赋权超图的转换。其中,电路线网中的电路逻辑单元用赋权超图的结点表示,电路线网中的信号用赋权超图的超边表示。结点的权值代表电路逻辑单元的大小,超边的权值代表电路逻辑单元之间信号连线的权值。i为赋权超图中结点的编号,取值范围为I到电路线网中电路逻辑単元的总个数n。j为赋权超图中超边的编号,取值范围为I到电路线网中信号的总个数m。 步骤6. 4,将转换得到的赋权超图保存为赋权超图文件。上述的步骤6. 3中,所述的确立信号X连接方式的步骤如下。步骤6. 3. 1,依次处理信号X的每个管脚连接,支持跨层次连接,寻找到连接端的电路逻辑单元y。步骤6. 3. 2,如果电路逻辑单元y已经存在信号x的连接中,则忽略该电路逻辑单元I。否则在信号X的连接中増加该电路逻辑单元I。上述的步骤7中,所述的基于多水平划分法的赋权超图划分方法的步骤如下。步骤7. 1,读取赋权超图文件,采用基于多水平划分法的压缩存储格式对赋权超图进行存储。步骤7. 2,进入到多水平划分法的粗化阶段,采用赋权超图的结点匹配程序将某些结点结合在一起,得到下一水平层的粗化赋权超图,重复此过程直到粗化赋权超图足够小为止,即得到ー个最小赋权超图。步骤7. 3,进入到多水平划分法的初始划分阶段,运行基于FM方法的赋权超图划分程序,得到最小赋权超图的初始ニ划分。步骤7. 4,进入到多水平划分法的优化阶段,从最小赋权超图投影回初始赋权超图,在每一水平层的细化赋权超图中,采用禁忌捜索程序对细化赋权超图的投影划分进行优化。步骤7. 5,进入到平衡阶段,运行基于FM-EE方法的赋权超图划分程序,由于在基于多水平划分法的赋权超图划分过程中,可能违背赋权超图划分问题的平衡约束条件,因此在基于多水平划分法的赋权超图划分所求解的基础上,运行基于FM-EE方法的赋权超图划分方法,使划分解满足平衡约束条件,从而得到赋权超图划分问题的划分解。步骤7. 6,将最终得到的赋权超图划分结果存储在赋权超图划分文件中。上述的步骤7. I中,所述的赋权超图的基于多水平划分法的压缩存储格式如下。步骤7. I. I,使用vwgts数组存储赋权超图中结点的权值信息,且vwgts数组的大小为赋权超图中的结点个数。步骤7. I. 2,使用xadj数组存储每个结点所有邻接超边列表的起始位置信息,即第i条结点的終止位置为第i+Ι条结点的起始位置减1,且Xadj数组的大小为赋权超图中的结点个数加1,xadj数组最后ー个元素用于存放最后一条结点的終止位置。步骤7. I. 3,使用adjncy数组存储每个结点所有邻接超边的列表信息,第i条结点的邻接超边列表存储在adjncy数组中,从adjncy [xadj [i]]到adjncy [xadj [i+1] _1]。步骤7· I. 4,使用eptr数组存储每条超边所包含的结点列表的起始位置信息,即第j条超边的終止位置为第j+Ι条超边的起始位置减1,且eptr数组的大小为赋权超图中的超边个数加1,eptr数组最后ー个元素用于存放最后一条超边的终止位置。步骤7. I. 5,使用eind数组存储每条超边所包含结点的列表信息,第j条超边的邻接结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr [j+l]_l]。步骤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. I,计算出所有结点的属性函数值。步骤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,将所有边界结点的收益值插入到所在划分子集Vl或V2的自由状态散列结构中。步骤7. 4. 5,循环初始化,初始化循环计数器COUNT为O。步骤7. 4. 6,选择迁移方向和迁移结点,依据当前划分以及平衡容忍度參数,选择迁移方向(假设迁移方向是划分子集A迁移到划分子集B)和迁移结点(假设迁移结点是结点V)。步骤7. 4. 7,删除结点V迁移前的收益值,将结点V迁移前的收益值从结点V迁移前所在的划分子集A的自由状态散列结构或禁忌状态散列结构中删除。步骤7. 4. 8,更新ニ维辅助数组EDG[2] [m],遍历迁移结点V的所有邻接超边e,执 行 EDG[A] [e]减 I 操作,EDG[B] [e]加 I 操作。步骤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. I中,所述的初始化ニ维辅助数组EDG[2] [m]的步骤如下。步骤7. 4. I. I,ニ维辅助数组EDG[2] [m]清零。步骤7. 4. 1.2,读取数组和eind数组存储的每条超边所包含的结点信息,基于当前水平层细化赋权超图的投影划分,计算每条超边在划分子集Vl和V2的结点个数,即ニ维辅助数组EDG[2] [m]的两行分别存放每条超边在划分子集Vl和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[O] [e]彡I的条件I和EDG[1] [e]彡I的条件2时,意味着超边e在划分子集Vl和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 O步骤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,如果当前划分的平衡状态满足平衡容忍度參数,则在划分子集Vl 或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所在的划分子集的自由状态散列结构中。本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点。I、提高了电路划分的效率。本发明基于多水平划分法和赋权超图的大規模集成电路划分方法,由于通过电路线网到赋权超图文件的转换,然后启动基于多水平划分法的赋权超图划分程序,对生成的赋权超图进行划分,从而避免了划分方法直接在电路线网上进行划分,并且可以通过设置划分方法的參数来获取较优的划分结果后,再进行电路线网的修改,从而有效地提高了电路划分的效率。2、提高了电路划分的性能。本发明基于多水平划分法和赋权超图的大規模集成电路划分方法,借助ニ维辅助数组EDG[2] [m]存储每条超边在划分子集的结点个数,实现了快速的结点收益值和划分割切值的计算方法,有效地避免了遍历超边中的结点。相比赋权无向图划分方法和迁移方法,该方法有效地找到比现有技术更优的电路划分结果,降低了空间复杂度和时间复杂度,最终显著地提高了电路划分的性能。通过以下对本发明基于多水平划分法和赋权超图的大規模集成电路划分方法的实例结合其附图
的描述,可以进一歩理解本发明的目的、具体结构特征和优点。图I是现有技术的电路划分系统中电路划分方法的流程图。图2是本发明基于多水平划分法和赋权超图的大規模集成电路划分方法的流程图。 图3是本发明的赋权超图的基于多水平划分法的压缩存储格式。图4是本发明基于多水平划分法和赋权超图的大規模集成电路划分过程中优化阶段的禁忌捜索程序的流程图。
具体实施方式
。为了能够更清楚地理解本发明基于多水平划分法和赋权超图的大規模集成电路划分方法的技术内容,特举以下实例详细说明。现有技术的电路划分方法的流程图如图I所示,第一歩,用硬件描述语言描述被划分的电路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。赋权无向图划分问题的定义參见在先技术[I] “冷明.基于多水平方法的无向图剖分及其在VLSI设计中的应用研究[D].上海上海大学,2008. ”。作为赋权无向图划分问题研究的深入和延续,本发明阐述了赋权超图划分问题的相关定义如下。定义
权利要求
1.本发明的技术方案是这样实现的一种基于多水平划分法和赋权超图的大規模集成电路划分方法,其特征在于,具体步骤如下 步骤I,用硬件描述语言描述该电路,生成该电路的源代码; 步骤2,词法分析,从左到右一个个读入该电路的源代码,对构成源代码的字符流进行扫描和分解,从而识别出ー个个单词; 步骤3,语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据硬件描述语言的语法规则,确定整个字符流是否构成一个语法上正确的硬件描述语言程序; 步骤4,语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息; 步骤5,中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示; 步骤6,赋权超图文件生成,基于中间代码构造文本描述的电路对应的线网,经过电路线网到赋权超图的转换之后,保存为赋权超图文件; 步骤7,赋权超图划分,启动基于多水平划分法的赋权超图划分程序,读取赋权超图文件,采用基于多水平划分法的压缩存储格式对赋权超图进行存储,对生成的赋权超图进行划分,将最终得到的划分结果存储在赋权超图划分文件中; 步骤8,修改线网,在检测到基于多水平划分法的赋权超图划分程序完成划分之后,从赋权超图划分文件中读取相应的划分结果,根据划分结果修改电路对应的线网,将划分结果对应的电路逻辑单元搬移到指定的划分子集Vl或V2中; 步骤9,电路输出,遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中; 上述的步骤6中,所述的赋权超图文件生成的步骤如下 步骤6. 1,基于中间代码构造电路源代码描述电路对应的线网,生成完整电路线网;一个完整的电路线网看作是ー个根模块,它由层次化的子模块实例和电路逻辑单元通过信号互连构成,且每个子模块内部由端ロ、电路逻辑单元、嵌套子模块的实例通过信号连接构成; 步骤6.2,从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元编号;步骤6. 3,从根模块开始,递归遍历层次化线网的模块,为每个电路逻辑单元之间的信号编号,并确立每个信号X的连接方式,实现到赋权超图的转换;其中,电路线网中的电路逻辑单元用赋权超图的结点表示,电路线网中的信号用赋权超图的超边表示;结点的权值代表电路逻辑单元的大枝滑超边的权值代表电路逻辑单元之间信号连线的权值为赋权超图中结点的编号,取值范围为I到电路线网中电路逻辑単元的总个数n ;j为赋权超图中超边的编号,取值范围为I到电路线网中信号的总个数m; 步骤6. 4,将转换得到的赋权超图保存为赋权超图文件; 上述的步骤7中,所述的基于多水平划分法的赋权超图划分方法的步骤如下 步骤7. 1,读取赋权超图文件,采用基于多水平划分法的压缩存储格式对赋权超图进行存储; 步骤7. 2,进入到多水平划分法的粗化阶段,采用赋权超图的结点匹配程序将某些结点结合在一起,得到下一水平层的粗化赋权超图,重复此过程直到粗化赋权超图足够小为止,即得到ー个最小赋权超图; 步骤7. 3,进入到多水平划分法的初始划分阶段,运行基于FM方法的赋权超图划分程序,得到最小赋权超图的初始_■划分; 步骤7. 4,进入到多水平划分法的优化阶段,从最小赋权超图投影回初始赋权超图,在每一水平层的细化赋权超图中,采用禁忌捜索程序对细化赋权超图的投影划分进行优化;步骤7. 5,进入到平衡阶段,运行基于FM-EE方法的赋权超图划分程序,由于在基于多水平划分法的赋权超图划分过程中,可能违背赋权超图划分问题的平衡约束条件,因此在基于多水平划分法的赋权超图划分所求解的基础上,运行基于FM-EE方法的赋权超图划分方法,使划分解满足平衡约束条件,从而得到赋权超图划分问题的划分解; 步骤7. 6,将最终得到的赋权超图划分结果存储在赋权超图划分文件中; 上述的步骤6. 3中,所述的确立信号X连接方式的步骤如下 步骤6. 3. 1,依次处理信号X的每个管脚连接,支持跨层次连接,寻找到连接端的电路逻辑单元y ; 步骤6. 3. 2,如果电路逻辑单元y已经存在信号X的连接中,则忽略该电路逻辑单元y ;否则在信号X的连接中増加该电路逻辑单元I ; 上述的步骤7. I中,所述的赋权超图的基于多水平划分法的压缩存储格式如下 步骤7. I. I,使用vwgts数组存储赋权超图中结点的权值信息,且vwgts数组的大小为赋权超图中的结点个数; 步骤7. I. 2,使用xadj数组存储每个结点所有邻接超边列表的起始位置信息,即第i条结点的終止位置为第i+Ι条结点的起始位置减1,且xadj数组的大小为赋权超图中的结点个数加1,xadj数组最后ー个元素用于存放最后一条结点的終止位置; 步骤7. I. 3,使用adjncy数组存储每个结点所有邻接超边的列表信息,第i条结点的邻接超边列表存储在 adjncy 数组中,从 adjncy [xadj [i]]到 adjncy [xadj [i+1] _1]; 步骤7. I. 4,使用eptr数组存储每条超边所包含的结点列表的起始位置信息,即第j条超边的终止位置为第j+Ι条超边的起始位置减1,且eptr数组的大小为赋权超图中的超边个数加1,eptr数组最后ー个元素用于存放最后一条超边的终止位置; 步骤7. I. 5,使用eind数组存储每条超边所包含结点的列表信息,第j条超边的邻接结点列表存储在 eind 数组中,从 eind[eptr[j]]到 eind [eptr [j+1]-I]; 步骤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. 4中,所述的禁忌捜索程序的步骤如下 步骤7. 4. I,初始化ニ维辅助数组EDG [2] [m],依据当前水平层细化赋权超图的投影划分,初始化ニ维辅助数组EDG[2] [m]; 步骤7. 4. 2,计算当前水平层细化赋权超图的投影划分的割切值,依据ニ维辅助数组EDG[2] [m],快速计算当前水平层细化赋权超图的投影划分的割切值; 步骤7. 4. 3,计算所有边界结点的收益值,根据当前水平层细化赋权超图的投影划分,找出所有边界结点,并快速计算每个边界结点的收益值; 步骤7. 4. 4,将所有边界结点的收益值插入到所在划分子集Vl或V2的自由状态散列结构中; 步骤7. 4. 5,循环初始化,初始化循环计数器COUNT为O ; 步骤7. 4. 6,选择迁移方向和迁移结点,依据当前划分以及平衡容忍度參数,选择迁移方向(假设迁移方向是划分子集A迁移到划分子集B)和迁移结点(假设迁移结点是结点V); 步骤7. 4. 7,删除结点V迁移前的收益值,将结点V迁移前的收益值从结点V迁移前所在的划分子集A的自由状态散列结构或禁忌状态散列结构中删除; 步骤7. 4. 8,更新ニ维辅助数组EDG[2] [m],遍历迁移结点v的所有邻接超边e,执行EDG[A] [e]减 I 操作,EDG[B] [e]加 I 操作; 步骤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. 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. I中,所述的初始化ニ维辅助数组EDG[2] [m]的步骤如下 步骤7. 4. I. I,ニ维辅助数组EDG [2] [m]清零; 步骤7. 4. I. 2,读取eptr数组和eind数组存储的姆条超边所包含的结点信息,基于当前水平层细化赋权超图的投影划分,计算每条超边在划分子集Vl和V2的结点个数,即ニ维辅助数组EDG[2] [m]的两行分别存放每条超边在划分子集Vl和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 [O] [e]彡I的条件I和EDG [I] [e]彡I的条件2时,意味着超边e在划分子集Vl和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,如果当前划分的平衡状态满足平衡容忍度參数,则在划分子集Vl或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所在的划分子集的自由状态散列结构中。
全文摘要
本发明涉及一种基于多水平划分法和赋权超图的大规模集成电路划分方法,其采用赋权超图对电路进行数学建模,将电路线网到赋权超图的转换,并保存为赋权超图文件;然后启动基于多水平划分法的赋权超图划分程序,对生成的赋权超图进行划分;最后依据赋权超图的划分结果,修改电路对应的线网,并通过遍历修改后的线网,将得到的电路划分结果以硬件描述语言存储在电路描述文件中。采用本发明的基于多水平划分法和赋权超图的大规模集成电路划分方法,不仅仅有效地提高了电路划分的效率,还显著地提高了电路划分的性能,具有较好的实用性。
文档编号G06F17/50GK102693340SQ201210155738
公开日2012年9月26日 申请日期2012年5月19日 优先权日2012年5月19日
发明者冷子阳, 冷明, 孙凌宇 申请人:冷子阳, 冷明, 孙凌宇
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1