一种基于贝叶斯概率模型的组合逻辑电路选择性加固算法的制作方法

文档序号:14519660阅读:659来源:国知局
一种基于贝叶斯概率模型的组合逻辑电路选择性加固算法的制作方法
本发明涉及一种基于贝叶斯概率模型的组合逻辑电路选择性加固算法,属于数据结构与算法领域。
背景技术
:在宇宙空间中存在着许多高能粒子,而当这些高能粒子击中数字芯片时会导致芯片中逻辑门的状态发生改变,这种现象称为单粒子效应。在高端应用领域如卫星中,由于单粒子效应导致的芯片功能出错可能会导致灾难性后果,因此对逻辑电路进行加固可以提高芯片抗单粒子效应的性能,从而提高系统的可靠性。一种常用的加固方案是tmr(三模冗余),即将原先的一个门改成三个相同的门,再结合投票器即可实现对节点错误的逻辑屏蔽。但是在对逻辑电路进行加固时,由于加固电路门数越多,电路面积就越大,功耗也越大,所以就需要用最小的加固比例得到最优的可靠性提升,也就是应用选择性加固方法,只选择最敏感的节点进行加固。在已有的基于逻辑屏蔽的选择性加固算法中,每条路径的错误传播都单独分析,路径之间是相互独立的。但是在实际的大型数字电路中,很有可能会出现多条路径交叉在一起的情况,也就是路径间的相互影响,所以在本发明中我们采用贝叶斯概率模型去分析路径间的相互影响,可以有效解决已有算法的不足。技术实现要素:本发明的目的在于,提出一种基于贝叶斯概率模型的组合逻辑电路选择性加固算法法。本发明采用如下技术方案:一种基于贝叶斯概率模型的组合逻辑电路选择性加固算法,包括如下步骤:(1)、读取输入电路网表文件并生成电路传播网络,计算出整个电路网络中边的sp值;(1.1)、根据读入的电路网表,将电路的每一个逻辑门都看作是图的节点,电路的连线看作是图的边,将一个逻辑电路转化为一个电路传播网络,同时也是一个有向图,然后利用计算机图论相关算法去分析电路;(1.2)、在计算电路中信号的sp值时,当信号为1的概率,假设整个电路最开始的输入信号sp值为0.5,然后根据电路传播网络计算出后面其他边的信号sp值。(2)、采用深度优先搜索算法对每一个节点都搜索出其通往电路输出的所有路径;(2.1)、首先选中电路中的某一个节点进行模拟打击;(2.2)、利用深度优先搜索算法搜索出这个错误的所有传播路径,保留传播到输出的路径,这些路径即为需要进行分析的错误传播路径。(3)、利用贝叶斯概率模型以及逻辑屏蔽法则计算出步骤(2)路径中错误传播到输出的概率,并乘以距离因子,即为节点敏感度;(3.1)、首先选择一个电路门节点,将其输出信号的sp值取反,即sp=1-sp,来模拟出错;(3.2)、然后将整个电路的sp值都重新计算,根据路径的逻辑屏蔽法则计算出这个错误传播到电路输出的概率,由于同一个门节点到输出可能有多条路径,在计算出的多个概率值中按照用户需求选择最大值、平均值或者最小值;(3.3)、在计算完成概率之后,将概率乘以距离因子即为该门节点的敏感度,距离因子为该节点距离输出最近一条路径中所包含的门节点个数经过归一化得到的系数,理论上该节点距离输出越远则越容易被逻辑屏蔽。其中的逻辑屏蔽法则为电路门的特性,即电路的错误传播到一个门节点时,不会导致该门节点输出的逻辑状态发生改变,如二输入与门有两个输入a和b,若输入a的值为0,则无论b从1翻转到0还是从0翻转到1,与门的输出始终为0,此时如果错误从输入b传播到该与门,错误不会影响到门的输出,也就是该错误被逻辑屏蔽了。(4)、最后根据节点敏感度生成节点敏感度排序表,即加固的优先级,根据用户指定的加固比例进行选择性加固,并输出加固后的电路网表。在有面积或功耗限制时可以根据用户的需求选择一部分最敏感的门节点进行加固,从而实现芯片的可靠性提升。本发明所达到的有益效果:本发明的选择性加固算法经过实际仿真测试,在不同加固开销下都有不同程度的可靠性提升。附图说明图1是本发明的整个算法的流程图。图2是c17测试电路示意图。图3是c17测试电路电路生成的电路传播网络(有向图)。具体实施方式下面结合附图对本发明作进一步描述,以下实例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。实施例:以c17测试电路为例。第一步、计算出电路中所有边信号的sp值,在图2中可以看到sp值已经根据逻辑门的功能计算完成了,电路的输入端(x0-x4)信号sp值都设置为0.5,电路的输出端为y0和y1,图3是根据电路网表生成的电路传播网络,其中x0-x4对应5个输入端,n1-n6对应6个nand门,y0-y1对应两个输出端。第二步、深度优先搜索算法(dfs)路径搜索,在c17测试电路中,由图2从电路传播网络中可以清晰地看到整个电路的信号传播路径。第三步、为节点敏感度计算(在本实例中由于测试电路过小,所以不考虑距离因子,直接将贝叶斯概率模型计算出的概率记为敏感度)。首先贝叶斯概率模型的概率计算公式为:p(x)=пp(xi|xpa(i))其中p(x)表示错误在路径中传播到终点的概率,xi代表路径中经过的节点,xpa(i)代表xi节点的父节点,即输入到xi的节点,整条路径可以分割为很多个小路径(xpa(i)到xi的两端路径),即xpa(i)出错时,xi出错的概率。在c17测试电路中,以打击n2节点为例,计算路径n2->n4->n6->y1的错误传播概率,即为n2节点的一个敏感度。敏感度展开式为:p(y1,n6,n4,n2)=p(y1|n6)·p(n6|n4,n3)·p(n4|n2,x4)·p(n2)式中各项为:p(y1|n6)=1p(n6|n4,n3)=p(n3out=1|n2,x2)p(n4|n2,x4)=p(x4=1)p(n2)=1其中,p(y1|n6)是指当n6输出错误时y1输出错误的概率,p(n6|n4,n3)是指当n4和n3输出错误时n6输出错误的概率,p(n4|n2,n4)是指当n2和n4输出错误时n4输出错误的概率,p(n2)是指n2输出错误的概率,此处由于我们打击的是n2节点,所以p(n2)等于1。表1为c17测试电路计算出的各个节点的敏感度。1号门2号门3号门4号门5号门6号门敏感度0.6250.43750.750.6251.01.0表1第四步、根据第三步计算得到的各个节点的敏感度,生成一个节点敏感排序表,再根据用户需求选择部分较为敏感的门进行加固,最后输出加固后的电路网表。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1