一种三值fprm电路功耗最佳极性搜索方法_4

文档序号:9550922阅读:来源:国知局
运算符号,fitness表示个体的适应度大小;Eswd表示电路功 耗;α为放大系数,取值为大于等于1〇〇〇的自然数;
[0121] ③建立三值FPRM电路和模拟退火遗传算法的对应关系:
[0122] 模拟退火遗传算法包含以下几个关键要素:个体、个体的适应度、适应度最大的个 体、最大适应度、交叉操作、变异操作、退火选择操作;
[0123] 三值FPRM电路功耗优化包含以下几个关键要素:极性、相应极性的功耗、最佳极 性、最小功耗、极性交流、极性突变、极性变换;
[0124] 将个体映射到三值FPRM电路功耗优化,表示为极性;将个体的适应度映射到三值 FPRM电路功耗优化,表示为相应极性的功耗;将适应度最大的个体映射到三值FPRM电路功 耗优化,表示为最佳极性;将最大适应度映射到三值FPRM电路功耗优化,表示为最小功耗; 将交叉操作映射到三值FPRM电路功耗优化,表示为极性交流;将变异操作映射到三值FPRM 电路功耗优化,表示为极性突变;将退火选择操作映射到三值FPRM电路功耗优化,表示为 极性变换;
[0125] ④设置模拟退火遗传算法相关参数:
[0126] 模拟退火遗传算法需设置4个参数:个体规模w、个体迭代次数z、基因突变概率 q、起始温度T。;令个体规模w= 50、个体迭代次数z= 20、基因突变概率q= 0. 01、起始温 度T0= 100。。;
[0127] ⑤采用模拟退火遗传算法得到适应度最大个体和最大适应度,适应度最大个体即 为三值FPRM电路的功耗最佳极性;最大适应度即为三值FPRM电路的最小功耗。
[0128] 本实施例中,步骤⑤中采用模拟退火遗传算法得到适应度最大个体和最大适应度 的具体过程为:
[0129] ⑤-1用随机函数rand()产生w个用η位三进制表示的个体,将w个个体分别记 为Ρ1,Ρ2,·,·,Ρ¥;
[0130] ⑤-2通过适应度函数计算第ν个个体Ρν的适应度,ν= 1,2, 3,…,w,得到个体 Ρ1,Ρ2,"·,Ρ?的适应度;
[0131] ⑤_3比较个体Pl,Ρ2,…,Pw的适应度,筛选出适应度最大的个体作为适应度最 大个体,记录适应度最大个体和最大适应度;
[0132] ⑤-4对个体Ρ1,Ρ2,"·,Ρ?进行交叉操作产生个体F1,F2,若w为偶数, 将P1和P2、P3和P4、…、Pw-ι和Pw两两分别进行交叉操作;若W为奇数,将P1和P2、P3 和P4、和Pw-Ι两两分别进行交叉操作,Pw不参与交叉操作,Fw直接继承Pw;两个 个体Pe和Pu进行交叉操作产生个体Fe和Fu,具体过程为:将进行交叉操作的个体Pe赋 值给fe,个体Pu赋值给fu,随机产生一个η位二进制码,将该η位二进制码记为A,根据二 进制码Α更新fe和fu,当二进制码Α的第h位为1时,fe的第h位保持不变,fu的第h位 保持不变;当二进制码A的第h位为0时,fe的第h位继承fu的第h位,fu的第h位继承 fe的第h位,h= 1,2,3,···,!!,将交叉操作完成后的fe记为Fe,交叉操作完成后的fu记 为Fu;其中u=e+l,当w为偶数时,e=l,3,5,= ···,·》;当w为奇数 时,e=l,3,5,...,w-2;u= 2,4,6,
[0133] ⑤-5通过适应度函数计算第ν个个体Fv的适应度,得到个体F1,F2,的适 应度;
[0134] ⑤-6将个体Fl,F2,…,Fw的适应度和目前适应度最大个体的适应度进行比较, 更新适应度最大个体和最大适应度;
[0135] ⑤-7将个体Fl,F2,…,Fw进行变异操作:对Fv的每一位均用随机函数rand() 产生一个0到1之间的值,若这个值小于基因突变概率q,则这个值对应的位就是Fv的变异 位,对Fv的变异位进行变异,变异规则为"0 - 1,1 - 2, 2 - 0" ;
[0136] ⑤_8按照步骤⑤-5~⑤-6对个体Fl,F2,…,Fw进行处理,得到更新后的适应 度最大个体和最大适应度;
[0137] ⑤-9根据适应度值的大小对个体Pl,P2,…,Pw进行排序,根据适应度值的大小 对个体F1,F2,…,^进行排序;在个体Ρ1,Ρ2,"·,Ρ?和个体F1,F2,…,^中各自选择 适应度值最优的2w/3个个体,组成一组新的个体,新的个体含有4w/3个个体;
[0138] ⑤-10对一组新的个体进行多轮退火选择:每一轮退火选择中,首先根据公式(9) 产生一个退火温度,对于该退火温度,按公式(10)依次计算各个个体的被选取概率P(c), 同时用随机函数rand()产生一个筛选概率t,0〈t〈l;当个体的被选取概率大于筛选概率 时,该个体在这一轮退火选择中被选择,被选择的个体不再参与下一轮退火选择,其他未被 选择的个体进入下一轮退火选择,直到筛选出w个个体更新个体Ρ1,Ρ2,"·,Ρ??后,退火选 择结束;
[0139]T1=l/ln(l/T0+l) (9)
[0140]
[0141] 其中,?\表示第1轮的退火温度,1 = 1,2,…;第一轮退火选择时,1 = 1,第二轮 退火选择时,1 = 2,以此类推;In表示对数操作;T。表示初始温度;P(c)表示个体C的概率;f(c)表示新的个体中第c个个体的适应度值;c= 1,2,3,;f(d)表示新的个体中 第d个个体的适应度值;d=l,2, 3,一,^/3 ;
[0142] ⑤-11按照步骤⑤-2~⑤-3对步骤⑤-10中更新后的个体Pl,P2,…,Pw进行 处理,得到适应度最大个体和最大适应度;
[0143] ⑤-12重复步骤⑤-4~⑤-11,直到满足个体迭代次数z,算法结束,得到适应度 最大个体和最大适应度;
[0144] ⑤-13将最后一次得到的适应度最大个体和最大适应度输出,适应度最大个体即 为三值FPRM电路的最佳极性;最大适应度即为三值FPRM电路的最小功耗。
[0145] 本发明的功耗最佳极性搜索方法在Windows7 64位操作系统,Inte1 (R) Core(TM)i3-2130CPU3. 40GHZ,4GRAM运行环境下,用C语言通过VC6. 0编译实现,随机 采用13个MCNCBenchmark电路进行仿真验证,将采用本发明的方法搜索到的功耗最佳极 性与〇极性进行比较。为计算三值FPRM电路的开关活动性,随机产生15组输入信号概 率:(P1,P2) = {(0.21,0.53),(0.49,0.30),(0.33,0.24),(0.68,0.13),(0.15,0.26), (0.57,0.22),(0.18,0.51),(0.71,0.24),(0.08,0.35),(0.57,0.32),(0.46,0.28), (0· 17, 0· 05),(0· 32, 0· 43),(0· 14, 0· 72),(0· 25, 0· 61)}。
[0146] 采用本发明的功耗最佳极性搜索方法进行最佳极性搜索的结果如表1所示。表 中,列1表示电路名称,列2表示输入/输出变量个数;列3、列4和列5依次分别表示0极 性下二输入模3加的门数量、二输入模3乘的门数量和电路功耗;列6、列7、列8和列9依 次分别表示采用本发明的方法搜索到的最佳极性以及最佳极性下三值FPRM电路二输入模 3加门数量、二输入模3乘门数量和功耗。
[0147] 表1三值FPRM电路最佳极性搜索结果
[0148]
[0149]
[0150]与0极性相比,最佳极性在模3加的门数量、模3乘的门数量以及功耗上节省的百 分比如表2所示。模3加的门数量、模3乘的门数量和功耗节省的百分比定义如下:
[0151]
[0152]
[0153]
[0154] 其中,SaveMcid3A、SaveMcid3M和SaveP_^次分别表示模3加门数量、模3乘门数量 和功耗的节省;Mod3-AQ、Mod3-M。和Power。依次分别表示0极性下模3加门数量、模3乘门 数量和功耗大小;Mod3-ASA(;A、Mod3-MSA&^PSAsasa依次分别表示本发明方法搜索到的最佳极 性下模3加门数量、模3乘门数量和功耗大小。采用本发明的方法,三值FPRM电路门数和 功耗节省百分比如表2所示。
[0155] 表2三值FPRM电路门数和功耗节省百分比
[0156]
[0157]
[0158] 分析数据可知,采用本发明的方法搜索到的功耗最佳极性与0极性相比优化效果 明显,其中clpl电路在模3加门数量、模3乘门数量和功耗分别节省80. 00%、66. 67%和 89. 78%,13个测试电路在模3加门数量、模3乘门数量和功耗平均节省57. 64%、46. 25% 和 73. 98%。
【主权项】
1. 一种三值FPRM电路功耗最佳极性搜索方法,其特征在于包括以下步骤: ①建立三值FPRM电路的功耗估计模型: ①-1将三值FPRM电路采用三值FPRM逻辑函数表示为如下形式:其中,η为函数fp(xndxn2,…,X。)的输入变量数量,xndxn2,…,X。表示函数fp(xnxn2,…,X。)的η个输入变量,p表示函数fp(xnxn2,…,X。)的极性,极性p用三进 制形式表示为pn也2…p〇,p.je{〇, 1,2},j= 0, 1,2,…,η-1,Φ:表示模3加运算,Σ为累加 符号,符号为乘运算符号,下标i= 〇,1,2,…,3n-l,i用三进制形式表示为in 2…i。,为FPRM系数;a# {0,1,2} ;Π表不模3乘运算, 其中i_je{〇,1,2},$ =('十i丨=Li·) =i,= \,极性ρ和下标i决定变量夂的表 示形式; ①-2p极性下的三值FPRM逻辑函数包含两类多输入运算,两类多输入运算分别为多输 入模3加运算和多输入模3乘运算,根据三值FPRM逻辑函数展开式将三值FPRM逻辑函数 分解为多个多输入模3加运算和多个多输入模3乘运算,然后将每个多输入运算分别分解 为二输入运算,得到二输入模3加运算和二输入模3乘运算,具体分解过程为: 将多输入运算的第1个输入变量和第2个输入变量作为第一个二输入运算的两个输入 变量,得到第一个二输入运算的输出变量;将第一个二输入运算的输出变量和多输入运算 的第3个输入变量作为第二个二输入运算的两个输入变量,得到第二个二输入运算的输出 变量;将第二个二输入运算的输出变量和多输入运算的第4个输入变量作为第三个二输入 运算的两个输入变量,得到第三个二输入运算的输出变量;依此类推,直到所有的多输入运 算的输入变量作为二输入运算的输入变量,完成多输入运算的分解; 将P极性下的三值FPRM逻辑函数分解后得到多个多输入模3加运算和多个多输入模 3乘运算,多输入模3加运算也称为多输入模3加门,多输入模3乘运算也称为多输入模3 乘门,将P极性下三值FPRM逻辑函数分解后的多输入模3加门的数量记为N,将p极性下 三值FPRM逻辑函数分解后的多输入模3乘门的数量记为W;
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1