一、DDR4器件选型与MIG IP的配置
二、DDR4参数值含义
三、DDR4器件容量计算
四、往期文章链接
一、DDR4器件选型与MIG IP的配置
DDR4器件选型,需要根据项目中内存的容量需求,读写速率,成本等各方面考虑,对于FPGA开发者,需要根据DDR4 MIG的IP控制器的性能进行选型,并配置。当然,若IP的库中有对应的DDR4型号,则可以直接选择;若没有硬件采购的DDR4型号,则需要根据DDR4器件手册进行MIG IP的定制化。
DDR4器件的芯片手册中,FPGA开发者需要关注哪些参数?比如:容量配置,封装型号,速度等级以及对应版本等等。这些参数不仅与业务紧密结合,同时与硬件也息息相关。这些参数也会在Vivado的DDR4 MIG IP核的界面进行选择,适配不同硬件的DDR4接口,从而在FGPA内部实现对DDR4的读写控制。
容量配置上来看,支持的521 Meg×8和256 Meg×16两种参数配置,对应的DDR4的物理接口是不相同的。通常是Bank group的差异,也就是bank groups的数量上的差异。
速度等级,直接体现了DDR4的数据传输效率。时钟频率,I/O buffer(输入/输出缓冲)的传输频率TCK,0.625ns/0.750ns/0.833ns。数据在时钟的双边沿采样,故有效数据传输频率为时钟频率的两倍,数据传送频率(等效频率),实际应用中测试时关注的时钟频率,下图中的3200MHz/2666MHz/2400MHz。
DDR4 MIG的IP中选择型号为MT40A512M16HA-083E,此时CL即Cas Latency选择12/16。
二、DDR4参数值含义
tCK=833,内存时钟频率为833ps,1200Mhz,其他的参数都是以tCK为基准来描述的。
tRFC=421×833ps=350ns,REF命令到ACT或REF命令时间,从手册参数可以看出,8Gb对应的数值为350ns。
tREFI=9363×833ps=7799.379ns=7.8us,平均定期刷新时间间隔,从手册参数可以看出,温度在-40℃到85℃之间,8Gb对应的数值为7.8us。
tRP=16×833ps=13.328ns,预充电指令周期,DDR4-2400-083E的tRP最小值为13.32ns。
tRCD=16×833ps=13.328ns,激活到内部的读取或写入延迟时间,DDR4-2400-083E的tRCD最小值为13.32ns。
tRAS=39,启动到预充入的命令周期,DDR4-2400-083E的tRAS最小值为32。
tRTP=10×833ps=8.3ns,读至预充电时间,DDR4-2400-083E的tRTP最小值为4个tCK或者7.5ns。
tWR=20×833ps=16.66ns,写入恢复时间,DDR4-2400-083E的tWR最小值15ns。
至于其他参数,FPGA开发者可以根据所使用的DDR4器件手册进行对比,实际开发中并不需要如此,但是可以学习了解。
三、DDR4器件容量计算
AXIfull接口,通常需要对DDR4的内存地址进行映射处理,ddr4的axifull分配的地址内存空间大小为4G字节,也就是32Gb。但是IP核里面8Gb,这两者之间是如何转换计算的?
先了解下8Gb的计算方法,从DDR4器件型号来看,MT40A512M16HA-083,其中容量表示512M16HA,即512Mb×16=8Gb。
从内存的16bit位宽,Row=16,Column=10,Bank=2和Bank Group=1来计算: 2^16×^10×2^2×2×16=8Gb。
那么问题来了,8Gb=1GB,为什么AXIfull的地址内存为4GB? 这个跟硬件上DDR4的颗粒有关系了,在上面IP配置中,数据位宽选择64,也就是4×16,硬件上使用了4个DDR4颗粒,故4×1GB=4GB,是DDR4的内存总容量。