[发明专利]一种实现现场可编程门阵列快速布局布线的方法有效

专利信息
申请号: 201410074915.7 申请日: 2014-03-03
公开(公告)号: CN103886137B 公开(公告)日: 2017-02-08
发明(设计)人: 段振华;周文豪;黄伯虎;田聪;张南;王小兵 申请(专利权)人: 西安电子科技大学
主分类号: G06F17/50 分类号: G06F17/50
代理公司: 北京科亿知识产权代理事务所(普通合伙)11350 代理人: 汤东凤
地址: 710071 陕西省*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种实现现场可编程门阵列快速布局布线的方法,将退火函数应用于现场可编程门阵列FPGA布局的温度更新;采用了重复退火过程,得到每一次退火过程所能找到的最好解current_best,然后进行下一次退火过程;采用了考虑负载平衡的初始化布线方法,假设P为处理器个数,则创建P个线程,并将芯片分为P个区域,将信号分区域地划分到每个线程的任务集;采用了多线程并行执行布线迭代,P个线程根据并行化的A*寻址算法并发地为各自任务集中每个信号寻找当前最合适的路径进行布线;采用重布线拥挤信号的方法,完成一次布线迭代。本发明实现了对布线过程的加速,使得最终电路的延时和线长两个重要性能指标基本不变的情况下,布局布线速度有了显著加快。
搜索关键词: 一种 实现 现场 可编程 门阵列 快速 布局 布线 方法
【主权项】:
一种实现现场可编程门阵列快速布局布线的方法,其特征在于,该实现现场可编程门阵列快速布局布线的方法具体步骤为:第一步,将电路中每一个可配置逻辑单元CLB、I/O单元、异构模块随机地放置到现场可编程门阵列芯片内部物理位置,得到一个初始布局;第二步,计算初始温度T0;第三步,布局迭代;具体步骤为:步骤一,在当前布局上,通过随机地选择可配置逻辑单元CLB、I/O单元、异构模块交换位置,或者选择可配置逻辑单元CLB、I/O单元、异构模块与空白位置进行交换,得到一个新的布局,并计算新布局的花费Cost:Cost=Cost′+λ×tc-tc′tc′+(1-λ)×bc-bc′bc′;]]>其中Cost'表示当前布局花费,初始布局时Cost'=1.0,tc、tc'、bc、bc'均为实数,tc和bc分别表示新布局的时序量和拥挤量,tc'和bc'分别表示当前布局的时序量和拥挤量,λ表示时序量的权重,1‑λ表示拥挤量的权重,λ=0.5;步骤二,根据当前温度T,用新布局的花费Cost与当前布局的花费Cost'之差ΔC判断是否接受新布局:若ΔC<0,则接受新布局为当前布局,否则,设u为区间[0,1]内的一个随机数,如果u<exp(‑ΔC/T),则接受新布局为当前布局;步骤三,用VFSR退火函数更新当前温度T:T=T0exp(‑ck),k为接受新布局的总次数,c为实数常量,c=‑log(TRS)×exp(‑log(TAS));TRS为退火尺度系数,TRS=10‑9,TAS为最大退火迭代次数,TAS计算方法为:TAS=log0.8(0.05×H/T0)×M,其中H为电路中的信号个数,M为马可夫链长度,M=10·N1.33;步骤四,对步骤一至三过程进行M次迭代;步骤五,如果T<0.05×Cost/H,则执行第四步,否则转步骤一继续执行;第四步,局部优化布局;第五步,如果累计第三步中对步骤一至步骤三过程迭代总次数超过TAS,则输出当前最优布局并转第六步进行布线;否则令当前温度T为前一次执行第三步过程中新布局的接受率第一次低于44%时的温度,转第三步开始重复退火;第六步,布线初始化;将经过布局的电路中H个信号表示成H个有向图,每个有向图包含一个源节点src和多个目标节点sink,源节点src和目标节点sink表示连接到物理单元的引脚,有向图的边表示待布线的线路;将现场可编程门阵列芯片逻辑结构和内部布线资源抽象成一个布线资源图RG,RG是一个无向图,该无向图的节点表示现场可编程门阵列芯片上的布线轨道,该无向图的边表示现场可编程门阵列芯片上的开关和引脚;第七步,为每个线程划分任务集,假设处理器个数为P,则创建P个线程,并且为每个线程Thd[i]创建任务集SigSet[i],i∈{1,2,…,P};将布线资源图RG划分为P个大小相等的不交叉区域,对于每个信号,如果落入区域i的目标节点sink个数越多,就将分给区域i对应的任务集SigSet[i],i∈{1,2,…,P},并保证每个任务集内的sink总数一样多;第八步,对每个线程任务集SigSet[i]中所有信号按照sink个数从多到少排列;第九步,启动P个线程,P个线程并行执行第十步;第十步,并行布线迭代;具体方法为:步骤一,每个线程Thd[i]按序从任务集SigSet[i]中取一个信号j进行拆线,即如果信号j已布线,则清空信号j在布线资源图RG上的布线路径,并对信号j的布线路径经历的布线资源节点的占有度减1,P个线程互斥执行此步骤,i∈{1,2,…,P};步骤二,将信号j的源节点src加入到布线树RT[j],布线树RT[j]用来以树形结构保存信号j的源节点src到多个目标节点sink的布线路径;步骤三,对信号j的每一个目标节点sink用A*寻路算法在布线资源图RG上寻找一条从布线树RT[j]中节点到该目标节点sink的花费最低的路径进行布线,并保存布线路径:清空优先队列PQ,并将布线树RT[j]中每个布线资源节点x的路径成本PathCost(x)置为Crit(src,sink)×delay(x),加入到优先队列PQ中,优先队列PQ用来按总成本TotalCost(x)从小到大排序来存储当前搜索到的布线资源节点,TotalCost(x)定义为:TotalCost(x)=PathCost(x)+α·ExpectedCost(x,sink),其中ExpectedCost(x,sink)代表从当前布线资源节点x到目标端点sink的期望成本估计值,α为启发式参数,α取值范围为1.0至1.4,路径成本PathCost(x)表示从源节点src到当前搜索到的节点x的路径上的每一个布线资源节点n的布线成本Cost(n)之和,Cost(n)表示布线资源节点n的布线成本:Cost(n)=Crit(src,sink)×delay(n)+[1‑Crit(src,sink)]×b(n)×p(n)×h(n),其中Crit(src,sink)表示时序分析后信号j从源节点src到目标节点sink的边的关键度,delay(n)表示节点n的时序项,b(n)表示节点n的基本花费,p(n)表示节点n当前占有度,h(n)表示节点n的历史占有度;取信号j尚未布线的目标节点中关键度Crit(src,sink)最大的目标节点sink,如果目标节点sink是优先队列PQ中第一个节点,则表示源节点src到目标节点sink的最佳路径已找到,否则转从优先级队列PQ中取出队首布线资源节点y,对与y相连的布线资源节点z计算总成本TotalCost(z),并将z按TotalCost(z)加入到优先级队列PQ中,重复执行直到找到目标节点sink的路径;步骤四,对该路径经历的布线资源节点的占有度加1,P个线程互斥执行此步骤;步骤五,将该路径加入到布线树RT[j],如果信号j还有目标节点sink,则转步骤三,对信号j下一个目标节点sink寻路,否则,执行步骤六;步骤六,如果任务集SigSet[i]中所有信号都完成了步骤一至步骤五过程,则转第十一步,否则,继续布线下一个信号;第十一步,同步P个线程,即等待每个线程都执行完第十步;由主线程检查整个电路的布线是否合法,如果布线合法,即没有重复被占用的布线资源节点,则转第十四步;否则,对所有重复被占用的布线资源节点的历史占用度加1,并且加大拥挤惩罚度,进行时序分析,转第十二步;第十二步,主线程重新布线拥挤的信号;第十三步,检查整个电路的布线是否合法,如果布线合法,则转第十四步;否则如果布线迭代次数不超过指定值Max,则进行时序分析并转第十步执行下一次布线迭代;第十四步,将其余P‑1个线程合并到主线程,输出布线结果并退出布线。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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