一种高效fpga技术映射算法_2

文档序号:9727556阅读:来源:国知局
ite技术之后,增加了重替代 (resubstitution)技术和冗余去除(redundancy removal)技术。其中重替代技术是利用网 络中已经存在的节点来表达当前节点的功能;而冗余去除技术是删除那些与布尔网络功能 无关的节点。运两项技术在rewri te技术的基础上进一步优化了电路的面积。
[0039] 需要说明的是,步骤2.1)中所建立的DAG图G中,每个节点为一个口电路、PI节点或 P0节点。
[0040] 需要说明的是,步骤2.2)的具体方法如下:
[0041] 从PI节点开始,按照PI-P0的拓扑顺序为每一个节点产生所有k-可行划分,产生k-可行划分具体按照下式:
[0042]
[0043] 其中,像代表与,+代表或,k为LUT的输入限制,input(v)表示节点V的输入集,U为 节点V输入集中的一个节点,f化,V)表示节点V的所有k-可行划分,fXk,u)表示节点U的所有 k-可行划分。
[0044] 需要说明的是,步骤2.5)的具体方法如下:
[0045] 2.5.1)向前遍历初始化:将所有PI节点的深度初始化为0,对应的面积流初始化为 0 ;PI节点输出边的深度初始化为1,对应的面积流初始化为0;
[0046] 2.5.2)判断是否图G中所有的节点均已被访问,如果是,结束步骤2.5),转至步骤 2.6),否则继续执行步骤2.5.3);
[0047] 2.5.3)按照PI-P0的拓扑顺序向前遍历,在图G中取未被访问的节点V,在节点V所 有满足下式的划分中选择面积流最小的划分Xv作为最优划分:
[004 引 d邱th(x)<Odepth-hei曲t(v);
[0049] X表示节点V的一个划分,depth(x)表示划分X的深度,Odepth表示最优深度, hei曲t(v)表示节点V的高度;
[0050] 其中,节点V的划分的面积流计算如下:
[0化1 ]
[0052] 其中,ξ为任意小的随机数,i edge (V)表示节点V的输入边集合,Αν表示节点V本身 对面积的影响;
[0053] 2.5.4)更新节点v的深度和面积流分别为d邱th(Xv)和af(Xv);
[0054] 2.5.5)更新节点v的任意一条输出边e的深度为depth(Xv)+delay(e),面积流为
,其中,(161曰7(6)表示输出边6的相关时延,06(1旨6(>)表示节点¥的输出边集合;返 回执行步骤2.5.2)。
[0055] 需要说明的是,所述步骤2.6)的具体方法如下:
[0056] 2.6.1)向后遍历初始化:初始化root集合为所有Ρ0节点,并将所有Ρ0节点的高度 初始化为1;
[0057] 2.6.2)判断是否图G中所有节点均已被访问,如果是,则结束步骤2.6),否则继续 执行步骤2.6.3);
[005引2.6.3)按照P0-PI的逆拓扑顺序,从图G中取出未被访问的节点V,如果V在集合 root内,计算:
[0059] h=max{height(e): e £〇edge(v)};
[0060] 其中,hei曲t(e)为节点V的输出边集合oedge(v)中的任意边的高度,h则为节点V 的输出边集合中所有边的高度的最大值;
[0061] 2.6.4)更新节点V在步骤2.5)中得出的最优划分Xv内的任意节点U的高度为 height(U) =max化eight(U) ,h},对于Xv的任意输入边e更新其高度height(e) = max 化eight(e) ,delay(e)+h},更新集合root为root U inode(Xv),inode(Xv)表示支撑节点V的 最优划分Xv的输入边的尾节点;然后返回步骤2.6.2)。
[0062] 需要说明的是,步骤2.8)的具体方法为:采用最终得到的集合rootW及集合内每 个节点的最优划分,对DAG图G进行LUT映射,形成最终的LUT网络。
[0063] 本发明的有益效果在于:
[0064] 1、本发明基于启发式算法,将技术映射划分为逻辑优化与结构优化,结构优化部 分采用DAG模型,分为划分产生、划分选择W及LUT映射Ξ步,划分产生采用了动态规划的思 想,快速为每一个节点产生所有k-可行划分;划分选择基于一种迭代次数可W自适应改变 的迭代启发式思想,通过多次向前遍历与向后遍历的迭代,不断优化技术映射的结果,并减 少了不必要的迭代,优化了技术映射的效率,最终选择出延时和面积同时被优化的划分集 合,相比与现有的延迟和面积同时优化的FPGA技术映射算法,本发明无论在技术映射的质 量还是技术映射的效率上都有较大提高;
[0065] 2、本发明修正了节点面积流计算公式,提高了划分选择的随机性。
【附图说明】
[0066] 图1为技术映射概念的实例示意图;
[0067] 图2为本发明的实施流程图;
[0068] 图3为图2中的向前遍历步骤的实施流程图;
[0069] 图4为图2中的向后遍历步骤的实施流程图。
【具体实施方式】
[0070] W下将结合附图对本发明作进一步的描述,需要说明的是,本实施例W本技术方 案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实 施例。
[0071 ]如图2所示,一种高效FPGA技术映射算法包括如下步骤:
[0072] S1逻辑优化:
[0073] 1.1)初始化:为电路建立AIG图;
[0074] 1.2)对步骤1.1)中得到的AIG图进行分解优化,得到二输入电路并输出;
[00巧]S2结构优化:
[0076] 2.1)为步骤S1逻辑优化后得到的电路建立DAG图G,并设置最大迭代次数IMAX和执 行结果连续不变的最大次数M;
[0077] 2.2)为图G中每一个节点产生所有的k-可行划分,作为划分选择的集合;
[0078] 2.3)判断是否已经达到迭代次数IMAX,如果是,则转至执行步骤2.8),否则继续执 行步骤2.4);
[0079] 2.4)判断执行结果是否连续Μ次不变,如果是,则转至执行步骤2.8),否则继续执 行步骤2.5);
[0080] 2.5)按照pi-ro的拓扑顺序向前遍历,为每一个节点选择最优划分;
[0081 ] 2.6)按照P0-PI的逆拓扑顺序向后遍历,选择可W作为LUT root的节点;
[0082] 2.7)返回执行步骤2.3);
[0083] 2.8)利用划分选择的结果进行LUT映射。
[0084] 需要说明的是,步骤1.2)的具体方法如下:
[0085] 1.2.1)采用平衡(balance)技术,在保证面积不变的情况下优化电路时延。平衡技 术包含两部分:基于树的布尔函数双分解(bi-decomposition)技术和布尔函数的树高化简 技术,首先按照从AIG图的根节点到叶子节点的顺序利用双分解技术构造树,然后利用布尔 代数的交换律、结合律和分配律对树高进行化简,在整个过程中,树的节点个数保持不变。
[0086] 1.2.2)采用重写(rewrite)技术,删除电路中的冗余节点w及无效节点。rewrite 首先要保证布尔函数功能不变,在此基础上,通过迭代,利用计算过的更小的子图来代替节 点处的子图,W达到面积优化的目的。
[0087] 1.2.3)采用重分解(refactor)技术,在保证时延不变的情况下优化电路的面积。 refactor技术是rewrite技术的一种扩展,在rewrite技术之后,增加了重替代 (resubstitution)技术和冗余去除(redundancy removal)技术。其中重替代技术是利用网 络中已经存在的节点来表达当前节点的功能;而冗余去除技术是删除那些与布尔网络功能 无关的节点。运两项技术在rewri te技术的基础上进一步优化了电路的面积。
[0088] 需要说明的是,步骤2.1)中所建立的DAG图G中,每个节点为一个口电路、PI节点或 P0节点。
[0089] 需要说明的是,步骤2.2)的具体方法如下:
[0090] 从PI节点开始,按照PI-P0的拓扑顺序为每一个节点产生所有k-可行划分,产生k-可行划分具体按照下式:
[0091]
[0092] 其中,?代表与,+代表或,k为LUT的输入限制,input(v)表示节点V的输入集,U为 节点V输入集中的一个节点,f化,V)表示节点V的所有k-可行划分,fXk,u)表示节点U的所有 k-可行划分。
[0093] 需要说明的是,如图3所示,步骤2.5)的具体方法如下:
[0094] 2.5.1)向前遍历初始化:将所有PI节点的深度初始化为0,对应的面积流初始化为 0 ;PI节点输出边的深度初始化为
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1