首先这是PL端的DDR4芯片,型号为MT40A256M16GE-075E,256Mx16,即512MB,由于不能上传附件,所以PDF还请大家自行上网搜索下载。
DDR4参数的获取参考了以下两个CSDN的博客。
https://ztzhang.blog.csdn.net/article/details/142444632
https://blog.csdn.net/apple_53311083/article/details/144952443
时序参数信息表格如下,
地址信息如下,这里简单描述一下,2个bank组,每个bank组里有4个bank,512MB/8=64MB,即每个bank64MB容量,行列位宽=3210241102416/8/1024/1024=64MB与前面计算的结果相符合。
简单来讲总bank数行列=832102411024/1024/1024=256M,这就是前面型号名称256M的由来,加上位宽16,可简单理解为,按16并行写入,可写256M次。
CWL信息如下。
打开vivado,点击MIG DDR4 IP核,具体设置如下,未展示的部分默认(两种配置方式,2666MHz或者2400MHz,实测,都可以),输入时钟,该板卡输入是200MHz差分时钟,具体引脚请看原理图。
逻辑代码部分参考了官方example design的逻辑代码,官方的例程是先写入一大段,然后再读出来测试验证,我这边是写8个,读8个,ila看是否正确。
代码直接抄就行,我另一个随笔分类有解析,这边不再详述。下面展示ila波形。
ila写时序波形,地址从e61fc80到e61fcb8,对应写入数据为567033745-567033752共八个数字
ila读时序波形,地址从e61fc80到e61fcb8,对应读出数据为567033745-567033752
再选一段后面。写部分,地址从e620980到e6209b8,对应写入数据为567034161到567034168
读部分以及读出来的数据,都是对应的上的。
MIG IP核PASS
一段时间后,再ila取数据,对比后依然读写数据能对应上,故DDR4数据读写实验通过。