首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 一种FPGA的可编程逻辑单元的全覆盖测试方法
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
一种FPGA的可编程逻辑单元的全覆盖测试方法
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2015-7-28 19:52
|
只看该作者
一种FPGA的可编程逻辑单元的全覆盖测试方法
嵌入式软件
,
测试仪
,
通用
,
资源
1 引言
现场可编程门阵列(FPGA)是一种通用器件,包含大量重复的可编程逻辑块(CLB)、输入输出单元(IOB)、可编程互连线(PI)等基本单元。
FPGA的测试分为2类:生产测试(MTP)和应用测试(ATP)。FPGA的制造厂商采用MTP,因为MTP是覆盖了整个FPGA资源的测试;然而FPGA的使用者更关心ATP,因为他们只关心使用的那部分资源是否有缺陷。例如有人使用了自动测试仪(ATE)和FPGA厂商提供的嵌入式软件测试FPGA。本文研究的是MTP。
FPGA是一种“事先”无功能的器件,对它的测试需要经历功能配置和故障扫描2个阶段,为了实现高的测试覆盖率,往往需要对FPGA进行多次配置。
由于FPGA中90%的逻辑功能都是由CLB所实现,所以CLB的测试在FPGA测试中占有重要地位。要完成FPGA中所有CLB的测试,需要多次下载不同的配置图形和进行故障扫描。在过去10年间,有大量的文章研究CLB故障的诊断,例如研究了减少单个CLB的配置次数的算法,但这些算法仅能证明一个CLB内部是否有错误,却不能直接应用于对一个FPGA中的所有CLB进行全覆盖测试,不能发现一个FPGA中发生错误的CLB的具体位置,而这是FPGA制造测试中最需要关注的问题。对于一个FPGA中的CLB的测试,目前有直接测试方法、基于异或门扫描链的测试方法,基于与门和或门扫描链的测试方法、基于阵列的测试方法、基于内建自测试(BIST)的方法等。上述的几种测试方法不能实现对一个FPGA的全部CLB的全覆盖测试,原因是利用FPGA生产厂商的软件,如Xilinx公司的ISE或Ahera公司的Quartus II产生配置图形时,采用的是自动布局布线的功能,不能保证覆盖每一个CLB中的所有器件和端口。
如果要对FPGA中CLB单元进行全覆盖测试和定位,就必须对一个FPGA中所有CLB单元进行有序的编号,也就是需要软件能够控制FPGA中CLB单元的位置及其单元之间的连线,实现CLB的规则排列。因此,本文通过自主开发的软件(ConPlacement软件)产生规则布局CLB串行移位阵列,在此基础上形成的FPGA定位配置图形,以及FPGA自动定位算法。
2 FPGA自动测试方法
2.1 概述
本文提出的基于SOC软硬件
协同
技术的FPGA自动测试方法包括软件和硬件两个部分。硬件部分的实现参照文献。软件部分实现了表1中相对应函数的分别调用。一方面,当自动配置时,首先调用ConPlacement函数来实现FPGA中CLB单元按顺序布局和布线,然后调用Function for configurati-on函数来实现对被测试FPGA进行配置,最后调用configuration timing函数来实现配置时序,产生保证能把配置图形成功地下载到被测试FPGA中的时序。当自动故障扫描时,首先调用Function for scan函数来开始故障扫描,然后调用Virtual FPGA-under-test函数和Testbench函数来实现FPGA内部被测试CLB单元的激励的添加,最后调用Function for waveform displaying函数来收集响应数据。另一方面,硬件部分实现了在软件控制下的系统时钟管理、数据通信以及数据管理。这样就实现了连续的对被测试FPGA自动配置、自动施加扫描激励、自动接收输出响应等。综上所述,本文提出的FPGA自动测试方法连续重复地实现了FPGA自动配置和FPGA自动扫描。
2.2 CLB全覆盖定位测试方法
要完成CLB全覆盖定位测试方法除了需要上节提到的基于SOC软硬件
协同
技术的FPGA测试平台及其自动测试和自动扫描技术外,还需要研究如何实现CLB的规则排列以及定位测试算法。
1)如果要对FPGA中CLB错误单元进行定位,就必须对一个FPGA中所有CLB单元进行有序的编号,也就是需要软件能够控制FPGA中CLB单元及其单元之间的连线,实现CLB的规则排列。
本文提出的CLB全覆盖定位测试方法是基于把所有的被测试CLB串联成一个CLB阵列。由于每一个CLB配置通过5次配置就能够遍历单个CLB单元中所有的资源,所以通过自主开发的软件ConPlacement实现FPGA中所有CLB都有规则排列的配置图形,使其成为一个串行联接的CLB阵列。
如图1所示,在CLB移位测试链中,把被测试的FPGA的所有LUT(Look Up Table)模块配置成为移位串行链,其输入信号F1~F3为FPGA中所有FLUT的F1~F3的公共输入端,为并行输入信号;F4为串行输入端口,被测试FPGA的第1个CLB的F4接输人信号端口,其他的CLB单元的F4端口接上一个CLB的输出信号Y。对于G—LUT使用相同的连接方法。把被测试的FPGA的所有DFF(D FLIP.FLOP)模块配置成为移位串行链,被测试FPGA的第1个CLB的C1接输入信号端口,把C1接到DFF的输入端,其他的CLB单元的C1端口接上一个CLB的DFF的输出信号YQ。对于另一个DFF使用相同的连接方法。这样就能完成了一个FPGA中所有CLB的配置图形。
2)定位测试算法
在实现了把FPGA配置成图1的图形后,开始定位测试过程。其方法如下,首先从输入端施加激励,通过时钟信号,把施加的激励在CLB间顺序传递。当发现输出信号出错时,根据输出信号与时钟之间的对应关系,就能定位第几个CLB出错,最后标示出错CLB并且在串行联接的CLB中剔除掉出错CLB和其之后的CLB单元。将输出管脚连接到出错CLB的前一个单元,重新生成配置图形,并进行测试。重复这个过程直到所有的CLB单元都被测试。整个过程如图2所示。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议