一种基于概率模型的电路原始输入端敏感性计算方法与流程

文档序号:23616134发布日期:2021-01-12 10:25阅读:67来源:国知局
一种基于概率模型的电路原始输入端敏感性计算方法与流程

本发明涉及集成电路原始输入端的敏感性计算,具体来说是一种基于剪枝策略与屏蔽效应度量相结合的计算方法。



背景技术:

集成电路特征尺寸的不断缩小,不可避免地造成了电路可靠性容限的下降。已有研究表明,电路的可靠性受电路输入向量的影响,且不同输入向量下的可靠性差异有时甚至相差几个数量级。为此,在电路设计过程中,有必要了解掌握电路可靠性的边界及其对应的输入向量,以便于有目的性地改善电路的可靠性水平。开展对电路原始输入端敏感性的分析是实现上述目标的一种有效方法。

目前,有学者基于智能算法以评估电路原始输入端的敏感性。典型的有如利用爬山算法并结合递归搜索以查找电路的最坏输入向量;也有基于tetramax收集到的数据,通过机器学习方法来判断电路原始输入端的敏感性。然而,上述方法在面对结构复杂的电路时,其往往有较大的计算开销且算法的自学习能力尚有待改善以进一步提高计算精度。



技术实现要素:

为了克服现有技术的不足,为实现大规模电路敏感性原始输入端的有效识别,本发明提出了一种基于概率模型的电路原始输入端敏感性的计算方法,基于屏蔽效应的剪枝策略,该方法首先实现了针对给定输入向量下敏感性原始输入端的标记。然后通过节点的类型及拓扑位置信息,基于反向深度优先搜索策略并借助sca算法,实现了对电路各原始输入端敏感性水平的量化。结合聚类算法,并通过对上述步骤的不断迭代即可实现对电路中敏感性原始输入端的有效识别。

本发明解决其技术问题所采用的技术方案是:

一种基于概率模型的电路原始输入端敏感性计算方法,所述计算方法包括以下步骤:

步骤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实施聚类,并依据敏感性值的大小次序输出聚类结果。

进一步,所述步骤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)。

本发明的技术构思为:首先,针对所应用输入向量,基于电路的屏蔽效应标识出各节点的敏感性输入端。接着,通过各节点的敏感性输入端、节点类型及在电路拓扑中的位置信息,利用反向深度优先搜索策略并结合sca算法,量化相关输入端的敏感性水平直至电路的原始输入端。然后,不断随机产生新的输入向量,并重复执行上述步骤,直至达到结束条件。最后,汇总不同输入向量下各原始输入端的敏感性值,并基于聚类方法实现对电路原始输入端敏感性水平的度量。该结果有助于电路设计人员及时了解并掌握所设计产品中电路各原始输入端的敏感性水平,以便合理选择与决策。

本发明的有益效果主要表现在:有助于快速有效误别电路的敏感性输入端,使在电路设计的早期阶段加快对电路结构可靠性的测试,并及时明确电路结构可靠性的上下界及其可能的应用环境等。

附图说明

图1是一种基于概率模型的电路原始输入端敏感性计算方法的流程图。

具体实施方式

下面结合附图对本发明作进一步描述。

参照图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的结果对电路实施剪枝以获得对应所应用输入向量的电路敏感性节点,并对所标记的敏感节点分配敏感性值。

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);

步骤4:基于核密度估计给出sen的聚类数目,并利用k-means算法对sen实施聚类,并依据敏感性值的大小次序输出聚类结果。

本实施例以面向屏蔽效应的剪枝策略为基础,结合sca算法,并通过反向递归方法及各节点的类型及位置信息,利用概率方法实现对电路原始输入端敏感性水平的有效量化。这将在电路结构的可靠性边界快速有效量化方面发挥重要作用。

本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1