一种基于最速下降法与二分法的概率电路仿真方法

文档序号:10489115阅读:203来源:国知局
一种基于最速下降法与二分法的概率电路仿真方法
【专利摘要】本发明公开了基于最速下降与二分法的概率电路仿真方法,包括如下步骤:(1)确定概率单元与输出信号间的对应关系,同时还要确定两者之间的“梯度”关系;(2)获取针对每一个单独输出信号概率单元组合矩阵;利用二分法调整错误概率达到所需精度要求;(3)整体优化以得到最终结果,令每一个概率单元的取值分别取第二步中每一列的最大值和最小值,得到两组概率组合并分别仿真,找到两组测试中错误概率位于目标值两侧且差值最大的一个输出信号,再次利用二分法优化最终结果,重复上面的步骤直到所有的输出的错误概率值达到了所需的精度。本方法的优势在于调整概率值时能够更精准的选择需调整的概率单元,更准确的调整其错误概率取值,获得更多的能量节省。
【专利说明】一种基于最速下降法与二分法的概率电路仿真方法 技术领域 本发明涉及基于概率电路仿真技术,涉及快速调整概率单元的概率取值,具体涉及一 种基于最速下降法与二分法的概率电路仿真方法。 【背景技术】 随着IC产业的发展,芯片处理速度快速提高的同时,能耗也随之不断增大,而随着互补 金属氧化物半导体CMOS器件尺寸进入纳米时代,各类内部干扰因素对CMOS器件电学特性的 影响也愈发明显。同时,随着各类电子产品的加速普及,人们在期望获得更高硬件性能的同 时,也希望能够降低设备功耗。针对上述问题,研究者们提出了PCMOS (Probabi I i st ic complementary metal-oxide semiconductor)概率器件的概念,即输出并非确定,而是存 在概率性错误的CMOS器件。而为了将PCMOS概率电路应用于实际系统中,就要解决如何对其 进行仿真建模的问题。基于现场可编程门阵列FPGA的硬件仿真方法具有仿真速度快,仿真 过程高度可控等优势,是一种极佳的仿真方式。 三步矩阵构建法可以应用于概率电路仿真过程中概率模块的错误调整,且算法思路较 简单,很容易实现。但该算法最大的问题在于,其调整过程太过繁琐,且缺乏一定的规律性, 当待测电路较为复杂时,应用这种方法就需要非常多次的尝试调整与仿真,因而应对大规 模电路,该过程需要耗费大量的时间,严重影响了其应用范围。最速下降和二分法则分别能 够很好的解决。 三步矩阵构建法的调整过程需要面对两个问题:一是多个概率单元都对目标输出有影 响时,如何确定优先修改哪些;而是确定要修改的概率单元后,如何有效调整其概率值以最 快接近目标输出。最速下降法和二分法则分别能够很好的解决这两个问题。 二分法与最速下降法组合的核心思想在于,在验证概率单元与各输出是否有关的同 时,计算其概率梯度,即输出错误概率差与输出概率差之比,再依据概率梯度针对每一输出 信号进行调整,更快的得到概率矩阵,最后利用概率梯度针对整体输出进行概率调整,以得 到最终结果。利用概率梯度这一概念寻找当前对输出影响最大概率单元,利用二分法对其 错误概率进行调整,从而更精准的调整错误概率,使得优化结果更快的收敛。
【发明内容】
本发明的目的是提供一种基于最速下降法与二分法的概率电路仿真方法,在此情况下 可以更快更精准的调整错误概率,在一定程度上解决了因缺乏规律性而导致调整与仿真耗 时大的问题。 为了实现上述目的,本发明的技术方案为: 一种基于最速下降法与二分法的概率电路仿真方法,其特征在于包括如下步骤: (1) 确定概率单元与输出信号两者之间的"梯度"关系;每个概率单元错误概率依次置 为两组不同的值,观察是否出现错误,计算两次错误概率差,即梯度; (2) 利用最速下降法与二分法得到错误概率取值矩阵,依次针对每一输出信号,对概率 单元错误概率随机撒点,获取距离目标值两侧最近的两组概率;找到两组概率值中概率差 与梯度乘积最大的概率单元,将最大的概率单元错误概率设为两组中对应概率中间值,再 次仿真,三组值中找到距离目标值两侧最近的两组概率;重复步骤(2)直至输出错误概率达 到所需的概率精度要求; (3)令每一个概率单元的取值分别取步骤(2)中每一列的最大值和最小值,得到两组概 率组合分别仿真;找到两组测试中错误概率位于目标值两侧且差值最大的一个输出信号; 找到与该输出有关的概率单元中,概率差与梯度乘积最大的概率单元,将其错误概率设为 两组中对应概率中间值,再次仿真,三组值中找到距离目标值两侧最近的两组概率,重复以 上步骤(3)直至输出错误概率达到所需的概率精度要求。 所述步骤(1)中,确定概率单元与输出信号两者之间的"梯度"关系,其中梯度Gmn为
(1-1) 其中,m和η分别表示为有m个输出信号和η个概率单元;pemnl和pemn2为每个概率单元分 别设置的两个不同的错误概率值,仿真之后,Pomnl为受Pemnl影响的输出信号的错误概率, POmi2为受Pemn2影响的输出信号的错误概率。
所述步骤(1)中,根据计算Gmn的方法,测试完所有的概率单元之后,就得到概率"梯度" 矩阵G: (1-2) 其中,矩阵G中每一行对应一个输出信号,每一列对应一个概率单元,矩阵中的值表示 输出信号在该概率单元维度上的"梯度",即错误概率下降梯度。 所述步骤(2)具体为: (21) 对电路中某一个输出信号k,从得到的矩阵中获取与输出信号k相关的概率单元, 对该概率单元的错误概率取值进行随机撒点,即随机产生若干种概率组合,仿真测试之后, 获得相应的输出错误概率; (22) 从其中大于预设输出错误概率的组合中,选取最小的一组记为PA(pkla,pk2a··· Pkna),从小于预设值的组合中选取最大的一组记为PB(Pklb,Pk2VPknb); (23) 根据步骤(1)中得到的梯度关系,找到两组概率组合中概率差值与对应梯度的乘 积绝对值最大的一个概率单元的编号X,对应的计算式为以下式(1-3);
(1-3) (24) 根据式(1-3)得到的编号X,令编号X的错误概率取值为Pa和Pb中对应取值的中间 值,即利用二分法调整为式(1-4);
(25) 完成对概率取值的一次修改,修改后的两组概率组合分别为Pa'(pkla,pkwpkw Pkna )矛卩Pb ( Pklb,Pk2b ··· Pkxc ··· Pknb ); (26) 在分别计算?1?8,?^,?8'四种概率组合中,输出错误概率分别从正负两个方向最 接近预设值的两组,重复步骤(22) -(25)直到获得的错误概率达到所需的概率精度要求; (27) 再针对下一输出信号,重复步骤(22) -(26),直到所有的输出信号全部处理完毕, 这样也就得到了错误概率取值矩阵E:
(1-5) 其中,每一行对应一个输出信号,每一列对应一个概率单元。 所述步骤(3)中,具体步骤为: (31)令每一个概率单元的取值分别取步骤(2)中得到的错误概率取值矩阵E式(1-5)当 中每一列的最大值和最小值,得到两组概率组合,分别记作Pmax和Pmin
(32M_P_^PIPMINR_AS(l-8)*J*5ljYMAX={YMAXl,YMAX2."YMAXm)^PIYMIN={YMINl,YMIW YMINm }
(33)找到后一种情况中两个错误概率值差值最大的一个输出信号,再针对该输出信号 利用式(1-3)的方法,找到对应概率差值与梯度乘积最大的一个概率单元,再利用式(1-4) 将其概率值设为两组概率组合中对应概率值的中间值,再次进行仿真测试。 本发明利用概率梯度这一概念寻找当前对输出影响最大概率单元,利用二分法对其错 误概率进行调整,从而更精准的调整错误概率,使得优化结果更快的收敛。相比原来的三步 矩阵的方式复杂度要降低,耗费的时间与仿真次数也要降低。针对每一个输出,能够较为准 确的找到与之相关的概率单元,同时也能够快速的调整概率单元的取值以达到所需概率输 出精度,提高了仿真效率。 【附图说明】 图1为本发明基于最速下降法与二分法的概率电路大致仿真方法流程图。 图2为本发明基于最速下降法与二分法的概率电路详细仿真方法流程图。 【具体实施方式】 通过以下的描述并结合附图,本发明将变得更加清晰,附图用于解释本发明的实施例。 本发明最速下降与二分法是基于FPGA的概率电路仿真方法,在输出概率允许在某一范 围内,通过调整概率单元的概率取值达到最节能的状态。使用最速下降与二分法提高仿真 的效率,减小仿真次数。 如图1所示,本发明的包括步骤如下:(1)确定概率单元与输出信号两者之间的"梯度" 关系;每个概率单元错误概率依次置为两组不同的值,观察是否出现错误,计算两次错误概 率差,即梯度; (2) 利用最速下降法与二分法得到错误概率取值矩阵,依次针对每一输出信号,对概率 单元错误概率随机撒点,获取距离目标值两侧最近的两组概率;找到两组概率值中概率差 与梯度乘积最大的概率单元,将最大的概率单元错误概率设为两组中对应概率中间值,再 次仿真,三组值中找到距离目标值两侧最近的两组概率;重复步骤(2)直至输出错误概率达 到所需的概率精度要求; (3) 令每一个概率单元的取值分别取步骤(2)中每一列的最大值和最小值,得到两组概 率组合分别仿真;找到两组测试中错误概率位于目标值两侧且差值最大的一个输出信号; 找到与该输出有关的概率单元中,概率差与梯度乘积最大的概率单元,将其错误概率设为 两组中对应概率中间值,再次仿真,三组值中找到距离目标值两侧最近的两组概率,重复以 上步骤(3)直至输出错误概率达到所需的概率精度要求。 如图2所示,本发明具体步骤如下: 步骤Sl,确定概率单元与输出信号间的对应关系以及"梯度"关系,对每一个概率单元 分别设置不同的错误概率,记作Pemnl和pemn2,分别仿真一段时间,记录受其影响的输出信号 两次不同的错误概率,分别记作pew和pew。其中η表示概率单元的编号,m表示输出信号的 编号,这样就可以计算出梯度G mn;
(M) 步骤S2,重复步骤Sl直到所有的概率单元都测试完毕,记下所有的差值就可以得到概 率梯度矩阵G
步骤S2所得到的矩阵每一行对应一个输出信号,每一列对应一个概率单元,矩阵中的 值表示输出信号在该概率单元维度上的"梯度",即错误概率下降速度,这样每一行中的最 大值所对应的概率单元就是该输出错误概率下降最快的维度。 步骤S3,利用最速下降与二分法得到概率矩阵,针对电路中的某一个输出信号,如输出 k,从第一步得到的矩阵中获取与之相关的概率单元,对其错误概率取值进行随机撒点,BP 随机产生若干种概率组合,仿真测试若干个时钟周期,获得相应的输出错误概率 步骤S4,在步骤S3得到的组合中选取大于输出错误概率最小的一组记为PA(pkla,p kw 口1〇13),从小于预设值的组合中选取最大的一组记为?8(口1<11)41<2^11〇 11))。再根据第一步中得 到的梯度关系,找到两组概率组合中概率差值与其梯度的乘积绝对值最大的一个概率单元 的编号X。
步骤S5,根据步骤S4得到的编号,令其错误概率取值为Pa和Pb中对应取值的中间值,BP 利用二分法调整;
这样就完成了对概率取值的一次修改,修改后的两组概率组合分别为Pa'(Pkla,pk2a··· Pkxc."Pkna)和Pb'(Pklb,Pk2b."Pkxc."Pknb)。在分另Ui十算卩八七七':^'四种概率组合中"输出错 误概率分别从正负两个方向最接近预设值的两组
[0035] 步骤S6,针对下一输出信号重复上面的步骤S3-S5,直到所有的输出信号全部处理 完毕,这样也就得到了错误概率取值矩阵E;
步骤S7,利用最速下降与二分法优化得到结果,令每一个概率单元的取值分别取第二 步中每一列的最大值和最小值,得到两组概率组合,分别记作Pmax和Pmn ;
步骤S8,Pmax和Pmin两组概率值分别进行仿真测试,获取其输出概率,即将Pmax和Pmin代入 下式;
经过上式的计算可以得到 Ymax ={ Ymaxi,Ymax2 …YMAXm}和 Ymin ={ Ymini,Ymin2 …YMiNm} 步骤S9,找到两个错误概率差值最大的一个输出信号,根据步骤S4的方法找到对应概 率差值与梯度乘积的最大的一个概率单元,再利用步骤S5用到的二分法将其概率值设为两 组概率组合中对应概率值的中间值,再次进行仿真测试; 重复步骤S7-S9,直到所有输出的错误概率值都达到了所需的精度;结束。 以上结合了流程图对本发明进行了较为详细的描述。二分速降法最大的优势在于调整 概率值能够更精准的选择需调整的概率单元,更准确的调整其错误概率取值,避免了随机 调整时因缺少方向性而造成的无效仿真问题。以及因缺少规律性而造成的改善过小的问 题,从而可大大减少需进行的仿真次数,提高仿真速度,进而扩大了利用FPGA对PCMOS电路 进行仿真的应用范围。
【主权项】
1. 一种基于最速下降法与二分法的概率电路仿真方法,其特征在于包括如下步骤: (1) 确定概率单元与输出信号两者之间的"梯度"关系;每个概率单元错误概率依次置 为两组不同的值,观察是否出现错误,计算两次错误概率差,即梯度; (2) 利用最速下降法与二分法得到错误概率取值矩阵,依次针对每一输出信号,对概率 单元错误概率随机撒点,获取距离目标值两侧最近的两组概率;找到两组概率值中概率差 与梯度乘积最大的概率单元,将最大的概率单元错误概率设为两组中对应概率中间值,再 次仿真,Ξ组值中找到距离目标值两侧最近的两组概率;重复步骤(2)直至输出错误概率达 到所需的概率精度要求; (3) 令每一个概率单元的取值分别取步骤(2)中每一列的最大值和最小值,得到两组概 率组合分别仿真;找到两组测试中错误概率位于目标值两侧且差值最大的一个输出信号; 找到与该输出有关的概率单元中,概率差与梯度乘积最大的概率单元,将其错误概率设为 两组中对应概率中间值,再次仿真,Ξ组值中找到距离目标值两侧最近的两组概率,重复W 上步骤(3)直至输出错误概率达到所需的概率精度要求。2. 如权利要求1所述基于最速下降法与二分法的概率电路仿真方法,其特征在于,所述 步骤(1)中,确定概率单元与输出信号两者之间的"梯度"关系,其中梯度为其中,m和η分别表示为有m个输出信号和η个概率单元;pemni和pemn2为每个概率单元分 别设置的两个不同的错误概率值,仿真之后,pomnl为受pemnl影响的输出信号的错误概率, PCW为受影响的输出信号的错误概率。3. 如权利要求2所述基于最速下降法与二分法的概率电路仿真方法,其特征在于,所述 步骤(1)中,根据计算的方法,测试完所有的概率单元之后,就得到概率"梯度"矩阵G:其中,矩阵G中每一行对应一个输出信号,每一列对应一个概率单元,矩阵中的值表示 输出信号在该概率单元维度上的"梯度",即错误概率下降梯度。4. 如权利要求3所述基于最速下降法与二分法的概率电路仿真方法,其特征在于,所述 步骤(2)具体为: (21) 对电路中某一个输出信号k,从得到的矩阵中获取与输出信号k相关的概率单元, 对该概率单元的错误概率取值进行随机撒点,即随机产生若干种概率组合,仿真测试之后, 获得相应的输出错误概率; (22) 从其中大于预设输出错误概率的组合中,选取最小的一组记为PA(Pkla, Pk2a. . .pkna),从小于预设值的组合中选取最大的一组记为Pb ( Pklb,Pk2b . . . Pknb ); (23) 根据步骤(1)中得到的梯度关系,找到两组概率组合中概率差值与对应梯度的乘 积绝对值最大的一个概率单元的编号X,对应的计算式为W下式(1-3);(24) 根据式(1-3)得到的编号X,令编号X的错误概率取值为Pa和Pb中对应取值的中间 值,即利用二分法调整为式(1-4);(25) 完成对概率取值的一次修改,修改后的两组概率组合分别为Pa'(pkia, Pk2a. . .Pkxc. . .Pkna)芽口 Pb (Pklb,Pk2b. . .Pkxc. . .Pknb); (26) 在分别计算口4,口8,口4',口8'四种概率组合中,输出错误概率分别从正负两个方向最 接近预设值的两组,重复步骤(22)-(25)直到获得的错误概率达到所需的概率精度要求; (27) 再针对下一输出信号,重复步骤(22)-(26),直到所有的输出信号全部处理完毕, 运样也就得到了错误概率取值矩阵E:其中,每一行对应一个输出信号,每一列对应一个概率单元。5.如权利要求4所述基于最速下降法与二分法的概率电路仿真方法,其特征在于,所述 步骤(3)中,具体步骤为: (31) 令每一个概率单元的取值分别取步骤(2)中得到的错误概率取值矩阵E式(1-5)当 中每一列的最大值和最小值,得到两组概率组合,分别记作Pmax和Pmin(32) 将 PmAX 和 PmIN 代入式(1-8)中,得到 YmAX= {YmAX1,YmAX2. . .YMAXm}和 Ymin= {Υμινι, ΥμΙΝ2. . .YMINm}(33) 找到后一种情况中两个错误概率值差值最大的一个输出信号,再针对该输出信号 利用式(1-3)的方法,找到对应概率差值与梯度乘积最大的一个概率单元,再利用式(1-4) 将其概率值设为两组概率组合中对应概率值的中间值,再次进行仿真测试。
【文档编号】G06F17/50GK105843990SQ201610148150
【公开日】2016年8月10日
【申请日】2016年3月15日
【发明人】谭力, 李忠财, 苏钢, 金娜, 徐超, 顾晓华, 汪成
【申请人】华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1