论文部分内容阅读
摘要:使用Xilinx公司的Spartan-6 FPGA系列芯片所提供的MCB,在生成控制模块时设置不同参数,可以轻而易举的实现对不同型号的DDR存储芯片的测试,数据率可高达800Mb/s以上。由于时间利用率比使用计算机主板测试DDP,芯片高得多,所以可以极大地节约测试时间。
关键词:FPGA;DDR存储器;功能测试
DOI:10.3969/j.issn.1005-5517.2011.08.017
目前广泛使用的计算机内存芯片是DDR(双倍数据率同步动态随机存储器)。它的最新品种DDR3单片容量已经可以达到2Gb以上,数据率可以达到1.6Gb/s以上,因此如何快速准确判定DDR芯片的好坏(功能测试)就很必要。
由于DDR这类芯片的设置和读写时序相当复杂,要在其性能所达到的高速条件下对其进行测试,许多人选用的技术方法是:直接把它们放到计算机的内存专用插座上,编一个相应的程序去进行测试。这不失为一种最简单的选择。但由于在测试过程中,计算机读取相应的指令还要花费不少时间,所以在芯片容量越来越大的情况下,这并不是一个好方法。
使用FPGA,将测试软件变成硬件,做成DDR用测试工具,是提高测试效率的较好的选择。一开始设计的DDR专用测试工具是使用Xilinx公司的Spartan-3E来实现的,但是很快发现:无论如何进行设计约束,诸多的地址信号、控制信号和数据信号很难做到同步送出,信号时延的离散范围很难达到0.2ns以下。对于数据率在200Mb/s以下的早期DDR产品,这勉强可以接受。但目前DDR2的数据率已经可以高达800Mb/s,也就是说,按相位角算,离散范围已达60°。为了保证上述有关信号的同步,不得不在FPGA与DDR丰目连接的所有信号线之间,增加了用CPLD器件做成的同步接口,利用CPLD器件端口到端口具有一致的延时特性来保证所有信号时间上的一致性。
对于Xilinx公司的Spartan-6系列,由于它有专为各类DDR内存设计的存储器控制模块(MCB),用户可以利用提供的存储器控制模块,直接驱动DDR芯片。大大方便了与DDR的接口。
在我们新的DDR专用测试工具“DDR存储芯片测试仪”中,使用Spartan-6系列的XC6SLX16芯片,按照该公司的ug416.pdf文件的指引,用CORE Generator软件中的MIG3.4分别产生了DDR2和DDR3两种类型的应用文件,包括DDR的基层MCB控制模块的应用文件,和它们的高层次使用举例文件example top。后者本身就是一个DDR的测试程序,它向你显示如何实现与基层MCB控制模块接口。我们在它的基础上增加了一些测试模式,并增加了测试设置寄存器和测试结果状态寄存器,用一个宏晶公司的STC12C5408单片机作为整个DDR芯片测试设备的管理器,经串行口与主机通信,很顺利地实现了对DDR2、DDR3芯片的测试。
DDR存储芯片测试仪硬件框图如图1所示。
在“DDR存储芯片测试仪”中,主机经管理器对测试方式设置寄存器进行设置,并能启动和终止测试过程。在对存储芯片的写入过程中,根据预设的方式,测试数据产生器产生不同的数据图案和存储地址送到存储器控制模块MCB,由它转换为DDR听需要的时序写入被测芯片。在测试的读出校对过程中,读出的数据由MCB送到读写数据比较器,把它和测试数据产生器按相同规律产生的数据进行比较。出过错误的数据位被记录到出错位图,并对出错次数进行计数。测试结束后,主机可经管理器读取出错位图和出错计数。测试过程中,DDP的工作电压和时钟频率也可经管理器进行设置。
MIG3.4产生的文件中包括有仿真文件和DDR的仿真模型,附图给出DDR 2的仿真结果。实测波形与仿真结果十分一致。
如上所述,利用Spartan-6系列芯片,已经轻而易举地实现了800Mb/s以上的数据率。由于时间利用率比使用计算机主板测试DDR芯片高得多,所以可以极大地节约测试时间。如果在生成MCB控制模块时设置不同参数,就能应用于不同型号DDR存储芯片的测试(但DDR2和DDR3本身的引腿不兼容)。不过,要注意的是:MIG3.4自动产生的约束文件(.ucf文件)中,DDR接口的信号电平设置为SSTL18(DDR2)或SSTL15(DDR3)。此时必须根据ug385_package pinout.pdf文件,由外部通过相应的VREF端,给相应的块加入逻辑参考电平。约束文件并不会自动给出这些腿号。但如果在ucf文件中把这些接口电平改为相应的LVCMOS18或LVCMOS15,则不需外加参考电平(可参见ug38l_select10.pdf文件)。
关键词:FPGA;DDR存储器;功能测试
DOI:10.3969/j.issn.1005-5517.2011.08.017
目前广泛使用的计算机内存芯片是DDR(双倍数据率同步动态随机存储器)。它的最新品种DDR3单片容量已经可以达到2Gb以上,数据率可以达到1.6Gb/s以上,因此如何快速准确判定DDR芯片的好坏(功能测试)就很必要。
由于DDR这类芯片的设置和读写时序相当复杂,要在其性能所达到的高速条件下对其进行测试,许多人选用的技术方法是:直接把它们放到计算机的内存专用插座上,编一个相应的程序去进行测试。这不失为一种最简单的选择。但由于在测试过程中,计算机读取相应的指令还要花费不少时间,所以在芯片容量越来越大的情况下,这并不是一个好方法。
使用FPGA,将测试软件变成硬件,做成DDR用测试工具,是提高测试效率的较好的选择。一开始设计的DDR专用测试工具是使用Xilinx公司的Spartan-3E来实现的,但是很快发现:无论如何进行设计约束,诸多的地址信号、控制信号和数据信号很难做到同步送出,信号时延的离散范围很难达到0.2ns以下。对于数据率在200Mb/s以下的早期DDR产品,这勉强可以接受。但目前DDR2的数据率已经可以高达800Mb/s,也就是说,按相位角算,离散范围已达60°。为了保证上述有关信号的同步,不得不在FPGA与DDR丰目连接的所有信号线之间,增加了用CPLD器件做成的同步接口,利用CPLD器件端口到端口具有一致的延时特性来保证所有信号时间上的一致性。
对于Xilinx公司的Spartan-6系列,由于它有专为各类DDR内存设计的存储器控制模块(MCB),用户可以利用提供的存储器控制模块,直接驱动DDR芯片。大大方便了与DDR的接口。
在我们新的DDR专用测试工具“DDR存储芯片测试仪”中,使用Spartan-6系列的XC6SLX16芯片,按照该公司的ug416.pdf文件的指引,用CORE Generator软件中的MIG3.4分别产生了DDR2和DDR3两种类型的应用文件,包括DDR的基层MCB控制模块的应用文件,和它们的高层次使用举例文件example top。后者本身就是一个DDR的测试程序,它向你显示如何实现与基层MCB控制模块接口。我们在它的基础上增加了一些测试模式,并增加了测试设置寄存器和测试结果状态寄存器,用一个宏晶公司的STC12C5408单片机作为整个DDR芯片测试设备的管理器,经串行口与主机通信,很顺利地实现了对DDR2、DDR3芯片的测试。
DDR存储芯片测试仪硬件框图如图1所示。
在“DDR存储芯片测试仪”中,主机经管理器对测试方式设置寄存器进行设置,并能启动和终止测试过程。在对存储芯片的写入过程中,根据预设的方式,测试数据产生器产生不同的数据图案和存储地址送到存储器控制模块MCB,由它转换为DDR听需要的时序写入被测芯片。在测试的读出校对过程中,读出的数据由MCB送到读写数据比较器,把它和测试数据产生器按相同规律产生的数据进行比较。出过错误的数据位被记录到出错位图,并对出错次数进行计数。测试结束后,主机可经管理器读取出错位图和出错计数。测试过程中,DDP的工作电压和时钟频率也可经管理器进行设置。
MIG3.4产生的文件中包括有仿真文件和DDR的仿真模型,附图给出DDR 2的仿真结果。实测波形与仿真结果十分一致。
如上所述,利用Spartan-6系列芯片,已经轻而易举地实现了800Mb/s以上的数据率。由于时间利用率比使用计算机主板测试DDR芯片高得多,所以可以极大地节约测试时间。如果在生成MCB控制模块时设置不同参数,就能应用于不同型号DDR存储芯片的测试(但DDR2和DDR3本身的引腿不兼容)。不过,要注意的是:MIG3.4自动产生的约束文件(.ucf文件)中,DDR接口的信号电平设置为SSTL18(DDR2)或SSTL15(DDR3)。此时必须根据ug385_package pinout.pdf文件,由外部通过相应的VREF端,给相应的块加入逻辑参考电平。约束文件并不会自动给出这些腿号。但如果在ucf文件中把这些接口电平改为相应的LVCMOS18或LVCMOS15,则不需外加参考电平(可参见ug38l_select10.pdf文件)。