智能电表集成电路的无效模块识别方法

文档序号:32523723发布日期:2022-12-13 20:25阅读:33来源:国知局
智能电表集成电路的无效模块识别方法

1.本发明属于智能电表技术领域,更为具体地讲,涉及一种智能电表集成电路的无效模块识别方法。


背景技术:

2.智能电表是智能电网的智能终端,除了具备传统电能表基本用电量的计量功能以外,为了适应智能电网和新能源的使用它还具有双向多种费率计量功能、用户端控制功能、多种数据传输模式的双向数据通信功能、防窃电功能等智能化的功能,智能电表代表着未来节能型智能电网最终用户智能化终端的发展方向。在智能电表中,广泛使用模拟/混合信号集成电路,对于智能电表的可靠性非常关键,当集成电路发生故障可能会造成重大损失和严重影响,迫切需要对其进行有效故障诊断的方法。
3.如今,工业界大范围使用故障覆盖率这一指标来评判集成电路系统的优劣程度,计算此指标的前提是对集成电路的器件进行大量人为的故障注入,通过给定测试集所能检测的给定电路在给定的故障模型下的故障数与电路中含有的故障总数之比计算出故障覆盖率。由于大型集成电路中存在大量孤立模块、旁路模块等无效电路模块,将浪费大量不必要的故障注入和仿真时间。然而,国内对于简化故障注入方面的研究仍处于起步阶段,相关的研究成果也较为稀少,迫切需要一种对智能电表集成电路的无效模块识别方法,以简化故障注入。


技术实现要素:

4.本发明的目的在于克服现有技术的不足,提供一种智能电表集成电路的无效模块识别方法,通过分析智能电表集成电路,识别出集成电路中的旁路器件和孤立电路,为简化集成电路的故障注入提供依据,节约故障注入时间。
5.为实现上述发明目的,本发明智能电表集成电路的无效模块识别方法包括以下步骤:
6.s1:根据实际情况在智能电表中模拟/混合信号集成电路中标注网络节点,然后构建集成电路的网表文件,网表文件中包含了所有器件和器件参数值,以及各个器件与预设的网络节点的连接关系;
7.s2:遍历网表文件中的每个器件,如果该器件为2端器件,则比较该器件所连接2个网络节点是否相同,如果相同,则该器件为旁路器件,否则不为旁路器件;如果该器件为三极管,则比较该器件发射极和集电极所连接的网络节点是否相同,如果相同,则该器件为旁路器件,否则不为旁路器件;如果该器件为mos管,则比较该器件源极和漏极所连接的网络节点是否相同,如果相同,则该器件为旁路器件,否则不为旁路器件;将判定为旁路器件的所有器件构成旁路器件集合;
8.s3:解析网表文件,将“器件名”作为矩阵的行、将“节点名”作为矩阵的列构建矩阵,然后对照网表文件,如果在网表文件的某个器件和某个节点具有相互连接的关系,则把
矩阵相应位置的元素标记为“1”,否则为“0”。在构建得到的矩阵中去掉全0列,得到大小为m
×
n的矩阵作为器件-节点矩阵s,其中m表示器件数量,n表示保留的节点数量;
9.s4:构建大小为m
×
m的器件之间的邻接矩阵a,其中a[i][j]表示第i个器件与第j个器件是否1步可达,i,j=0,1,

,m-1,a[i][j]的取值根据器件-节点矩阵s确定,具体方法为:如果在器件-节点矩阵s中,第i个器件与第j个器件在某一列的数值均为1,则这两个器件直接连接,即1步可达,令a[i][j]=1,否则a[i][j]=0;
[0010]
s5:根据邻接矩阵a计算大小为m
×
m的m步可达矩阵r,具体方法为:根据邻接矩阵a计算得到矩阵tmp=(a+i)m,其中i表示单位矩阵,然后采用如下公式确定m步可达矩阵r中各个元素r[i][j]:
[0011][0012]
s6:基于m步可达矩阵r,分析得到主电路和孤立电路器件集,具体方法如下:
[0013]
1)初始化孤立电路序号accu=0,主电路块序号main=0,m维子电路列向量subc=0;
[0014]
2)令i=0;
[0015]
3)判断子电路列向量subc中第i行元素subc[i]是否为0,如果是,进入步骤4),如果不是,进入步骤5);
[0016]
4)令孤立电路序号accu=accu+1,令subc[i]=accu;
[0017]
5)令j=1;
[0018]
6)判断m步可达矩阵r中元素r[i][j]是否为1,如果是,令subc[j]=accu,然后进一步判断第j个器件是否为电源,如果是,则令主电路块序号main=accu,其他情况不作任何操作;
[0019]
7)判断是否j<m-1,如果是,令j=j+1,返回步骤6),否则进入步骤8);
[0020]
8)判断是否i<m-1,如果是,令i=i+1,返回步骤3),否则进入步骤9);
[0021]
9)根据主电路块序号main和子电路列向量subc,将元素subc[i]=main对应的器件作为主电路器件构成主电路器件集,然后对于其他器件,将subc[i]相同的器件作为同一孤立电路器件构成孤立电路器件集。
[0022]
本发明智能电表集成电路的无效模块识别方法,获取智能电表集成电路的网表文件,先通过直接分析法得到旁路器件,然后用器件和网络节点对模拟电路进行建模得到器件-节点矩阵,基于邻接矩阵计算得到器件的可达矩阵,最后分析可达矩阵输出全部孤立电路中的器件名,完成全部无效模块的识别。本发明通过分析智能电表集成电路,识别出集成电路中的旁路器件和孤立电路,为简化集成电路的故障注入提供依据,节约故障注入时间。
附图说明
[0023]
图1是本发明智能电表集成电路的无效模块识别方法的具体实施方式流程图;
[0024]
图2是智能电表中模拟/混合信号集成电路的网表文件的示例图;
[0025]
图3是本实施例中实例电路的电路和网表文件示例图;
[0026]
图4是本实施例中旁路器件识别的输出结果图。
具体实施方式
[0027]
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0028]
实施例
[0029]
图1是本发明智能电表集成电路的无效模块识别方法的具体实施方式流程图。如图1所示,本发明智能电表集成电路的无效模块识别方法的具体步骤包括:
[0030]
s101:获取网表文件:
[0031]
根据实际情况在智能电表中模拟/混合信号集成电路中标注网络节点,然后构建集成电路的网表文件,网表文件中包含了所有器件和器件参数值,以及各个器件与预设的网络节点的连接关系。
[0032]
s102:旁路器件识别:
[0033]
本发明中对于旁路器件的识别思路如下,如果一个二端器件的相邻两个节点号相同,说明此器件相邻的两个节点相互连接,故将此器件判定为旁路器件。对于三端器件,例如mos管,其短路模型是将其源极与漏极直接连接,由于其三个端口在网表中具有一定的顺序,则比较网表文件中的源极列节点号与栅极列节点号,如果相同,则判定为旁路器件。因此本发明中旁路器件识别的具体方法为:
[0034]
遍历网表文件中的每个器件,如果该器件为2端器件,则比较该器件所连接2个网络节点是否相同,如果相同,则该器件为旁路器件,否则不为旁路器件;如果该器件为三极管,则比较该器件发射极和集电极所连接的网络节点是否相同,如果相同,则该器件为旁路器件,否则不为旁路器件;如果该器件为mos管,则比较该器件源极和漏极所连接的网络节点是否相同,如果相同,则该器件为旁路器件,否则不为旁路器件。将判定为旁路器件的所有器件构成旁路器件集合。
[0035]
s103:生成器件-节点矩阵:
[0036]
解析网表文件,将“器件名”作为矩阵的行、将“节点名”作为矩阵的列构建矩阵,然后对照网表文件,如果在网表文件的某个器件和某个节点具有相互连接的关系,则把矩阵相应位置的元素标记为“1”,否则为“0”。在构建得到的矩阵中去掉全0列(即去掉对应节点数据),得到大小为m
×
n的矩阵作为器件-节点矩阵s,其中m表示器件数量,n表示保留的节点数量。
[0037]
图2是智能电表中模拟/混合信号集成电路的网表文件的示例图。如图2所示,在集成电路中标有1-4代表网络节点,构建的网表文件中第一列为器件名,后面第2、3列为器件连接的网络节点号,第4列为器件的数值大小。表1是基于图2所示网表文件生成的器件-节点矩阵。
[0038] 节点1节点2节点3节点4m31110r10011r20101r31100
[0039]
表1
[0040]
如表1所示,由于生成的矩阵中没有全0列,无需删除,即生成的器件-节点矩阵s的大小为4*4。
[0041]
s104:生成邻接矩阵:
[0042]
构建大小为m
×
m的器件之间的邻接矩阵a,其中a[i][j]表示第i个器件与第j个器件是否1步可达,i,j=0,1,

,m-1,a[i][j]的取值根据器件-节点矩阵s确定,具体方法为:如果在器件-节点矩阵s中,第i个器件与第j个器件在某一列的数值均为1,则这两个器件直接连接,即1步可达,令a[i][j]=1,否则a[i][j]=0。根据表1所示的器件-节点矩阵s,本实施例中邻接矩阵a为:
[0043][0044]
s105:生成m步可达矩阵:
[0045]
根据邻接矩阵a计算大小为m
×
m的m步可达矩阵r,具体方法为:根据邻接矩阵a计算得到矩阵tmp=(a+i)m,其中i表示单位矩阵,然后采用如下公式确定m步可达矩阵r中各个元素r[i][j]:
[0046][0047]
根据研究发现,在实际运算中计算中间矩阵不一定需要进行m次方,在计算可达矩阵时,如果下一步可达矩阵相比当前可达矩阵没有变化,则停止更新,这是因为,如果两个器件间m步可达,那么m+1步也必然可达,无需继续计算。基于此思路,本实施例中提出一种更为高效的m步可达矩阵计算方法,具体方法如下:
[0048]
1)令m=1,令矩阵tmp=a+i,初始化可达矩阵变化标识flag=0,1步可达矩阵rs1=a。
[0049]
2)计算m+1步可达矩阵rs
m+1
,具体方法如下:
[0050]
遍历m步可达矩阵rsm,如果rsm[i][j]=1,则说明第i个器件和第j个器件m步可达,那么m+1步必须可达,令rs
m+1
[i][j]=1,如果rsm[i][j]=0,则将m步可达矩阵rsm中第i行行向量中的第i

个元素与矩阵tmp中第j列列向量中的第i

个元素进行相与操作,i

=0,1,

,m-1,如果有任意一对元素的相与结果为1,则说明第i个器件和第j个器件m+1步可达,令rs
m+1
[i][j]=1,且由于此时rsm[i][j]≠rs
m+1
[i][j],即可达矩阵发生了变化,令可达矩阵变化标识flag=1,否则令rs
m+1
[i][j]=0。
[0051]
3)判断是否可达矩阵变化标识flag=1,如果是,进入步骤4),否则进入步骤5)。
[0052]
4)判断是否m<m,如果是,令m=m+1,返回步骤2),否则进入步骤5)。
[0053]
5)将当前得到的可达矩阵rsm作为m步可达矩阵r。
[0054]
s106:分析得到主电路和孤立电路:
[0055]
接下来基于m步可达矩阵r,分析得到主电路和孤立电路器件集,具体方法如下:
[0056]
1)初始化孤立电路序号accu=0,主电路块序号main=0,m维子电路列向量subc=0。
[0057]
2)令i=0。
[0058]
3)判断子电路列向量subc中第i行元素subc[i]是否为0,如果是,进入步骤4),如果不是,进入步骤5)。
[0059]
4)令孤立电路序号accu=accu+1,令subc[i]=accu。
[0060]
5)令j=1。
[0061]
6)判断m步可达矩阵r中元素r[i][j]是否为1,如果是,令subc[j]=accu,然后进一步判断第j个器件是否为电源,如果是,则令主电路块序号main=accu,其他情况不作任何操作。因为集成电路中电源处于主电源,且一般只有一个,因此将电源连接的电路作为主电路。
[0062]
7)判断是否j<m-1,如果是,令j=j+1,返回步骤6),否则进入步骤8)。
[0063]
8)判断是否i<m-1,如果是,令i=i+1,返回步骤3),否则进入步骤9)。
[0064]
9)根据主电路块序号main子电路列向量subc,将元素subc[i]=main对应的器件作为主电路器件构成主电路器件集,然后对于其他器件,将subc[i]相同的器件作为同一孤立电路器件构成孤立电路器件集。
[0065]
为了更好地说明本发明的具体过程,采用一个实例电路对本发明进行实验验证。由于智能电表的整体电路过于复杂,本实施例中采用自行绘制的电路为例进行说明。图3是本实施例中实例电路的电路和网表文件示例图。
[0066]
首先进行旁路器件识别,图4是本实施例中旁路器件识别的输出结果图。如图4所示,short_m为旁路器件集合,包含r10,m2,q2,q3。
[0067]
根据网表文件生成初始器件-节点矩阵,并删除全0列,得到器件-节点矩阵。
[0068]
表1是本实施例中的器件-节点矩阵。
[0069][0070]
表1
[0071]
然后计算邻接矩阵,并基于邻接矩阵计算m步可达矩阵。表2是本实施例中邻接矩阵。表3是本实施例中m步可达矩阵。
[0072]
[0073][0074]
表2
[0075]
器件0vccr2r3r5l1r6r8r9c1c2r10m2q1q2q301101101110011110vcc1101101110011110r20010000001000000r31101101110011110r51101101110011110l10000010000100001r61101101110011110r81101101110011110r91101101110011110c10010000001000000c20000010000100001r101101101110011110m21101101110011110q11101101110011110q21101101110011110q30000010000100001
[0076]
表3
[0077]
分析可达矩阵,计算矩阵向量subc,从中整理得到主电路和孤立电路。表4是本实施例中矩阵向量及对应器件表。
[0078][0079]
表4
[0080]
如表4所示,subc中数字相同的行对应的keyname器件为同一个模块,否则为不同。本实施例中由于电源的编号为1,因此subc中元素“1”的行对应器件为主电路的器件,其余为孤立电路器件,即无效模块器件。整理中的结果,得到主电路模块和所有孤立电路器件集(未标注为主电路的集合为孤立器件集),输出结果如下:
[0081]
[['主电路'],'0','vcc','r3','r5','r6','r8','r9','r10','m2','q1','q2']
[0082]
['r2','c1']
[0083]
['l1','c2','q3']
[0084]
将旁路器件识别结果和孤立电路识别结果对照电路图的具体结构得知,此算法准确快速地识别出了全部旁路电路和孤立电路,完成了集成电路无效模块的识别。
[0085]
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1