f. app_wdf_wren:此输入表示app_wdf_data []总线上的数据有效。 g. app_wdf_rdy:此输出表示写数据FIFO已准备好接收数据。当app_wdf_rdy和app_wdf_wren都被声明时,接受写入数据。 h. app_wdf_mask[APP_MASK_WIDTH – 1:0]:该总线指示app_wdf_data []的哪些字节写入外部存储器以及哪些字节保持其当前状态。
// Application interface ports //下面的app开头的信号才是我们使用MIG控制器需要关注的 .app_addr(app_addr), // input [28:0] app_addr .app_cmd(app_cmd), // input [2:0] app_cmd .app_en(app_en), // input app_en .app_wdf_data(app_wdf_data), // input [255:0] app_wdf_data ...
app_cmd:用于控制读写,0对应写,1对应读 app_addr:地址信号,这里为8突发,因此,一次数据512bit数据的读写,对应地址要加8(512/64) app_en与app_rdy为握手信号,两个信号同时为高时,将会使得app_cmd及app_addr信号有效 第二类信号为用户写信号: app_wdy_wren:写使能信号 app_wdy_data:写数据信号,注意:其宽度...
所以写数据时序为:先检查app_wdf_rdy,为高则表明此时IP核可以接收数据,在当前时钟拉高写使能app_wdf_wren,给出写数据app_wdf_data。 读数据的时序图如下。 发出读命令后,用户等待数据有效信号app_rd_data_valid拉高,表明此时读数据有效。 二、MIG IP核配置 这里说明两点。 1.clock period:ddr芯片的时钟频率,双...
3. app_en (确认地址线上的地址有效,不能初始值都一直有效吧) 操作地址app_addr的使能,只有它拉高的时候,对应的app_addr才是有效的 4. app_wdf_data (要写的话,你得有料不是) 写入的数据接口 5. app_wdf_wren (那也不能什么料都往里倒不是) ...
//下面的app开头的信号才是我们使用MIG控制器需要关注的 .app_addr(app_addr), // input [28:0] app_addr .app_cmd(app_cmd), // input [2:0] app_cmd .app_en(app_en), // input app_en .app_wdf_data(app_wdf_data), // input [255:0] app_wdf_data ...
(ddr3_odt),// output [0:0] ddr3_odt// Application interface ports.app_addr(app_addr),// input [28:0] app_addr.app_cmd(app_cmd),// input [2:0] app_cmd.app_en(app_en),// input app_en.app_wdf_data(app_wdf_data),// input [127:0] app_wdf_data.app_wdf_end(app_wdf_...
f. app_wdf_wren:此输入表示app_wdf_data []总线上的数据有效。 g. app_wdf_rdy:此输出表示写数据FIFO已准备好接收数据。当app_wdf_rdy和app_wdf_wren都被声明时,接受写入数据。 h. app_wdf_mask[APP_MASK_WIDTH –1:0]:该总线指示app_wdf_data []的哪些字节写入外部存储器以及哪些字节保持其当前状态...
结合上图,写时序总结如下:首先需要检查 app_wdf_rdy,该信号为高表明此时 IP 核数据接收处于准备完成状态,可以接收用户发过来的数据,在当前时钟拉高写使能(app_wdf_wren),给出写数据 (app_wdf_data)。这样加上发起的写命令操作就可以成功向 IP 核写数据。
wire app_en;//i reg [127:0] app_wdf_data;//i wire app_wdf_end;//i wire [15:0] app_wdf_mask;//i wire app_wdf_wren;//i wire [127:0] app_rd_data; wire app_rd_data_end; wire app_rd_data_valid; wire app_rdy;