基础知识篇
1.MIG IP核结构框图
结构包含两部分:
- 左侧是用户接口,负责fpga和 ip核交互。(用户需要设计这部分完成DDR的读写操作)
- 右侧是DDR物理芯片接口,直接操作芯片。(该部分用户只负责分配管脚,其他不用管)
2.IP核 用户接口信号及说明
3.时序图
读写操作前准备:
写:app_cmd[2:0]=000
读:app_cmd[2:0]=001
app_rdy为高表明此时 IP 核已经准备好接收用户的命令。
在app_rdy为高时拉高 app_en,同时发送命令(app_cmd)和地址(app_addr),此时命令和地址被写入。
写操作时序
这里包含三种情况,数据均可以被写入:
1.写数据和写命令发生在同一拍;
2.写数据比写命令提前一拍;
3.写数据比写命令至多延迟两拍;
pp_wdf_rdy信号为高表明此时 IP 核数据接收处于准备完成状态,可以接收用户发过来的数据。
在当前时钟拉高写使能app_wdf_wren,给出写数据app_wdf_data,加上之前发起的写命令操作就可以成功向 IP 核写数据。
其中:app_wdf_mask[APP_MASK_WIDTH – 1:0]:指示app_wdf_data[]中哪些字节被写入外部内存(mask=0),哪些字节保持当前状态(mask=1)。1bit的mask表示1byte的app_wdf_data[]数据的情况。
例如:app_wdf_data[255:0],共32Byte,需要32bit的mask。Mask[0]=1表示app_wdf_data[7:0]被写入。
读操作时序
根据Burst Type的不同可以分为两种读模式。
在发出读命令后,用户只需等待数据有效信号app_rd_data_valid拉高,表明此是有效的返回数据。一般在发出读命令后,有效读数据要晚若干周期才出现在数据总线上。