只是先仿真看一下DDR3中init_calib_complete是否拉高,没想到一堆问题(哭)。记录一下
存在问题:
1、编译库报错
问了老师,qdma库报错正常因为没有license,可以忽略
2、仿真没有运行
检查信号发现复制漏了.clk_ref_i。一定要注意不要漏信号
3、出现以下报错
error: tck(avg) maximum violation by 1700.000000 ps.
input clkin1 period and attribute clkin1_period are not same.
这两个问题卡了很久最后发现是,一开始创建ip核的时候忘记改这里的系统输入时钟周期。导致我后面在仿真的时候给的200mhz没对上,一直没有发现,最后重新建ip核才发现问题。
4、init_calib_complete一直没拉高
最后发现设置的32位的DDR,也就是两个16位DDR组成。而实例化官方的ddr3_model其是16位的。我们需要实例化两个才行。
5、其他
在查问题的时候,发现可能还有其他问题需要避免如 “给DDR3 MIG输入接口的信号要给固定状态“
5、找问题方向
- 时钟检查
- 信号有没有接错
- 输入接口有没有设置
- 位宽是否对齐