一、指令时序之命令时序 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为高器件发起多次写入...
app_addr <= 0; //DDR3读从地址0开始 end READ:begin //读到设定的地址长度 if(app_rdy)begin //若MIG已经准备好,则开始读 rd_addr_cnt <= rd_addr_cnt + 1'd1; //用户地址每次加一 app_addr <= app_addr + 8; //DDR3地址加8 end else begin //若MIG没准备好,则保持原值 rd_addr_cnt ...
操作地址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信号有效 第二类信号为用户...
always@(posedge ui_clk)begin if(rst_n==1'b0)begin//初始值为0; app_addr_wr <= app_addr_wr_min; end else if(wfifo_wr_rst)begin//复位时地址回到最小值; app_addr_wr <= app_addr_wr_min; end //当计数器加以条件有效且状态机处于写状态时,如果写入地址达到最大,则进行复位操作,否则加8...
app_cmd (你总要先确认你想要写还是想要读吧) 操作命令,其实你只需要用到3'b000(写入)和3'b001(读出) 要和操作地址同时出现才有效。 2. app_addr (往哪儿写,从哪儿读?) 操作地址,按照结构从高位到低位是 rank + bank + row + column 3. app_en (确认地址线上的地址有效,不能初始值都一直有效吧)...
.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_wdf_wren (app_wdf_wren), 2.用户接口管脚 app_addr 操作地址,按照结构从高位到低位是 rank+bank+row+column app_cmd操作命令,其实你只需要用到3‘b000(写入命令)和3’b001(读出命令) app_en操作地址app_addr的使能,只有使能拉高时,app_addr才有效 ...
app_addr cnt_read end else begin 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,表示传输的全部为有效数据 ...
DDR3 MIG IP核解决方案 信号方向描述app_addr [ADDR_WIDTH - 1:0]输入该输入指示当前请求的地址。app_cmd [2:0]输入该输入选择当前请求的命令。app_en输入这是app_addr [],app_cmd [2:0],app_sz和app_hi_pri输入的高