Scientific Journal of Control Engineering June 2013, Volume 3 Issue 3, PP.213-217
An Improved Algorithm for the Technology Mapping Re-connection Based on Divide Set Hai Zhu 1, 2# , Hongfeng Wang 1, Xiaoguang Wang 2 1. Computer Science and Technology, Zhoukou Normal University, Zhoukou 466001, China 2. Computer Science and Technology, Xidian University, Xi’an 710071, China #
Email: zhuhai @mail.xjtu.edu.cn
Abstract This paper proposes an improved algorithm for the technology mapping re-connection based on divided set. Through establishing a two-dimensional plot, the algorithm prevents consolidated operating constraints from being affected by divide set computing, and designs a heuristic algorithm to optimize area and delay. Therefore, an improved algorithm for the technology mapping reconnection is proposed. Experimental results show the algorithm can greatly increase the capability of re-connection compared with the available local and global optimization method, in such a case that the running times required are the same. Keywords: Divide Set; Re-Connection; Technology Mapping; Optimization Method
基于可划分集合的工艺映射重连线改进算法* 朱海 1, 2,王洪峰 1,王晓光 2 1. 周口师范学院 计算机科学与技术学院,河南 周口 466001 2. 西安电子科技大学 计算机学院,陕西 西安 710071 摘
要:本文基于可划分集合理论提出了一种针对工艺映射后重连线的改进算法。该算法通过建立双向图使可划分集合
计算不受合并操作约束的影响,并对面积优化和延时优化设计了启发式算法,提出了改进的工艺映射重连线算法。实验 结果表明,在运行所需时间相当的情况下,该算法与原有的局部优化方法和全局优化方法对比中,在重连线能力上有较 大的提高。 关键词:可划分集合;重连线;工艺映射;优化方法
引言 重连线是一种在保持函数功能不变,用布尔网络中的一条线取代目标线并删除目标节点以达到面积优 化或者延时优化[1][2]的方法。近些年重连线问题得到广泛的研究,现在主要使用的方法是基于自动测试模式 生成(ATPG, Automatic Test Pattern Generation)和可划分集合(SPFD, Set of Pairs of Functions to be Distinguished) 的重连线方法[3][4]。基于 ATPG 的方法是通过向网络中加入冗余线使目标线变为冗余并且可删除,以达到化 简的目的。这种方法的优点是可以进行全局重连线,备选线和目标线在电路中的位置可以任意,但将其应 用到工艺映射查找表型上则受到很大局限性。可划分集合的概念最早在[5]中被提出,可以将其理解为一种无 关项的表示方法,尽管在面积优化上可以得到很好的综合效果,但是该方法的一个局限性是只能执行局部 的重连线,即线的删除和插入只在同一个节点上操作。基于可划分集合的全局重连线优化方法在[6]中提出, 引入了关键节点(dominator)的概念,如图 1,实现了线的插入和删除操作在不同的节点上,使优化性能得到 很大的提高。另外,SPFD 的概念还应用在技术无关的逻辑综合[7],多值型的 PLA 布局以及低功耗设计[8][9] *
基金资助:受国家自然科学基金支持资助(61103143),中国博士后科学基金支持资助(2012M512008),河南省高校科技创新人 才支持计划项目支持资助(2012HASTIT032) ,周口师范学院青年基金重点项目支持资助(zksyqn201309B) - 213 http://www.sj-ce.org/
等方面。针对已有工艺映射查找表型上重连线研究的不足,本文通过建立双向图使可划分集合计算不受合 并操作约束的影响,对面积优化和延时优化[10]设计启发式方法,提出了一种改进的工艺映射重连线方法。 p0 GD
Dominator of wr
G
p1
Alternative wire
p2
wa
G2
Alternative wire
wa
G4
Target wire
G1
p1 p2 ... wr
G2
wr
S={(g11,g10),(g21,g20),...}
Target wire
(a)
(b)
图 1 基于 SPFD 的局部重连线(a)和全局重连线(b)示意图
1
可划分集合的定义和计算 本文中涉及到的电路是组合电路,并假设输入电路是映射到 K 输入的查找表网络,即电路中的每个逻
辑单元有一个输出 P0 和最多 K 个输入(P1,P2,…,Pn, n≤K),每个节点的内部逻辑由 n 个输入信号确定。如图 2 中的线 p1->p2,G2 称为源节点,G4 称为目标节点,信号 pi 的传输扇出节点是从 pi 到基本输出节点(POs)路 径上的所有节点,一个节点的传输扇出节点是该节点输出信号的传输扇出节点。信号 pi 的关键节点定义为 从该信号到基本输出节点所有路径必须经过的传输扇出节点。例如,G6 是 p1 的唯一关键节点,G4 和 G6 为 p2 的关键节点。 给定一函数对(g1, g0),g1≠0,g0≠0,g1g0≡0,如果函数 f 满足下面两个条件之一,则称函数 f 划分(g1, g0): 条件 1:当 g1=1 时 f=1 并且 g0=1 时 f=0; 条件 2:当 g1=1 时 f=0 并且 g0=1 时 f=1; 例如,图 3 中函数 f 划分函数对(g1a, g1b),满足条件 1,同时 f 也划分函数对(g2a, g2b)。 G1 O1
G5 PIs
G2 P1
G6
P2
POs
G4 O2 G3
x3 x1 x2 0 1 1 0 0
f
1 x1xx23 1 0 1 1
0 1 1 0 0
图 2 布尔网络和关键节点
g1a 1 x1xx23 1 0 0 0
g1b 0 1 x1xx23 0 0 0 1 0 0 0 0
g2a 0 1 x1xx23 0 0 0 0 1 0 1 0
0 0 0 0 0
g2b 1 0 0 1 0
图 3 可划分函数
可划分函数对的集合构成了 SPFD,P={(g11, g10), (g21, g20),…, (gm1, gm0)}。如果函数 f 可以划分 SPFD 中 的所有函数对,则称函数 f 满足该 SPFD。图 3 中函数 f 满足 SPFD P={(g1a, g1b), (g2a, g2b) }。 对于给定的逻辑网络,各节点的 SPFD 的计算主要分为 2 步: 根据电路逻辑从基本输入节点(PIs)到基本输出节点(POs)计算电路中所有节点的信号的全局逻辑函数(用 原始输入信号表示)。 从基本输出节点向基本输入节点方向计算各节点的 SPFD,计算分为 3 种情况: ① 对于基本输出节点 Oi,其 SPFD 只含有一个函数对 P={(g1, g0)},其中 g1 为节点 Oi 的全局逻辑函数 g1=fOi,g0=g1'。 ②节点输出信号的 SPFD 为该输出信号所有扇出节点的 SPFD 并集。 ③对于节点各输入信号,如果该节点输出的 SPFD 已经得到,则可通过将输出 SPFD 分解为原子 SPFD 函数对传递到各输入信号处获得各信号的 SPFD。 - 214 http://www.sj-ce.org/
1
基于可划分集合的重连线改进算法
1.1 可划分集合节点计算的改进 本文定义重连线能力这个概念来衡量一种算法的优化能力,即布尔网络中所有可删除线的数量占总数 的比例。在计算节点 SPFD 的第②种情况中,如果一个节点有多个扇出,则该节点输出信号的 SPFD 是其所 有扇出信号 SPFD 的并集,并集的操作如下:假设所有扇出的 SPFD 为 P={(g11, g10), (g21, g20),…, (gm1, gm0)},首先要找到一个函数 f 能划分 P 中所有函数对。假设 P 中的函数都满足 gi1=1 时 f=1,gi0=1 时 f= 0,则可以通过合并操作获得 g1
m
g
i1
i 1
和 g0
m
g
i0
,将(g1, g0)作为该节点输出信号的 SPFD 并用于计
i 1
算其输入信号的 SPFD。合并操作在 SPFD 计算过程中是非常重要的一个步骤,但在很多情况下,对不相交 的 SPFD 进行合并操作会引入很多不必要的约束。例如,假设{(g11, g10), (g21, g20),…, (gm1, gm0)}是节点 G 所 有扇出的 SPFD,且各不相交,如果执行合并操作 g1
m
g
i1
i 1
和 g0
m
g
i0
,会引入一些不属于原 SPFD
i 1
的约束,如(g11, g20),(gm1, g10),这些会限制节点 G 处的重连线能力。本文设计一种新的基于 SPFD 扇出的 操作,有效避免了引入不必要的约束,从而增强了重连线能力。 给定一个节点 G,其输出信号的 SPFD 为 P={(g11, g10), (g21, g20),…, (gm1, gm0)},该节点的输入函数为 f1,f2,…,fn,我们为 f1,f2,…,fn 寻找一个充分必要条件使其满足存在一个 g=F(f1,f2,…,fn)能满足 P。 设
g=g11+g10+g21+ g20+…+gm1+gm0,
(1)
β00…0 = f1'f2'…fn'g β00…1 = f1f2'…fn'g
(2)
… Β11…1=f1f2…fng 通过建立图 S 来解决合并操作带来的问题,图 S 包含 2n 个顶点,每个顶点对应公式(2)中的一个 β,通 过下述方法为图建立边:如果存在 i,使 βa∩gi1≠Ф 且 βb∩gi0≠Ф,则在顶点 a 和 b 之间加入一条边。我们通过 证明得到,S 是双向图当且仅当存在函数 g=F(f1,f2,…,fn)能划分{(g11, g10), (g21, g20),…, (gm1, gm0)}。 利用上述的等式条件,节点输入信号的 SPFD 不需要满足由合并操作带来的多余的约束条件,因此可以 找到更多的备选线并提高重连线能力。 文献[7]中作者也使用了双向图表示 SPFD,主要用于反映 SPFD 的性质。本文中的方法与前者的区别在 于将 SPFD 的使用分为 2 部分,重连线能力确定(合并前的 SPFD)和节点输入信号 SPFD 计算(合并后的 SPFD),文献[7]中使用的是合并前的 SPFD,而文献[5]和[6]中仅使用了合并后的 SPFD 用于重连线,因此 不能找到所有可能的备选线。另外,因为输入函数 f1,f2,…,fn 可以是任意的函数,这使得在操作过程中可以 同时改变多个输入的函数。 改进后的全局重连线优化算法如下: 给定一个节点 G1 的一个输入 wr 作为目标线,wr 的关键节点为 GD。 从节点 G1 上临时删除 wr 并重新计算 G1 的输出函数; 将 G1 新的输出函数经传输扇出一直到它的关键节点 GD 处; 因 GD 的输入函数改变,根据上述方法建立图 SD。如果 SD 是双向图,则可通过修改查找表 LUT 内部 逻辑函数而不用添加备选线直接删除目标线 wr。 如果 3)中图 SD 不是双向图,则从网络中选取备选线 wa 加入到关键节点 GD 中。重新建立图 SD,并验 证是否为双向图,如果是,则可以用备选线 wa 替换目标线 wr,如果 wa 失败,选择其他备选线进行测试。 1) 如果 3)和 4)都失败,则表示 wr 不能删除,还原 wr 到 G1 上。
因为验证图是否为双向图使用的是线性时间复杂度的深度优先搜索,所以改进的算法在计算时间上与 - 215 http://www.sj-ce.org/
原全局重连线算法使用时间相当,但是具有了更强的重连线能力。
1.2 节点函数的改进 上述方法中,如果直接删除目标线后建立的图 SD 是双向图,则可以通过修改关键节点 GD 查找表内部 逻辑函数保证 GD 的输出逻辑不变。 输入节点的最小乘积项为: β0=f1'f2'…fn' β1=f1'f2'…fn
(3)
… β2n-1=f1f2…fn 设 GD 输出信号的 SPFD 为 P={(g1, g0)},则关键节点 GD 的内部函数可由公式(4)得到。 2n -1
G=F(f1 ,f 2 ,...,f n )= k iβi
(4)
i=0
其中,如果 βi≤g1 则 ki=1,如果 βi≤g0 则 ki=0。 如果加入备选线后得到的图是双向图,则可同样使用上述的方法修改关键节点 GD 的内部逻辑函数,使 GD 处的输出信号函数逻辑保持不变。
1.3 可划分集合计算中的启发式方法 在 SPFD 计算的第③种情况中,给定节点输出的 SPFD,要计算输入信号的 SPFD,首先将 SPFD 分解成 最小乘积项,之后再分配到输入信号处,如果有多个输入的函数同时满足一个函数对,则在计算输入信号 的 SPFD 时该最小项可以任意的分配到一个输入 pi 中。为提高优化能力,可使用面向不同优化目标的启发式 方法。基本思想是某一条线的 SPFD 中函数对越少,其 SPFD 就越容易被满足,被替换掉的机会就越大,因 此在由输出向输入端分配 SPFD 的最小乘积项时尽量减少目标线 SPFD 中的函数对则可以使目标线更容易被 替换。 在面向延时的优化中,我们的目标是减小电路中最长的延时路径,因此可以将节点的输入按照时间的 关键性升序排列,对电路延时限制最大的输入信号在队列的最后,分配过程中能得到最少的函数对,从而 更容易在优化过程中被删除掉。 在面向面积的优化中,对扇出数量少的节点信号尽量减少分配的函数对,使其更容易被删除。例如, 如果一个节点只有一个扇出 p,如果用另外一条线替换 p,则该节点可以从网络中删除;相反,如果一个节 点有很多扇出,则该节点很难被删除,因为很难将该节点所有的扇出替换掉。
2
实验结果 该方法在 CUDD[11]工具包基础上实现,使用有序二叉决策树 ROBDD 表示电路逻辑函数和 SPFD。使用
的电路是经 SIS[12]逻辑优化和工艺映射到 4 输入查找表的组合逻辑电路(MCNC 标准测试电路)。在重连线 能力方面与局部重连线优化方法和全局重连线优化方法进行了对比,结果如表 1 所示。从表 1 的结果中可以 看出,本文提出的改进方法与已有全局和局部重连线优化方法在重连线能力方面,平均分别提高了 13.6%和 58.9%。 表 1 基于 4 输入查找表的重连线能力对比 电路 C1908 C432 alu4 dalu term1
线总数 423 538 939 1338 244
局部方法 78 154 277 468 71
全局方法 99 183 419 704 99
本文方法 113 202 512 731 109
- 216 http://www.sj-ce.org/
相比局部方法提高 44.9% 31.2% 84.8% 56.2% 53.5%
相比全局方法提高 14.1% 10.4% 22.2% 3.8% 10.1%
表 1 基于 4 输入查找表的重连线能力对比(续) 电路 x1 alu2 alu2 example2
线总数 557 510 510 433
局部方法 164 179 179 85
全局方法 222 253 253 136
本文方法 258 297 297 160
相比局部方法提高 57.3% 65.9% 65.9% 88.2%
相比全局方法提高 16.2% 17.4% 17.4% 17.6%
58.9%
13.6%
平均
3
结束语 本文基于可划分集合理论设计了新的工艺映射重连线改进优化算法,通过建立双向图使 SPFD 计算不受
合并操作引入的约束影响,并结合启发式方法,在运行时间与原算法所需时间相当情况下,重连线能力得 到较大的提高。下一步工作将致力于研究新的启发式算法和将 SPFD 运用到其他领域。
REFERENCES [1]
S.-C. Chang, M Marek-Sadowska, and K-T Cheng. Perturb and Simplify: Multilevel Boolean Network Optimizer. IEEE Trans CAD of ICAS, Vol. 15, No. 12, Dec 1996, pp. 1494-1504
[2]
路宝珠,杨海钢,祁亚男等. 基于区域重组的异构 FPGA 工艺映射算法[J]. 计算机辅助设计与图形学学报,2012,24(8):10271037
[3]
Alastair M S,George A C,Peter Y K, et al.An Automated Flow for Arithmetic Component Generation in Field Programmable Gate Arrays. ACM Transactions on Reconfigurable Technology and Systems. 2008
[4]
R.Huang, Y.Wang, and K.-T.Cheng. LIBRA-a Library Independent Framework for Post-Layout Performance Optimization. In International Symposium on Physical Design, p.135-140, 1998
[5]
S.Yamashita, H.Sawada and A.Nagoya. A New Method to Express Functional Permissibilities for LUT based FPGAs and Its Applications. In International Conference on Computer Aided Design, p. 254-261, 1996
[6]
J.Cong, Y.Lin and W.Long. SPFD-based Global Rewiring. FPGA ’02, Feb 24-26, 2002, Monterey, California, USA
[7]
S.Sinha and R.K. Brayton. Implementation and Use of SPFDs in Optimizing Boolean Networks. In International Conference on Computer Aided Design, p. 103-110, 1998
[8]
陈志辉, 章淳, 王颖等. 一种 FPGA 抗辐射工艺映射方法研究[J]. 电子学报,2011,39(11):2507-2512
[9]
J. -M. Hwang, F. - Y. Chiang, and T.- T. Hwang. A Re-engineering Approach to Low Power FPGA Design Using SPFD. In Design Automation Conference, p. 722-725, 1998
[10] Jamieson P, Kent K B, Gharibian F, et al. Odin II-Anopen-Source Verilog HDL Synthesis Tool for CAD Research. 18th IEEE Annual International Symposium on Field-programmable Custom Computing Machines. 2010 [11] Fabio Somenzi. CUDD: CU Decision Diagram Package Technique Report, Dept. of ECE, Univ. of Colorado at Boulder, 1998 [12] E. Sentovich, et al. SIS: A System for Sequential Circuit Synthesis. Memorandum No. UCB/ERL M92/41, Dept. EECS, UC Berkeley, 1992
【作者简介】 1
朱海(1978-),男,汉,西安电子科
2
王洪峰(1981-),男,汉,硕士,华中师范大学学士,华
技大学博士,西安交通大学博士后,从
中科技大学硕士,讲师,从事分布式并行计算、绿色节能及
事云计算、物联网及智能算法研究。
智能启发式算法研究。Email: whfwlj202868@163.com
Email: zhuhai@mail.xjtu.edu.cn
3
王晓光(1981-),男,汉,硕士,讲师,从事分布式并行
计算、绿色节能及智能启发式算法研究。
- 217 http://www.sj-ce.org/