《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于FPGA的数据域边界扫描测试向量发生器的设计与实现
基于FPGA的数据域边界扫描测试向量发生器的设计与实现
来源:电子技术应用2011年第9期
齐少华,刘 震
电子科技大学 自动化工程学院,四川 成都611731
摘要: 设计了一种基于FPGA的边界扫描测试向量发生器,该发生器可以为边界扫描故障诊断系统提供测试向量,并可计算测试向量的故障覆盖率。与以往通过软件提供测试向量的方法相比,该设计在速度和效率上有了较大提高。
中图分类号: TP277
文献标识码: A
文章编号: 0258-7998(2011)09-0018-03
Design and implementation of data-domain boundary scan test vector generator based on FPGA
Qi Shaohua,Liu Zhen
School of Automation Engineering,University of Electronic Science and Technology,Chengdu 611731,China
Abstract: In this paper, an FPGA-based boundary scan test vector generator is presented.The test vector generator provides test vector for fault diagnosis boundary scan system and can calculate fault coverage. This design ,compared with previous test vectors generator via software methods, the speed and efficiency has been greatly improved.
Key words : data domain test;boundary scan;fault injection;pseudo-random sequence


 随着超大规模集成电路技术的发展,现代电子系统中印刷电路板越来越复杂,多层板的设计也越来越普遍。由于大量使用各种表贴元件和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型故障。

 

 

3.3 结果处理模块
3.3.1 结果处理第一级模块

    由于本系统是并行运行的,若有多个输出则可能对同一个故障重复观察。因此,本系统要实现故障覆盖率的计算。结果处理第一级模块就要消除对故障的重复计算。
3.3.2 结果处理第二级模块
    结果处理第二级模块是排除一个测试向量集对同一个故障在输出端重复观察的影响,第二级模块以第一级模块输出作为输入,可以求得故障覆盖率,并通知边界扫描测试系统采集测试向量。
3.4 控制模块
    控制模块主要协调各个模块的工作时序,使各功能模块可以在控制信号下有序工作。clk2是伪随机测试向量产生模块的时钟频率,clk2的时钟周期是系统时钟周期的k倍。设电路中的故障总数为M,每个时钟周期可以模拟的故障数目为N,,其中int为取整。
3.5 系统结构原理图
    使用Quartusii软件建立系统结构原理图如图3所示。该系统通过并行故障模拟算法生成测试向量,可通知边界扫描故障诊断系统对测试向量进行采集并存入存储器中,并可以求出测试向量集的故障覆盖率。

4 系统实现以及结果分析
4.1 资源占用

    本系统采用Altera公司的Cyclone II系列EP2C5-AF256A7芯片进行验证与实现。系统资源占用报告如图4所示。从报告中可以看出,硬件实现的测试向量发生器占用了较少的硬件资源,该芯片有足够的硬件资源供系统进行优化和完善。

4.2 结果分析
    本文采用Quartusii 9.0软件以及Modelsim软件对各个功能模块及系统进行仿真,分析结果表明了设计的正确性。系统的仿真结果如图5所示,从波形中可知,所得测试向量集的故障覆盖率达到了90%以上。实践表明,若单固定型故障覆盖率达到90%以上就可以实现对被测系统的大部分故障进行检测。从仿真结果中可知本设计实现了期望的功能。
    本文采用Altera公司的FPGA器件,设计了一种基于FPGA的、为边界扫描故障诊断系统提供测试向量的测试向量发生器。与以往的通过软件生成测试向量的方法相比,虽然消耗了一定的硬件资源,但在速度和效率上得到了提高。由于本文生成测试向量的方法处于试验阶段,还有待优化与完善。
参考文献
[1] 宋克柱.边界扫描测试的原理及应用设计[J].电子技术,2001,28(10):605-606.
[2] 陈光禹.数据域测试及仪器[M].电子科技大学出版社,2001.
[3] 陈光禹.可测性设计技术[M].电子工业出版社,1997.
[4] 古天祥.电子测量原理[M].机械工业出版社,2009.
[4] 陈建武.基于FPGA的故障模拟器[D].湖南:湖南大学,2010.

此内容为AET网站原创,未经授权禁止转载。