掌桥专利:专业的专利平台
掌桥专利
首页

基于FPGA的DDR功能测试系统及方法

文献发布时间:2024-01-17 01:19:37


基于FPGA的DDR功能测试系统及方法

技术领域

本发明涉及存储技术领域,更具体地涉及一种基于FPGA的DDR功能测试系统及方法。

背景技术

随着服务器和PC市场需求量增大,对于DDR内存的需求也在日益增加,为了保证产品质量,大部分厂商都会在生产后对DDR内存进行电路测试(电路测试包括开短路测试及漏电流测试)以保证产品质量。目前市面上使用继电器对DDR内存进行电路测试,但只能保证内存单一元器件pass,无法确认内存功能是否正常,且只适应于对DDR4内存进行测试,随着DDR5内存的诞生,目前还未有相关测试设备或系统对DDR5内存进行检测,以确认内存功能是否正常,使得DDR产品质量存在非常大的隐患。

鉴于此,有必要提供一种能对DDR内存进行电路测试以确认DDR内存功能是否正常的基于FPGA的DDR功能测试系统,从而解决上述缺陷。

发明内容

本发明的目的是提供一种基于FPGA的DDR功能测试系统以解决上述缺陷。

本发明的另一目的是提供一种基于FPGA的DDR功能测试方法以解决上述缺陷。

为了实现上述目的,一方面,本发明提供一种基于FPGA的DDR功能测试系统,所述功能测试系统包括:控制设备及FPGA卡,其中,所述控制设备用于获取测试人员设置的与待测DDR相对应的界面信息;所述FPGA卡包括ARM模块及FPGA模块,所述ARM模块与所述控制设备连接,用于接收所述控制设备发送的所述界面信息,并获取与所述界面信息相对应的功能测试信息;所述FPGA模块一端与所述ARM模块连接,另一端用于与所述待测DDR连接,用于接收所述ARM模块传输的所述功能测试信息,并根据所述功能测试信息对所述待测DDR进行电路测试及SPD烧录。

其进一步技术方案为:所述功能测试信息包括电路测试信息和SPD烧录信息,所述FPGA模块上设有至少一测试槽位,所述FPGA模块根据所述电路测试信息和所述SPD烧录信息通过内存接口和I2C接口对插设于所述测试槽位内的所述待测DDR进行电路测试和SPD烧录。

其进一步技术方案为:所述FPGA模块上设有RDIMM测试槽位及UDIMM测试槽位,所述FPGA模块与所述RDIMM测试槽位及所述UDIMM测试槽位之间均通过所述内存接口及所述I2C接口连接,插设于所述RDIMM测试槽位内的所述待测DDR为服务器所使用的DDR,插设于所述UDIMM测试槽位内的所述待测DDR为电脑主机所使用的DDR。

其进一步技术方案为:所功能测试系统还包括电压控制模组,所述电压控制模组分别与所述FPGA模块、所述RDIMM测试槽位以及所述UDIMM测试槽位连接,用于接收所述FPGA模块发送的电压指令,以对插设于所述RDIMM测试槽位或所述UDIMM测试槽位内的所述待测DDR进行电压控制。

其进一步技术方案为:所述ARM模块上外挂有eMMC存储模块,所述eMMC存储模块中存储有与所述待测DDR相对应的多个测试版本。

其进一步技术方案为:所述ARM模块包括千兆网口,所述控制设备包括RG45接口,通过所述千兆网口与所述RG45接口实现所述控制设备与所述FPGA卡的连接。

其进一步技术方案为:所述功能测试系统还包括SDM模块,所述SDM模块上外挂有config QSPI flash存储模块,所述config QSPI flash存储模块中存储有所述FPGA卡的启动文件。

为了实现上述目的,另一个方面,本发明还提供了一种基于FPGA的DDR功能测试方法,该方法包括:控制设备获取待测DDR的界面信息;FPGA卡接收所述控制设备发送的所述界面信息,并获取与所述界面信息相对应的功能测试信息,根据所述功能测试信息对待测DDR进行电路测试及SPD烧录。

其进一步技术方案为:根据所述待测DDR的类型确定目标待测DDR;根据所述电路测试模式对目标待测DDR进行电路测试,其中,所述电路测试模式包括单地址线测试模式、相邻地址线测试模式、单数据线测试模式、相邻数据线测试模式、高低位控制线测试模式、所有位控制线测试模式、随机测试模式以及自刷新测试模式;将所述SPD序列号写入所述SPD文件得到目标SPD文件,并计算所述目标SPD文件的校验码,以根据所述校验码对SPD烧录进行验证。

其进一步技术方案为:所述FPGA卡将电路测试及SPD烧录得到的测试结果返回至所述控制设备。

本发明实施例提供了一种基于FPGA的DDR功能测试系统及方法。该系统先通过ARM模块接收控制设备发送的界面信息,并获取与界面信息相对应的功能测试信息;再通过FPGA模块根据功能测试信息对待测DDR进行电路测试及SPD烧录,从而可确认DDR内存是否正常,提高了DDR产品的质量。

通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。

附图说明

图1为本发明的一种基于FPGA的DDR功能测试系统一实施例的结构框图;

图2为本发明的一种基于FPGA的DDR功能测试系统一实施例的硬件框图;

图3为图2所示基于FPGA的DDR功能测试系统的层次结构框图;

图4为本发明的基于FPGA的DDR功能测试方法一实施例的流程示意图;

图5为本发明的基于FPGA的DDR功能测试方法一实施例的子流程示意图;

附图标记:10、控制设备;11、FPGA卡;111、ARM模块;1111、eMMC存储模块;112、FPGA模块;1121、RDIMM测试槽位;1122、UDIMM测试槽位;113、SDM模块;1131、config QSPI flash存储模块;12、电压控制模组。

具体实施方式

下面将结合本发明实施例中的附图,对实施例中的技术方案进行清楚、完整地描述,附图中类似的组件标号代表类似的组件。显然,以下将描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1至图3,本发明实施例所提供的基于FPGA的DDR功能测试系统包括:控制设备10及FPGA卡11,其中,所述控制设备10用于获取测试人员设置的与待测DDR相对应的界面信息;所述FPGA卡11包括ARM模块111及FPGA模块112,所述ARM模块111与所述控制设备10连接,用于接收所述控制设备10发送的所述界面信息,并获取与所述界面信息相对应的功能测试信息;所述FPGA模块112一端与所述ARM模块111连接,另一端用于与所述待测DDR连接,用于接收所述ARM模块111传输的所述功能测试信息,并根据所述功能测试信息对所述待测DDR进行电路测试及SPD烧录。需要说明的是,所述FPGA卡11为AGM系列芯片,在本实施例中,采用AGM032R32B1E芯片。本实施例提供的功能测试系统,先通过所述ARM模块111接收所述控制设备10发送的所述界面信息,并获取与所述界面信息相对应的所述功能测试信息;再通过所述FPGA模块112根据所述功能测试信息对所述待测DDR进行电路测试及SPD烧录,从而可确认DDR内存是否正常,提高了DDR产品的质量。

在某些实施例,例如本实施例中,如图1和图2所示,所述功能测试信息包括电路测试信息和SPD烧录信息,所述FPGA模块112上设有至少一测试槽位,所述FPGA模块112根据所述电路测试信息和所述SPD烧录信息通过内存接口和I2C接口对插设于所述测试槽位内的所述待测DDR进行电路测试和SPD烧录,可理解地,所述FPGA模块112根据所述电路测试信息通过所述内存接口对插设于所述测试槽位内的所述待测DDR进行电路测试,所述FPGA模块112根据所述SPD烧录信息通过所述I2C接口对插设于所述测试槽位内的所述待测DDR进行SPD烧录。具体地,所述FPGA模块112上设有RDIMM测试槽位1121及UDIMM测试槽位1122,所述FPGA模块112与所述RDIMM测试槽位1121及所述UDIMM测试槽位1122之间均通过所述内存接口及所述I2C接口连接,插设于所述RDIMM测试槽位1121内的所述待测DDR为服务器所使用的DDR,插设于所述UDIMM测试槽位1122内的所述待测DDR为电脑主机所使用的DDR。可理解地,所述RDIMM测试槽位1121用于放置服务器使用的DDR,所述UDIMM测试槽位1122用于放置电脑主机使用的DDR。需要说明的是,在本实施例中,SPD烧录即为SPD的读写操作。

在某些实施例,例如本实施例中,如图1和图2所示,所功能测试系统还包括电压控制模组12,所述电压控制模组12分别与所述FPGA模块112、所述RDIMM测试槽位1121以及所述UDIMM测试槽位1122连接,用于接收所述FPGA模块112发送的电压指令,以对插设于所述RDIMM测试槽位1121或所述UDIMM测试槽位1122内的所述待测DDR进行电压控制,例如,可将所述RDIMM测试槽位1121或所述UDIMM测试槽位1122内的所述待测DDR的测试电压控制在3.3V,可理解地,测试电压控制的数值根据实际需求而定,在此不作具体限定,通过所述电压控制模组12对测试电压进行控制,可提高测试的稳定性。

在某些实施例,例如本实施例中,所述ARM模块111上外挂有eMMC存储模块1111,所述eMMC存储模块1111中存储有与所述待测DDR相对应的多个测试版本。

需要说明的是,在本实施例中,如图2所示,所述ARM模块111上还外挂有SD cordSocket接口、DDR4 DIMM接口、UART PHY接口以及与UART PHY接口连接的USB conn接口,通过外挂的接口,可接入相应的设备,以便后续使用。

在某些实施例,例如本实施例中,如图2所示,所述ARM模块111包括千兆网口,所述控制设备10包括RG45接口,通过所述千兆网口与所述RG45接口实现所述控制设备10与所述FPGA卡11的连接,所述控制设备10为PC机,所述千兆网口为RGMII网口,在所述RGMII网口与所述RG45接口之间还有一转换接口ETH PHY接口。可理解地,所述PC机上安装有控制所述FPGA卡11的软件程序,该软件程序为GUI程序。需要说明的是,在本实施例中,也可通过远程控制设备10与所述ARM模块111连接,以向所述ARM模块111传输所述界面信息,只需所述远程控制设备10中存储有控制所述FPGA卡11的软件程序即可。

在某些实施例,例如本实施例中,如图2所示,所述功能测试系统还包括SDM模块113,所述SDM模块113上外挂有config QSPI flash存储模块1131,所述config QSPI flash存储模块1131中存储有所述FPGA卡11的启动文件,以实现所述FPGA卡11的启动。

在某些实施例,例如本实施例中,如图3所示,若将FPGA卡11中的软件程序划分为5个层,由上到下分别为GUI程序、接口层、驱动层、指令层以及PHY层,其中,PHY层也称为端口物理层,PHY层由FPGA卡11的FPGA模块112实现,FPGA模块112与RDIMM和UDIMM通过内存接口和I2C互联,完成内存接口初始化以及IIC接口的读写功能;指令层也由FPGA模块112实现,定义了每个pattern(测试模式)具体的测试项,并按要求执行指定的pattern,同时实现了SPD的基本读和写,还可以对指定地址的内容进行读和写。驱动层由ARM模块实现,可以修改各pattern的参数,组织各个pattern的执行顺序,控制整个pattern的执行流程,并将测试结果反馈到接口层,不仅如此,还能够实现对SPD完整的读和写,并修改指定字段的内容;能够将SPD序列号跟默认的SPD内容进行合并,以重新计算校验码,能够导入和导出完整的SPD文件。接口层也有ARM模块111实现,定义消息传递的格式(json接口),通过网络包(UDP协议)的形式与PC机中的GUI程序通信,衔接GUI程序与驱动层,最上层是GUI程序,用于人机交互,接收测试人员设置的任务以及将任务执行结果在界面上显示。

参照图4,图4展示了本发明的一种基于FPGA的DDR功能测试方法一实施例的流程示意图,该功能测试方法应用于上述功能测试系统,下面以该方法来进一步详细阐述本发明功能测试系统的具体工作原理。如图4所示,该方法包括以下步骤S100-S110:

S100、控制设备获取待测DDR的界面信息;

S110、FPGA卡接收所述控制设备发送的所述界面信息,并获取与所述界面信息相对应的功能测试信息,根据所述功能测试信息对待测DDR进行电路测试及SPD烧录。

在本发明实施例中,测试人员在控制设备中的GUI程序上进行设置,例如,选择待测DDR的类型、又扫码枪扫入SPD序列号、设置SPD文件的导出导入格式以及选择待测DDR的测试模式,设置完成之后,点击GUI程序界面上的测试开始按钮可触发测试开始指令的发送,GUI程序接收到测试开始指令获取与待测DDR相对应的界面信息,并将所述界面信息发送至FPGA卡,FPGA卡接收所述控制设备发送的所述界面信息,并获取与所述界面信息相对应的功能测试信息,根据所述功能测试信息对待测DDR进行电路测试及SPD烧录。需要说明的是,若GUI程序为工程模式,还可按Byte修改SPD各个字段信息。所述FPGA卡还可将电路测试及SPD烧录得到的测试结果返回至所述控制设备,可理解地,也可将电路测试过程及SPD烧录过程中的中间结果值返回至所述控制设备,以在所述控制设备的GUI界面上进行显示。

在一实施例中,例如本实施例中,请参阅图5,上述的步骤S110可包括以下步骤S111~S113。

S111、根据所述待测DDR的类型确定目标待测DDR;

S112、根据所述电路测试模式对目标待测DDR进行电路测试,其中,所述电路测试模式包括单地址线测试模式、相邻地址线测试模式、单数据线测试模式、相邻数据线测试模式、高低位控制线测试模式、所有位控制线测试模式、随机测试模式以及自刷新测试模式;

S113、将所述SPD序列号写入所述SPD文件得到目标SPD文件,并计算所述目标SPD文件的校验码,以根据所述校验码对SPD烧录进行验证。

在本发明实施例中,根据所述待测DDR的类型确定目标待测DDR,即确定对UDIMM测试槽位还是RDIMM测试槽位中的待测DDR进行测试,确定之后,将所述SPD序列号写入所述SPD文件得到目标SPD文件,并计算所述目标SPD文件的校验码,以根据所述校验码对SPD烧录进行验证。需要说明的是,对SPD的读写,可以指定单个地址进行读写,也可以对整个地址空间进行读写,并实时的将SPD的内容在GUI界面上显示。需要说明的是,是将SPD烧录进入待测DDR的EEPROM上,SPD内会预留位置,测试时会将SPD序列号一起烧录进SPD。也可以在GUI程序上单独对SPD的某一位或者某个区域进行读写。

进一步地,根据所述电路测试模式对目标待测DDR进行电路测试,其中,所述电路测试模式包括单地址线测试模式、相邻地址线测试模式、单数据线测试模式、相邻数据线测试模式、高低位控制线测试模式、所有位控制线测试模式、随机测试模式以及自刷新测试模式。为描述简便,将电路测试模式称为pattern,所述单地址线测试模式、相邻地址线测试模式、单数据线测试模式、相邻数据线测试模式、高低位控制线测试模式、所有位控制线测试模式、随机测试模式以及自刷新测试模式分别对应pattern0、pattern1、pattern2、pattern3、pattern4、pattern5、pattern6以及pattern7。通过pattern0至pattern7可对待测DDR的数据线、地址线以及控制线的开短路和漏电流进行测试,并可定位到具体的地址。

更进一步地,以测试DDR5为例对pattern0至pattern7进行具体说明

pattern0:(1)每次变化1根地址线,其他地址线固定不变。目的是测试单地址线对电源和地的开短路和漏电流;(2)在指定地址线为0的地址内和指定地址线为1的地址内,分别写入两个不同的数据,依次读取两个地址内的数据,并将检测读取的数据与预期数据是否一致,重复测试8次;(3)正常情况下:两个地址读取出来的数据与预期数据一致;不正常情况:A、如果两个地址读取回来的数据相同,且多次测试结果一致,说明指定地址线已经被固定拉高或者拉低,存在开路或者短路,而且是RDIMM接口或UDIMM接口上存在开路或短路;B、如果两个地址读回来的数据不同,且多次测试结果一致,但与预期数据不同,则需要根据具体出错的数据位来判断是具体哪根指定地址线存在开路或短路;C、如果两个地址读回来的数据在多次测试结果中现象不一致,就无法判断具体的原因,直接标注出错即可,并给出可能原因,例如,漏电流较弱;(4)按上述方法遍历所有的地址线。

pattern1:(1)对于DDR5相邻的地址线,每次测试一组,地址A0和A1地址线相邻,A1和A2地址线相邻,先测A0和A1的相互干扰,目的是测试相邻地址线之间的开短路和漏电流。(2)分别测试A0=0且A1=1、A0=1且A1=0两种情况下的读写,写入的数据不同,写入到2个地址内的数据读出来后是否符合预期;重复测试8次。(3)交替A0=0且A1=1、A0=1且A1=0两种情况,看写入到2个地址内的数据读出来后是否符合预期;重复测试8次。(4)正常情况下:上述测试读出来的数据应该完全符合预期值而且数值不一样;不正常情况:A、如果读出来的数据与预期不一致,说明两根地址线之间存在短路或者明显的漏电流;B、在地址测试正常,但是高速交替下出现读写错误,则说明两个地址线存在较弱的漏电流;(5)按上述方法遍历所有的地址线。

pattern2:(1)每次变化1根数据线,其他数据线固定不变,目的是测试单数据线对电源和地的开短路和漏电流;(2)往地址A内写入数据时指定数据线固定为0并读出,再往地址A内写入数据时指定数据线固定为1并读出,并检测读取的数据与预期数据是否一致,重复测试8次。(3)往连续地址段内写入数据时指定数据线0和数据线1之间高速翻转,依次读出连续地址段内的数据,并检测读出的数据是否跟预期数据一致;重复测试8次。(4)正常情况下,读出来的数据应该完全符合预期值;不正常情况下:A、如果地址A两次读出的数据,指定数据位不全为0和全为1,说明该数据线与电源或地存在开短路和漏电流;B、如果在连续地址段读写时,高速翻转数据读写不一致,说明存在漏电流;(5)按上述方法遍历所有的数据线。

pattern3:(1)对于DDR5相邻的数据线,每次测试一组,地址D0和D1数据线相邻,D1和D2数据线相邻,先测D0和D1的相互干扰,目的是测试相邻数据线之间的开短路和漏电流;(2)分别测试D0=0且D1=1、D0=1且D1=0两种情况下的读写,写入并读出数据,并查看读出数据是否符合预期;重复测试8次;(3)高速交替D0=0且D1=1、D0=1且D1=0两种情况,进行连续一个地址段的读写,看写入和读出的数据是否符合预期;重复测试8次;(4)正常情况下,上述测试读出来的数据应该完全符合预期值;其它不正常情况,存在开短路和漏电流。

pattern4:(1)遍历所有地址控制线,写入高反转率数据(例如,0x5a5a5a5a、0x96969696等);(2)从地址0开始读出数据并对比,然后写入新的高反转率数据,依次遍历所有地址空间;(3)从地址0开始读出数据并对比,得到控制线开短路和漏电流测试结果。

pattern5:(1)遍历所有地址控制,写入的数据包含了地址信息;(2)从地址0开始读出数据并对比。

pattern6:(1)产生随机地址和随机数据写入;(2)按写入的顺序读取数据并对比。

pattern7:(1)自刷新操作和正常读写功能;(2)如果功能都正常则CKE功能正常。

综上所述,本实施例提供的基于FPGA的DDR功能测试系统及方法,先通过ARM模块接收控制设备发送的界面信息,并获取与界面信息相对应的功能测试信息;再通过FPGA模块根据功能测试信息对待测DDR进行电路测试及SPD烧录,从而可确认DDR内存是否正常,提高了DDR产品的质量。采用本发明提供的基于FPGA的DDR功能测试系统,可确认DDR内存是否正常,具有提高DDR产品质量等优点。

以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。

相关技术
  • 基于FPGA的外扩DDR2的读写方法及基于FPGA的外扩DDR2颗粒存储器
  • 基于FPGA的外扩DDR2的读写方法及基于FPGA的外扩DDR2颗粒存储器
技术分类

06120116131561