DDR3 SDRAM(Double-Data-Rate Three Synchronous Dynamic Random Access Memory)是 DDR SDRAM的第三代产品,DDR SDRAM 的最大特点是双沿触发,即在时钟的上升沿和下降沿都能进行数据采集和发送,同样的工作时钟,DDR SDRAM 的读写速度可以比传统的 SDRAM 快一倍。
以下为MIG IP 核结构框图。MIG IP 核对外分出了两组接口。左侧是用户接口,就是用户(FPGA)同 MIG IP核交互的接口。右侧为 DDR 物理芯片接口,负责产生具体的操作时序,并直接操作芯片管脚。这一侧用户只负责分配正确的管脚,其他不用关心。即用户只需操作MIG IP的用户接口就能进行DDR数据的读写。点击 MIG IP可下载MIG IP核的使用手册。
下图为MIG IP核用户接口的信号及其说明:
读写操作前的准备
DDR3 的读或者写都包含写命令操作(app_cmd),app_cmd = 0 时为写操作,app_cmd = 1 时为读操作。
要想向DDR中写入数据或读出数据,必须先检查 app_rdy,app_rdy为高则表明此时 IP 核已经准备好,可以接收用户命令,在app_rdy为高时拉高 app_en,同时发送命令(app_cmd)和地址(app_addr),此时命令和地址被写入。
写操作时序
写数据有三种情形均可以正确写入:
(1)写数据时序和写命令时序发生在同一拍;
(2)写数据时序比写命令时序提前一拍;
(3)写数据时序比写命令时序至多延迟晚两拍;
在向DDR中写入数据时要先检查 app_wdf_rdy,该信号为高表明此时 IP 核数据接收处于准备完成状态,可以接收用户发过来的数据,在当前时钟拉高写使能(app_wdf_wren),给出写数据(app_wdf_data)。再加上之前发起的写命令操作就可以成功向 IP 核写数据。其中 app_wdf_mask信号是用来屏蔽写入数据的,该信号为高则屏蔽相应的字节,该信号为 0 默认不屏蔽任何字节。
读操作时序
如上图所示,在发出读命令后,用户只需等待数据有效信号(app_rd_data_valid)拉高,为高表明此时数据总线上的数据是有效的返回数据。一般在发出读命令后,有效读数据要晚若干周期才出现在数据总线上。