一、指令时序之命令时序 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_rdy(output):这个信号指示了UI接口是否接收指令。也就是说:当该信号拉低时app_addr app_cmd app_en 这三个信号都不被接收,且需要一直保持当前状态,直到app_rdy信号恢复正常(如下图所示) app_wdf_rdy(output):这个信号指示了UI接口是否接收数据输入,即当该信号为低时候,我们往里写数据是写不进去的。如下...
结合上图,写时序总结如下:首先需要检查 app_wdf_rdy,该信号为高表明此时 IP 核数据接收处于准 备完成状态,可以接收用户发过来的数据,在当前时钟拉高写使能(app_wdf_wren),给出写数据 (app_wdf_data)。这样加上发起的写命令操作就可以成功向 IP 核写数据。这里有一个信号 app_wdf_mask, 它是用来屏蔽写入数据...
官方给出的接口时序如下所示: 从图中可以看到app_cmd和app_addr只有在app_en和app_rdy同时有效的时候才算发送成功。通过实际测试发现,app_rdy每接收4个左右的命令后就会拉低。 数据接口的时序如下图所示,数据只有在app_wdf_rdy和app_wdf_wren同时有效的时候,app_wdf_data才会被写入到mig中。 在读写的过程中...
图中的MIG IP核的用户接口是Native接口,时序关系也比较简单。就是说,当app\_en和app\_rdy信号同时为高电平时,app\_cmd(命令)和app\_addr(地址)才有效,所以当需要app\_cmd和app\_addr有效时,app\_en必须保持到app\_rdy为高电平才有效。 关于Native接口的MIG IP核将讲解与使用方法很多,但我们这次试验主要...
.app_sr_active (app_sr_active), .app_ref_ack (app_ref_ack), .app_zq_ack (app_zq_ack), .ui_clk (dram_clk), .ui_clk_sync_rst (dram_rst), .app_wdf_mask (app_wdf_mask), 图1.17表示写入数据过程。等待rdy信号时候,同时发送app-cmd,...
写命令操作时序如下,其中,写操作app_cmd的值等于0,读操作app_cmd的值等于1。首先检查app_rdy,为高则表明此时IP核可以接受用户命令,在当前时钟拉高app_en,同时发送命令app_cmd和地址app_addr,此时命令和地址写入。 写数据的时序图如下。 个人认为一般native接口最好设置为4:1模式,这样app_wdf_wren与app_wdf_end...
.app_rd_data_end (app_rd_data_end), // output app_rd_data_end .app_rd_data_valid (app_rd_data_valid), // output app_rd_data_valid .app_rdy (app_rdy), // output app_rdy .app_wdf_rdy (app_wdf_rdy), // output app_wdf_rdy ...
2. app_wdf_rdy (想要往DDR写数据?不好意思,等我准备好了再说) app_wdy_rdy信号表示写数据FIFO已经准备好接收数据了,数据在app_wdf_rdy = 1’b1且 app_wdf_wren = 1’b1时被写入。 同理,这个rdy不也受你控制。等着吧 3. init_calib_complete(DDR读写不对?先检查初始化成功了没好吧) ...
if(app_rdy && app_en)begin 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,表示传输的全部为有效...