由于PLD具有可重复编程性,在很多时候不必为实现一个新的功能而设计新的ASIC,这样就节约了大量的设计成本。这一优点让PLD近年来得到了市场的认可,又由于开发周期短投入软件少,PLD在很多领域开始取代ASIC的地位。目前其应用已经涉及到通信、医疗、工业控制、系统诊断以及航空航天等诸多领域。
1 系统总体设计方案
本套测试系统主要由上位机软件、通信电缆、控制电路和待测CPLD组成。上位机发送测试命令通过USB转串口线送到控制电路,控制电路发送测试向量并检测测试响应返回上位机软件,上位机软件进行分析、定位和显示。总的系统结构功能图如图1所示。
2 待测CPLD
Lattice半导体公司的在系统可编程大规模集成电路(ispLSI)系列,是一种结合了PLD易用性、高性能和现场可编程门阵列(FPGA)的灵活性和高密度特性的可编程逻辑器件。ispLSI1032E是该系列器件中的一款性价比极高的芯片,它的高集成度、低功耗、很强的可重构能力、保密性好和在系统编程等特性使它被广泛应用于电子系统的设计。
ispLSI1032E是包含192个寄存器、64个通用I/O管脚、8个专用输入管脚、4个专用时钟输入管脚和一个全局布线区(GRP)的高密度可编程逻辑器件。GRP能为所有这些部件之间提供完善的互联。ispLSI1032E器件上的基本逻辑单元是万能逻辑块(GLB), GLB包括A0、A1…D7[1]。在ispLSI1032E器件内总共存在32个GLB,每个GLB都有18个输入、一个可编程的与/或/异或阵列以及4个既能构成组合式的又能构成寄存器式的输出。GLB的输入来自GRP和专用的输入,所有GLB的输出都被送入GRP,以便能把它们连接到器件上任何GLB的输入[1]。
3 控制电路
控制电路的主控芯片采用的是Lattice公司的ispMACH4A5系列的M4A5-192芯片,该芯片有192个宏单元,在引脚数目和逻辑资源数目方面,都能很好地满足测试ispLSI1032E。控制电路主要负责接收命令之后发送控制命令控制继电器的关断和发送测试向量,然后接收测试数据并返回上位机。
4 测试步骤
对于ispLSI1032E的测试是基于“分治法”[2]的思想,对待测电路只进行三次电路配置,施加对应的测试向量,就可以把性能指标和芯片可能出现的故障予以覆盖。该芯片有64个I/O管脚,把I/O0~I/O31作为输入,I/O32~I/O63作为输出配置一次,I/O32~I/O63作为输入,I/O0~I/O31作为输出配置一次,然后内部组合逻辑功能测试配置一次。另外该套装置还具有自检功能,在开始测试之前,先不放入待测芯片,通过从上位机发送相应的命令,控制电路接收到命令后控制相应的继电器的通断,来进行输入输出自检,也可以用示波器进行观测,确保装置没有任何问题之后再进行待测芯片的测试。整体测试流程如图2所示。
4.1 配置电路一的测试
(1)芯片输入输出基本功能测试。配置电路一下载到ispLSI1032E之后,I/O0~I/O31输入,I/O32~I/O63输出。控制电路输出相应的控制信号之后,ispLSI1032E的4个BANK的所有I/O都直接连通,不与D/A输出相连,确保I/O脚的输出不进入A/D进行采样。利用一定算法分别输入0000H时返回$TEST1-1,XXH,XXH,XXH,XXH;输入FFFFH时返回$TEST1-2,XXH,XXH,XXH,XXH。输入0000H时返回$TEST1-3,XXH,XXH,XXH,XXH;输入FFFFH时返回$TEST1-4,XXH,XXH,XXH,XXH。上位机根据返回的四组数据, 利用一套异或/或逻辑算法就能分析出I/O0-I/O31作为输入,I/O32-I/O63输出哪些引脚有故障。
(2)芯片传输延迟测试。示波器的CH1、CH3测试ispLSI1032E的BANK1和BANK3之间的传输延时,CH1、CH4测试ispLSI1032E的BANK1和BANK4之间的传输延时,CH1为输入端。示波器的CH2、CH3测试ispLSI1032E的BANK2和BANK3之间的传输延时,CH2、CH4测试ispLSI1032E的BANK2和BANK4之间的传输延时,CH2为输入端。把示波器通过GPIB线和PC机相连,上位机软件发出测试延时命令并自动捕获和存储示波器的屏幕,对比观察延时数据。
(3)芯片输入信号阈值的测试。采用四通道16位A/D转换芯片,控制电路发出控制命令,BANK3的I/O32和BANK4的I/O48接到A/D的AD2和AD3输入端, BANK1的I/O0接D/A输出,通过A/D转换AD2,AD3采样判断I/O0对I/O32和I/O48的阈值范围;然后BANK2的I/O16接D/A输出,通过A/D转换AD2,AD3采样判断I/O16对I/O32和I/O48的阈值范围。
4.2 配置电路二的测试
配置电路二与配置电路一基本类似,只是I/O管脚输入输出反向,控制相应继电器的关断即可。
4.3 内部逻辑资源测试
根据ispLSI1032E的内部结构,在4个BANK包含的32个GLB充分利用的情况下,设计出相应的乘法器,将I/O0~I/O31作输入,I/O32~I/O63作输出,控制电路输出控制信号,设计一组测试输入序列,通过串口返回输出数据分析芯片内部资源是否有故障。在内部逻辑资源的测试中断开相应的跳线即可测试功耗。
5 测试系统
由于本测试系统采用的芯片都是Lattice公司的ispLSI系列,所以为了节约测试时间,提高测试效率,可以采用菊花链式一次下载程序到主控芯片和待测芯片。整个测试系统如图3。
本套装置具有自检功能,留有接口,稍加改装即可测试同类芯片,同时能将芯片的性能指标和可能出现的故障予以充分覆盖,摒弃了其他的测试系统仅存在于理论或者只测试其单一方面的缺陷,具有很好的实用价值,目前在工业测试系统中使用良好。
参考文献
[1] Lattice. ispLSI1032E datasheet.1997.
[2] 于明. CPLD测试方法研究[J].电子测试,2010(1):38-43.
[3] 黄维康. FPGA的测试[J]. 计算机辅助设计与图形学学报, 2000,12(5):396-400.
[4] 陈庆孔. FPGA的测试[D]. 南京: 南京理工大学, 2009.
[5] 周涛. FPGA的测试[D]. 成都:电子科技大学, 2006.
[6] 龙祖利, 王子云. FPGA测试技术及ATE实现[J].计算机工程与应用, 2011,47(6):65-67.
[7] 杜社会. FPGA时延故障测试技术研究[D]. 长沙:湖南大学,2008.
[8] 王秀珍, 薛萍. In-system可编程器件的应用[J]. 宁波工程学院学报, 2006(4):57-59.
[9] 石坚, 吴丹, 韩红星. ispLSI测试[J]. 计算机与数字工程, 2005(9):85-88.
[10] 石坚, 吴丹, 韩红星. Lattice可编程器件测试程序开发技术[J]. 计算机与数字工程, 2004,32(1):38-41.