引 言
现场可编程门阵列fpga(field programmablegate array)是一种新型器件,它将门阵列的通用结构与现场可编程的特性结合于一体,因而受到广泛关注。fpga 测试中,测试激励的多种测试生成方法,都有其一定局限性,不能求出所有故障,而且随着集成电路规模的迅速膨胀,电路结构也越来越复杂,大量的故障变得不可测。所以,人们把视线转向了电路系统的设计过程。如果设计的电路容易测试,容易找到测试码,对测试和测试码的生成问题就大大简化,这就是可测性设计问题。可测性设计问题的一个主要解决方法就是内建自测法bist(built-in self-test)。
利用fpga可重复编程的特性,通过脱机配置,建立bist逻辑,即使由于线路被操作系统的重新配置而令bist结构消失,可测性也可实现。本文给出一种基于bist利用orca(optimized reconfigurable cell array)结构测试fpga逻辑单元plb(programmable logic block)的方法,该方法对逻辑单元plb 进行了分类、分阶段的测试,同时进行电路模拟实验。
bist测试结构
这种基于bist的测试方法是一系列测试阶段顺序进行的结果,每一阶段都包括以下几步:1)对电路进行配置;2)测试初始化;3)生成测试图形;4)对响应进行分析;5)读出测试结果。
图1 给出了利用orca测试方法过程中fpga的配置结构。在用于完全测试but (block under test)的绝大部分配置中,tpg以二进制计数器的模式工作,为but的m个输入端提供随机的测试模式。由于plb的输入要多于输出,所以需要将一些plb通过编程构造成m位的计数器,在存储器的操作模式中,存储器被配置为随机存储器。tpg作为p字节(p
图1 测试fpga的orca结构
不同的tpg一定要满足but的需求,but的输出要与ora相符合,因此,tpg的数目要求为c,c同时也是与一个ora相符合的plb的输出管脚数。ora由一个lut和一个触发器组成,其中lut用于从c 组but 相应的输出作比较,触发器记录第一次不匹配的情况。从触发器输出到lut 输入的反馈信息会在ora第一次错误记录之后进一步做比较。通常,一些ora会在同一个plb中实施,这依赖于plb中相互独立的lut的个数。这里,如果lut的输入序列至少与一个plb 是分离的,则认为此lut是独立的。每一个tpg驱动一组共n个but,每个but有m个输入和k个输出,则but中共有c*n*k个输出与k 组n个ora作比较,每个ora监控c个输出,ora的第i组接收n个but的第i个输出。
例如,在orca结构的plb中,存在2个独立的lut,每个lut 有5个输入,由于反馈的存在,需令c=4。又由于每个plb有18个输入,tpg生成随机测试向量所要求的触发器的数量也是18。因为一个plb中有f=4个触发器,所以需要5个plb来构成随机tpg,其中只有4个plb是用于产生ram模式测试进而构成tpg状态机的。最后,每个必须与ora作比较的plb中有k=5个输出。表1对以上数据进行了概括,并将xilinx 4000与altera flex 8000系列中的fpga各项参数进行了对比,对fpga这些结构参数、tpg输出信号计数n以及bist所需步骤的数目进行了分析。多数商业用途的fpga进行完全测试需两个测试步骤,而一些其他规模的fpga则需要三个步骤。
测试实施
在测试实施阶段利用故障模拟来评价不同bist步骤中的故障覆盖率。为orca结构的plb建立了一个完全的门级电路模型,包括代表基本输入值的plb配置,那些输入值在每一阶段是“固定”的。允许模拟影响配置位的stuck-at故障。lut、ff和output mux三个模组中每一个的随机测试用于检测无法探查的故障(lut中为3个故障,ff中为4 个故障),这些故障从故障目录表中被移除。plb中共2224个stuck-at门级故障,其中1538个在lut中,440个在ff 中,224个在输出mux中,完全测试每个plb共需9次这样的配置结构。对3个模组中每一阶段所检测出的新故障数目、检测故障累积的总数及故障覆盖率等故障模拟结果见表2。
表1 fpga结构参数对比
表2 plb故障模拟测试结果
从表2中可以看出,第一阶段为lut提供了一个完全的测试,而接着的5个阶段检测了ff中所有的故障,对输出mux所有的故障检测需要9步。这9次配置结构可以根据为三个模组中每一个而设定的模式来描述。一个orca输出利用9*1 mux来选择4个lut输出中的任一个,或者4个ff输出的任一个,也就是lut在以快速加法器操作方式进行工作。这9*1mux证实了完全测试输出mux 块的配置数量。
orca结构的lut有4个不同的操作模式:ram、fast adder 、5 变量的lut-based逻辑功能、4变量的lut-based逻辑功能。它们在plbbist前4步中进行测试,如表3所示。在ram模式中,tpg被配置为产生标准ram 测试序列,而在其他步骤中被配置为二进制计数器。一旦lut已经在ram模式下测试,余下的bist步骤中,依靠lut中的棋盘模式来确定lut输出的所有可能模式。ff有以下操作模式供选择:1)ff/latch;2)set/reset;3)falling edge/rising edge ofclock等,与这些选择相关的数据太大,不易考虑。因此,可根据对plb 门级电路模型的故障模拟来选择。5 次配置对完全测试ff 模组是足够的。
表3 plb bist配置
从表3的后半部分可知ff 模组各种操作模式的不同选择情况。在这9次bist配置中,orca的典型应用包括54%的连线资源可编程线段以及87%的plb和lut。尽管多数orca只需要2个测试阶段,还需18次的配置结构来测试所有的plb。这18次配置结构与通常应用orca结构测试的32次配置相比,结果比较令人满意。
测试中遇到的问题
路线资源的限制
作为伪随机测试,plb的测试包括plb大多数的i/0管脚,但ic系列orca路由于资源有限,不能支持所有tpg输出到but以及所有的but输出到ora。为解决这个问题,基于伪随机测试的准则允许对每一次配置有一点“偏差”,只对在该阶段确实用到的输入采用随机测试,并观察其输出。表3给出了每一步bist所用到的plb管脚数目,路线资源可以满足系统要求。
缺少详细的配置控制
在一般的应用中,用户只需要将ff的输出与plb的输出相连,而不管是具体哪个输出,这是特定的布线算法和路由算法决定的。在本方法中,为了得到完全的测试,必须保证每一个输出矩阵依次与它的9个输入(4个ff输出,4个lut输出,1个加法器进位)相连,因此有一种与这9次配置都不同的选择。但是cad工具不允许用户控制输出的多路复用器(用户模式下没有输出多路开关),因此,解决方法是修改中间的设计文件或者配置位流,来控制输出的多路输出选择。
结 语
本文方法的最大优点是不需专用测试仪器,只需要观察测试响应检验电路ora的输出即可,因此所需输入、输出单元少,故障覆盖率高,不可测故障较其他方法大大降低。实验数据表明,本方法的测试结果令人满意。
华为鸿蒙OS2.0开发版面向大量机型推送 苹果M2芯片已大规模量产
远程监控系统通过短信发送电子邮件
50W高保真功率放大器电路
工业电源解决方案
中企寻求与韩国合作伙伴以规避美国电动汽车规则
基于BIST利用ORCA结构测试FPGA逻辑单元的方法
小米发布会小米5C是主角没错 但还有这款红米4X亮相
一种利用两种不同温度系数材料来实现温度传感器的技术的概述
荣耀9什么时候上市?荣耀9最新消息:华为荣耀9真机曝光,荣耀旗舰新颜值担当
蓝海大脑服务器全力支持NVIDIA H100 GPU
无线传感器网络中基于RSSI的节点距离预测
本届CES最热门科技自动驾驶,让汽车变得更加“懂”人
亚马逊云科技与中国教育学会科创教育协作体及上海市人工智能行业协会 达成战略合作 推动青少年人工智能
Fluke将英国PCB组件交给谁来处理
传输超过100GHz的无线收发器能超越5G?
MIT尝试以机器学习技术改变药物研发流程
Windows 10 Version 1809支持时间延长
2021年能源效率接近智能家居技术的最高要求
搪瓷管空预器出现裂纹的原因
螺纹自动检测设备的详细介绍