微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于导航接收机的DSP外设存储器行进测试技术

基于导航接收机的DSP外设存储器行进测试技术

时间:09-16 来源:3721RD 点击:

DSP作为电子系统中数字运算的核心,所操作数据的正确性是系统正常运行的基本保证。以导航接收机中的DSP应用为例,捕获跟踪、信号解调、电文格式转换、多径抑制、抗干扰等实时任务每时每刻都在进行比特信息的交互。作为系统数据的中转站,存储器的任何物理故障都有可能导致系统出现严重的异常。因此,需要一种快速有效的存储器测试算法对DSP外设存储器进行实时功能验证和检测,确保器件没有物理故障[1]。本方法专门针对存储器中AF、SAF、SOF、TF、CF故障的检测,如图1中虚线框内所示。

\

在已有的故障检测算法中,Checkerboard算法的测试向量类似于国际象棋中黑白相间的棋盘格,使用0-1间隔的测试序列写入存储器,运行时间为O(N),但故障覆盖率较低[2]。Galpat算法遍历了每个比特对其他比特的影响,可以检测所有非链接的静态故障,但运行时间为O(N2)[3]。在现有工艺条件下,完成一片兆字节容量的存储器的Galpat测试需要几百年。行进算法是工业中经常使用的存储器测试算法,如MATS++、March X、March C-等[4],其运行时间为O(N),具有较高的故障覆盖率,但通常不能覆盖所有静态非链接故障。

本文在考虑存储器静态非链接故障的基础上,以字作为基本检测单元,提出了一种可以检测所有SAF、TF、AF、SOF、CF故障的行进测试方案,其运算量为(11N+5v)/u+2N,其中,每个字为u比特,u=2v。

1 故障模型与定义

本文采用文献[2]通用的术语定义。

1.1 术语定义

为了方便描述以字作为基本检测单元的故障检测方法,补充定义以下术语:

· u:一个字的比特数,u=2v(v为非负整数)。

· P:u比特的测试向量字。

· P0:全0测试向量字。P0=bu…b2b1,bu=…=b2=b1=0。

· M:某个基于比特的行进测试算法,由一系列行进序列组成。

· MP:M对应的基于字的行进测试算法,P是u比特的测试向量字。

1.2 存储器故障模型

存储器静态非链接故障包括单个单元故障和耦合故障。

(1)单个单元故障

单个单元故障包括:SAF、SOF、AF和TF,其分类及检测序列如表1所示。

(2)耦合故障

耦合故障是一个单元的逻辑值受另一个单元的影响。包括:①CFin故障(inversion Coupling Fault)是指单元i翻转会导致单元j翻转;②CFid故障(idempotent Coupling Fault)是指单元i翻转会导致单元j的逻辑值为某个定值(0或1);③CFst故障(state Coupling Fault)是指单元i赋值为某个定值时,会导致单元j的逻辑值为某个定值(0或1)。

2 基于字的行进算法


2.1 基于比特的行进与基于字的行进

基于比特的行进会遍历所有的比特单元,而基于字的行进则是遍历所有的字单元。对于N比特的存储器

目前大多数存储器读写操作是基于字的。对于N比特存储器,如果一个字为u比特,则对于相同的行进序列,基于字的行进与基于比特的行进相比,测试时间减少到原来的1/u;基于字的行进测试缺点在于故障检测率会下降,需要更多的测试向量字来提高故障检测率。

2.2 字中耦合故障和字间耦合故障

耦合故障分为字中耦合和字间耦合两种情况,如图2所示。字中耦合故障是指同一个字内的两个比特i和j,比特i的状态变化或操作会引起比特j逻辑值故障;字间耦合故障是指比特i和j分别处于两个不同的字中,比特i的状态变化或操作会引起比特j逻辑值故障。

\

由图2可以看出,如果M可以检测出所有的CF故障,则MP0可以检测出所有的字间耦合故障,但通常只能测出一部分字中耦合故障。

2.3 基于字的故障检测

为了能够检测出所有的SAF、TF、AF、SOF、CF故障,考虑以字为基本检测单元,采用下面的行进序列进行故障检测:

\

其中:

存储器共N比特,每个字为u比特,u=2v。

P0=bu…b2b1,则bu=…=b2=b1=0

PAj=bu…b2b1,则当i mod 2j>2j-1时,bi=1,i=1,2,…,u。

PBj=bu…b2b1,则当i≤j时,bj=1;当i>j时,bi=0。

结论1:M0可以检测所有的SAF、TF、AF故障,以及所有的<↑;→>、<↓;→>、<;←>、<↑;←>、<↓;←>、<;←>、<↑;>、<↓;>、<↑;1/0>、<↓;0/1>、<0;0/1>、<1;1/0>故障。

证明:M0对应的基于比特的行进算法为March C-。March C-可以检测出所有的SAF、TF、AF、CFin、CFst、CFid[4],因此M0可以检出所有的SAF、TF、AF、字间CFin、字间CFst、字间CFid。下面考察M0对字中CF故障的检测。

由于M0包含行进序列\ 因此可以检测出字中耦合比特由0翻转为1引起\

因此可以检测出字中耦合比特由1翻转为0引起的<↓;0/1>、<0;0/1>故障;又因为M0经历了写0写1又写0的两次比特反转操作,所以可以检测出所有的单向翻转CFin故障(包括<↑; →>、<↓;→>、<;←>、<↑;←>、<↓;←>、<;←>)和单次翻转CFin故障(包括<↑;>和<↓;>因此可以检测出字中耦合比特由1翻转为0引起的<&darr;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top