1. DDR4 基础:DDR4 SDRAM 基本架构、关键信号与功能框图

DDR4 SDRAM(Double Data Rate 4 Synchronous Dynamic Random Access Memory)是第四代同步动态随机存取存储器,相比 DDR3,它在工作电压、数据传输速率、存储密度和信号完整性方面均有显著提升。理解 DDR4 的基本架构与关键信号是进行 Agilex FPGA 控制器读写时序调优的前提。

1.1 DDR4 核心架构

DDR4 内部采用多 Bank 组(Bank Group)架构,每个 Bank Group 内部包含多个 Bank,每个 Bank 由行(Row)和列(Column)构成的存储阵列组成。这种分层结构允许更高的并行度与更低的访问延迟。

架构要点:
  • Bank Group(BG):DDR4 引入 Bank Group 概念,每个 BG 内部可独立激活、读写,不同 BG 之间可并行操作,提升带宽利用率。
  • Bank:每个 BG 包含 4 个 Bank(x4/x8 器件)或 8 个 Bank(x16 器件),每个 Bank 拥有独立的行缓冲(Row Buffer)。
  • 存储阵列:采用 8n 预取架构(Prefetch 8n),每个读/写命令在内部同时访问 8 个数据位,通过 I/O 接口在时钟上升/下降沿各传输一半数据。
  • 模式寄存器(MR):通过 MR0~MR6 配置工作模式、时序参数、驱动强度、ODT 等。

1.2 关键信号分类与功能

DDR4 接口信号可分为命令/地址总线、数据总线、控制信号和电源/参考电压四类。下表列出核心信号及其功能描述:

信号类别 信号名称 方向 功能描述
命令/地址 CK_t / CK_c 输入 差分时钟,所有命令与数据在 CK_t 上升沿与 CK_c 下降沿交叉点采样
CKE 输入 时钟使能,控制器件进入/退出自刷新或掉电模式
CS_n 输入 片选信号,低电平有效,选中对应 rank 进行命令译码
ACT_n 输入 激活命令,与地址线配合打开指定 Bank 的行
地址 A[17:0] 输入 行/列地址复用总线,行地址在 ACT 命令时采样,列地址在 RD/WR 命令时采样
BA[1:0] 输入 Bank 地址,选择当前命令操作的 Bank
BG[1:0] 输入 Bank Group 地址,选择当前命令操作的 Bank Group
数据 DQ[7:0] / DQ[15:0] 双向 数据总线,x8 或 x16 位宽,每个时钟周期传输两次数据
DQS_t / DQS_c 双向 差分数据选通信号,读操作时由 DDR4 输出,写操作时由控制器输出,用于数据同步
DM_n / DBIn 输入 数据掩码(写时)或数据总线反转(DBI),用于屏蔽写入字节或降低功耗
控制 ODT 输入 片上端接使能,动态调整 DQ/DQS 信号线的终端阻抗,改善信号完整性
RESET_n 输入 复位信号,低电平有效,将 DDR4 内部状态机复位至初始状态
电源 VDD / VDDQ / VPP 电源 核心电压 1.2V,I/O 电压 1.2V,字线升压 2.5V
调优关注点:在 Agilex FPGA 中,DQS 与 DQ 之间的时序关系(tDQSCK、tDQSQ、tQH)是读写调校的核心。DQS 的差分信号质量直接影响数据眼图的开度,ODT 配置需结合 PCB 走线阻抗进行仿真优化。

1.3 DDR4 功能框图

下图展示 DDR4 SDRAM 内部功能模块与外部接口信号的关系,突出命令译码、Bank 阵列、数据路径和 I/O 控制的核心链路。

DDR4 SDRAM 内部功能框图 外部接口 CK_t / CK_c CKE / CS_n ACT_n / RAS_n CAS_n / WE_n A[17:0] / BA / BG DQ[15:0] DQS_t / DQS_c DM_n / DBIn ODT RESET_n VDD / VDDQ / VPP 命令译码 & 控制逻辑 状态机 / 时序控制 模式寄存器 MR 地址锁存 行/列地址译码 行激活 / 列选择 Bank Group 阵列 Bank Group 0 Bank 0~3 Bank Group 1 Bank 0~3 Bank Group 2 Bank 0~3 Bank Group 3 行缓冲 Row Buffer 列选择 / 列译码 8n 预取阵列 数据 I/O 读路径 / 写路径 DQS 同步 / 串并转换 ODT 控制 数据双向 说明 命令/地址经译码后控制 Bank Group 激活与读写操作,数据通过 DQS 同步在 DQ 总线上传输

1.4 命令与操作流程

DDR4 的基本操作遵循“激活 → 读写 → 预充电”的流水线流程。下表列出常用命令及其对应的信号电平组合:

命令 CS_n ACT_n RAS_n CAS_n WE_n 功能描述
激活(ACTIVATE) L L X X X 打开指定 Bank 的行,地址线提供 Row Address
读(READ) L H H L H 从已激活行的指定列读取数据,BL8 或 BC4
写(WRITE) L H H L L 向已激活行的指定列写入数据,BL8 或 BC4
预充电(PRECHARGE) L H L H L 关闭当前 Bank 的行,准备下一次激活
刷新(REF) L H L L H 执行自动刷新,保持存储数据
模式寄存器设置(MRS) L H L L L 配置 MR0~MR6 中的工作参数
时序调优注意:在 Agilex FPGA 的 DDR4 控制器中,命令之间的时序间隔(如 tRCD、tCL、tRP、tRFC)必须严格满足 DDR4 器件规格。调优时需通过 EMIF(外部存储器接口)IP 的时序参数表进行配置,并利用 FPGA 内部的校准逻辑(如 DQS 门控校准、读写平衡)来补偿 PCB 走线延迟。

1.5 关键时序参数速览

以下参数是 DDR4 读写调优中最常涉及的时序指标,后续章节将逐一展开分析:

  • tCK(时钟周期):DDR4-2400 对应 0.833 ns,DDR4-3200 对应 0.625 ns。
  • tRCD(行到列延迟):从激活命令到读/写命令的最小间隔,典型值 13.75 ns @ DDR4-2400。
  • tCL(CAS 延迟):从读命令到第一个数据输出的时钟周期数,DDR4 常见值为 15~22。
  • tRP(行预充电时间):从预充电命令到下一次激活的最小间隔。
  • tRFC(刷新周期时间):两次刷新命令之间的最小间隔,与器件密度相关(8Gb 约 350 ns)。
  • tDQSCK(DQS 相对于 CK 的延迟):读操作时 DQS 边沿相对于 CK 边沿的时序偏移,是读写平衡调校的关键。
Agilex 调优切入点:Intel Agilex 的 EMIF IP 提供 AFI(Avalon 存储器映射接口) 时序参数接口,用户可通过 altera_emif_arch 参数化模板调整 tRCD、tCL、tRP 等值。建议在初期使用 DDR4 的 JEDEC 标准时序,再通过硬件实测(如眼图扫描)逐步收紧参数以提升带宽。