前言
近期完成了 FPGA DDR4 内存读写控制开发,本文总结基础内容,重点讲解 DDR4 控制 IP 核 MIG 的控制信号。
主要参考文档:Xilinx PG150 Ultrascale Memory IP User Guide.
MIG IP 核控制信号
IP 核创建界面
MIG IP 核(Memory Interface Generator)是用户与 DDR4 进行沟通的桥梁。直接编写 DDR4 代码复杂度极高且性能难以保证。以 Xilinx 提供的 MIG IP 核为例,综合布线后约使用 7500 个 LUT 和 9000 个 Register 资源。普通用户只需操作 MIG 提供的用户接口即可。


需特别注意 Burst Length 参数。在固定 Burst Length=8 的 DDR4 芯片中,给定地址 ADDR 并启动传输后,DDR4 会同时将 Burst Length * Data Width 大小的数据传送到数据总线。实际传输地址范围为 ADDR ~ ADDR + Burst Length - 1。例如地址 ADDR=0,读指令发出后,在 8*16=128 位的数据总线上得到 0~7 这些地址单元的数据。因此顺序读写时,每次给控制器的地址均以 8 为步进。
IP 核控制信号
PG150 文档给出了用户接口的所有控制信号。


图中标黄信号分为四类:全局接口、命令接口、写接口、读接口。
全局接口

三个全局接口分别代表用户时钟、校准完成指示、与用户时钟同步的复位信号。所有用户接口逻辑必须等到校准完成信号拉高后才能进行。
命令接口
命令接口用于指示 DDR 接受读取或写入命令及类型。










