一种fpga逻辑资源的内建自测试方法

文档序号:6150805阅读:166来源:国知局
专利名称:一种fpga逻辑资源的内建自测试方法
技术领域
本发明涉及一种FPGA芯片的测试方法,特别是基于扫描寄存器FPGA逻 辑资源的内建自测试方法。
背景技术
FPGA测试利用其可重复编程特性,通过多次配置覆盖所有待测资源。对 其测试主要有外测试和内建自测试两种方法,外测试时,FPGA器件^皮配置成 相应测试电路,使用外部设备施加测试向量和专用设备分析输出结果,该方法 占用大量管脚,导致测试依赖于封装;与外测试相比,内建自测试方法向量施 加和响应分析都在内部完成,不需要专用测试i殳备和大量管脚,即降低了测试 成本,又增加了测试灵活性。
可配置逻辑模块是FPGA中最基本的功能单元,对逻辑资源的全面测试在 FPGA测试技术中处于十分重要的地位。目前,国外对FPGA逻辑资源的测试 进行了研究,提出了基于存储器回读的内建自测试理论,但这些理i^殳计复杂, 测试结果回读、诊断又耗费额外测试时间,完全测试逻辑资源需要很多配置, 增加了测试实施的难度。国内在这个领域的研究还处于起步阶段,针对主流内 建自测试技术的研究近乎空白,2004年8月《哈尔滨工业大学学报》第36巻 第8器发表了《基于BIST的FPGA逻辑单元测试方法》,文中介绍了一种基于 内建自测(BIST)的测试现场可编程门阵列(FPGA)逻辑单元的方法,讨论了测试 的配置结构、故障覆盖率和测试中出现的问题及解决办法。但文中只简单介绍 了 FPGA逻辑BIST的基本结构,给出了 BIST测试结构的一般常用步骤,但 没有对该方法作进一步深入的介绍。

发明内容
本发明的技术解决问题是克服现有技术的不足,提供一种FPGA逻辑资源的内建自测试方法,本发明构建了基于扫描链结构的内建自测试结构,简化
了自测试结果取回方式,采用本发明的测试方法可以减少FPGA逻辑资源的配 置次数,从而提高测试效率。
本发明的技术解决方案是 一种FPGA逻辑资源的内建自测试方法,包括 下列步骤
(a) 将FPGA器件内的逻辑模块按列交替划分为左右两个部分,对划分后 的逻辑模块进行配置与测试,逻辑模块的每次配置通过两个测试过程完成测试,
其中第一测试过程的配置方法为将最左列逻辑^t块配置为测试向量产生电i 各, 右半部分逻辑模块阵列配置为多个待测电路,相邻待测电路之间的逻辑模块阵 列配置为扫描链结构的输出响应分析电路;第二测试过程的配置方法为将最 右列逻辑模块配置为测试向量产生电路,左半部分逻辑模块阵列配置为多个待 测试电路,相邻待测电路之间逻辑模块阵列配置为扫描链结构的输出响应分析 电路;
(b) 将测试向量产生电路的输出端口与每个待测电路的输入端口相连接, 扫描链结构的输出响应分析电路的每个输入端口与相邻的两个待测电路的输出 端口相连接,从而形成内建自测试结构;
(c) 按照第一测试过程的配置结果进行测试由测试向量产生电路产生伪 随机穷举测试向量向待测电路施加测试图形,测试向量施加完成后,启动由扫
描链结构的输出响应分析电路构成的扫描链工作,在测试时钟的控制下,扫描 链结构的输出响应分析电路输出第一测试过程的内建自测试结果;然后按照第 二测试过程的配置结果重复第一测试过程,扫描链结构的输出响应分析电路输 出第二测试过程的内建自测试结果;
(d) 保持步骤(b)的内建自测试结构不变,重复执行步骤(c)直到测试覆 盖FPGA内的所有逻辑模块。
本发明的工作原理是将FPGA内部逻辑模块按列交替分成左右两半部 分,测试时首先将右半部分逻辑块阵列配置为待测电路、其余逻辑块阵列配置
5为测试向量产生电路和输出响应分析电路,然后将左半部分逻辑块阵列配置为 待测电路、其余逻辑块阵列配置为测试向量产生电路和输出响应分析电路,每 个测试过程需要保持电路结构不变,通过多次配置覆盖所有逻辑资源,测试结 果通过内部构建的扫描寄存器链输出。
本发明与现有技术相比的优点在于现有的可配置逻辑才莫块的测试方法是
外测试和基于配置存储器回读的内建自测试方法,其中外测试需要昂贵的专用
测试设备并且占用大量IO管脚,限制了器件类型不适合推广使用;其次,现有 的基于配置存储器回读的内建自测试方法,测试时需要4巴寄存器值抓取到配置 存储器中,然后再通过对配置存储器回读方法取出测试结果,这样不仅设计实 现困难,而且增加了额外测试时间。本发明中,提出一种采用基于扫描链结构 的内建自测试方法,在器件内部构建扫描寄存器链电路,测试时将锁存在扫描 链寄存器中的值扫描输出,与基于配置存储器回读方式相比,简化了内建自测 试结果取回方式,并且解决了测试结果回读、诊断耗费额外时间的问题,进而 提高了测试效率,通过利用本发明的内建自测试方法对Xilinx公司SpartanII A/irtex系列FPGA,简化了待测电路的配置结构,使每次配置的观察端口大大 减少,完全测试次数从42次被压缩到24次,并且达到了 100。/。的测试覆盖率, 从而降低了测试成本,增加了测试灵活性,有效提高了测试效率。


图1为FPGA的结构示意图2为FPGA可配置逻辑模块的结构示意图3为本发明所配置的内建自测试结构,图3(a)为第一测试过程的结构, 图3 ( b)为第二测试过程的结构;
图4为本发明配置的扫描链结构的输出响应分析电路;
图5为本发明实施例配置的待测电路结构图6为本发明实施例配置的扫描链结构的输出响应分析电路结构图7为本发明实施例中逻辑模块第1次配置待测电路结构图8为本发明实施例中逻辑模块第2次配置待测电路结构6图9为本发明实施例中逻辑模块第3次配置待测电路结构图; 图10为本发明实施例中逻辑模块第4次配置待测电路结构图; 图11为本发明实施例中逻辑模块第5次配置待测电路结构图; 图12为本发明实施例中逻辑模块第6次配置待测电路结构图; 图13为本发明实施例中逻辑模块第7次配置待测电路结构图; 图14为本发明实施例中逻辑模块第8次配置待测电路结构图; 图15为本发明实施例中逻辑模块第9次配置待测电路结构图; 图16为本发明实施例中逻辑模块第10次配置待测电路结构图; 图17为本发明实施例中逻辑模块第11次配置待测电路结构图; 图化为本发明实施例中逻辑模块第12次配置待测电路结构图。
具体实施例方式
FPGA基本电路结构如图1所示,主要由TITLE阵列001和输入输出模块 005组成,可编程逻辑模块002是其中一个TITLE阵列001中的逻辑单元,它 通过IMUX003和开关矩阵004实现和周围可编程逻辑模块之间的互连,用户 可以通过对可编程逻辑模块002配置来灵活实现各种功能。可配置逻辑模块 002是TITLE阵列001中的逻辑单元,如图2所示可配置逻辑模块002主要由 两个相同的SLICE单元构成,它通过IMUX003和开关矩阵004实现和周围可 编程逻辑模块之间的互连,用户可以通过对可配置逻辑模块002配置来灵活实 现各种功能。
本发明的内建自测试结构如图3所示,其内建自测试过程具体如下 (a)将可配置逻辑模块按列分成左右两部分,根据第 一列待测电路位置, 把所有奇数阵列逻辑模块定义为左半部分,把所有偶数阵列逻辑模块定义为右 半部分,对划分后的逻辑模块进行配置,逻辑资源的每次配置由两个测试过程 完成全部测试,第一测试过程的配置为将最左列逻辑块配置为测试向量产生 电路1,该电路采用线性反馈移位寄存器结构,产生伪随机穷举测试向量,其 中线性反馈移位寄存器由D触发器和线性异或门组成,因占用硬件面积小,在
7内建自测试电路中产生伪随机穷举测试向量用于施加测试图形,右半部分逻辑 块阵列配置为待测电路2,相邻待测电路之间逻辑块配置为输出响应分析电路
3,输出响应分析电路3采用基于扫描寄存器的集成ORA (输出相应分析器) 结构,用于比较相邻待测电路2的输出数据;第二测试过程的配置为将最右 列逻辑块配置为测试向量产生电路1,左半部分逻辑块阵列配置为待测试电路 2,相邻待测电路之间逻辑块配置为输出响应分析电路3;
(b) 将测试向量产生电路1的输出端口与每个待测电路2的输入端口相连 接,扫描链结构的输出响应分析电路3的输入端口与相邻的两个待测电路2的 输出端口相连接从而形成内建自测试结构;
(c) 按照第一测试过程的配置结果进行测试由测试向量产生电i 各1产生 伪随机穷举测试向量向每个待测电路2施加测试图形,测试向量施加完成后, 启动由输出响应分析电i 各3构成的扫描链4工作,扫描链结构的输出响应分析 电路3在测试时钟的控制下输出第一测试过程的内建自测试结果5;然后按照 第二测试过程的配置结果重复第一测试过程,扫描链结构的输出响应分析电路 3输出第二测试过程的内建自测试结果5;每个测试过程测试一半的逻辑模块, 第一、第二两个测试过程完成一次配置的全部测试;
(d) 保持步骤(b)的内建自测试结构不变,重复执行步骤(c)直到测试覆 盖FPGA内的所有逻辑模块。
扫描链结构的输出响应分析电路其内部结构如图4所示,由N级ORA结 构组成,N级ORA结构按照一维阵列首尾级^来组成扫描链结构,每级ORA 结构均包括异或逻辑41、或逻辑42、多路器43、寄存器46,每一级ORA结 构的异或逻辑41连接相邻两个待测电路2的输出,经异或逻辑41判断后,再 传输到或逻辑42,然后再经过多路器43连接到寄存器46,并经由反馈路径 44把判断结果锁存在寄存器46中,最后由寄存器输出端口 45输出,其中第一 级ORA多路器输入端口 47连接高电平信号,第一级ORA寄存器46输出端口 45连接到第二级ORA的多路器43输入端口 47,第二级ORA结构中寄存器46的输出端口 45连接第三级ORA结构中多路器43的输入端口 47,依次类 推,第N-1级ORA结构中寄存器46的输出端口 45连接到第N级ORA结构 中多路器43的输入端口 47,测试时每级ORA结构中多路器43的扫描控制端 口48接高电平,测试向量施加完成后,每级ORA结构中多路器43的扫描控 制端口 48接低电平,在测试时钟信号clock的控制下,所有ORA寄存器中锁 存的值依次从第N级ORA结构中寄存器46的输出端口 45输出,其中N为 ORA结构的个数,为整数。
下面以Xilinx/^司SpartanIIA/irtex系列FPGA为例对本发明的测试和配 置方法进行详细的描述。
将Spartan II A/irtex系列FPGA中的逻辑模块配置为待测电路,如图5所 示,由于每个逻辑模块包含两个SLICE单元,由每个SLICE单元配置成的待 测电路主要由函数发生器、运算逻辑、多路器和时序逻辑组成,其电路结构具 体描述如下函数发生器G101输出分别连接到多路器CYSELG120、异或逻 辑XORG、多路器F5MUX129以及多路器GYMUX130;函数发生器F102输 出分别连接到多路器CYSELF121、异或逻辑XORF、多路器F5MUX129以及 多路器FXMUX119;多路器BYMUX109输出连接到DGEN114、 INIT丫106、 INITX107以及多路器F6MUX130;多路器BXMUX110输出分别连接到 DGEN114、 WSGEN115、多路器CYINIT122、多路器DXMUX126以及多路 器F5MUX129; G2和G1可以经由与门GAND连接到多路器CY0G116; F2 和F1可以经由与门FAND连接到多路器CY0F117;多路器CEMUX111输出 分别连接到寄存器FFY104和寄存器FFX105的使能端;时钟信号可以经由多 路器CKINV112分别连接到WSGEN115、寄存器FFY104以及寄存器FFX105; 多路器SRMUX113输出分别连接到INITY106和INITX107;多路器 CYSELG120输出连接到进位逻辑CYMUXG127的使能端;多路器 CYSELF121输出连接到进位逻辑CYMUXF128的使能端;进位输入端CIN连 接到多路器CYINTI122;多路器CYINIT122输出又分别连接到运算逻辑CYMUXF128和异或逻辑XORF,运算逻辑CYMUXF128连接到运算逻辑 CYMUXG127或者直接连接到输出端口 XB;多路器CY0G116输出经由运算 逻辑CYMUXG127直接连接到输出端口 COUT或者经由多路器YBMUX124 连接到输出端口 YB;异或逻辑XORG输出连接到多路器GYMUX118;异或逻 辑XORF连接到多路器FXMUX119;多路器F5MUX129输出连接到多路器 FXMUX119或者直接连接到输出端口 F5,多路器F6MUX输出连接到多路器 GYMUX,多路器GYMUX118经由多路器DYMUX125连接到寄存器FFY104 数据输入端或者直接连接到输出端口 Y;多路器FXMUX119经由多路器 DXMUX126连接到寄存器FFX105数据输入端或者直接连接到输出端口 X;寄 存器FFY104输出连接到输出端口 YQ;寄存器FFX105输出连接到输出端口 XQ;配置选项RAMCONFIG100可以工作16x1 、 16x2、32" 、 16x1DP、 1SHIFT 以及2SHIFT等模式,复位选项SYNC—ATTR108可以设置同步SYNC和异步 ASYNC两种方式。
将Spartanll/Virtex系列FPGA中的逻辑模块配置为扫描链结构的输出响 应分析电路结构,由于Spartan II A/irtex系列FPGA中的每个逻辑模块配置的 待测电路包含两个相同SLICE配置的待测电路,每个SLICE单元配置的待测 电路包含两个输出信号,而一个输出响应分析电路连接相邻的两个逻辑模块配 置的待测电路,所以每个输出响应分析电路连接4个SLICE单元配置的待测电 路的八个输出,因此需要根据输出响应分析电路的工作原理对图4所示的电路 进行调整,具体结构如图6所示,由N级ORA结构组成,N级ORA结构按照 一维阵列首尾级联起来组成扫描链结构,每个ORA结构均包括4个异或逻辑 61、两个或逻辑62、 一个或逻辑63、多路器65、寄存器67,将相邻两个待测 电路的八个输出端口连接到输出响应分析电路输入端口即4个异或逻辑61,经 异或逻辑61判断,再经两个或逻辑62和或逻辑63判断,然后再经过多路器 65连接到寄存器67,并经由反馈路径64把判断结果锁存在寄存器67中,最 后由寄存器端口 66输出,第一级ORA结构中多路器65的输入端口 68连接高
10电平信号,第一级ORA结构中寄存器67的输出端口 66连接到第二级ORA 结构中多路器65的输入端口 68,第二级ORA结构中寄存器67的输出端口 66 同样连接到下一级ORA结构中多路器65的输入端口 68,测试结果Pass/Fail 由最后一级ORA结构中寄存器67的输出端口 66输出,测试时每级ORA结构 中多路器65的扫描控制端口 69接高电平,测试向量施加完成后,ORA结构 中多路器65的扫描控制端口 69输入低电平信号,选通扫描寄存器链工作,在 测试时钟信号的控制下,所有ORA寄存器中锁存的值依次从最后一级ORA结 构中寄存器65的输出端口 66输出。
按照上述的内建自测试方法,要对Virtex/SpartanII系列FPGA的逻辑模 块进行完全测试共需要分12次配置共24次测试,每次配置的两个测试过程完 全相同。下面对其中每次配置的一次测试过程进4亍详细的描述
第1次配置和测试如图7所示对图5所示的可配置逻辑模块进行配置, 每个将函数发生器G101和函数发生器F102配置为RAM模式,配置选项100 工作在2SHIFTS模式,函数发生器G101经由多路器GYMUX118连接到端口 Y输出,函凄復生器F102经由多路器FXMUX119连接到端口 X输出;选通多 路器BYMUX109的C3端和多路器BXMUX110的C3端连接到DGEN114, 选通多路器CLKINV112的C2端和多路器SRMUX113的C3端连接到 WSGEN115。将所有逻辑模块输入端G1、 G2、 G3、 G4、 F1、 F2、 F3、 F4 接高电平,将最左列或者最右列逻辑模块配置成线性反馈移位寄存器LFSR向 多路器BYMUX109的C3端、多路器BXMUX110的C3端、多路器SRMUX113 的C3端施加穷举测试向量,多路器CLKINV112的C2端连接到全局时钟。将 相邻两个逻辑模块4个SLICE的8个端口连接到异或逻辑61;第一级ORA结 构的扫描数据输入端68接高电平,寄存器67输出端口 66连接到下一级ORA 的扫描数据输入端口68,依次类推把所有寄存器连接起来。测试时,首先向所 有ORA结构公共输入端69输入高电平信号,将比较结果锁存至寄存器67; 测试向量施加完成后,向所有ORA结构公共输入端69输入低电平信号,启动
ii内建自测试电路工作,经过N个(N代表ORA结构数目)Clock周期,测试 结果由最后一级ORA寄存器67的输出端口 66输出。
第2次配置和测试如图8所示将函l復生器G101和函数发生器F102 配置成相等逻辑,它们的输出连接到多路器F5MUX129,将F5MUX1297输出 端和F5IN连接到多路器F6MUX130,多路器F6MUX130输出端经由多路器 GYMUX124连接到YB;将多路器F5MUX129输出连接到F5,选通多路器 BYMUX109的C3端并连接到多路器F6MUX130控制端,选通多路器 BXMUX110的C3端并连接到多路器F5MUX129控制端。将输出端口 F5连接 到相邻SLICE输入端口 F5IN;将最左列或者最右列逻辑块配置成线性反^t贵移 位寄存器LFSR,向G1端、F1端、F5IN端、多路器BYMUX109的C3端以 及多路器BXMUX110的C3端施加穷举测试向量。将相邻两个逻辑块4个 SLICE的8个端口连接到异或逻辑61;第一级ORA结构的扫描数据输入端68 接高电平,寄存器67的输出端口 66连接到下一级ORA结构的扫描数据输入 端口68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA公共输 入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加完成后, 向所有ORA公共输入端69输入低电平信号,启动BIST电路工作,经过N个 (N代表ORA数目)Clock周期,测试结果由最后一级ORA结构中寄存器67 的输出端口 66输出。
第3次配置和测试如图9所示将函氣《生器G101和函数发生器F102 配置成相等逻辑,其中函数发生器G101经由异或逻辑后输入至多路器 GYMUX118再通过多路器DYMUX125连接到寄存器104,函数发生器F102 经由异或逻辑后输入至多路器GXMUX119再通过多路器DXMUX126连接到寄 存器105;将寄存器104和寄存器105配置成FF模式,INITY106和INITX107 配置成HIGH模式,SYNC—ATTR108配置成SYNC;选通多路器BYMUX109 的C1端、多路器CEMUX111的C1端、多路器CLKINV112的C2端以及多 路器SRMUX113的C4端并连接到INITY106和INITX107;将CIN接入多路器CYINIT122并经由运算逻辑128和运算逻辑127输出至COUT端,选通多 路器CYSELG120和多路器C丫SELF121的C1并分别连接到运算逻辑127和 运算逻辑128。将最左列或者最右列逻辑块配置成线性反馈移位寄存器LFSR 向G1端、F1端、多路器BYMUX109的C1端、多路器CEMUX111的C1端、 多路器CLKINV112的C2端以及多路器SRMUX113的C4端施加穷举测试向 量。将相邻两个逻辑块4个SLICE的8个端口连接到异或逻辑61;第一级ORA 的扫描数据输入端68接高电平,寄存器输出端口 66连接到下一级ORA结构 的扫描数据输入端口 68,依次类推把所有寄存器连接起来。测试时,首先向所 有ORA结构的公共输入端69输入高电平信号,将比较结果锁存至寄存器67; 测试向量施加完成后,向所有ORA结构的公共输入端69输入低电平信号,启 动BIST电路工作,经过N个(N代表ORA数目)Clock周期,测试结果由最 后一级ORA结构中寄存器67的输出端口 66输出。
第4次配置和测试如图10所示将函数发生器G101和函数发生器F102 配置成相等逻辑,它们的输出端连接到多路器F5MUX129再经由多路器 GXMUX119和多路器DXMUX126连接至寄存器105,其中函数发生器G101 输出端又经由多路器GYMUX118和多路器DYMUX125连接到寄存器104,选 通多路器BXMUX110端并连接至F5MUX129控制端;将寄存器104和寄存器 105配置成FF模式,INITY106和INITX107配置成LOW模式, SYNC—ATTR108配置成SYNC;选通多路器BYMUX109的C2端、多路器 CEMUX111的C4端、多路器CLKINV112的C2端以及多路器SRMUX113的 C2端并连接到INITY106和INITX107。将最左列或者最右列逻辑块配置成线 性反馈移位寄存器LFSR向G1端、F1端、多路器BYMUX109的C2端、多 路器BXMUX110的C3端、多路器CEMUX"1的C4端、多路器CLKINV112 的C2端以及多路器SRMUX113的C2端施加穷举测试向量。将相邻两个逻辑 块4个SLICE的8个端口连接到异或逻辑61;第一级ORA的扫描数据输入端 68接高电平,寄存器的输出端口 66连接到下一级ORA结构的扫描邀:据输入端口68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA结构的 公共输入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加 完成后,向所有ORA结构的公共输入端69输入低电平信号,启动BIST电路 工作,经过N个(N代表ORA数目)Clock周期,测试结果由最后一级ORA 结构中寄存器67的输出端口 66输出。
第5次配置和测试如图11所示将函教l生器G101和函凄史发生器F102 配置成异或逻辑,其中函数发生器G101经由多路器GYMUX118再通过多路 器DYMUX125连接到寄存器104,函数发生器F102经由多路器GXMUX119 再通过多路器DXMUX126连接到寄存器105;将寄存器104和寄存器105配 置成FF模式,INITY106和INITX107配置成HIGH模式,SYNC_ATTR108 配置成ASYNC;选通多路器BYMUX109的C1端、多路器CEMUX"1的C4 端、多路器CLKINV112的C2端以及多路器SRMUX113的C1端并连接到 INITY106和INITX107。将最左列或者最右列逻辑块配置成线性反馈移位寄存 器LFSR向G1、 G2、 G3、 G4、 F1、 F2、 F3、 F4端、多路器BYMUX109的 C1端、多路器CEMUX111的C1端、多路器CLKINV112的C2端以及多路器 SRMUX113的C4端施加穷举测试向量。将相邻两个逻辑块4个SLICE的8 个端口连接到异或逻辑61;第一级ORA的扫描数据输入端68接高电平,寄 存器输出端口 66连接到下一级ORA的扫描数据输入端口 68,依次类推把所 有寄存器连接起来。测试时,首先向所有ORA结构的公共输入端69输入高电 平信号,将比较结果锁存至寄存器67;测试向量施加完成后,向所有ORA公 共输入端69输入低电平信号,启动BIST电路工作,经过N个(N代表ORA 数目)Clock周期,测试结果由最后一级ORA结构中寄存器67的输出端口 66 输出。
第6次配置和测试如图12所示将函数发生器G101和函数发生器F102 配置成同或逻辑,其中函数发生器G101经由多路器GYMUX118再通过多路 器DYMUX125连接到寄存器104,函数发生器F102经由多路器GXMUX119
14再通过多路器DXMUX126连接到寄存器105;将寄存器104和寄存器105配置成FF模式,INITY106和INITX107配置成LOW模式,SYNC—ATTR108配置成ASYNC;选通多路器BYMUX109的C1端、多路器CEMUX111的C3端、多路器CLKINV112的C2端以及多路器SRMUX113的C1端并连接到INITY106和INITX107。将最左列或者最右列逻辑块配置成线性反馈移位寄存器LFSR向G1、 G2、 G3、 G4、 F1、 F2、 F3、 F4端、多路器BYMUX109的C1端、多路器CEMUX111的C3端、多路器CLKINV112的C2端以及多路器SRMUX113的C1端施加穷举测试向量。将相邻两个逻辑块4个SLICE的8个端口连接到异或逻辑61;第一级ORA的扫描数据输入端68接高电平,寄存器输出端口 66连接到下一级ORA结构的扫描数据输入端口 68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA结构的公共输入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加完成后,向所有ORA公共输入端69输入低电平信号,启动BIST电路工作,经过N个(N代表ORA数目)Clock周期,测试结果由最后一级ORA结构中寄存器67的输出端口 66输出。
第7次配置和测试如图13所示将函数发生器G101和函数发生器F102配置成同或逻辑,其中函M生器G101经由多路器GYMUX118再通过多路器DYMUX125连接到寄存器104,函数发生器F102经由多路器GXMUX119再通过多路器DXMUX126连接到寄存器105;将寄存器104和寄存器105配置成LATCH模式,INITY106和INITX107配置成LOW模式,SYNC_ATTR108配置成ASYNC;选通多路器BYMUX109的C3端、多路器CEMUX111的C2端、多路器CLKINV112的C1端以及多路器SRMUX113的C1端并连接到INITY106和INITX107。将最左列或者最右列逻辑块配置成线性反馈移位寄存器LFSR向G1、 G2、 G3、 G4、 F1、 F2、 F3、 F4端、多路器BYMUX109的C3端、多路器CEMUX111的C2端、多路器CLKINV112的C1端以及多路器SRMUX113的C1端施加穷举测试向量。将相邻两个逻辑块4个SLICE的8个端口连接到异或逻辑61;第一级ORA结构的扫描数据输入端68接高电平,寄存器67的输出端口 66连接到下一级ORA结构的扫描数据输入端口 68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA结构的公共输入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加完成后,向所有ORA结构的公共输入端69输入低电平信号,启动BIST电路工作,经过N个(N代表ORA数目)Clock周期,测试结果由最后一级ORA结构寄存器67的输出端口 66输出。
第8次配置和测试如图14所示将寄存器104和寄存器105配置成LATCH模式,INITY106和INITX107配置成HIGH模式,SYNC_ATTR108配置成ASYNC;选通多路器BYMUX109的C4端、多路器CEMUX111的C2端、多路器CLKINV112的C1端以及多路器SRMUX113的C3端并连接到INITY106和INITX107。将最左列或者最右列逻辑块配置成线性反馈移位寄存器LFSR向多路器BYMUX109的C4端、多路器CEMUX111的C2端、多路器CLKINV112的C1端以及多路器SRMUX113的C3端施加穷举测试向量。将相邻两个逻辑块4个SLICE的8个端口连接到异或逻辑61;第一级ORA结构的扫描数据输入端68接高电平,寄存器67的输出端口 66连接到下一级ORA结构的扫描数据输入端口 68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA结构的公共输入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加完成后,向所有ORA结构的公共输入端69输入低电平信号,启动BIST电路工作,经过N个(N代表ORA数目)Clock周期,测试结果由最后一级ORA结构寄存器67的输出端口 66输出。
第9次配置和测试如图15所示将函凄t发生器G101和函凄t发生器F102配置成相等逻辑,它们输出端分别经由多路器CYSELG120和多路器CYSELF121连接到运算逻辑127和运算逻辑128;将端口 G1和G2与操作后经由多路器CY0G116连接到运算逻辑127,将端口 F1和F2与操作后经由多路器CY0F117连接到运算逻辑128;选通多路器BXMUX110的C4端经由多
16路器CYINIT连接至运算逻辑128,将运算逻辑128输出端连接至XB,将运算逻辑127输出端经由多路器YBMUX124连接至YB。将最左列或者最右列逻辑块配置成线性反馈移位寄存器LFSR向G1、 G2、 F1、 F2端以及多路器BXMUX110的C4端施加穷举测试向量。将相邻两个逻辑块4个SLICE的8个端口连接到异或逻辑61;第一级ORA结构的扫描数据输入端68接高电平,寄存器67的输出端口 66连接到下一级ORA结构的扫描数据输入端口 68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA结构的公共输入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加完成后,向所有ORA结构的公共输入端69输入低电平信号,启动BIST电路工作,经过N个(N代表ORA数目)Clock周期,测试结果由最后一级ORA结构寄存器67的输出端口66输出。
第10次配置和测试如图16所示将函数发生器G101和函数发生器F102配置成相等逻辑,它们输出端分别经由多路器CYSELG120和多路器CYSELF121连接到运算逻辑127和运算逻辑128;将端口 G1经由多^各器CY0G116连接到运算逻辑127,将端口 F1经由多路器CY0F117连接到运算逻辑128;选通多路器BXMUX110的C3端经由多路器CYINIT连接至运算逻辑128,将运算逻辑128输出端连接至XB,将运算逻辑127输出端经由多路器YBMUX124连接至YB。将最左列或者最右列逻辑块配置成线性反馈移位寄存器LFSR向G1、 F1端以及多路器BXMUX110C3端施加穷举测试向量。将相邻两个逻辑块4个SLICE的8个端口连接到异或逻辑61;第一级ORA结构的扫描数据输入端68接高电平,寄存器67的输出端口 66连接到下一级ORA结构的扫描数据输入端口 68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA结构的公共输入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加完成后,向所有ORA结构的公共输入端69输入低电平信号,启动BIST电路工作,经过N个(N代表ORA数目)Clock周期,测试结果由最后一级ORA结构寄存器67的输出端口 66输出。第11次配置和测试如图17所示将函数发生器G101和函数发生器F102配置成相等逻辑,它们输出端分别经由多路器CYSELG120和多路器CYSELF121连接到运算逻辑127和运算逻辑128;将多路器CY0G116的C2端连接到运算逻辑127,将多路器CY0F117的C2端连接到运算逻辑128;选通多路器BXMUX110的C2端经由多路器CYINIT连接至运算逻辑128,将运算逻辑128输出端连接至XB,将运算逻辑127输出端经由多路器YBMUX124连接至YB。将最左列或者最右列逻辑块配置成线性反4贵移位寄存器LFSR向G1 、 F1端以及多5^器BXMUX110的C2端施加穷举测试向量。将相邻两个逻辑块4个SLICE的8个端口连^t妄到异或逻辑61;第一级ORA结构的扫描数据输入端68接高电平,寄存器67的输出端口 66连接到下一级ORA结构的扫描数据输入端口 68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA结构的公共输入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加完成后,向所有ORA结构的公共输入端69输入低电平信号,启动BIST电路工作,经过N个(N代表ORA数目)Clock周期,测试结果由最后一级ORA结构寄存器67的输出端口 66输出。
第12次配置和测试如图18所示将函数发生器G101和函数发生器F102配置成相等逻辑,它们输出端分别经由多路器CYSELG120和多路器CYSELF121连接到运算逻辑127和运算逻辑128;将多路器CY0G116的C1端连接到运算逻辑127,将多路器CY0F117的C1端连接到运算逻辑128;选通多路器BXMUX110的C1端经由多路器CYINIT连接至运算逻辑128,将运算逻辑128输出端连接至XB,将运算逻辑127输出端经由多路器YBMUX124连接至YB。将最左列或者最右列逻辑块配置成线性反馈移位寄存器LFSR向G1、 F1端以及多路器BXMUX110的C1端施加穷举测试向量。将相邻两个逻辑块4个SLICE的8个端口连"t妄到异或逻辑61;第一级ORA结构的扫描凄t据输入端68接高电平,寄存器67的输出端口 66连接到下一级ORA结构的扫描数据输入端口 68,依次类推把所有寄存器连接起来。测试时,首先向所有ORA结构的公共输入端69输入高电平信号,将比较结果锁存至寄存器67;测试向量施加完成后,向所有ORA结构的公共输入端69输入低电平信号,启动BIST电路工作,经过N个(N代表ORA数目)Clock周期,测试结果由最后一级ORA结构寄存器67的输出端口 66输出。
本发明的逻辑资源内建自测试方法同样适用于其他型号FPGA逻辑资源的内建自测试,只是逻辑模块配置的待测电路不同,可以根据FPGA逻辑单元所要配置的待测电路结构进行不同的配置过程和测试从而完全覆盖所有的逻辑资源。本发明未详细描述内容为本领域技术人员公知技术。
权利要求
1、一种FPGA逻辑资源的内建自测试方法,其特征在于包括下列步骤(a)将FPGA器件内的逻辑模块按列交替划分为左右两个部分,对划分后的逻辑模块进行配置与测试,逻辑模块的每次配置通过两个测试过程完成测试,其中第一测试过程的配置方法为将最左列逻辑模块配置为测试向量产生电路(1),右半部分逻辑模块阵列配置为多个待测电路(2),相邻待测电路之间的逻辑模块阵列配置为扫描链结构的输出响应分析电路(3);第二测试过程的配置方法为将最右列逻辑模块配置为测试向量产生电路(1),左半部分逻辑模块阵列配置为多个待测试电路(2),相邻待测电路之间逻辑模块阵列配置为扫描链结构的输出响应分析电路(3);(b)将测试向量产生电路(1)的输出端口与每个待测电路(2)的输入端口相连接,扫描链结构的输出响应分析电路(3)的每个输入端口与相邻的两个待测电路(2)的输出端口相连接,从而形成内建自测试结构;(c)按照第一测试过程的配置结果进行测试由测试向量产生电路(1)产生伪随机穷举测试向量向待测电路(2)施加测试图形,测试向量施加完成后,启动由扫描链结构的输出响应分析电路(3)构成的扫描链(4)工作,在测试时钟的控制下,扫描链结构的输出响应分析电路(3)输出第一测试过程的内建自测试结果(5);然后按照第二测试过程的配置结果重复第一测试过程,扫描链结构的输出响应分析电路(3)输出第二测试过程的内建自测试结果(5);(d)保持步骤(b)的内建自测试结构不变,重复执行步骤(c)直到测试覆盖FPGA内的所有逻辑模块。
2、 根据权利要求1所述的一种FPGA逻辑资源的内建自测试方法,其特 征在于所述的测试向量产生电路(1 )采用线性反馈移位寄存器结构产生伪随 机穷举测试向量。
3、 根据权利要求1所述的一种FPGA逻辑资源的内建自测试方法,其特 征在于所述的扫描链结构的输出响应分析电路(3)由N级ORA结构组成,每一级ORA结构均包括异或逻辑(41)、或逻辑(42)、多路器(43)和寄存 器(46),每一级ORA结构的异或逻辑(41 )连接相邻两个待测电路(2)的 输出,经异或逻辑判断后接或逻辑(42),然后经多路器(43)连接寄存器(46) 的数据输入端,经由反馈路径(44)把逻辑判断结果锁存在寄存器(46)中, 其中第一级ORA结构中多路器输入端口 (47)连接高电平,寄存器(46)的 输出端口 (45)连接第二级ORA结构中多路器(43)的输入端口 (47),第二 级ORA结构中寄存器(46)的输出端口 (45)连接第三级ORA结构中多路器 (43)的输入端口 (47),依次类推,第N-1级ORA结构中寄存器(46)的 输出端口 (45)连接到第N级ORA结构中多路器(43)的输入端口 (47)从 而组成扫描链,测试时每级ORA结构中多路器(43)的扫描控制端口 (48) 接高电平,测试向量施加完成后,每级ORA结构中多路器(43)的扫描控制 端口 (48)接低电平,在测试时钟信号clock的控制下,所有ORA寄存器中锁 存的值依次从第N级ORA结构中寄存器(46)的输出端口 (45)输出,其中 N为整数。
全文摘要
一种FPGA逻辑资源的内建自测试方法,将FPGA内部逻辑模块按列交替分成左右两半部分,测试时首先将右半部分逻辑块阵列配置为待测电路,其余逻辑块阵列配置为测试向量产生电路和输出响应分析电路,然后将左半部分逻辑块阵列配置为待测电路,其余逻辑块阵列配置为测试向量产生电路和输出响应分析电路,每个过程保持电路结构不变,通过多次配置覆盖所有逻辑资源,测试结果通过内部构建的扫描寄存器链输出。本发明中将所有配置为响应分析电路的逻辑模块按照一维阵列首尾级联起来,简化了自测试结果取回方式,在100%测试覆盖率前提下,减少了FPGA逻辑资源的配置次数,降低了测试成本,增加了测试灵活性,从而提高测试效率。
文档编号G01R31/3185GK101515020SQ20091007884
公开日2009年8月26日 申请日期2009年3月5日 优先权日2009年3月5日
发明者涛 周, 帆 张, 张志权, 文治平, 慜 王, 雷 陈 申请人:北京时代民芯科技有限公司;中国航天时代电子公司第七七二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1