一、指令时序之命令时序 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为高器件发起多次写入...
3. app_en (确认地址线上的地址有效,不能初始值都一直有效吧) 操作地址app_addr的使能,只有它拉高的时候,对应的app_addr才是有效的 4. app_wdf_data (要写的话,你得有料不是) 写入的数据接口 5. app_wdf_wren (那也不能什么料都往里倒不是) 写入的数据接口app_wdf_data的使能, 只有它拉高的时候,...
此信号在输入请求中使用,在声明app_en之前,用户必须先对app_addr、app_cmd、app_hi_pri进行赋值,之后声明app_en将该请求提交给MIG,在MIG接收之后会声明app_rdy进行确认的握手。 4、app_hi_pri 该输入表示当前请求是最高优先级,不用的话直接置0即可。 5、app_wdf_data app_wdf_data[APP_DATA_WIDTH-1: 0...
操作地址app_addr的使能,只有它拉高的时候,对应的app_addr才是有效的 4. app_wdf_data (要写的话,你得有料不是) 写入的数据接口 5. app_wdf_wren (那也不能什么料都往里倒不是) 写入的数据接口app_wdf_data的使能, 只有它拉高的时候,对应的app_wdf_data才是有效的 6. app_wdf_end (要你作甚,一...
DDR3 的读或者写都包含写命令操作,其中写操作命令(app_cmd)的值等于 0,读操作 app_cmd 的值 等于 1。首先来看写命令时序,如下图所示。首先检查 app_rdy,为高则表明此时 IP 核命令接收处于准备好 状态,可以接收用户命令,在当前时钟拉高 app_en,同时发送命令(app_cmd)和地址(app_addr),此时命令和地址被写入...
第一类信号为复用命令信号,分别对应于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信号有效 ...
但是生成的app_addr的位宽却是29bit,即512M,这样换算下来,相当于一个地址对应16Bit数据了,是不对...
如果写入地址达到最大,则进行复位操作,否则加8;elseif(add_bust_cnt&&(state_c==WRITE))beginif(app_addr_wr>=app_addr_wr_max-8)app_addr_wr<=app_addr_wr_min;else//否则,每次地址加8,因为DDR3每次突发会写入8次数据;app_addr_wr<=app_addr_wr+8;endend//生成MIG IP的读地址,初始值为读出数据...
通过给的例子可以看出在init_calib_complete被拉高之前,app_en、app_wdf_end、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,表示传输的全部为有效数据 ...