一种基于FPGA的DRAM功能测试系统及方法与流程
本技术涉及dram测试,尤其是一种基于fpga的dram功能测试系统及方法。
背景技术:
1、动态随机存取存储器(dram)作为电子系统中最重要的存储器件之一,其可靠性与性能直接决定了整个系统的运行稳定性。随着半导体技术的不断进步,dram的存储容量持续增大、工作频率不断提高、接口协议日趋复杂,这对dram的功能测试提出了越来越高的要求。
2、目前,dram的功能测试主要依赖自动测试设备(automatic test equipment,ate)完成。传统的ate测试方案通过向dram施加预定义的测试向量并分析其响应,来判断芯片功能是否正常。ate测试方法的优势在于测试架构较为成熟,能够观测电参数、时序参数等丰富的测试细节,是一种有效的测试方式。然而,传统的ate测试方案存在以下不足:
3、第一,测试成本高昂:高性能ate设备的研发与购置需要巨额资金投入,对于中小型芯片设计企业和封测厂商而言,难以承受。随着dram速率不断提高,为满足测试需求而升级或更换ate设备将进一步增加成本。
4、第二,向量存储资源受限:传统ate设备依赖机台内部的高精度向量存储模块来存储测试向量,该存储模块的容量有限,难以满足大容量dram全地址空间测试的需求,限制了测试覆盖率。
5、第三,系统灵活性不足:ate设备通常针对特定类型的芯片测试而设计,当dram接口协议升级或测试算法变更时,往往需要更换测试硬件或进行复杂的系统升级,适应周期长、成本高,难以快速响应芯片迭代更新的需求。
6、第四,测试效率受限:传统ate通常采用串行测试模式,指令逐条执行,难以充分发挥并行测试的潜力,在大规模量产测试场景中吞吐量受限。
7、因此,本领域亟需一种能够兼顾测试效率与成本、具备高度灵活性和可扩展性的dram功能测试系统及方法。
技术实现思路
1、本技术的目的在于克服现有技术中dram功能测试成本高以及测试效率受限的问题,提供一种基于fpga的dram功能测试系统及方法。
2、第一方面,提供了一种基于fpga的dram功能测试系统,包括ate以及通过通信接口与其通信连接的fpga芯片;
3、其中,所述ate用于向所述fpga芯片下发测试指令、配置参数以及启动测试流程,并接收所述fpga芯片回传的测试结果数据;
4、所述fpga芯片用于生成针对dram的读写时序与激励信号并执行相应的功能测试算法,所述fpga芯片还用于采集dram的输出响应数据,并将其格式化为可被ate识别的数据流。
5、在一些可能的实现方式中,所述fpga芯片包括以下模块:
6、通信接口模块,用于与所述ate进行数据通信,接收测试指令与配置参数,上报测试结果数据;
7、指令解析模块,用于接收并解析所述ate下发的测试指令与配置参数;
8、时序生成模块,用于根据解析后的测试指令生成符合dram接口规范的读写时序信号;
9、激励生成模块,用于生成多种类型的测试激励数据;
10、地址生成模块,用于生成测试所需的地址序列;
11、响应采集模块,用于采集dram响应于所述读写时序信号和激励数据而输出的响应数据;
12、数据格式化模块,用于将采集到的响应数据按照预设的通信协议格式化为数据流;
13、结果上报模块,用于将格式化后的数据流通过所述通信接口上报至所述ate。
14、在一些可能的实现方式中,所述数据格式化模块采用三级流水线架构,包括:
15、输入缓存单元,采用异步fifo实现跨时钟域的数据缓冲与速率匹配;
16、数据打包引擎,用于从所述输入缓存单元读取原始响应数据,并按照预设的帧格式进行数据组装;所述数据打包引擎包括数据拼接器、地址标签插入器、时间戳插入器和通道标识插入器,所述地址标签插入器用于将当前测试地址与对应的响应数据绑定,所述时间戳插入器用于为数据添加来自fpga内部全局计时器的时间值,所述通道标识插入器用于在多通道并行测试场景下插入当前数据所属的测试通道编号;
17、协议封装单元,用于将所述数据打包引擎输出的数据负载封装为符合通信接口协议标准的数据帧。
18、在一些可能的实现方式中,所述时序生成模块内部包含基于fpga锁相环的时钟生成子模块,所述时钟生成子模块用于生成高精度时钟信号,且所述时序生成模块支持通过参数化设计切换多种dram接口标准;所述激励生成模块支持全0数据、全1数据、棋盘格数据、走步数据、伪随机序列数据和用户自定义数据模式;所述地址生成模块支持地址递增模式、地址递减模式和地址跳跃模式。
19、在一些可能的实现方式中,所述fpga芯片内部还包括bist控制单元,所述bist控制单元包括:
20、bist控制器,采用有限状态机实现,用于控制bist测试的整体流程;
21、地址生成器,用于生成bist测试所需的地址序列;
22、向量生成器,用于根据预设测试算法生成测试向量;
23、控制信号生成器,用于生成dram测试所需的控制信号;
24、比较器,用于将从dram读出的响应数据与预期数据进行比较,判断是否存在故障;
25、选择器mux,用于在不同测试源之间进行选择。
26、在一些可能的实现方式中,所述fpga芯片通过探针卡与晶圆上的dram建立临时电连接以应用于晶圆级测试环节;或,所述fpga芯片通过测试座与封装后的dram建立电连接以应用于成品测试环节。
27、第二方面,提供了一种基于fpga的dram功能测试方法,采用如第一方面中任意一种实现方式中所述的系统,所述方法包括:
28、配置与启动步骤:ate通过通信接口向fpga芯片下发测试配置参数与测试启动指令;
29、指令解析与模式配置步骤:fpga芯片接收并解析所述测试配置参数与测试启动指令,根据所述配置参数配置内部各模块的工作模式;
30、测试激励生成步骤:fpga芯片根据配置的测试模式,通过时序生成模块生成符合dram接口规范的读写时序信号,通过激励生成模块生成测试激励数据,通过地址生成模块生成测试地址序列;
31、测试执行步骤:fpga芯片将所述读写时序信号、测试激励数据和地址信号施加至被测dram,执行写入操作和读出操作;
32、响应采集步骤:fpga芯片通过响应采集模块采集被测dram响应于所述读写时序信号和激励数据而输出的响应数据;
33、数据格式化步骤:fpga芯片将采集到的响应数据按照预设的通信协议格式化为数据流;
34、结果上报步骤:fpga芯片将格式化后的数据流通过所述通信接口上报至ate;
35、结果分析步骤:ate接收并分析所述数据流,将接收到的响应数据与预期数据进行比较,生成测试结果报告。
36、在一些可能的实现方式中,所述数据格式化步骤具体包括:
37、数据接收与缓存:将采集到的dram响应数据写入异步fifo;
38、状态机唤醒与数据读取:当所述异步fifo中缓存的数据量达到预设阈值时,唤醒打包引擎从所述fifo中读取数据;
39、数据组装:并行执行从所述fifo读取原始响应数据、获取当前测试地址插入地址标签字段、获取当前时间值插入时间戳字段和获取当前通道编号插入通道号字段;
40、协议封装:将组装后的数据负载按照所述ate与fpga芯片之间的通信协议进行封装,添加协议头部和校验字段,写入输出缓存;
41、数据上报触发:将所述输出缓存中的数据帧通过通信接口上报至所述ate。
42、在一些可能的实现方式中,还包括bist测试模式:
43、所述ate通过通信接口向所述fpga芯片下发bist测试启动指令及配置参数;
44、所述fpga芯片的指令解析模块解析指令后,激活bist控制单元;
45、所述bist控制单元的有限状态机启动测试流程,控制地址生成器、向量生成器和控制信号生成器协同工作,生成测试地址序列、测试向量和dram控制信号;
46、所述fpga芯片通过dram接口将上述信号施加至被测dram;
47、比较器实时将从dram读出的响应数据与所述向量生成器产生的预期数据进行比较;
48、若比较结果不一致,则所述bist控制器记录故障地址;
49、在bist测试完成后,所述bist控制单元将测试结果通过结果上报模块上报至所述ate。
50、在一些可能的实现方式中,在数据格式化步骤中,当连续多个地址的响应数据与预期数据完全一致时,仅上报首地址和连续通过的数量;和/或,当所述ate配置为仅上报故障模式时,仅当响应数据与预期数据不一致时才生成并上报数据帧。
51、本技术具有如下有益效果:
52、1、降低了dram功能测试的系统成本:本技术采用ate作为上位机控制单元、fpga芯片作为测试功能执行单元的异构主从架构,将高精度、高速的dram读写时序生成与测试向量的存储/施加从ate硬件中剥离,交由fpga承担。fpga作为通用可编程逻辑器件,其成本远低于同等性能的ate专用测试硬件模块,从而降低了对传统ate设备高精度向量存储深度和高速通道板的依赖,使得中低端ate设备配合fpga即可完成高性能dram的功能测试,有效降低了测试系统的硬件成本。
53、2、提高了测试系统的灵活性和可重构性:本技术在fpga芯片内部集成了时序生成模块、激励生成模块、地址生成模块等多个功能模块,各模块采用参数化可重配设计。当dram接口标准升级或测试算法变更时,仅需通过ate向fpga下发更新的配置参数,或更新fpga的配置文件即可完成系统升级,无需更换硬件设备。时序生成模块可通过参数化设计在不同dram接口标准之间灵活切换,激励生成模块支持多种测试数据模式的配置和切换,从而缩短了测试系统的开发周期和升级成本,能够快速适配不同类型的dram和不同的测试需求。
54、3、提高了测试效率:本技术通过fpga内部的并行逻辑资源,将地址生成、激励生成、时序驱动、响应采集和数据格式化等操作以硬件并行电路和流水线方式执行,多个测试步骤可并行处理。同时,fpga芯片内部可集成多组功能模块以支持多通道并行测试,各测试通道可独立配置不同的测试参数,同时对多颗dram进行测试,相比传统ate的串行指令执行模式,显著提高了测试吞吐量。
55、4、降低了ate与fpga之间的通信开销:本技术在fpga内部设置有bist控制单元,测试启动后,bist控制单元采用有限状态机控制地址生成器、向量生成器和控制信号生成器协同工作,可自主运行march算法、galpat算法等测试流程,无需ate逐条干预。同时,ate依然保留远程实时中断、参数重配和状态读取的权限。这种“自主执行+远程可控”的双模控制模式,兼顾了测试效率与调试灵活性,降低了ate与fpga之间的通信占用。
56、5、减轻了ate上位机的数据处理负担:本技术在fpga内部设置有数据格式化模块,该模块采用三级流水线架构,在fpga内部完成响应数据的打包、地址标签添加、时间戳插入和协议封装等预处理操作。ate接收到的数据帧中直接包含了地址标签、时间戳和响应数据等结构化信息,无需ate进行额外的数据解析和地址匹配即可进行故障定位和结果分析,从而降低了ate上位机cpu的数据处理负担,提升了远端实时分析的响应速度。
57、6、降低了高速通信接口的带宽占用:本技术中的数据格式化模块集成有可选的数据压缩机制,在全匹配压缩模式下,当连续多个地址的响应数据与预期数据完全一致时,仅上报首地址和连续通过的数量,而非逐笔上报;在仅上报故障模式下,仅当响应数据与预期数据不一致时才生成并上报数据帧。通过上述压缩机制,有效减少了高速通信接口的数据传输量,使得中低速通信接口也能够胜任dram高速测试的数据上报任务。