一种现场可编程门阵列芯片应用电路的测试方法

文档序号:6620467阅读:169来源:国知局
一种现场可编程门阵列芯片应用电路的测试方法
【专利摘要】本发明涉及一种现场可编程门阵列芯片应用电路的测试方法,属于电路设计【技术领域】。对于电路中的两个直接相连的查找表单元,若两个查找表单元满足特定的条件,则可以在保证电路逻辑功能正确的情况下,对前查找表单元添加后向冗余线或对后查找表单元添加前向冗余线。通过添加前向、后向冗余线,可以减少该局部电路所需的测试向量数,从而在整体上减少全电路所需的总测试向量数。同时,该方法能够在一定程度上减少原电路测试生成时产生的未知故障,降低电路测试生成的难度。
【专利说明】 一种现场可编程门阵列芯片应用电路的测试方法

【技术领域】
[0001]本发明涉及一种现场可编程门阵列芯片应用电路的测试方法,属于电路设计【技术领域】。

【背景技术】
[0002]现场可编程门阵列芯片(以下简称FPGA)是一种通用制造而在使用过程中确定功能的数字逻辑芯片,用户在使用过程中通过电子设计自动化工具所提供的通用设计流程将所设计的数字逻辑电路转化为特定的FPGA配置文件,对FPGA芯片进行配置,使之成为确定的、具有特定功能的应用电路。在电路设计时,FPGA的可配置性使得其中应用电路的实现方式并不唯一,而其设计流程是通过通用性算法来实现的,因此能够较为容易的根据所需目的对电路实现方式进行修改。同时,FPGA应用电路的在逻辑综合过程中通常会产生一些固有空闲资源,主要包括应用电路所占用的查找表单元(以下简称LUT)上的空闲输入地址线和冗余的存储位。通过合理利用这些固有空闲资源进行有目的性的电路等价重构,能够在提高电路某方面性能(例如电路的可测性或可靠性)的同时,不带来额外的面积开销。
[0003]目前此类电路优化方法的研究主要集中于如何提高电路运行过程中的可靠性,利用FPGA逻辑综合过程中产生的固有空闲资源来屏蔽电路中的某些故障,或仅降低电路中某些故障的传播概率,从统计的意义上减少电路在运行过程中发生故障后功能受到影响的概率。而事实上,采用与上述方法相似的理念,可以根据具体需求设计其他有针对性的优化方法,例如通过屏蔽电路中的难测故障来降低电路测试生成的难度、减少测试过程的开销,提闻电路的可测性。
[0004]图1表示了已有的基于功能等价类的电路现场可编程门阵列芯片应用电路测试方法,其中,图1(a)是原始电路,图1(b)是屏蔽原始电路sa-Ο故障的功能等价类电路,图1(c)是屏蔽原始电路sa-Ι故障的功能等价类电路,图1(d)是屏蔽原始电路sa-Ο故障和sa-Ι故障的功能等价类电路。该方法复用电路中的空闲LUT输入线进行冗余,使得LUT输入线上的某些故障不会对该LUT单元的输出产生影响,从而屏蔽输入线上的故障。若对一个LUT单元的某一输入线进行二模冗余,则可屏蔽输入线上的一种固定故障,采用图1 (b)中的功能等价类1.0可屏蔽输入线X1或X2上的固定为O故障,而采用图1 (c)中的功能等价类1.1可屏蔽X1或&上的固定为I故障;若对某一输入线进行三模冗余,采用图1 (d)中的功能等价类2,则可同时屏蔽Xp X2和X3上的任意单固定故障。
[0005]上述方法能够在不增加电路面积开销的条件下,对FPGA应用电路中某些LUT单元输入线上的故障进行屏蔽,提高电路在运行过程中的可靠性。但是在考虑电路可测性,即以降低电路测试生成的难度、减少测试过程的开销为目的时,该方法不能取得理想的效果。在FPGA应用电路中,一个很容易观察到的事实是,能够覆盖LUT单元中某一存储位翻转故障的测试向量一定能覆盖该LUT单元输出线上的其中一个固定故障。因此,在FPGA应用电路中难测故障更多地集中在LUT存储位中,同时故障测试集的规模也主要决定于LUT存储位故障。因此,在进行以减少测试向量数为目的可测性设计时,如果采用上述方法只实现了对互连线上的故障进行屏蔽。


【发明内容】

[0006]本发明的目的在于提出一种现场可编程门阵列芯片应用电路的测试方法,利用电路设计流程中固有的空闲资源,在电路局部进行功能等价的电路重构,对LUT存储位的故障进行屏蔽,从而在不增加电路所需逻辑资源的情况下,减少FPGA应用电路在测试时所需的总测试向量数,以减少电路测试的时间及存储开销。
[0007]本发明提出的现场可编程门阵列芯片应用电路的测试方法,包括以下步骤:
[0008](I)在现场可编程门阵列芯片应用电路的两个直接相连的查找表单元之间,添加后向冗余互连线,添加方法为:
[0009]若两个直接相连的查找表单元同时满足以下五个条件,则在两个直接相连的查找表单元之间添加后向冗余互连线,所述的五个条件分别为:①前查找表单元LUT1的输入顺序为X1,…,xg,输出为Z1,②后查找表单元LUT2的输入顺序为Z1,…,zt,输出为y,③前查找表单元LUT1的输出Z1只输出到后查找表单元LUT2,④前查找表单元LUT1存在空闲输入线⑤当后查找表单元LUT2的一条输入线Zi的逻辑值为确定值Cl1时,另一条输入线Z1的逻辑值对该LUT2的输出线的逻辑值不产生影响;
[0010]添加后向冗余互连线的过程为:
[0011](1-1)在现场可编程门阵列芯片应用电路中找出满足上述五个条件的两个直接相连的查找表单元,在该两个直接相连的查找表单元中的后查找表单元LUT2中,找出满足上述条件⑤的所有输入线;
[0012](1-2)利用高尔德斯泰可测性度量(SC0AP度量)方法,在步骤(1_1)找出的所有输入线中选出一条输入线,并将该输入线连接至前查找表单元LUT1的空闲输入线该连接线记为后向冗余互连线^4>^.;
[0013](1-3)用前查找表单元LUT1的原逻辑值替代添加冗余互连线后的前查找表单元LUT1 的立方{xr = T1]
[0014](1-4)将添加后向冗余互连线后的前查找表单元LUT1的立方'{xr = dj全部配置为确定逻辑值屯;
[0015](2)根据步骤(I)的条件,从电路的输入端开始,向输出端的方向按照电路层次的顺序,遍历电路中的所有查找表单元,对遍历到的查找表单元重复步骤(1-1) - (1-4),对符合上述五个条件的前查找表单元LUT1添加后向冗余互连线;
[0016](3)在现场可编程门阵列芯片应用电路的两个直接相连的查找表单元之间,添加前向冗余互连线,添加方法为:
[0017]若两个直接相连的查找表单元同时满足以下六个条件,则在两个直接相连的查找表单元之间添加前向冗余互连线,所述的六个条件分别为:①前查找表单元LUT1的输入顺序为X1,...,&,输出为Z1,②后查找表单元LUT2的输入顺序为Z1,…,zt_i,输出为y,③前查找表单元LUT1的输出Z1只输出到后查找表单元LUT2,④后查找表单元LUT2存在空闲输入线zt,⑤当前查找表单元LUT1的一条输入线Xi的逻辑值为确定值Cl1时,前查找表单元LUT1的输出逻辑值为确定值d2,⑥前查找表单元LUT1的输入线数量不少于后查找表单元LUT2的输入线数量,
[0018]添加前向冗余互连线的过程为:
[0019](3-1)在现场可编程门阵列芯片应用电路中,找出满足上述六个条件的两个直接相连的查找表单元,并找出与该两个直接相连的查找表单元中的后查找表单元LUT2直接相连的满足上述六个条件的其他多个前查找表单元,在所有满足上述六个条件的前查找表单元的输入线中找出满足上述条件⑤的所有输入线;
[0020](3-2)利用高尔德斯泰可测性度量(SC0AP度量)方法,在步骤(3_1)找出的输入线中选取一条,将该输入线连接至后查找表单元LUT2的空闲输入线Zt,将该连接线记为前向冗余互连线^^^!;;
[0021](3-3)用后查找表单元LUT2的原逻辑值替代添加冗余互连线后的后查找表单元LUT2 的立方= df];
[0022](3-4)用后查找表LUT2的原立方(Z1 =名}的逻辑值替代添加冗余互连线后的后查找表单兀LUT2的立方{zi = d2,zt = djJ;
[0023](3-5)用后查找表单元LUT2的立方(Z1 = d }⑴逻辑值替代添加冗余互连线后的后查找表单兀LUT2的立方= d2,zt = 逻辑值;
[0024](4)根据步骤(3)的条件,从电路的输出端开始,向输入端的方向按照电路的层次顺序的逆序,遍历电路中的查找表单元,对遍历到的查找表单元重复步骤(3-1) - (3-5),对符合上述六个条件的后查找表单元LUT2添加前向冗余互连线;
[0025](5)对上述添加了前向冗余互连线和后向冗余互连线的现场可编程门阵列芯片应用电路进行测试。
[0026]本发明提出的现场可编程门阵列芯片应用电路的测试方法,其优点是:本发明方法基于局部电路,算法复杂度较低。本方法利用电路逻辑综合过程中所产生的固有空闲资源,具有不增加电路所占用的LUT资源量的优点,但与此同时,算法可以达到的效果一定程度上也会受到原电路本身结构特点的限制。对于目前主流的4输入和6输入LUT的FPGA来说,在不干预通用设计流程中的其他环节的情况下,本方法在ISCAS85系列基准电路上可以减少约7.0%的所需测试向量数。由于基于6-LUT实现的应用电路中相对而言会存在更多的空闲输入线,因此相对基于4-LUT实现的电路,可以得到更好的优化效果,最多可以减少约16.1%的所需测试向量数,平均减少约8.4%的所需测试向量数。同时,该方法能够在一定程度上减少原电路测试生成时产生的未知故障,降低电路测试生成的难度。

【专利附图】

【附图说明】
[0027]图1是已有的基于功能等价类现场可编程门阵列芯片应用电路的测试电路,其中图1 (a)是原始电路,图1 (b)是屏蔽原始电路sa-Ο故障的功能等价类电路,图1 (C)是屏蔽原始电路sa-Ι故障的功能等价类电路,图1 (d)是屏蔽原始电路sa-Ο故障和sa_l故障的功能等价类电路。
[0028]图2是本发明方法中涉及的添加后向冗余互连线过程示意图,图2(a)是原始电路举例(LUT2的输入线Z2 = O时,LUT2的输出固定为O),图2(b)是添加后向冗余线未修改LUT1的冗余存储位逻辑值时时的电路,图2(c)标出LUT1冗余位设为O时屏蔽掉的LUT2的存储位,图2(d)标出LUT1冗余位设为I时屏蔽掉的LUT2的存储位。
[0029]图3所示为上述添加前向冗余互连线过程示意图,其中图3(a)是原始电路举例(LUT1的输入线X2为O时,LUT1的输出固定为O),图3(b)是添加前向冗余互连线的过程,图3(c)标出了添加前向冗余互连线后LUT;被屏蔽掉的存储位。
[0030]上述附图中,LUT的逻辑值表示形式均为低位在前高位在后。

【具体实施方式】
[0031]本发明的现场可编程门阵列芯片应用电路的测试方法,针对FPGA应用电路中的LUT单元对进行功能等价重构。当两个直接相连的LUT单元满足一定的约束条件时,通过添加局部的冗余互连线,可以减少该局部电路所需的测试向量数,从而在整体上减少全电路所需的总测试向量数。添加冗余互连线的方式又可以分为前向冗余互连线和后向冗余互连线两类。具体包括以下步骤:
[0032](I)在现场可编程门阵列芯片应用电路的两个直接相连的查找表单元之间,添加后向冗余互连线,添加方法为:
[0033]若两个直接相连的查找表单元同时满足以下五个条件,则在两个直接相连的查找表单元之间添加后向冗余互连线,所述的五个条件分别为:①前查找表单元LUT1的输入顺序为X1,…,xg,输出为Z1,②后查找表单元LUT2的输入顺序为Z1,…,zt,输出为y,③前查找表单元LUT1的输出Z1R输出到后查找表单元LUT2,④前查找表单元LUT1存在空闲输入线
⑤当后查找表单元LUT2的一条输入线Zi的逻辑值为确定值Cl1时,另一条输入线Z1的逻辑值对该LUT2的输出线的逻辑值不产生影响;即立方(Z1 = O, Zi = dj与立方(Z1 = I, Zi=dj等效。其中立方的含义为:对于查找表单元,固定这一查找表单元的某几条输入线的逻辑值,剩余的输入线任意取值,满足这样条件的输入所对应的查找表中的存储位的集合称为立方。例如对于一个四输入的查找表单兀LUT1,若四条输入线分别为ZpZyZyZ4ilLUT1的立方(Z1 = l,z2 = 1}表示LUT1这一查找表单元的1100、1101、1110、1111这四个存储位的集合
[0034]添加后向冗余互连线的过程为:
[0035](1-1)在现场可编程门阵列芯片应用电路中找出满足上述五个条件的两个直接相连的查找表单元,在该两个直接相连的查找表单元中的后查找表单元LUT2中,找出满足上述条件⑤的所有输入线;
[0036](1-2)利用高尔德斯泰可测性度量(SC0AP度量)方法,在步骤(1_1)找出的所有输入线中选出一条输入线,并将该输入线连接至前查找表单元LUT1的空闲输入线该连接线记为后向冗余互连线Ζ4—Χι.; 表示后查找表单元LUT2的输入线<至前查找表单元LUT1的空闲输入线&之间的互连线,且片的逻辑值为确定值屯时,另一条输入线Z1的逻辑值对LUT2的输出线的逻辑值不产生影响。SCOAP度量方式如下:LUT单元的输入顺序为X1,…,Xr,输出为y,为的存储位的可测性度量C:
[0037]c = CO(y) + V CCai(Xi)
[0038]EUCC^(Xi)S LUT单元输入线的可控性度量,C0(y)LUT单元输出线的可观性度量,所添加的后向冗余互连线要使得被屏蔽的存储位故障的可测性度量之和最大化。
[0039](1-3)用前查找表单元LUT1的原逻辑值替代添加冗余互连线后的前查找表单元
LUT1的立Jj [x = d^y,则立方Xr =屯中的所有存储位是冗余的,其逻辑值不会对电路功能产生影响,可以自由选择
[0040](1-4)将添加后向冗余互连线后的前查找表单元LUT1的立方{xr = 全部配置为确定逻辑值则LUT2的立方(Z1 = dl, zl =屯}中的所有存储位的故障被均被屏蔽。在经过后向跨接线优化后,LUT1中增加了个冗余的存储位,LUT2中共有2卜2个存储位故障被屏蔽。
[0041]图2所示是上述添加后向冗余互连线过程示意图,图2(a)是原始电路举例(LUT2的输入线Z2 = O时,LUT2的输出固定为O),图2(b)是添加后向冗余线未修改LUT1的冗余存储位逻辑值时时的电路,图2(c)标出LUT1冗余位设为O时屏蔽掉的LUT2的存储位,图2(d)标出LUT1冗余位设为I时屏蔽掉的LUT2的存储位。
[0042](2)根据步骤⑴的条件,从电路的输入端开始,向输出端的方向按照电路层次的顺序,遍历电路中的所有查找表单元,即电路的输入结点一定在输出结点之前被遍历,对遍历到的查找表单元重复步骤(1-1)-(1-4),对符合上述五个条件的前查找表单元LUT1添加后向冗余互连线;
[0043](3)在现场可编程门阵列芯片应用电路的两个直接相连的查找表单元之间,添加前向冗余互连线,添加方法为:
[0044]若两个直接相连的查找表单元同时满足以下六个条件,则在两个直接相连的查找表单元之间添加前向冗余互连线,所述的六个条件分别为:①前查找表单元LUT1的输入顺序为X1,...,&,输出为Z1,②后查找表单元LUT2的输入顺序为Z1,…,zt_i,输出为y,③前查找表单元LUT1的输出Z1R输出到后查找表单元LUT2,④后查找表单元LUT2存在空闲输入线zt,⑤当前查找表单元LUT1的一条输入线Xi的逻辑值为确定值Cl1时,即某一条线的逻辑值为d表示该条线的逻辑值是确定的,取值可以是O也可以是1,前查找表单元LUT1的输出逻辑值为确定值d2,而不受其他输入线的逻辑值的影响,即Xi = Cl1将LUT1的输出控制为d2,
⑥前查找表单元LUT1的输入线数量不少于后查找表单元LUT2的输入线数量,
[0045]添加前向冗余互连线的过程为:
[0046](3-1)在现场可编程门阵列芯片应用电路中,找出满足上述六个条件的两个直接相连的查找表单元,并找出与该两个直接相连的查找表单元中的后查找表单元LUT2直接相连的满足上述六个条件的其他多个前查找表单元,在所有满足上述六个条件的前查找表单元的输入线中找出满足上述条件⑤的所有输入线;
[0047](3-2)利用高尔德斯泰可测性度量(SC0AP度量)方法,在步骤(3_1)找出的输入线中选取一条,将该输入线连接至后查找表单元LUT2的空闲输入线Zt,将该连接线记为前向冗余互连线zAV使得LUT1*的立万{X = 中所有存储位的故障均被屏蔽,)所添加的后向冗余互连线要使得被屏蔽的存储位故障的可测性度量之和最大化;匕卜Z£表示前查找表单元LUT1I^输入线X至后查找表单元LUT2的空闲输入线Zt之间的互连线,且X『的逻辑值为确定值Ci1时,前查找表单元LUT1^输出逻辑值为确定值d
[0048](3-3)用后查找表单元LUT2的原逻辑值替代添加冗余互连线后的后查找表单元LUT2 的立 Jj [zr = dg;
[0049](3-4)用后查找表LUT2的原立方(Z1 = #}的逻辑值替代添加冗余互连线后的后查找表单元LUT2的立方O1 = d-ltzt = Ci1],.、/.方Iz1 = d'2,zt = dG中的所有存储位是冗余的,其逻辑值不会对电路功能产生影响,可以自由选择。
[0050](3-5)用后查找表单元LUT2的立方(? = d }的逻辑值替代添加冗余互连线后的后查找表单元LUT2的立方(Z1 = W2tZt = 的逻辑值;使得立方Iz1 = d*2,zt = dD和立方(Z1 =⑷丨等效,即当Ζ? =屯且其他输入线逻辑值相同时,Z1的逻辑值不会对LUT2*
的输出逻辑值产生影响,则LUT1的立方{xf =屯}中所有存储位的故障均被屏蔽。在经过前向跨接线优化后,LUTY中共有个存储位故障被屏蔽,而LUT2中增加了 2卜2个冗余的存储位及2卜2个非冗余的存储位。
[0051]图3所示为上述添加前向冗余互连线过程示意图,其中图3(a)是原始电路举例(LUT1的输入线X2为O时,LUT1的输出固定为O),图3(b)是添加前向冗余互连线的过程,图3(c)标出了添加前向冗余互连线后]UT1^屏蔽掉的存储位。
[0052](4)根据步骤(3)的条件,从电路的输出端开始,向输入端的方向按照电路的层次顺序的逆序,即电路的输入结点一定在输出结点之后被遍历,遍历电路中的查找表单元,对遍历到的查找表单元重复步骤(3-1)-(3-5),对符合上述六个条件的后查找表单元LUT2添加前向冗余互连线;
[0053](5)对上述添加了前向冗余互连线和后向冗余互连线的现场可编程门阵列芯片应用电路进行测试。
【权利要求】
1.一种现场可编程门阵列芯片应用电路的测试方法,其特征在于该方法包括以下步骤: (1)在现场可编程门阵列芯片应用电路的两个直接相连的查找表单元之间,添加后向冗余互连线,添加方法为: 若两个直接相连的查找表单元同时满足以下五个条件,则在两个直接相连的查找表单元之间添加后向冗余互连线,所述的五个条件分别为:①前查找表单元LUT1的输入顺序为X1,…,Xg,输出为Z1,②后查找表单元LUT2的输入顺序为Z1,…,zt,输出为y,③前查找表单元LUT1的输出Z1R输出到后查找表单元LUT2,④前查找表单元LUT1存在空闲输入线⑤当后查找表单元LUT2的一条输入线Zi的逻辑值为确定值Cl1时,另一条输入线Z1的逻辑值对该LUT2的输出线的逻辑值不产生影响; 添加后向冗余互连线的过程为: (1-1)在现场可编程门阵列芯片应用电路中找出满足上述五个条件的两个直接相连的查找表单元,在该两个直接相连的查找表单元中的后查找表单元LUT2中,找出满足上述条件⑤的所有输入线; (1-2)利用高尔德斯泰可测性度量(SCOAP度量)方法,在步骤(1-1)找出的所有输入线中选出一条输入线,并将该输入线连接至前查找表单元LUT1的空闲输入线该连接线记为后向冗余互连线Zz; ->χΓ ; (1-3)用前查找表单元LUT1的原逻辑值替代添加冗余互连线后的前查找表单元LUT1的立 Λ?|χ>.= (1-4)将添加后向冗余互连线后的前查找表单元LUT1的立万{xr =屯}全部配置为确定逻辑值劣; (2)根据步骤(I)的条件,从电路的输入端开始,向输出端的方向按照电路层次的顺序,遍历电路中的所有查找表单元,对每个查找表单元重复步骤(1-1) - (1-4),对符合上述五个条件的前查找表单元LUT1添加后向冗余互连线; (3)在现场可编程门阵列芯片应用电路的两个直接相连的查找表单元之间,添加前向冗余互连线,添加方法为: 若两个直接相连的查找表单元同时满足以下六个条件,则在两个直接相连的查找表单元之间添加前向冗余互连线,所述的六个条件分别为:①前查找表单元LUT1的输入顺序为X1,...,&,输出为Z1,②后查找表单元LUT2的输入顺序为Z1,…,zt_i,输出为y,③前查找表单元LUT1的输出Z1只输出到后查找表单元LUT2,④后查找表单元LUT2存在空闲输入线zt,⑤当前查找表单元LUT1的一条输入线Xi的逻辑值为确定值Cl1时,前查找表单元LUT1的输出逻辑值为确定值d2,⑥前查找表单元LUT1的输入线数量不少于后查找表单元LUT2的输入线数量, 添加前向冗余互连线的过程为: (3-1)在现场可编程门阵列芯片应用电路中,找出满足上述六个条件的两个直接相连的查找表单元,并找出与该两个直接相连的查找表单元中的后查找表单元LUT2直接相连的满足上述六个条件的其他多个前查找表单元,在所有满足上述六个条件的前查找表单元的输入线中找出满足上述条件⑤的所有输入线; (3-2)利用高尔德斯泰可测性度量(SCOAP度量)方法,在步骤(3-1)找出的输入线中选取一条,将该输入线连接至后查找表单元LUT2的空闲输入线zt,将该连接线记为前向冗余互连线Lpzt; (3-3)用后查找表单元LUT2的原逻辑值替代添加冗余互连线后的后查找表单元LUT2的立方(? = Hf]; (3-4)用后查找表LUTJ^原立方{Zl = #}的逻辑值替代添加冗余互连线后的后查找表单兀 LUT2 的立方(? = d2, zt = (I1)., (3-5)用后查找表单元LUT2的立方(Z1 =屯}的逻辑值替代添加冗余互连线后的后查找表单元LUT2的立乃[Z1 = dX,zt = di}l的逻辑值; (4)根据步骤⑶的条件,从电路的输出端开始,向输入端的方向按照电路的层次顺序的逆序,遍历电路中的查找表单元,对遍历到的查找表单元重复步骤(3-1) - (3-5),对符合上述六个条件的后查找表单元LUT2添加前向冗余互连线; (5)对上述添加了前向冗余互连线和后向冗余互连线的现场可编程门阵列芯片应用电路进行测试。
【文档编号】G06F11/22GK104133747SQ201410341980
【公开日】2014年11月5日 申请日期:2014年7月17日 优先权日:2014年7月17日
【发明者】张双悦, 王红, 杨士元, 苗巍 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1