上述的7种配置中同一个SB内编号相同的开关的状态都是一样的。配置中SB旁边的数字表示SB内需要闭合的传输管的编号。图中SB的编号Smn,其中:S00:处于奇行奇列的SB;S01:处于偶行奇列的SB;S10:处于奇行偶列的SB;S11:处于偶行偶列的SB。编号相同的SB在同一个测试配置中状态是完全一样的。如果对故障进行诊断,需要配置1到配置6。
1)配置l和配置2能够诊断任何单个线段开路故障、线段固定故障和线段桥接故障;
2)配置l、2、3、4、5和配置6能够诊断任何编号为3、6的单个传输管固定O故障;
3)配置1、2、3、4、5和配置6能够诊断任何编号为2、5的单个传输管固定0故障;
4)配置3、4、5和配置6能够诊断任何编号为4、1的单个传输管固定0故障;
5)配置l(或配置2)、配置3和配置4能够诊断任何编号为l的单个传输管固定1故障;
6)配置1(或配置2)、配置3和配置4能够诊断任何编号为4的单个传输管固定1故障;
7)配置3、4、5和配置6能够诊断编号为2、3、5、6的单个传输管固定1故障。
如果仅仅是进行故障检测,配置1、2和配置7就够了。
4 移位寄存器链测试方法
由于FPGA规模越来越大,编程SRAM单元数量巨大,下载测试配置的时间就非常大。在测试中,需将配置下载到芯片中,然后加测试矢量对连线资源进行测试,但是在下载的过程中,也同时将逻辑资源的编程数据下载到了芯片中,这种下载对测试连线资源是没有用的,所以这部分时间对连线资源测试来说是多余的。
从图2的开关盒连接关系和图3中的测试配置可以看出,在一个开关盒内部编号相同的开关状态是一样的,所以在这种情况下就可以在开关盒内部增加6个触发器,每个触发器的输出端连接到相同编号的所有传输管上,并且将所有的触发器连接成多条移位寄存器链,这样在配置的时候就可以将事先设计好的配置数据通过移位寄存器链下载相对应的开关盒内SRAM单元中,每个触发器可以并行配置与其相连的SRAM单元,时间又可以节省很多。如图4所示。各信号意义如下:
1)DATA IN:将设计好的编程数据通过移位寄存器移位到相对应的位置上;
2)DATA 0UT:移位链的输出端;
3)TEST CONTROL:控制芯片为测试状态或正常工作状态。当其为1时,所有的测试控制NMOS管都闭合,将触发器的输出写到相应的SRAM单元中;而当其为0时,所有的测试控制NMOS管都断开,芯片处于正常工作状态,测试电路和工作电路完全断开,不会影响芯片的正常工作;
4)NEXT:连接到另外一个开关盒的DATA IN,将所有的触发器连接成多条移位寄存器链;
5)CLOCK:时钟控制端,控制数据的移位。其他的一些输入控制端没有列出。
测试方法:比如要实现图3中测试配置3,因为在这个配置中,开关盒S00需要将编号为1、3、6的传输管闭合,所以此开关盒寄存器的配置为101001,开关盒S10,S11需要将编号为4的传输管闭合,其需要的配置为000100,而开关盒Sol将闭合传输管l、2、5,所以其配置为110010,所以对于配置3中的9个开关盒来说,需要的配置序列为:101001,000100,10100l;1 100lO,000100,110010;101001,000100,101001。
在测试的时候分别将6种配置的测试序列分别通过下载端口下载到芯片中,实现测试需要的配置对开关盒进行测试。
三种常用的SB结构如图5所示。