关于DDR3调试的一些坑

1、首先是时钟问题,一般全局时钟是时钟输入管脚经过一个IBUFG到PLL,但是PLL的输出一般会选择一个BUFG,但是DDR3内部的时钟其实也有一个BUFG,所以一般我们需要在mig的IP核中修改用户设计,将mig中的IBUFG约束注释即可。
2、一般一副图像是800525的话,那么在span6系列芯片中,它的数据位宽一般是以64bit为一个数据,而DDR3的接口是16Bit,所以你写一个数据,所以当图片分辨率为640480时,且位宽为16bit,则通过USB下发,假设每次突发长度为32,则一共需要DDR3的 读写次数为64048016bit/3264bit=2400;
3、关于地址自增:一次写32个数据,每个数据64bit,而DDR3的每一个地址只能存16bit,所以本身一次突发需要32
64/16=128个存储单元,但其实一个存储单元为16bit=2个字节,所以一共需要128*2=256个字节。
4、关于第二点的2400次读写,一定要注意最后一次的读写,否则会造成图像错位。

你可能感兴趣的:(关于DDR3调试的一些坑)