将模板中 Memory interface ports 和 System Clock Ports 的端口作为 ddr3_motive 的模块端口,其中 init_calib_complete 信号被我删除了,主要是考虑到本次只是将init_calib_complete 信号拉起,没有考虑用户逻辑,所以在内部引出来就可以了。还有一个地方需要注意的就是 IP 生成的时候,系统时钟采用的是 No Buffer ...
1.1phy控制器和DDR颗粒上电 1.2 复位DDR颗粒 1.3 CKE使能和ck_t/ck_c打开 1.4 MRS寄存器模式...
【FPGA】 DDR读写 前两个礼拜搞来一个用MIG IP核读写的DDR的程序本来已经能够跑起来了。今天试了下, init_calib_complete信号一直拉不高,看了半天才知道是仿真时间不够。 记录一下init_calib_complete 拉高的时间点 110us左右,省的下次继续走弯路。(输入时钟频率为100MHz, 复位信号拉高) 重新回顾了一下,其他...
3. init_calib_complete(DDR读写不对?先检查初始化成功了没好吧) init_calib_complete拉高表明DDR已经校准成功初始化完成了! 拿去搬砖吧! 4. ui_clk(看好了,逻辑使用的时钟搁这输出呢) 在第二篇《DDR的时钟分析》里我们也讲过,ui_clk就是逻辑使用的时钟;由配置界面“Clock Period”与“4:1 / 2:1模式”...
app_wdy_rdy信号表示写数据FIFO已经准备好接收数据了,数据在app_wdf_rdy = 1’b1且 app_wdf_wren = 1’b1时被写入。 同理,这个rdy不也受你控制。等着吧 3. init_calib_complete(DDR读写不对?先检查初始化成功了没好吧) init_calib_complete拉高表明DDR已经校准成功初始化完成了!
init_calib_complete, // inputs sys_clk_i, sys_rst ); inout[15:0] ddr3_dq; inout[1:0] ddr3_dqs_n; inout[1:0] ddr3_dqs_p; output[13:0] ddr3_addr; output[2:0] ddr3_ba; outputddr3_ras_n; outputddr3_cas_n; outputddr3_we_n; ...
找init_calib_complete拉高后(DDR3初始化完成)的一些局部时序图,如下图: 蓝线、和黄线处,app_cmd为0,app_en、app_rdy均为高,代表在执行写命令操作;同时app_wdf_data同地址一致,app_wdf_en、app_wdf_rdy均为高,代表在进行写数据操作 如下图:
init_calib_complete表明初始化完成。可以把他们引出到led管脚上,或者普通管脚,用ILA核,或者示波器都可以测试。如果为高电平,那么表示初始化完成。 ,tg_compare_error : 标明读写错误信号。如果位高,则标明发生错误。如果是低电平,那么表示正常。 只要观察这个俩信号就可以判断ddr3工作是否正常. ...
init_calib_complete被拉高后,就可以写数据了,写多少数据由地址控制,可以把地址写满,读的代码和写的...
但是生成bit文件后下载到板子上显示初始化一直不成功,也就是“init_calib_complete”信号没有拉高。