基于FPGA的数据域边界扫描测试向量发生器的设计与实现
扫描二维码
随时随地手机看文章
摘 要: 设计了一种基于FPGA的边界扫描测试向量发生器,该发生器可以为边界扫描故障诊断系统提供测试向量,并可计算测试向量的故障覆盖率。与以往通过软件提供测试向量的方法相比,该设计在速度和效率上有了较大提高。
关键词: 数据域测试;边界扫描;故障注入;伪随机序列
随着超大规模集成电路技术的发展,现代电子系统中印刷电路板越来越复杂,多层板的设计也越来越普遍。由于大量使用各种表贴元件和BGA封装元件,使得元器件的管脚密度不断提高,采用万用表、示波器测试芯片的传统“探针”方法已经不能满足要求。基于此,联合测试行动组JTAG(Joint Test Action Group)于1988年提出了第一个边界扫描机制的标准,即JTAG标准[1]。边界扫描技术是应用于数字集成电路器件的测试性结构设计方法。所谓“边界”是指测试电路被设置在IC器件逻辑功能电路的四周,位于靠近器件输入、输出引脚的边界处。所谓“扫描”是指连接器件各输入、输出引脚的测试电路实际上是一种串行移位寄存器,这种移位寄存器叫做“扫描路径”,沿着这条路径可输入由“0”和“1”组成的各种编码,对电路进行“扫描”式检测,从而定位故障芯片,并对芯片进行更换。然而,人们对具体电路测试向量的生成主要是依靠软件实现,但当面临大规模复杂问题时,基于软件的测试向量生成方法往往在速度上受到本质是串行的计算机系统的制约,导致运算速度较慢。本文设计了一种基于FPGA的边界扫描测试向量发生器,由于FPGA并行运行的特性,提高了测试向量产生的速度和效率。
1 数据域测试理论与算法
数据域测试是对数字电路或系统进行故障侦查、定位和诊断[2]。数据域测试是提高数字系统可靠性的重要途径,对当代集成电路工业具有举足轻重的作用。
1.1 固定型故障模型
固定型故障模型是指电路或系统中某一信号线在系统运行过程中总是固定在某一逻辑值上[3]。如果该线固定在逻辑高电平上,则称之为固定1故障,简记为s-a-1;如果该线固定在逻辑低电平上,则称之为固定0故障,简记为s-a-0。
1.2 布尔差分算法
布尔差分法是用数学方法来研究故障的传播,从而求得故障的测试集[4]。为了叙述方便,本文对于布尔函数f(X)=f(x1,x2,…,xn)定义如下:
f(xi)=f(x1,x2,…,xi,…,xn)
LFSR的逻辑功能完全由其反馈函数决定,图1中所示的LFSR的行为完全由反馈系数Ci决定,由反馈系数Ci在二元域上定义的多项式:
称为该线性反馈移位寄存器的特征多项式。以n次本原多项式为特征多项式的LFSR可产生周期为2n-1的伪随机序列。
3.2 故障运算机模块
本文以ISCAS`85基准电路的C17电路为例来设计故障运算机模块。C17电路的单固定故障数目为34。将故障注入控制字M和Fv的宽度设置为9位,表示每个周期可以执行8个故障的计算,每5个时钟周期,测试向量保持不变,故障运算机模块依次注入全部故障。故障注入控制字的数据如图2所示。表中阴影部分第一、二周期以及第三个周期中M[16]、Fv[16]表示注入固定1型故障,其余部分表示注入固定0型故障。