在最原始的测试过程中,对集成电路(Integrated Circuit,IC)的测试是依靠有经验的测试人员使用信号发生器、万用表和示波器等仪器来进行测试的。这种测试方法测试效率低,无法实现大规模大批量的测试。随着集成电路的集成度和引脚数的不断增加,工业生产上必须要使用新的适合大规模电路测试的测试方法。在这种情况下,集成电路的自动测试仪开始不断发展。
现在国内的同类型产品中,一部分采用了单片机实现,这部分仪器分析速度慢,难以用于大规模的测试系统之中,并且在管脚的扩展性上受到严重的限制。另一部分使用了DSP芯片,虽然功能上较为完善,但造价不菲,实用性能有限。本文的设计是基于FPGA实现逻辑芯片的功能故障测试。由于FPGA芯片价格的不断下降和低端芯片的不断出现,使用FPGA作为主控芯片可以更适合于市场,且有利于对性能进行扩展。实验表明,该系统设计合理,能对被测芯片进行准确的功能测试。
1.逻辑芯片功能测试的基本理论简介
功能测试也称为合格—不合格测试,它决定了生产出来的元件是否能正常工作。一个典型的测试过程如下:将预先定义的测试模板加载到测试设备中,它给被测元件提供激励和收集相应的响应;需要一个探针板或测试板将测试设备的输入、输出与管芯或封装后芯片的相应管脚连接起来。测试模板指的是施加的波形、电压电平、时钟频率和预期响应在测试程序中的定义。
元件装入测试设备,测试设备执行测试程序,将输入模板序列应用于被测元件,比较得到的和预期的响应。如果观察到不同,则表示元件出错,即该元件功能测试不合格。
2.测试系统设计
该测试系统由下位机硬件电路和上位机测试软件两大部分构成。系统采用功能模块化设计,控制灵活,操作简单,而且采用ROM存储测试向量表库,方便以后的芯片型号添加和扩展,有很好的实际应用性。
2.1 硬件设计
系统硬件主要由FPGA控制器模块、串口通信模块、电平比较模块和测试平台模块构成,其结构如图1所示。
图1 系统硬件结构图
控制器模块选用Altera的FPGA芯片EP3C16Q240C8N,配置芯片选用EPCS4。控制器由使用VerilogHDL硬件语言实现了包括串口接收模块、数据转换与测试保护模块和串口发送模块三个部分的功能设计。串口接收模块完成与串口芯片MAX3232进行通信,接收由上位机发送来的测试指令;数据转换与测试保护模块产生实现一个类似于D触发器的保护器,对测试端的被测芯片输出脚进行双保护,保证其在测试后的回测值不受初值影响;串口发送模块将测试后得到的数据组合为一个回测寄存器,并按照串口通信协议将回测数据发送回上位机。
串口通信模块选用MAX3232芯片,现串口的全双工数据传输。
E818电平比较电路为逻辑功能测试的核心硬件部分。E818是SEMTECH公司专门针对ATE逻辑功能测试而开发的窗口比较器芯片,它解决了被测对象DUT芯片的双向输入数据电平要求。
2.2 软件设计
系统软件上位机软件是使用VC++6.0来编写的。上位机调用Access中的测试数据,经串口发送出后,系统硬件就会运行测试程序。测试结束后硬件系统会将测试得到的返回数据发送回上位机软件。这时,上位机软件接收到返回数据后需要对返回数据与标准无故障值进行对比,以确定此次测试是否正确通过。所以上位机软件的功能分为:数据库的调用,测试矢量的接收和发送和回测信号的对比三大部分。系统软件流程图如图2所示。
图2 系统软件流程图
3.系统测试验证
3.1 常规测试
以芯片74LS08为例,测试流程如下:
(1)使用Microsoft Office Access2003软件建立测试数据库,并在数据库中建立几款不同被测芯片的测试数据。
(2)在芯片型号检索对话框中输入“74LS08”型号后,点击“确定”按钮即可完成芯片检索的流程。
(3)自动测试模式下,系统将调用数据库中被测芯片的完整测试数据,并且完成整个测试集的循环测试。
(4)打开系统的串口后,用户需要将被测芯片放入测试插槽中,然后锁死插槽以确定被测芯片的引脚与插槽接触良好。这时只需要点击“开始测试”,系统就会自动进行循环测试。在系统插槽中放入74LS08芯片后的测试结果显示“该芯片功能测试全部通过”,其显示如图3所示。
图3 常规测试结果
3.2 故障测试
本文以74LS00芯片模拟74LS08芯片的故障片来进行一次故障测试,以验证测试系统对故障的识别。由74LS00芯片和74LS08芯片两款芯片的引脚数与引脚分布方式是一样的。但是在功能上,74LS00芯片为双输入四与非门,而74LS08芯片为双输入四与门。这就意味着,当两者的输入值相同时,芯片功能正确情况下的输出值应该正好相反。这样的输入输出关系可以用来模拟74LS08芯片的全故障情况。这时,用户需要把74LS00芯片锁入测试插槽,点击“开始测试”后的界面如图4所示。
图4 故障测试结果
此时,如果被测芯片依然为74LS00芯片,而从上位机的数据库中重新调入74LS00芯片的测试信息进行测试,其测试结果则显示为“该芯片功能测试全部通过”。其显示界面如图3所示。由此可以验证,测试系统对芯片功能故障的判断十分准确,并且测试系统可以准确的识别存在故障的测试矢量位置,以便于用户进行进一步的分析。
4.结论
本文用FPGA进行了一个芯片功能测试系统,并对其功能进行了验证,实验结果表明该系统测试方法简单,测试过程迅速,测试结果准确。该系统为芯片功能测试提供了一个很好的解决方案,具有重要的应用价值。