目录
1 工程设置修改
本文中工程仍然使用<<Alreta DDR2 IP 核仿真测试https://blog.csdn.net/leixj025/article/details/106646782 >>的工程,在此基础上修改。
1.1 增加复位控制
在_example_top.v模块中,把global_reset_n改为内部信号,并增加一个复位时间。
设置为10ms没有正常初始化完成,再次改为100ms,正常初始化。仿真无法发现复位问题。
1.2 工程设置
以下两处管脚设置更改,否则无法DDR IP无法初始化成功。
1.3 设置管脚电平、驱动能力。
IP核创建时在其目录下自动生成一个管脚电平配置文件_pin_assignments.tcl
文件中部分代码需要注意
分组的编号可能会有不同。
.tcl文件加载方法:
1.4 按照原理图配置具体管脚
可以提前把管脚分配专门写一个.tcl文件,直接加载,无需一个一个填写麻烦。
1.5 添加约束
可以同时添加多个约束文件.sdc。除了DDR自带的约束,还可以添加顶层的时钟约束。
2 波形抓取
在_driver.v中把bank=0,row=0,col=8,只读写16个列地址。0~7,8~15两次突发,循环读写测试。
增加一个专用的PLL分出333.3M clk也没有抓取到DDR控制线上的信号,不清楚原因,只能抓到DQ总线上的数据。
3 信号补充说明
特别注意local_burstbegin信号的说明。local_ready=0时,读写请求,地址信号,数据必须保持直到local_ready=1.
信号说明参考 :朽月 《 Intel QuartusII中DDR2 IP核的使用(2) 》,https://blog.csdn.net/zhangningning1996/article/details/104733287
4 其他使用
huan09900990 在《Quartusii 中ddr2 IP核例化 调试》中说明了用一个IP核控制两片DDR,地址、控制信号复用,数据总线由两个16bits扩展为32Bits. https://blog.csdn.net/huan09900990/article/details/78363054