最近在使用 Xilinx 的 VU9P 板卡做一些基于FPGA的神经网络加速部署,其中就用到了 DDR 进行数据的存储。
板卡具体型号如下图所示 :
资源分布量如下图所示 :
注意
如果板卡型号属于 7系列 Xilinx 板卡型号,那么其 DDR 类型为 DDR3 资源。 如果板卡型号属于 Ultra 系列,那么 DDR 的类型就属于 DDR4 资源。
由于我所使用的板卡为 Ultra 系列,故使用的为 DDR4 类型。
DDR4-MIG核配置
由于本工程是用 DMA 实现 DDR 数据的交互,所以在 bd 中直接通过创建 ddr4 mig 的 ip 核的形式来进行定义。可以看见此处默认使用的是 AXI4 Interface 。
Basic
cloking – 时钟模块配置
Memory Device Interface Speed : 芯片的时钟频率 (一般选择默认) 1200MHz
Reference Input Clock Speed : 参考时钟频率 200Mhz
phy to controller clock frequency ratio: 物理层与控制器时钟频率比,即DDR内部时钟和用户时钟的频率比,此处默认为4:1模式,且只有4:1模式。
Memory Options – 内存操作
Cas latency是“ 内存读写操作前列地址控制器的潜伏时间 ”。
此处的 Cas latency 和 Cas Write latency 为 DDR 内部数据的延迟时间,设定成多少都可以,都不妨碍正常数据的存储和传输。
Controller Options – 控制操作
Configuration : 选择默认的配置 components 。
Memory Part : 内存型号,根据自己板卡的 DDR 型号进行配置 。
slot : 选择默认的 Single 。 (只有该选项)
IO Memory Voltage : IO存储器电压 ,选择默认的 1.2V 。(只有该选项)
Data Width : 64 。
此处的 Data Width 和 DDR 的位宽有关 。本板卡的 DDR 型号对应的每片 DDR 位宽为 16 bit 。一共有 4 片 DDR,故总位宽为 64 bit 。
Data Mask and DBI : 数据掩码 和 DBI : 选择 DM DBI RD 。
Memory Address Map : 内存地址映射 ,选择 ROW COLUMN BANK 。
Ordering : 选择默认 Normal 。
AXI Options – AXI 配置
Data Width : 在 AXI4 中数据的传输位宽,本工程设定为 512 bit 。
Arbitration Scheme : 仲裁方案 选择默认 , RD PRI REG 。
ID Width 和 Address Width 系统自动生成 。
Advanced Clocking – 高级时钟设置
System Clock Option : 系统时钟选项 , 可以选则使用差分时钟 和 选用 无缓冲区 (单端) 。 本工程选用差分时钟 。
Additional Clock Outputs : 附加时钟输出,本工程没有添加额外时钟,故不做选择 。
Advanced Options – 高级选项
此处为设置 Debug 模式的选项区 。
debug signals for controller : 控制器调试信号 , 若希望添加调试信号则选 Enable , 否则选 Disable 。
下面则为 ECC 的配置 。 笔者没有添加调试信号新西,若需要添加则自行选取 。
以上则为 DDR4 Mig 核的有关配置信息 。