一文搞懂DDR4 MIG IP核详细介绍与配置
一文搞懂DDR4 MIG IP核详细介绍与配置
DDR4 SDRAM因其高速、大容量的特点,在FPGA设计中扮演着越来越重要的角色。Xilinx提供的Memory Interface Generator (MIG) IP核,为FPGA与DDR4内存的交互提供了便捷的解决方案。本文将详细介绍DDR4 MIG IP核及其配置过程。
一、DDR4内存基础
1、什么是DDR?
DDR(Double Data Rate)是一种内存技术,它允许内存模块在系统时钟的上升和下降沿都进行数据传输,因此每个时钟周期可以传输两次数据,就像一条双车道的高速公路,每个方向都可以同时跑车,这样就能比以前单方向的内存(比如SDRAM)传输更多的数据,从而提高了数据传输的速率。
DDR SDRAM(同步动态随机存取存储器)是这种技术的早期版本,随后又发展出了DDR2、DDR3、DDR4和DDR5等多个版本,每一代都在前一代的基础上提供了更高的数据传输速率和带宽,以及更低的功耗和改进的稳定性。
很常见,我们电脑中使用的内存条就是DDR。
2、DDR4与DDR3的区别
DDR4是第四代双倍速率同步动态随机存取存储器,相较于DDR3,它在功耗、核心频率、容量上都有显著提升。DDR4引入了Bank Group结构,有效降低了读写命令访问不同Bank的时延。
更快的速度和更大的带宽
DDR3:最高支持2133 MT/s(兆传输每秒),实际使用中常见的速度有1333 MT/s和1600 MT/s。
DDR4:起始速度为2133 MT、s,最高支持速度超过3200 MT/s,常见的速度有2400 MT/s、2666 MT/s、2800 MT/s、3000 MT/s等。
更低的工作电压,更低的功耗
DDR3:工作电压为1.5V。
DDR4:工作电压为1.2V。
二、MIG IP核概述
MIG是Xilinx提供的一个用于自动生成与DDR4内存接口的硬件IP核。它包括物理层、控制器和用户接口三个主要部分,极大地简化了FPGA与DDR4内存的集成和控制。
- 物理层
- 与外部DDR4 SDRAM的高速接口,包括高速时钟生成、数据传输、DDR初始化操作和校正操作等等
- 控制器
- 接收用户的读写命令,并有效传递到物理层,转换为具体的读写控制操作。
- 用户接口
- 提供给用户简单易使用的接口,有NATIVE接口和AXI4接口两种。
三、DDR4 MIG IP核配置步骤
DDR4 MIG IP核配置操作,比DDR3 MIG IP核配置操作简单很多。
- 打开Vivado项目
- 启动Vivado并创建新项目。
- 添加MIG IP核
- 在IP Catalog中搜索"MIG",选择DDR4 SDRAM(MIG),然后添加到项目中。
- Board设置
- 如果工程选择的是xilinx官方开发板,则会有这个Board设置界面,否则没有。
- 这里可以选择设置sys_clk和DDR4芯片选择,可选择custom、板载时钟或DDR3芯片型号。
- 基本配置
- 在Basic界面中,设置大部分参数。
- Controller/PHY Mode
- 设置控制器或物理层模式,默认选择Controller and physical layer即可,除非你想自己实现控制器或物理层。
- AXI4 Interface
- 是否选择AXI4接口,勾选表示选择AXI4接口,否则使用NATIVE接口。
- Clocking
- Memory Device Interface Speed:DDR4内部运行时钟频率设置。
- PHY to controller clock frequency ratio:物理层与控制层时钟频率比例,一般选择默认的4:1。
- Reference Input Clock Speed:输入参考时钟频率。
- Controller Options
- Configuration:选择DDR的类型,可选Components、DIMM(双列直插式存储模块)和SO-DIMM(小外形双双列直插式内存模块),一般默认选择Components。
- Memory Part:DDR4芯片型号。
- Slot:插槽类型,可选单插槽或双插槽,默认选择single。
- IO Memory Voltage:io工作电压,默认选1.2v即可。
- Data Width:数据位宽,根据实际的DDR芯片组选择即可,这里选择64。
- 其它几个参数可以不用管。
- AXI Options
- 如果选择的AXI4接口,会多出一个AXI Options界面,一般默认即可,不需要修改。
- Data Width:数据位宽
- Arbitration Scheme:仲裁机制,不同的调度策略,默认选择RD PR IREG。
- ID Width:ID信号位宽。
- Address Width:地址信号位宽。
- Advanced Clocking
- 根据需求配置额外的用户时钟。
- System Clock Options:输入时钟类型选择,可选Differential(差分时钟)或No Buffer。
- Additional Clock Output:额外输出4个时钟信号输出,可自定义输出时钟频率。
- Advanced Options
- 高级选项设置,可设置调试接口信号,仿真测试模式,仿真测试激励,默认即可。
- IO Planning and Design Check_list
- IO引脚分配方式,设计概览清单,无参数设置,了解即可。
四、分析
与DDR3 MIG IP核配置相比,DDR4 MIG IP核配置操作更简单明了。但大家有没有发现,DDR4( MIG)没有配置引脚约束。这是因为DDR4的引脚约束,默认放到xdc约束文件中了,大家需要创建DDR4相关的引脚约束文件即可。