1.一种基于概率模型的电路原始输入端敏感性计算方法,其特征在于,所述计算方法包括以下步骤:步骤1:网表解析及相关量的初始化,过程如下:
1.1)读取网表,提取电路的基本门信息,构建对应电路的完整性链表LC且标识出电路的所有原始输入端与原始输出端,其中,链表LC指其中任意节点的输入端信息均可从该节点的前序节点的输出端信息中提取获得;
1.2)依据节点的类型type、故障概率p以及输入端个数m,基于真值表法构建所提节点的概率转移矩阵PMtype-m与理想转移矩阵IMtype-m;设置循环变量k=1;
1.3)判断k是否小于指定计算次数,若不成立则转置步骤4;提取电路各原始输入端的输入信号,并构建与之相对应的原始输入概率分布pipt;当原始输入信号为0时,则对应的pipt赋值为[1,0];否则pipt赋值为[0,1];初始化i=1;
步骤2:判断LC中第i个节点的第j个输入端的关键性Crtli,j,过程如下:
2.1)若i≥length(LC),则转至步骤3;否则,转至2.2);其中length用于计算序列的长度;
2.2)获取电路当前的原始输入信号,并调用SCA算法以获取第i个节点gi的理想输出概率信号iopti及其第j个输入端的理想输入概率信号iipti,j;其中,j=1,2,…,mi,mi指节点i的输入端数;重置j=0;
2.3)若j==mi,则执行i=i+1并转至步骤2.1);否则,执行j=j+1,并转2.4);
2.4)置反iipti,j再计算gi在当前情况下的输出概率信号tfopti,j;
2.5)若tfopti,j==iopti,则执行Crtli,j=0;否则,执行Crtli,j=1;其中Crtli,j指第i个节点的第j个输入端的敏感性状态;
步骤3:根据步骤2的结果对电路实施剪枝以获得对应所应用输入向量的电路敏感性节点,并对所标记的敏感节点分配敏感性值;
步骤4:基于核密度估计给出sen的聚类数目,并利用k-means算法对sen实施聚类,并依据敏感性值的大小次序输出聚类结果。
2.如权利要求1所述的一种基于概率模型的电路原始输入端敏感性计算方法,其特征在于,所述步骤3的过程如下:
3.1)调用SCA算法以获取当前所应用输入向量下gi的当前输出概率信号fopti,i=1,
2,…,length(LC);初始化循环变量t=1与i=length(LC);
3.2)读取gi,并提取其所对应的概率转移矩阵PMtype-mi与理想转移矩阵IMtype-mi、输出概率信号fopti、理想输出信号iopti以及其输入端个数mi,执行visitedi=1,计算其敏感值CrtVli=sum(fopti.×iopti),其中,visitedi指节点gi的被访问状态,sum用于求取向量中元素的和;
3.3)提取gi的type及其关键性输入端的个数num;
3.4)若num==0,则令pertemCrtVli,t=0,并转3.13),其中,t=1,2,…,mi,pertemCrtVli,t表示第i个节点的第t个输入端的敏感性百分数;
3.5)若num==1,则令pertemCrtVli,t=1,并转3.13),其中t为所对应的唯一关键性输入端序号;
3.6)若num>1且type为xor,或者buff,或者not,则执行pertemCrtVli,t=1/num,并转
3.13),其中t表示该节点所对应的关键性输入端序号;
3.7)若num>1且type不为xor、buff及not,则按序将该节点的所有关键性输入端序号置入向量keyipt中;
3.8)提取keyipt内所有元素所对应的输出概率信号的张量积运算结果GIp,并初始化循环变量p=1;
3.9)若p<=length(GIp),则将p-1用2的幂次方和形式表示,将幂次和系数为1所对应的幂次置入向量iptnow中;否则,转3.13);
3.10)初始化循环变量q=1;若type为and或nand,则转3.11);否则,转3.12);
3.11)若q<=length(keyipt),判断ismember(q-1,iptnow)==1是否成立,若不成立则执行q=q+1并转3.11),若成立则利用式(2)与式(3)计算pertemCrtVli,q并执行q=q+1且转3.11);否则,执行q=q+1并转3.9);其中,ismember用于判断其左边参数是否是其右边参数中的一个元素,pertemCrtVl为临时变量;
pertemCrtVl=sum((GIp(p).×PMtype-m(p,:)/(length(iptnow))).×IMtype-mi)/CrtVlp (2)pertemCrtVli,q=pertemCrtVli,q+pertemCrtVl (3)
3.12)若q<=length(keyipt),判断ismember(q-1,iptnow)==0是否成立,若不成立则执行q=q+1并转3.12),若成立则利用式(4)与式(5)计算pertemCrtVli,q并执行q=q+1且转3.12);否则,执行q=q+1并转3.9);
pertemCrtVl=sum((GIp(p).×PMtype-m(p,:)/length(keyipt)-length(iptnow)).×IMtype-mi)/CrtVlp (4)pertemCrtVlp,j=pertemCrtVlp,j+pertemCrtVl (5)
3.13)若gi的type不是原始输入端,则按式(6)计算transCrtVli,q,否则,按式(7)计算transCrtVli,q;其中,transCrtVli指gi输出端所对应的敏感性值,transCrtVli,q指gi的第q个关键性输入端的敏感性值;
transCrtVli,q=transCrtVli*pertemCrtVli,q (6)transCrtVli,q=transCrtVli,q+transCrtVli*pertemCrtVli,q (7)
3.14)初始化q=1;
3.15)若q>mi,则转3.16);否则,提取gi的第q个输入端ipti,q,并转至3.16);
3.16)若ipti,q为关键输入端且visitedi,q=0,则利用输入端q所对应的编号更新i,并转3.2);否则,执行q=q+1并转3.15);其中visitedi,q指gi的第q个输入端的被访问状态;
3.17)分别统计各原始输入端的累计敏感性值,并置于集合sen中,然后转至1.3)。