基于FPGA实现DDR接口自动化读写测试的装置及方法与流程

文档序号:11216133阅读:960来源:国知局
基于FPGA实现DDR接口自动化读写测试的装置及方法与流程

本发明涉及数据通信领域,具体涉及基于fpga(fieldprogrammablegatearray,现场可编程门阵列)的ddr(dualdatarate,双倍速率同步动态随机存储器)实现自动化读写测试的装置及方法。



背景技术:

ddr由jedec(电子设备工程联合委员会)于2004年发布,经历了ddr、ddr2、ddr3、ddr4的发展,ddr因其具有成本低廉、容量大和高速等优点而被广泛应用于存储需求高的数据通信领域。

ddr系统通常由ddr控制器和ddr存储器组成,ddr控制器根据用户的请求,按照ddr规范中定义的时序向ddr存储器发起初始化、读或写等指令。ddr存储器用于对数据进行存储和对ddr控制器的指令进行响应。

对于ddr控制器用户接口的测试主要分为正确性和有效速率两部分,正确性要求结果准确,有效速率测量要求快速遍历ddr器件的每一个地址。在一般的基于fpga的ddr控制器设计中,采用cpu执行读写命令的方式测试ddr控制器用户接口,存在测试周期长和测试数据不准确的缺陷。



技术实现要素:

本发明所要解决的技术问题是在现有的基于fpga的ddr控制器设计中,采用cpu执行读写命令的方式测试ddr控制器用户接口,存在测试周期长和测试数据不准确的缺陷。

为了解决上述技术问题,本发明所采用的技术方案是提供一种基于fpga实现ddr接口自动化读写测试的装置,包括:

配置下发模块,将cpu下发的读/写配置文件转换为dma指令并发送;

dma控制器,接收配置下发模块下发的dma指令,将dma指令依次切割为多个读/写指令并发送;

读写命令生成模块,将dma控制器下发的读/写指令转换为与ddr控制器接口适配的读操作或写操作,写数据的格式采用与ddr控制器接口的内存地址相匹配的自定义格式;

读数据校验模块,对已写入数据的ddr控制器接口进行读取操作后的回读数据进行检测,若回读数据与写入数据不一致则发送读取错误的消息;

计时器,记录自动化读/写测试的起始时间戳和结束时间戳,在自动化测试结束后发送;

测试数据上报模块,接收读数据校验模块发送的读取错误的消息并记录读取错误的累计次数;接收计时器发送的起始时间戳和结束时间戳;在自动化读/写测试结束后将上述测试数据上报至cpu;

cpu根据测试数据上报模块发送的起始时间戳和结束时间戳计算自动化读/写测试的时长,并根据自动化读/写测试的时长与读/写配置文件中的自动化测试长度计算出读/写速率。

在上述技术方案中,所述读/写配置文件中包括自动化测试模式,所述自动化测试模式为突发模式。

在上述技术方案中,所述配置下发模块设置一组公共配置寄存器,将所述公共配置寄存器引出的信号线与到每一个所述ddr控制器接口,向每一个所述ddr控制器接口独立发起自动化读/写测试或向多个所述ddr控制器用户接口同时发起自动化读/写测试。

在上述技术方案中,所述计时器的计时步长为8纳秒,记录的所述起始时间戳和结束时间戳由秒、毫秒、微秒和纳秒四级单元组成。

在上述技术方案中,所述读/写配置文件中还包括自动化测试类型、自动化测试起始地址以及自动化测试周期;

所述自动化测试类型包括写测试和读测试;

所述自动化测试起始地址为本次自动化测试的ddr控制器用户接口的起始地址;

所述自动化测试长度为本次自动化测试批量进行的读操作或写操作的次数;

所述自动化测试模式还包括均匀模式,表示按照固定的时隙下发读操作或写操作;所述突发模式,表示每次读操作或写操作后立即发起下一次读操作或写操作;

所述自动化测试周期表示在均匀模式下设置的每次读操作或写操作之间的时隙。

在上述技术方案中,在均匀模式下,所述读数据校验模块在预设时间内未收到回读数据时,发送读取超时的消息至所述测试数据上报模块;所述测试数据上报模块接收读取超时的消息并记录读取超时的累计次数,在自动化读/写测试结束后上报至cpu。

在上述技术方案中,所述dma控制器根据所述自动化测试起始地址和所述自动化测试长度对所述dma指令进行切片。

本发明还提供了一种基于fpga实现ddr接口自动化读写测试的方法,包括以下步骤:

将cpu下发的读/写配置文件转换为dma指令,并将dma指令依次切割为多个读/写指令;

将读/写指令转换为与ddr控制器用户接口适配的读操作或写操作,写数据的格式采用与ddr控制器用户接口的内存地址相匹配的自定义格式;

对已写入数据的ddr控制器用户接口进行读取操作后的回读数据进行检测,若回读数据与写入数据不一致则记录读取错误的累计次数;

在自动化读/写测试结束后,将读取错误的累计次数、记录的自动化读/写测试的起始时间戳和结束时间戳上报至cpu;

根据起始时间戳和结束时间戳计算自动化读/写测试的时长,并根据自动化读/写测试的时长与读/写配置文件中的自动化测试长度计算出读/写速率。

本发明实现了对ddr控制器用户接口快速且准确的自动化测试,写数据的格式采用与ddr控制器用户接口的内存地址相匹配的自定义格式,在读测试中无需为比对值分配大量缓存,可以快速高效地完成大容量器件的读测试;同时,采用计时器计时,计时精度较高,极大地提高了读写速率测试值的准确性。

附图说明

图1为本发明提供的一种基于fpga实现ddr接口自动化读写测试的装置结构示意图;

图2为本发明提供的一种基于fpga实现ddr接口自动化读写测试的方法流程图。

具体实施方式

为了解决在现有的基于fpga的ddr控制器设计中,采用cpu执行读写命令的方式测试ddr控制器用户接口,测试周期长以及测试数据不准确的问题,本发明一种基于fpga实现ddr接口自动化读写测试的装置及方法,支持用户执行类似dma(directmemoryaccess,直接内存存取)的批量自动化读写测试操作,同时,还能够记录测试时长,实现了对ddr控制器用户接口快速而精确的自动化测试,实现读写速率的精确计算,大大简化了用户的操作方式。

下面结合说明书附图和具体实施方式对本发明做出详细的说明。

本发明实施例提供了一种基于fpga实现ddr接口自动化读写测试的装置,如图1所示,包括配置下发模块10、dma控制器20、读写命令生成模块30、读数据校验模块40、计时器50以及测试数据上报模块60。

配置下发模块10,将cpu下发的读/写(读或写)配置文件转换为dma指令,并下发至dma控制器20。

cpu下发的读/写配置文件中包括:

自动化测试类型,为写测试或读测试;

自动化测试起始地址,为本次自动化测试的ddr控制器用户接口的起始地址;

自动化测试长度,为本次自动化测试批量进行的读操作或写操作的次数

自动化测试模式,包括均匀模式和突发模式,本实施例中采用突发模式,保证了可以测试ddr控制器用户接口读写极限的写入速率,相比cpudma方式可以更精确的测试ddr控制器用户接口读写的极限性能;均匀模式表示按照固定的时隙下发读操作或写操作;突发模式表示每次读操作或写操作之间没有间隔(即每次读操作或写操作后立即发起下一次读操作或写操作);

自动化测试周期,表示在均匀模式下设置的每次读操作或写操作发起时刻之间的间隔,即时隙。

dma控制器20,接收配置下发模块10下发的dma指令,根据自动化测试起始地址和自动化测试长度将dma指令依次切割为多个读/写指令,并将读/写命指令下发至读写命令生成模块30。

读写命令生成模块30,将dma控制器20下发的读/写指令转换为与ddr接口适配的读操作或写操作;其中写数据的格式采用与ddr控制器用户接口的内存地址相匹配的自定义格式,即ddr控制器用户接口的每一个内存地址对应不同的写数据,例如内存地址0x00001234对应的写数据为0xd0001234。在读测试中可以直接根据此对应关系进行比对,无需为比对值分配大量缓存,可以快速高效的完成大容量器件的读测试,节省了硬件缓存并大大提高了读数据校验模块40的校验效率。

读数据校验模块40,对已写入数据的ddr控制器用户接口进行读取操作后的回读数据进行检测,若回读数据与写入数据不一致则将读取错误的消息发送至测试数据上报模块块60。

计时器50,记录自动化读/写测试的起始时间戳和结束时间戳,在自动化测试结束后发送至测试数据上报模块60。

测试数据上报模块60,接收读数据校验模块40发送的读取错误的消息并记录读取错误的累计次数;接收计时器50发送的起始时间戳和结束时间戳;在自动化读/写测试结束后将上述测试数据上报至cpu。

cpu根据测试数据上报模块60发送的起始时间戳和结束时间戳计算自动化读/写测试的时长,并根据自动化读/写测试的时长与读/写配置文件中的自动化测试长度计算出读/写速率。

在均匀模式下,若读数据校验模块40在预设时间内未收到回读数据,则发送读取超时的消息至测试数据上报模块60;测试数据上报模块60接收读取超时的消息并记录读取超时的累计次数,在自动化读/写测试结束后上报至cpu。

下面对本实施例的工作原理进行介绍:

配置下发模块10与测试数据上报模块60提供一个通用的cpu本地总线接口,作为本地总线的从端,响应用户通过ddr控制器用户接口提供的读/写操作。cpu本地总线接口由片选信号、读写使能信号、地址信号、数据信号组成,上述信号由cpu传递给配置下发模块10与测试数据上报模块60,用于完成cpu对本发明实施例的读写访问cpu作为本地总线的主端,需要在上一次读/写操作完成后才能再次发起读/写操作。

测试数据上报模块60上报的测试数据包括本次自动化测试读取错误的累计次数、均匀模式下超时告警、本次自动化测试的起始时间戳、本次自动化测试的结束时间戳。读取错误的累计次数与超时告警于当前自动化测试结束后有效,并于下次自动化测试开启后清零。据错误累计可以帮助用户方便的进行问题定位,如读取超时告警提示检查ddr控制器流控电路,读取错误的累计次数提示ddr控制器缓存溢出或ddr控制器用户接口时序。对于读取错误的累计次数还可以根据多次自动化读测试的测试结果进行分析,若其中某次或某几次有错误且无规律可定位ddr控制器用户接口时序,若其中某次出错后之后测试一直报错可定位ddr控制器缓存溢出。

计时器50的计时步长为8纳秒,自动化测试的起始时间戳与结束时间戳由秒、毫秒、微秒、纳秒四级单位组成,用户可在自动化测试完成后读取并结合所配置的自动化测试长度精确计算出读或写速率。基于硬件时钟计时,使计时精度可以达到纳秒级,读写速率测试值的精确度大大优于软件测试。

读写命令生成模块30提供一个自定义的ddr控制器用户接口,其作为主端,通过该ddr控制器用户接口发起读/写请求。ddr控制器20作为ddr控制器用户接口的从端,在完成请求结束回复信号后结束读/写请求。上述ddr控制器用户接口需要在收到上一次读/写请求完成回复信号后才能再次发起读/写请求。ddr控制器用户接口由请求开始信号、请求读写指示信号、请求起地址信号、请求长度信号、请求写数据信号、请求读回复数据信号、请求结束回复信号组成,上述信号由读写命令生成模块30传递给ddr控制器,用于ddr控制器用户接口发起读/写请求或ddr控制器20结束读/写请求。ddr控制器用户接口与cpu本地总线接口所不同的是,cpu本地总线接口只支持一次操作执行一拍数据的读写,而ddr控制器用户接口一次操作支持1至1024任意拍数据的连续读写。上述的ddr控制器用户接口可以适配于各种ddr控制器。

本发明下游ddr控制器用户接口由ddr控制器20与ddr存储器组成,作为本发明实施例的测试对象。其中ddr控制器一般通过调用fpga器件厂家提供的ddrip核实现。该ip核可实现将内部逻辑的数据总线转化为符合ddr标准规范的ddr总线操作,实现fpga片内逻辑与ddr存储器的连通。

上述本地总线一般应用于与cpu连接,ddr控制器用户接口一般应用于与ddr控制器连接。在本发明实施例中,采用3个ddr控制器用户接口。在实际应用中3个ddr控制器用户接口相互独立,也可配置可同时对不同的底层ddr器件进行访问。

dma控制器20是实现自动化测试的关键,其作用是使cpu只需进行少量配置即可发起对大容量存储器的覆盖性读写,从而实现覆盖性测试。dma控制器20根据不同的配置做出相应的处理并在测试完成后返回测试结束信号。

自动化测试类型决定了dma控制器20下发的指令为读指令还是写指令,dma控制器20根据自动化测试起始地址(通常为0)和自动化测试长度(通常为ddr存储器的容量)完成切片操作,即将大容量的数据搬移请求切割成匹配ddr控制器接口的小读写请求并依次执行。

自动化测试模式决定了切片后的ddr控制器用户接口读写请求如何下发,即均匀模式按照固定的时隙下发,而突发模式为完成当前ddr控制器用户接口读写请求后立即下发下一个,均匀模式下的自动化测试周期可以灵活配置。

以上适用于单个ddr控制器用户接口通道的测试,对于多个ddr控制器用户接口并接的情况,可采用多通道并行读写的操作。具体地,在配置下发模块10不仅为每一个ddr控制器用户接口分配独立的配置寄存器和告警上报寄存器,还设置一组公共配置寄存器,该公共配置寄存器引出的信号线与到每一个ddr控制器用户接口,既可以针对每一个ddr控制器用户接口独立发起自动化读/写测试,也可以对多个ddr控制器用户接口同时发起自动化读/写测试。支持多通道并行测试,不仅可以缩短测试时间,进一步提高测试效率,对于多口ddr控制器还可以方便地对其进行更严格的压力测试。

本发明实施例还提供了一种基于fpga实现ddr接口自动化读写测试的方法,如图2所示,包括以下步骤:

s1、在上电初始化完成后,将cpu下发的读/写配置文件转换为dma指令,并将dma指令依次切割为多个读/写指令。

s2、将读/写指令转换为与ddr控制器用户接口适配的读操作或写操作,写数据的格式采用与ddr控制器用户接口的内存地址相匹配的自定义格式。

s3、对已写入数据的ddr控制器用户接口进行读取操作后的回读数据进行检测,若回读数据与写入数据不一致则记录读数据错误的累计次数。

s4、在自动化读/写测试结束后,将读数据错误的累计次数、记录的自动化读/写测试的起始时间戳和结束时间戳上报至cpu。

s5、根据起始时间戳和结束时间戳计算自动化读/写测试的时长,并根据自动化读/写测试的时长与读/写配置文件中的自动化测试长度计算出读/写速率。

本发明应用在ptn设备上,充分利用fpga并行运行速度快和计时精确的优点,可以方便快速进行ddr控制器用户接口的应用验证,同时提高了测试精度与效率。

本发明不局限于上述最佳实施方式,任何人在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1