一、指令时序之命令时序 app_cmd和app_addr有效,且app_en拉高,app_rdy拉高,则该指令成功发送给DDR3控制器,若是在app_cmd、app_addr、app_en都有效时,app_rdy为低,那么必须保持app_cmd、app_addr、app_en的有效状态直到app_rdy拉高,指令才会成功发送给DDR3控制器。 以下图为例,在app_en为高器件发起多次写入...
从上面两部分代码可以知道,cmd_en是app_rdy的延迟一拍信号,而一次完整可被记录的读和写时序必须要两个周期app_rdy的信号。后面cmd_en一直为1是因为当完成写的个数之后,会一直保持为自身,未有其他赋值。 再来看app_en和app_addr以及cmd_cnt的波形。 app_addr的代码如下。逻辑很明显,不再详述。 app_wdf_data、...
操作地址app_addr的使能,只有它拉高的时候,对应的app_addr才是有效的 4. app_wdf_data (要写的话,你得有料不是) 写入的数据接口 5. app_wdf_wren (那也不能什么料都往里倒不是) 写入的数据接口app_wdf_data的使能, 只有它拉高的时候,对应的app_wdf_data才是有效的 6. app_wdf_end (要你作甚,一...
第一类信号为复用命令信号,分别对应于app_cmd app_addr app_en app_rdy app_cmd:用于控制读写,0对应写,1对应读 app_addr:地址信号,这里为8突发,因此,一次数据512bit数据的读写,对应地址要加8(512/64) app_en与app_rdy为握手信号,两个信号同时为高时,将会使得app_cmd及app_addr信号有效 第二类信号为用户...
DDR4 的读或者写都包含写命令操作,其中写操作命令(app_cmd)的值等于 0,读操作 app_cmd 的值等于 1。首先来看写命令时序,如下图所示。首先检查 app_rdy,为高则表明此时 IP 核命令接收处于准备好状态,可以接收用户命令,在当前时钟拉高 app_en,同时发送命令(app_cmd)和地址(app_addr),此时命令和地址被写入。
app_addr <= app_addr; cnt_write <= cnt_write; end S3_WR_DONE :begin cnt_length <= cnt_write; app_addr <= 29'b0; //读初始地址 end S4_READ : if(app_rdy && app_en)begin app_addr <= app_addr + 'd8; cnt_read <= cnt_read + 'd1; ...
app_cmd (你总要先确认你想要写还是想要读吧) 操作命令,其实你只需要用到3'b000(写入)和3'b001(读出) 要和操作地址同时出现才有效。 2. app_addr (往哪儿写,从哪儿读?) 操作地址,按照结构从高位到低位是 rank + bank + row + column 3. app_en (确认地址线上的地址有效,不能初始值都一直有效吧)...
app_addr 操作地址,按照结构从高位到低位是 rank+bank+row+column app_cmd操作命令,其实你只需要用到3‘b000(写入命令)和3’b001(读出命令) app_en操作地址app_addr的使能,只有使能拉高时,app_addr才有效 app_wdf_data 写入数据接口 app_wdf_end实际中和app_wdf_wren一样(app_wdf_end=app_wdf_wren即可) ...
.ddr_addr (app_addr), .app_en (app_en), .app_wdf_wren (app_wdf_wren), .app_wdf_end (app_wdf_end),//---wr fifo interface.wr_fifo_wcnt (wr_data_count), .wr_ddr_en (wr_ddr_en));//***wdata_in wdata_in( .clk (v_clk), .rst_n (!sys_rst), .data_valid (val_fl...
app_addr cnt_read end S5_RD_DONE :begin cnt_length cnt_read cnt_write end default : ; endcase end 代码很简单,对应流程图跳转,此处不再啰嗦 。 2.3app接口设计 assign app_wdf_mask = 16'b0; //掩码置0,表示传输的全部为有效数据 assign ififo_rden = (current_state == S2_WRITE)&& app_rd...