该时序图说明,写入的数据可以在三个时间点给出,以command发起为基准,在command发起前后的1,2,3不同时间都可以指定写入数据,需要注意的是写入数据的有效通过app_wdf_wren和app_wdf_end信号来指示。 app_wdf_en为高表示数据写入,在第158个时钟周期,app_wdf_rdy拉低持续5个用户时钟周期,此时即使app_wdf_en一直拉...
app_rdy,准备ok信号,表示UI接口可以接收命令数据; app_wdf_rdy,写数据FIFO准备ok,可以写数据到DDR3; app_wdf_wren,写数据有效信号,高有效; app_wdf_end,表示当前写为最后一个数据,根据DDR3写时序,该信号和app_wdf_wren时序相同即可; app_wdf_data,写DDR3数据,需要注意该接口数据位宽的计算; app_rd_data,...
app_wdf_wren数据有效输入。app_wdf_rdy表示写入数据的fifo中可以写入信号。这个信号也就是传说中的fifo的满信号。 app_rd_data读取的数据。app_rd_data_end表示该数据是8个有效数据。app_rd_data_valid数据有效指令。配合app_rd_data_end&app_rd_data_valid...
app_wdf_data 有效,且 app_wdf_wren 拉高,必须 app_wdf_rdy 也为高,才表示当前数据写入 DDR3 控制器。 注意:执行写数据 command 和执行写数据操作,它们是一一对应的,虽然控制时序可以分开实现。 1.3读数据时序 写时序和读时序它们本质上是一样的。每个数据的读操作,也需要先有读 command 的发起,当有效读 co...
app_rdy,准备ok信号,表示UI接口可以接收命令数据; app_wdf_rdy,写数据FIFO准备ok,可以写数据到DDR3; app_wdf_wren,写数据有效信号,高有效; app_wdf_end,表示当前写为最后一个数据,根据DDR3写时序,该信号和app_wdf_wren时序相同即可; app_wdf_data,写DDR3数据,需要注意该接口数据位宽的计算; ...
当app_wdf_rdy为高电平时,即可拉高app_wdf_en写入数据 数据可在命令之前、同时或最大不慢于2个周期写入 读数据 写入读命令后,数据可能在若干个周期后读出,伴随app_rd_data_valid信号拉高 如何对自己的DDR3读写模块进行仿真? 由于仿真需要DDR3模型,而自己写一个DDR3模型过于复杂,因此可通过利用example design的...
.app_rd_data_valid (app_rd_data_valid), .app_rdy (app_rdy), .app_wdf_rdy (app_wdf_rdy), .app_sr_req (1'b0), .app_ref_req (1'b0), .app_zq_req (1'b0), .app_sr_active (app_sr_active), .app_ref_ack (app_ref_ack), ...
地址系统的内容是app_addr和app_cmd,两者对齐绑定,app_cmd为000时为写命令,当app_rdy(DDR3控制)和app_en(用户控制)同时拉高时,将app_addr和app_cmd写到相应FIFO中。数据系统的内容是app_wdf_data,它在app_wdf_rdy(DDR3控制)和app_wdf_wren(用户控制)同时拉高时,将写数据存到写FIFO。
从图中可以看到app_cmd和app_addr只有在app_en和app_rdy同时有效的时候才算发送成功。通过实际测试发现,app_rdy每接收4个左右的命令后就会拉低。 数据接口的时序如下图所示,数据只有在app_wdf_rdy和app_wdf_wren同时有效的时候,app_wdf_data才会被写入到mig中。
因为DDR接口对用户而言并不是一直有效,只有等DDR“有效”时(app_rdy = 1 && app_wdf_rdy = 1),才能进行写入。 2.1.1输入接口时序图 输入数据为1-50共50个数据,以vld_in信号表征输入数据有效。 2.2状态机设计 2.2.1独热码localparam S0_IDLE = 6'b000001; //初始化状态,DDR初始化成功就跳转S1 ...