[发明专利]一种基于多层次方法和赋权超图的层次式FPGA布局布线方法有效

专利信息
申请号: 201710153261.0 申请日: 2017-03-15
公开(公告)号: CN106919769B 公开(公告)日: 2020-04-10
发明(设计)人: 冷明;孙凌宇;冷子阳 申请(专利权)人: 冷明
主分类号: G06F30/392 分类号: G06F30/392
代理公司: 暂无信息 代理人: 暂无信息
地址: 343000 江西省吉*** 国省代码: 江西;36
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种基于多层次方法和赋权超图的层次式FPGA布局布线方法,其采用赋权超图来构造层次式FPGA布局布线过程中逻辑网表的数学模型,电路逻辑单元表示为赋权超图中的结点,电路单元间的连线表示为赋权超图中的超边。采用多层次方法作为层次式FPGA布局和布线的方法,以有效满足VLSI对运行效率和处理能力更高的要求。它既可通过自底向上的结群阶段逐步缩小问题的规模、降低方法的时间复杂度,又可借助自顶向下的投影优化阶段逐层处理问题的细节、提高方法的求解准确性,与研究对象的层次特性自然地结合在一起。采用本发明基于多层次方法和赋权超图的层次式FPGA布局布线方法,可有效地降低FPGA物理设计的时间复杂度,提高FPGA设计能力和性能。
搜索关键词: 一种 基于 多层次 方法 超图 层次 fpga 布局 布线
【主权项】:
一种基于多层次方法和赋权超图的层次式FPGA布局布线方法,其特征在于,具体步骤如下:步骤1,用硬件描述语言描述该FPGA设计,综合生成该FPGA设计的网表文件;步骤2,网表文件的词法分析,从左到右一个个读入该FPGA设计的网表文件,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词;步骤3,网表文件的语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据网表文件的语法规则,确定整个字符流是否构成一个语法上正确的网表文件;步骤4,网表文件的语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息;步骤5,网表文件的中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示;步骤6,构造网表文件对应的赋权超图,基于中间代码构造文本描述的电路对应的逻辑网表,经过逻辑网表到赋权超图的转换之后,采用改进压缩的内存存储格式在物理存储空间表示赋权超图;步骤7,用XML语言描述该FPGA芯片的版图和布线结构,得到该FPGA的“.xml”格式的结构描述文件;步骤8,结构描述文件的词法分析,从左到右一个个读入该FPGA的结构描述文件,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词;步骤9,结构描述文件的语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据结构描述文件的语法规则,确定整个字符流是否构成一个语法上正确的结构描述文件;步骤10,结构描述文件的语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息;步骤11,结构描述文件的中间代码生成,在语法分析和语义分析的基础上,将源代码生成中间代码,用内部中间格式表示;步骤12,构造结构描述文件对应FPGA的多层次布线资源图,基于中间代码构造以<architecture>为根结点的树状结构,对树状结构的<complexblocklist>逻辑复合块对应的子树进行递归遍历,构建结构描述文件对应FPGA的多层次布线资源图;步骤13,启动基于多层次方法的层次式FPGA布局布线程序,输入在物理存储空间中表示的赋权超图和多层次布线资源图,进行基于多层次方法和赋权超图的层次式FPGA布局布线,输出层次式FPGA的布局布线结果;上述的步骤6中,所述的赋权超图的改进压缩的内存存储格式如下;步骤6.1,使用vwgts数组存储赋权超图中结点的权值信息,且vwgts数组的大小为赋权超图中的结点个数;步骤6.2,使用xadj数组存储每个结点所有邻接赋权超边列表的起始位置信息,即第i个结点的终止位置为第i+1个结点的起始位置减1,且xadj数组的大小为赋权超图中的结点个数加1,xadj数组最后一个元素用于存放最后一个结点的终止位置;步骤6.3,使用adjncy数组存储每个结点所有邻接赋权超边的列表信息,第i个结点的邻接赋权超边列表存储在adjncy数组中,从adjncy[xadj[i]]到adjncy[xadj[i+1]‑1];步骤6.4,使用eptr数组存储每条赋权超边所包含的结点列表的起始位置信息,即第j条赋权超边的终止位置为第j+1条赋权超边的起始位置减1,且eptr数组的大小为赋权超图中的赋权超边条数加1,eptr数组最后一个元素用于存放最后一条赋权超边的终止位置;步骤6.5,使用eind数组存储每条赋权超边所包含结点的列表信息,其中每条赋权超边的尾端结点只有1个,且每条赋权超边尾端结点的所有直接前驱结点都包含在该赋权超边的源端子集中;第j条赋权超边的结点列表存储在eind数组中,从eind[eptr[j]]到eind[eptr[j+1]‑1],其中第j条赋权超边的源端结点为eind[eptr[j]]到eind[eptr[j+1]‑2],第j条赋权超边的尾端结点为eind[eptr[j+1]‑1];步骤6.6,使用hewgts数组存储赋权超边的权值信息,且hewgts数组的大小为赋权超图中的赋权超边数目;上述的步骤13中,所述的基于多层次方法的层次式FPGA布局布线程序的步骤如下;步骤13.1,进入到多层次方法的结群阶段,在多层次布线资源图的布线通道容量约束条件下,逐层对逻辑网表进行结群,采用赋权超图的结点结群程序将当前水平层结群赋权超图的某些结点结合在一起,得到下一水平层的结群赋权超图,重复此过程直到结群赋权超图足够小为止,即得到一个最小结群超图;步骤13.2,进入到多层次方法的在初始布局布线阶段,基于其特征向量刻画结点间相对距离的思想,采用谱方法对最高层次逻辑网表对应的最小结群超图进行划分,计算得到最高层次逻辑网表的最小割划分,进而基于最高层次逻辑网表的最小割划分,在最高层次布线资源图的资源约束条件下,完成布局与全局布线;步骤13.3,进入到多层次方法的投影优化阶段,随着高层次的布局布线自顶向下地逐层投影到低层次的逻辑网表上,得到每一层次超图的近似非劣最优布局布线,在相应层次布线资源图的资源约束条件下,利用结群单元迁移的线长收益值等启发式信息,采用多目标的离散群智能方法进行结群单元的迁移优化及相应线网的拆线重布,直至最高层次逻辑网表的布局布线最终投影到原始逻辑网表上,在完成结群单元的迁移优化及相应线网的拆线重布后,输出层次式FPGA的布局布线;上述的步骤13.1中,所述的结点结群程序的步骤如下;步骤13.1.1,标注当前水平层结群赋权超图中所有结点处于未匹配状态;步骤13.1.2,运行赋权超图的结点核值计算程序,基于结点属性函数值进行当前水平层结群赋权超图中所有结点的核值求解,并按照结点的核值进行非严格降序排序;步骤13.1.3,基于结点核值的非严格降序访问处于未结群状态的结点,依据结群结果可布性的规则对其进行结群,从而将连接性好的结点合并在一起,从而更好地优化低层次的局部互连线,以获得更优的结群效果;步骤13.1.4,重复步骤13.1.3,直至所有结点访问结束;上述的步骤13.1.2中,所述的赋权超图的结点核值计算程序的步骤如下;步骤13.1.2.1,计算出所有结点的属性函数值;步骤13.1.2.2,对所有结点的属性函数值进行非严格降序排序;步骤13.1.2.3,按照结点属性函数值的非严格降序次序访问每个结点,计算每个结点的核值;上述的步骤13.1.2.2中,所述的对所有结点的属性函数值进行非严格降序排序的步骤如下;步骤13.1.2.2.1,根据结点的属性函数值属于在一定范围内的整数的特点,扫描所有结点的属性函数值,统计每一种属性函数值的结点个数,存储在计数辅助数组bin中;步骤13.1.2.2.2,针对每一种属性函数值,借助计数辅助数组bin,计算出在所有结点的属性函数值中,小于该属性函数值的结点个数,存储在位置辅助数组pos中;步骤13.1.2.2.3,扫描所有结点的属性函数值,针对每一个结点的属性函数值,借助位置辅助数组pos,得到该结点的属性函数值在非严格降序排序的次序,并将该次序存储在次序辅助数组vert中;上述的步骤13.1.2.3中,所述的计算结点v的核值的步骤如下;步骤13.1.2.3.1,将结点v的属性函数值作为核值输出;步骤13.1.2.3.2,标记结点v从所在的超边e中删除;步骤13.1.2.3.3,如果超边e删除结点v后,仍包含两个及以上未被标记删除的结点,则超边e仍然存在,否则删除超边e;步骤13.1.2.3.4,重新计算结点v的邻接结点u的属性函数值;步骤13.1.2.3.5,如果邻接结点u的属性函数值大于结点v的属性函数值,更新邻接结点u的属性函数值为结点v的属性函数值,并且借助计数辅助数组bin、位置辅助数组pos和次序辅助数组vert的信息,快速更新邻接结点u在所有结点的属性函数值非严格降序排序的次序;否则不更新邻接结点u的属性函数值及其排序的次序;上述的步骤13.1.3中,所述的结群结果可布性的规则的步骤如下;步骤13.1.3.1,在候选结群子群的搜索过程中,使用面向结群的布线算法检验候选结群子群的内部线网和外部线网是否满足相应层次布线资源图的布线通道容量约束条件;步骤13.1.3.2,如果满足条件,则意味着结群结果可布线,且可避免布局与布线之间的不匹配,则进行结群;否则检验下一个候选结群子群;上述的步骤13.3中,所述的采用多目标的离散群智能方法进行结群单元的迁移优化及相应线网的拆线重布程序的步骤如下;步骤13.3.1,结群单元映射到离散群智能的初始化,针对每个结群单元设定一一对应的粒子,并依据结群单元所处布线资源图的子区域位置及拓扑连接关系,初始化对应粒子的自身位置向量、自身速度向量、自身历史最优位置向量,进而初始化全体粒子的全局历史最优位置向量;步骤13.3.2,遍历每个粒子,并依据每个粒子的上一水平层结群赋权超图的自身位置向量投影到当前水平层的细化赋权超图上,得到每个粒子在当前水平层细化赋权超图的自身位置向量;粒子在当前水平层的细化赋权超图的每个维度空间的位置代表着该维度空间对应的当前层次逻辑网表的布局布线,即个体在每个维度空间的位置代表该维度空间对应结群单元所处布线资源图的子区域位置及拓扑连接关系;步骤13.3.3,遍历每个粒子,并依据每个粒子的上一水平层结群赋权超图的自身速度向量投影到当前水平层的细化赋权超图上,得到每个粒子在当前水平层细化赋权超图的自身速度向量,即粒子在当前水平层细化赋权超图的每个维度空间的速度;步骤13.3.4,遍历每个粒子,并依据每个粒子的当前水平层细化赋权超图的自身位置向量,计算每个粒子迁移的线长收益值 ;步骤13.3.5,遍历每个粒子,并依据每个粒子迁移的线长收益值,快速计算每个粒子在当前水平层的细化赋权超图的自身位置向量的总线长;步骤13.3.6,循环初始化,初始化循环计数器COUNT为0;步骤13.3.7,遍历每个粒子在当前水平层的细化赋权超图的所有维度,基于结群单元迁移的线长收益值等启发式信息,更新每个粒子在每个维度的自身速度、自身位置,进而得到每个粒子的自身速度向量和自身位置向量;步骤13.3.8,依据粒子的自身位置向量更新计算粒子的迁移的线长收益值;步骤13.3.9,基于粒子迁移的线长收益值等启发式信息,利用个体聚集协同表现出的智能行为,搜索多约束条件下、多目标组合的Pareto有效解,使非劣迁移优化解向着Pareto‑最优面逼近,实现对粒子有选择性的迁移优化,并对相应线网进行拆线重布;步骤13.3.10,遍历每个粒子,并依据每个粒子的自身位置向量和迁移的线长收益值,快速计算每个粒子的当前水平层细化赋权超图的自身位置向量的总线长;如果该粒子的自身位置向量的总线长小于自身历史最优位置向量的总线长,则更新该粒子的历史最优位置向量为当前的自身位置向量;如果该粒子的自身位置向量的总线长小于全体粒子的全局历史最优位置向量的总线长,则更新全体粒子的全局历史最优位置向量为该粒子当前的自身位置向量;步骤13.3.11,重复步骤13.3.7、13.3.8、13.3.9、13.3.10和循环计数器COUNT加1,直至循环计数器COUNT到达给定的上限。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于冷明,未经冷明许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201710153261.0/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top