1、前言
NXP官方提供了一个DDR初始化工具,名称为ddr_stress_tester,该工具具有以下特点:
该工具能通过USB OTG接口与目标板进行连接,通过USB OTG接口完成DDR的初始化与测试;
该工具具有一个默认的Excel表配置文件,通过该表能设置目标板的DDR硬件相关信息,该Excel表生成的.inc文件为DDR初始化脚本文件,对应着DDR配置寄存器地址和寄存器的值;
该工具能加载.inc文件里面的DDR初始化信息,并通过USB OTG接口向板子中下载相关的测试代码;
此工具能对目标板的DDR进行超频性能测试以及DDR配置的较准。
工具下载链接:https://community.nxp.com/docs/DOC-102005
2、ddr_stress_tester使用
接下来将对ddr_stress_tester的使用进行简单介绍,以NXP的I.MX6UL芯片进行举例讲解,先在上面给出的链接中下载下面两个文件:
在上面的文件中,I.MX6UL DDR3 Script Aid为对应的Excel表格,用来填写相应的SoC和DDR的硬件信息,i.MX6/7 DDR Stress Test Tool V3.00则为我们需要使用的DDR压力测试工具。
将ddr_stress_tester工具下载后,对其进行安装,安装完成后如下所示:
DDR_Tester.exe文件为ddr_stress_tester应用程序,就是使用该应用程序完成DDR的初始化和测试的,I.MX6UL_DDR3_Script_Aid_V0.02.xlsx为上面提到Excel表格,该表格保存了需要填写的DDR硬件信息,还有对应生成的.inc文件的内容。
接下来,看看I.MX6UL_DDR3_Script_Aid_V0.02.xlsx的具体内容,打开后表格如下所示:
我们要对Register Configuration页面中的内容进行填写,主要是DDR硬件的相关信息,需要根据对应的目标板进行填写,例如DDR容量的大小、行和列地址线的数量等内容,如下所示:
将与DDR相关的硬件信息填写完成后,到RealView.inc查看相关的寄存器的配置值,并将里面的内容进行复制粘贴到一个新的.inc文件,该文件在使用ddr_stress_tester工具时进行加载,如下:
新创建.inc文件,并将RealView.inc页面的内容复制粘贴到新建立的.inc文件中,如下:
生成对应的.inc文件后,接下来就是使用ddr_stress_tester工具进行加载测试了。
打开DDR_Tester.exe应用程序,并进行要测试的目标板的硬件信息填写,如下:
将目标板和DDR的相关信息填写完成后,加载刚刚新创建的.inc文件,并将目标板设置为USB OTG下载,打开目标板的电源,点击ddr_stress_tester应用程序的Download按钮,将.inc文件进行下载,如果成功下载将会有目标板的相关信息打印输出,如下:
接下来就是先进行DDR的较准,点击下面按钮开始进行DDR较准:
如果能较准成功的话,将会输出需要较准的寄存器地址,和对应的较准值,这时候,需要对加载的.inc文件进行对应的值修改,如下:
完成了MMDC寄存器值的较准后,接下来则进行DDR的压力测试,需要设置好DDR开始和结束的速率,并点击如下的按钮开始进行DDR压力测试:
在对目标板的DDR做压力测试,会有点久,需要耐心等待,一般情况下,DDR3能超频到标准频率的10%~15%的话,就可以认为硬件设计是没问题,从下面的图可以看到DDR的频率正在逐渐增加,直到测试失败或者终止频率:
最后的测试结果,如下所示:
从测试结果可以知道,当DDR3的频率到561MHz的时候就跑不下去了,但是该DDR的最高频率比标准频率要高,可以知道该DDR的硬件电路是没啥问题的。
3、小结
本文主要简单介绍了NXP官方的ddr_stress_tester工具的使用,并对ComP6UL目标板上的256MB的DDR3进行了超频测试。