发明名称 一种三值FPRM电路功耗最佳极性搜索方法
摘要 本发明公开了一种三值FPRM电路功耗最佳极性搜索方法,首先将三值FPRM电路采用p极性下的三值FPRM逻辑函数进行表示,然后分解三值FPRM逻辑函数中含有的多输入运算,得到p极性下的多个二输入模3加门和多个二输入模3乘门,将二输入模3加门和二输入模3乘门引起的功耗作为p极性下的三值FPRM电路的功耗,构建得到三值FPRM电路的功耗估计模型,最后采用模拟退火遗传算法对三值FPRM电路进行功耗最佳极性搜索,得到功耗最佳极性搜索及最小功耗;优点是实现三值FPRM电路功耗最佳极性搜索,从而实现三值FPRM电路功耗优化;随机采用13个MCNC Benchmark电路进行仿真验证,本发明搜索到的功耗最佳极性与0极性比较,模3加门数量平均节省57.64%,模3乘门数量平均节省46.25%,功耗平均节省73.98%。
申请公布号 CN105306075A 申请公布日期 2016.02.03
申请号 CN201510532191.0 申请日期 2015.08.27
申请人 宁波大学 发明人 厉康平;汪鹏君;张会红
分类号 H03M13/13(2006.01)I 主分类号 H03M13/13(2006.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 方小惠
主权项 一种三值FPRM电路功耗最佳极性搜索方法,其特征在于包括以下步骤:①建立三值FPRM电路的功耗估计模型:①‑1将三值FPRM电路采用三值FPRM逻辑函数表示为如下形式:<img file="dest_path_FDA0000859539990000011.GIF" wi="1292" he="151" />其中,n为函数f<sup>p</sup>(x<sub>n‑1</sub>,x<sub>n‑2</sub>,…,x<sub>0</sub>)的输入变量数量,x<sub>n‑1</sub>,x<sub>n‑2</sub>,…,x<sub>0</sub>表示函数f<sup>p</sup>(x<sub>n‑1</sub>,x<sub>n‑2</sub>,…,x<sub>0</sub>)的n个输入变量,p表示函数f<sup>p</sup>(x<sub>n‑1</sub>,x<sub>n‑2</sub>,…,x<sub>0</sub>)的极性,极性p用三进制形式表示为p<sub>n‑1</sub>p<sub>n‑2</sub>…p<sub>0</sub>,p<sub>j</sub>∈{0,1,2},j=0,1,2,…,n‑1,<img file="dest_path_FDA0000859539990000012.GIF" wi="45" he="52" />表示模3加运算,∑为累加符号,符号“*”为乘运算符号,下标i=0,1,2,…,3<sup>n</sup>‑1,i用三进制形式表示为i<sub>n‑1</sub>i<sub>n‑2</sub>…i<sub>0</sub>,a<sub>i</sub>为FPRM系数;a<sub>i</sub>∈{0,1,2};∏表示模3乘运算,<img file="dest_path_FDA0000859539990000013.GIF" wi="117" he="126" />的其展开式为:<img file="dest_path_FDA0000859539990000014.GIF" wi="411" he="133" />其中i<sub>j</sub>∈{0,1,2},<img file="dest_path_FDA0000859539990000018.GIF" wi="292" he="63" /><img file="dest_path_FDA0000859539990000016.GIF" wi="500" he="71" />极性p和下标i决定变量<img file="dest_path_FDA0000859539990000017.GIF" wi="47" he="61" />的表示形式;①‑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;将每个多输入模3加运算分解后得到多个二输入模3加运算,将每个多输入模3乘运算分解后得到多个二输入模3乘运算,二输入模3加运算也称为二输入模3加门,二输入模3乘运算也称为二输入模3乘门;将第H个多输入模3加门分解后的二输入模3加门的数量记为N<sub>H</sub>,H=1,2,…,N;将第o个多输入模3乘门分解后的二输入模3乘门的数量记为W<sub>o</sub>,o=1,2,…,W;①‑3将p极性下的三值FPRM逻辑函数分解后得到的所有二输入模3加门和二输入模3乘门引起的功耗作为p极性下的三值FPRM电路的功耗,二输入模3加门引起的功耗采用其开关活动性表示,二输入模3乘门引起的功耗采用其开关活动性表示,门电路的开关活动性用其输出端的输出变量概率表示,二输入模3加门引起的功耗采用其输出端的输出变量概率表示,二输入模3乘门引起的功耗采用其输出端的输出变量概率表示;①‑4根据公式(2)、(3)和(4)计算第H个多输入模3加门分解后的第k个二输入模3加门的输出变量概率;k=1,2,…,N<sub>H</sub>;P<sub>1</sub>(k)<sub>H</sub>=Pk<sub>y11</sub>*Pk<sub>y20</sub>+Pk<sub>y10</sub>*Pk<sub>y21</sub>+Pk<sub>y12</sub>*Pk<sub>y22</sub>  (2) P<sub>2</sub>(k)<sub>H</sub>=Pk<sub>y12</sub>*Pk<sub>y20</sub>+Pk<sub>y11</sub>*Pk<sub>y21</sub>+Pk<sub>y10</sub>*Pk<sub>y22</sub>  (3) P<sub>0</sub>(k)<sub>H</sub>=1‑P<sub>1</sub>(k)<sub>H</sub>‑P<sub>2</sub>(k)<sub>H</sub>                    (4) 根据公式(5)、(6)和(7)计算第o个多输入模3乘门分解后的第g个二输入模3乘门的输出变量概率,g=1,2,…,W<sub>o</sub>:Q<sub>1</sub>(g)<sub>o</sub>=Qg<sub>r11</sub>*Qg<sub>r21</sub>+Qg<sub>r12</sub>*Qg<sub>r22</sub>   (5) Q<sub>2</sub>(g)<sub>o</sub>=Qg<sub>r11</sub>*Qg<sub>r22</sub>+Qg<sub>r12</sub>*Qg<sub>r21</sub>   (6) Q<sub>0</sub>(g)<sub>o</sub>=1‑Q<sub>1</sub>(g)<sub>o</sub>‑Q<sub>2</sub>(g)<sub>o</sub>          (7) 其中,P<sub>1</sub>(k)<sub>H</sub>表示第H个多输入模3加门分解后的第k个二输入模3加门输出变量为1的概率,P<sub>2</sub>(k)<sub>H</sub>表示第H个多输入模3加门分解后的第k个二输入模3加门输出变量为2的概率,P<sub>0</sub>(k)<sub>H</sub>表示第H个多输入模3加门分解后的第k个二输入模3加门输出变量为0的概率,y1和y2表示二输入模3加门的两个输入变量,Pk<sub>y1m</sub>表示第k个二输入模3加门中输入变量y1为m的概率,m∈{0,1,2},Pk<sub>y2m</sub>表示第k个二输入模3加门中输入变量y2为m的概率,当k=1时,Pk<sub>y1m</sub>为多输入模3加运算的第1个输入变量为m的概率,Pk<sub>y2m</sub>为多输入模3加运算的第2个输入变量为m的概率,当k&gt;1时,Pk<sub>y1m</sub>为第k‑1个二输入模3加门输出变量为m的概率,Pk<sub>y2m</sub>为多输入模3加门的第k+1个输入变量为m的概率;Q<sub>1</sub>(g)<sub>o</sub>表示第o个多输入模3乘门分解后的第g个二输入模3乘门输出变量为1的概率,Q<sub>2</sub>(g)<sub>o</sub>表示第o个多输入模3乘门分解后的第g个二输入模3乘门输出变量为2的概率,Q<sub>0</sub>(g)<sub>o</sub>表示第o个多输入模3乘门分解后的第g个二输入模3乘门输出变量为0的概率,r1和r2表示二输入模3乘门的两个输入变量,Qg<sub>r1m</sub>表示第g个二输入模3乘门中输入变量r1为m的概率,Qg<sub>r2m</sub>表示第g个二输入模3乘门中输入变量r2为m的概率;当g=1时,Qg<sub>r1m</sub>为多输入模3乘运算的第1个输入变量为m的概率,Qg<sub>r2m</sub>为多输入模3乘运算的第2个输入变量为m的概率,当g&gt;1时,Qg<sub>r1m</sub>为第g‑1个二输入模3乘门输出变量为m的概率,Qg<sub>r2m</sub>为多输入模3乘门的第g+1个输入变量为m的概率;输入变量x<sub>j</sub>为1和2的概率是由随即函数产生的概率对(P1,P2),P0=1‑P1‑P2;P0,P1和P2分别为0到1之间某个值,P0表示输入变量为0的概率,P1表示输入变量为1的概率,P2表示输入变量为2的概率;①‑5根据二输入模3加门的输出变量概率和二输入模3乘门的输出变量概率计算三值FPRM电路的功耗,将三值FPRM电路的功耗估计模型表示为:<img file="dest_path_FDA0000859539990000031.GIF" wi="1662" he="168" />其中,E<sub>swd</sub>表示p极性下三值FPRM电路的功耗,N为p极性下三值FPRM逻辑函 数分解后的多输入模3加门的数量,W为p极性下三值FPRM逻辑函数分解后的多输入模3乘门的数量;②设定模拟退火遗传算法中用于计算个体适应度的适应度函数:根据功耗估计模型,设定模拟退火遗传算法中计算个体适应度的适应度函数:在模拟退火遗传算法中,适应度越大表示个体的适应能力越强,但功耗最佳极性要求功耗越小越好,因此,为了便于两者结合,采用功耗的倒数表示适应度,得到适应度函数如下:fitness=α/E<sub>swd</sub>其中,符号“/”表示除运算符号,fitness表示个体的适应度大小;E<sub>swd</sub>表示电路功耗;α为放大系数,取值为大于等于1000的自然数;③建立三值FPRM电路和模拟退火遗传算法的对应关系:模拟退火遗传算法包含以下几个关键要素:个体、个体的适应度、适应度最大的个体、最大适应度、交叉操作、变异操作、退火选择操作;三值FPRM电路功耗优化包含以下几个关键要素:极性、相应极性的功耗、最佳极性、最小功耗、极性交流、极性突变、极性变换;将个体映射到三值FPRM电路功耗优化,表示为极性;将个体的适应度映射到三值FPRM电路功耗优化,表示为相应极性的功耗;将适应度最大的个体映射到三值FPRM电路功耗优化,表示为最佳极性;将最大适应度映射到三值FPRM电路功耗优化,表示为最小功耗;将交叉操作映射到三值FPRM电路功耗优化,表示为极性交流;将变异操作映射到三值FPRM电路功耗优化,表示为极性突变;将退火选择操作映射到三值FPRM电路功耗优化,表示为极性变换;④设置模拟退火遗传算法相关参数:模拟退火遗传算法需设置4个参数:个体规模w、个体迭代次数z、基因突变概率q、起始温度T<sub>0</sub>;令个体规模w=50、个体迭代次数z=20、基因突变概率q=0.01、起始温度T<sub>0</sub>=100℃;⑤采用模拟退火遗传算法得到适应度最大个体和最大适应度,适应度最大个体即为三值FPRM电路的功耗最佳极性;最大适应度即为三值FPRM电路的最小功耗。
地址 315211 浙江省宁波市江北区风华路818号
您可能感兴趣的专利