等着吧 3. init_calib_complete(DDR读写不对?先检查初始化成功了没好吧) init_calib_complete拉高表明DDR已经校准成功初始化完成了! 拿去搬砖吧! 4. ui_clk(看好了,逻辑使用的时钟搁这输出呢) 在第二篇《DDR的时钟分析》里我们也讲过,ui_clk就是逻辑使用的时钟;由配置界面“Clock Period”与“4:1 / 2:...
找init_calib_complete拉高后(DDR3初始化完成)的一些局部时序图,如下图: 蓝线、和黄线处,app_cmd为0,app_en、app_rdy均为高,代表在执行写命令操作;同时app_wdf_data同地址一致,app_wdf_en、app_wdf_rdy均为高,代表在进行写数据操作 如下图: 很多个周期的app_rdy拉低,代表MIG没有准备好进行写数据命令,...
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读写不对?先检查初始化成功了没好吧) init_calib_c...
.init_calib_complete(init_calib_complete), // outp init_calib_complete //这也是DDR3的一些物理管脚,我们也不需要管 .ddr3_cs_n(ddr3_cs_n), // output [0:0] ddr3_cs_n .ddr3_dm(ddr3_dm), // output [3:0] ddr3_dm .ddr3_odt(ddr3_odt), // output [0:0] ddr3_odt // Ap...
仿真结果:(init_calib_complete信号大概在136us左右置1) 由仿真结果可知,rd_data_err信号一直为0,说明仿真写入与读出数据正确。 过程记录: 1、第一次由于在MIG配置中选择的DDR型号是MT41J256m16XX-125,数据位宽选择为32,也就是两块DDR3共用一组控制线,然而仿真Testbench只例化了一个ddr3_module,所以init_cali...
校准信号 init_calib_complete信号为高电平时,表明DDR4的初始化和校准工作已经全部完成。在FPGA逻辑处理中,只有当这个信号处于高电平状态,才能对DDR4进行读写操作,否则将无法正常执行DDR4的读写任务,甚至可能导致操作失败。同时,该信号也扮演着辅助验证硬件DDR4检测的重要角色。
在读写DDR3的过程中,我们可以通过观察init_calib_complete信号和tg_compdata_error信号的状态变化,来了解MIG IP的初始化进度以及数据读写的一致性。这两个信号分别可以驱动一个LED,通过LED的亮灭状态,我们可以直观地获取到MIG IP对DDR3的初始化结果以及数据读写是否一致的信息。在综合工程完成后,我们需要将时钟...
always@(posedge ui_clk)if(ui_clk_sync_rst&!init_calib_complete)//beginstate <=IDLE;app_addr_begin <=29'd0;Count_64 <=24'd0;endelse case(state)IDLE: beginstate <=WRITE;if(app_addr_begin > TEST_DATA_RANGE)app_addr_begin <=29'd0;Count_64 <=24'd0;endWRITE: begin//写DDR3state...
.init_calib_complete(init_calib_complete), // outp init_calib_complete //这也是DDR3的一些物理管脚,我们也不需要管 .ddr3_cs_n(ddr3_cs_n), // output [0:0] ddr3_cs_n .ddr3_dm(ddr3_dm), // output [3:0] ddr3_dm .ddr3_odt(ddr3_odt), // output [0:0] ddr3_odt ...
always @(posedge sys_clk or negedge init_calib_complete)begin if(init_calib_complete == 1'b0)begin data_in <= 128'b0; sof_in <= 1'b0; eof_in <= 1'b0; vld_in <= 1'b0; end else begin data_in <= 128'b0; sof_in <= 1'b0; ...