只读分享解决方案文档原理方案设计📅 2026-09-24🔖 Rev 1.5⏳ 29天有效(至 2026-10-31)
🔧解决方案&应用市场分析 -> 原理方案设计 -> DRAM系列产品方案 -> DDR4_电路设计指南
生成时间 2026-09-24 00:54:57 有效期至 2026-10-31 23:59:59(29天有效(至 2026-10-31))
同系列 · 原理方案设计

DDR4 SDRAM 电路设计指南

DDR4-1600 / 1866 / 2133 / 2400 / 2666 / 2933 / 3200(PC4-12800 ~ PC4-25600)· 2 Gb ~ 16 Gb 颗粒(x4 / x8 / x16)· UDIMM / SODIMM / RDIMM / LRDIMM · POD12 · Fly-by · Write Leveling · 2D Training | 编制日期 2026-09-24 | 版本号 Rev 1.5

0 · 文档说明

适用范围

  • 本文针对 DDR4 SDRAM(JEDEC JESD79-4)的硬件电路设计,覆盖速率等级 DDR4-1600 ~ DDR4-3200,颗粒容量 2 Gb ~ 16 Gb,位宽 x4 / x8 / x16。
  • 覆盖三种落地形态:板载颗粒(down device,直接焊接 FBGA)、内存条插槽(288 pin UDIMM/RDIMM/LRDIMM、260 pin SODIMM)、以及 3DS 堆叠封装(2H/4H/8H)。
  • 内容包含:DDR3/DDR4/DDR5 差异、封装球位、电气参数、接口与模式寄存器、三轨电源与时序、典型原理图、Bank Group 与训练机制、PCB Layout、SI 与 ODT、ESD 与可靠性、焊接生产、故障排查与检查清单。
  • 不含:控制器 IP 寄存器全表、内存控制器微架构、具体厂商模式寄存器保留位。所有位段、时序数值一律以目标颗粒 datasheet 与主控 DDR 控制器设计指南为准。

本系列其他文档

文档器件类型关注重点
SPI NOR 电路设计指南串行 NOR FlashQuad/QPI 提速、dummy cycles、XIP、DPD 低功耗
SPI NAND 电路设计指南串行 NAND Flash页/块管理、片内 ECC、坏块表、主机 FTL
并行NAND (PPI NAND) 电路设计指南8/16 位并行 NAND宽总线时序、ECC 引擎、40+ 引脚 Layout
eMMC 电路设计指南eMMC 5.0/5.1HS200/HS400、1.8 V VCCQ、DS 选通与等长
SD NAND 电路设计指南贴片式 SD NANDSPI/SDIO 双模式、无休眠指令、VCC 负载开关断电
NAND MCP 电路设计指南多芯片合封存储多 die 与多 CE、双电源轨、HDI 扇出
并行NOR (PPI NOR) 电路设计指南并行 NOR Flash异步读时序、XIP、等待周期、总线扩展
PSRAM 电路设计指南伪静态 RAMOPI/HyperBus、刷新与延迟周期、XIP 与帧缓存
DDR2 电路设计指南DDR2 SDRAMSSTL_18、T 分支拓扑、VTT 端接、ODT
DDR3 电路设计指南DDR3 / DDR3LFly-by 拓扑、write leveling、动态 ODT
DDR4 电路设计指南 本文DDR4 SDRAMPOD12、bank group、DBI、2D 训练
DDR5 电路设计指南DDR5 SDRAM双子通道、On-DIMM PMIC、DFE、同帧 ECC
EEPROM 电路设计指南EEPROMI²C/SPI 接口、上拉电阻与总线电容、页写与写保护
快速决策:DDR3 / DDR4 / DDR5 / LPDDR4 该怎么选

成本敏感、速率 ≤ 1866 MT/s、主控只有 DDR3 控制器 → DDR3/DDR3L(1.5 V / 1.35 V,8 bank,SSTL_15,需要外部 VTT)。主流通用、速率 2133~3200 MT/s、容量 4~64 GB → DDR4(1.2 V + VPP 2.5 V,16 bank / 4 bank group,POD12,数据组无外部 VTT,支持 DBI/CRC/CA 校验与内部 VREFDQ 训练)。追求带宽 ≥ 4800 MT/s、单条大容量、可接受更高 BOM 与仿真成本 → DDR5(1.1 V、16n 预取、双 32 bit 子通道、模组上 PMIC、片内 ECC,但控制器与 PDN/热设计难度显著上升)。电池供电、待机功耗第一、无需插槽 → LPDDR4/LPDDR4X(VDD2 1.1 V / VDDQ 0.6 V,双 16 bit 通道,BGA 直焊,不可插拔)。

反例提醒:DDR4 的 VPP 2.5 V 是容易被遗漏的第四轨电源;把 DDR3 的 VTT 端接照搬到 DDR4 数据组会直接拉坏 POD12 眼图(数据组端接到 VDDQ,不是 VDDQ/2)。

本文数值使用约定

表中除明确标注"JEDEC 规定"外,均为典型工程取值示例。DDR4 不同厂商、不同密度、不同速率等级的参数差异较大:上板前必须用目标型号的 datasheet 与主控控制器设计指南逐项核对,尤其是 tRFC(随密度变化)、tREFI(随温度变化)、ODT 阻值、驱动强度与 VREFDQ 训练范围。

1 · 器件基础

1.1 DDR3 / DDR4 / DDR5 关键规格对比

项目DDR3 / DDR3LDDR4DDR5
VDD / VDDQ1.5 V ±0.075(DDR3L 1.35 V ±0.067)1.2 V ±0.06(1.14~1.26 V)1.1 V ±0.055(1.045~1.155 V)
字线升压轨无外接(片内电荷泵)VPP = 2.5 V(+0.25 / −0.125)VPP = 1.8 V(部分器件,以 datasheet 为准)
I/O 电平标准SSTL_15(推挽,端接到 VTT = VDDQ/2)POD12(伪开漏,接收端端接到 VDDQ)POD12 兼容电平(更低摆幅)
数据组外部 VTT 端接需要(VTT = 0.75 V,端接电阻排)取消,改由片内 ODT取消,片内 ODT
预取(Prefetch)8n8n16n
突发长度BL8 / BC4BL8 / BC4(含 OTF 动态切换)BL16 / BC8(BL32 OTF 可选)
数据速率800 ~ 2133 MT/s1600 ~ 3200 MT/s3200 ~ 8800 MT/s
Bank 结构8 bank(BA0~BA2)16 bank = 4 bank group × 4 bank32 bank = 8 bank group × 4 bank
Bank Group无有(BG0~BG1,x16 部分器件为 BG0 单bit 2 组)有(BG0~BG2)
DBI 数据总线反转不支持支持(读 DBI / 写 DBI 独立使能)支持
写 CRC不支持支持支持(含链路 EDC)
命令/地址奇偶校验不支持支持(PAR 输入 / ALERT# 开漏输出)支持
VREF 获取方式外部 VREFCA / VREFDQ 电阻分压VREFCA 外部、VREFDQ 片内训练(含 2D)片内 + DFE 均衡
命令编码RAS# / CAS# / WE# 独立引脚ACT# + RAS#(A16)/CAS#(A15)/WE#(A14) 复用同 DDR4
3DS 堆叠2H / 4H(有限)2H / 4H / 8H(C0/C1/C2 逻辑 rank)支持更高堆叠
片内 ECC无无(DIMM ECC 需 72 bit 总线 + 控制器 ECC)有(On-die ECC)
颗粒封装FBGA-78(x4/x8)/ FBGA-96(x16),0.8 mm pitch同 DDR3:FBGA-78(x4/x8)/ FBGA-96(x16),0.8 mm pitchFBGA(0.8 mm pitch,球数随厂商,约 82~104 球)
模组形态240 pin DIMM / 204 pin SODIMM288 pin UDIMM/RDIMM/LRDIMM、260 pin SODIMM288 pin(引脚不兼容 DDR4)
模组端稳压全部在主板上全部在主板上(VPP 亦由主板提供)PMIC 移到模组上(12 V 输入)
颗粒容量1 Gb ~ 8 Gb2 Gb ~ 16 Gb8 Gb ~ 32 Gb(并继续上探)
DDR4 相对 DDR3 的六项本质差别(设计时必须逐一落实)

① 电压 1.5 V→1.2 V 且新增 VPP 2.5 V;② 电平 SSTL_15→POD12,端接从 VTT 改为 VDDQ;③ 数据组取消外部 VTT 端接电阻,改用片内 ODT(Rtt_Nom / Rtt_WR / Rtt_Park);④ 新增 Bank Group,tCCD 拆成 tCCD_S / tCCD_L;⑤ 新增 DBI、写 CRC、CA 奇偶校验(PAR/ALERT#)、Gear-down 模式;⑥ VREFDQ 改为片内生成并训练(2D training:延迟 × 参考电压二维扫描)。

1.2 封装与球位定义

DDR4 颗粒沿用 0.8 mm 球距的 FBGA 封装:x4 / x8 为 78 球,x16 为 96 球。封装外形常见 9 mm × 10.5 mm(78 球)与 9 mm × 14 mm(96 球),具体以 datasheet 的 package outline 为准,Layout 前必须下载对应型号的封装库与推荐焊盘(NSMD Ø0.35~0.40 mm)。

FBGA-96(x16)球位功能分区 FBGA-78(x8)球位功能分区 123 456 789 ABC DEF GHJ KL VPP ZQ REF A1(1 脚) 地址/命令 控制 数据组 123 456 789 ABC DEF GHJ VPP ZQ REF 地址 命令 数据 图例 数据组 DQ / DQS / DQS# / DM_n / DBI_n 地址命令组 A0~A17 / BA0~1 / BG0~1 / ACT# 控制组 CKE / CS# / ODT / RESET# / PAR / ALERT# / TEN / C0~C2 电源地 VDD / VDDQ / VSS / VSSQ VPP 2.5 V 字线升压 模拟/参考 ZQ、VREFCA NC / 空位球 注 1:上图为功能分区示意,非逐球 pin-map;实际球位顺序、NC 位置、VDD/VSS 数量请查目标型号 datasheet 的 Ball Assignments 表。 注 2:球距 0.8 mm,球径典型 Ø0.40~0.45 mm(SAC305),推荐 NSMD 焊盘 Ø0.35~0.40 mm、阻焊开窗 Ø0.50 mm。 注 3:A1 球位于封装左上角(凹点/斜角侧),贴片方向与丝印 1 脚标识必须一致;x16 器件比 x8 多出的球主要为 DQ8~DQ15、UDQS/UDQS#、DMU_n/DBIU_n。 注 4:电源/地球(灰)占比约 40%~50%,是 PDN 低阻抗回路的主要通道,扇出时优先保证其过孔数量与就近去耦。
图 1-1 DDR4 FBGA-96(x16)与 FBGA-78(x8)球位功能分区示意图(数据组 / 地址命令组 / 控制组 / 电源区 / VPP / ZQ·VREFCA,含 A1 标记)

球位分区的工程含义

分区主要信号x8 球数(约)x16 球数(约)Layout 关注点
数据组DQ0~DQ7(x16 为 DQ0~15)、DQS/DQS#(x16 为 LDQS/LDQS#、UDQS/UDQS#)、DM_n/DBI_n2038点对点(板载)/ 共享总线(模组),组内等长 ±5 mil,阻抗 40 Ω 单端
地址命令组A0~A17、BA0~BA1、BG0~BG1、ACT#、RAS#/A16、CAS#/A15、WE#/A142626Fly-by 菊花链,末端端接,分支残桩尽量短
控制组CK/CK#、CKE、CS#(3DS 为 CS_n + C0/C1/C2)、ODT、RESET#、PAR、ALERT#、TEN1314CK 为差分 80 Ω;RESET#/TEN 可加 10 kΩ 上下拉
电源地VDD、VDDQ、VSS、VSSQ1618每个电源球配一个过孔 + 就近 0.1 µF
模拟/参考ZQ、VREFCA、VPP33ZQ 接 240 Ω ±1% 到 VSSQ,走线短而粗;VREFCA 单独铺铜并包地
NC / 保留NC、DNU、RFU33悬空,不连任何网络,焊盘按 datasheet 处理
球位三大易错点

① VPP 误接 1.2 V 或悬空:颗粒无法完成字线升压,表现为刷新后数据丢失或直接训练失败。
② ZQ 电阻用 5% 或 1% 但选错阻值(如 240 kΩ / 24 Ω):ODT 与驱动强度全部失准,眼图严重闭合。必须 240 Ω ±1%(0402/0603),且紧靠 ZQ 球到 VSSQ,走线 ≤ 5 mm。
③ 把 NC 球当 GND 焊接:部分 NC 为内部测试点或 DNU,接地会造成内部短路或参数漂移。

1.3 关键电气参数

参数符号最小典型最大单位说明
器件电源VDD1.141.201.26V±5%(JEDEC 规定 ±0.06 V)
I/O 电源VDDQ1.141.201.26V需与 VDD 同源或严格跟踪,偏差 ≤ 30 mV
字线升压电源VPP2.3752.502.75V+0.25 / −0.125 V,电流小(典型 1~5 mA,刷新瞬时可达 10 mA)
命令地址参考电压VREFCA0.49 VDDQ0.50 VDDQ0.51 VDDQV需跟踪 VDDQ/2,容差 ±1%(约 ±12 mV),噪声 ≤ ±1%
数据参考电压(片内)VREFDQ60% VDDQ70~75% VDDQ92.5% VDDQVRange 1:60.0%~92.5% VDDQ;Range 2:45.0%~77.5% VDDQ,由 MR6 训练
ZQ 外部校准电阻RZQ237.6240242.4Ω±1%,接 ZQ 球到 VSSQ
输入高电平(DC)VIH(DC)VREF+0.065—VDDQ+0.3VPOD12,以 datasheet 的 AC/DC 表为准
输入低电平(DC)VIL(DC)−0.3—VREF−0.065V同上
输出驱动阻抗Ron—34 / 40 / 48—ΩMR1[2:1] 配置(RZQ/7、RZQ/6、RZQ/5)
片内端接Rtt3440~120240ΩRZQ/1~RZQ/7,见 §7.1
刷新间隔(≤ 85 °C)tREFI—7.8—µs85~95 °C 时减半为 3.9 µs
刷新周期(2 Gb / 4 Gb / 8 Gb / 16 Gb)tRFC—160 / 260 / 350 / 550—ns随密度变化,务必按型号核对
工作壳温(商业 / 工业)TCASE0 / −40—95 / 95°C超过 85 °C 需启用 2× 刷新或降额
存储温度TSTG−55—100°C非工作状态

典型工作电流(单颗 8 Gb x8,DDR4-2400,示例值)

电流项符号条件典型值单位电源设计用途
激活-预充电电流IDD0tRC = tRC(min),全 bank 轮转45 ~ 65mAVDD 稳态能力
预充电待机IDD2NCKE 高,无操作22 ~ 35mA待机功耗
激活待机IDD3N行打开,CKE 高35 ~ 55mA待机功耗
突发读IDD4R连续读 BL890 ~ 140mAVDDQ 峰值能力
突发写IDD4W连续写 BL8100 ~ 165mAVDDQ 峰值能力
刷新电流(突发)IDD5B突发刷新150 ~ 260mA刷新瞬间压降
自刷新(25 °C)IDD6N自刷新,常温6 ~ 12mA休眠功耗
自刷新(85 °C)IDD6N自刷新,高温20 ~ 45mA高温休眠功耗
VPP 电流IPP平均 / 峰值1 ~ 3 / 10mAVPP LDO 选型裕量 ≥ 50 mA

上表为量级参考,用于电源芯片选型与 PDN 目标阻抗估算;精确值必须取自目标型号 datasheet 的 IDD Specification 表,并按最坏温度、最坏速率等级取上限。

2 · 接口与协议

DDR4 的命令编码相对 DDR3 发生了结构性变化:RAS# / CAS# / WE# 与地址位 A16 / A15 / A14 复用,由 ACT# 引脚区分;同时新增 BG0~BG1(bank group)、PAR(命令地址奇偶校验输入)、ALERT#(开漏错误上报)、TEN(连通性测试使能)。硬件设计的第一件事是把这些信号全部连对,尤其是常常被漏掉的 PAR、ALERT#、TEN、VPP、ZQ。

2.1 信号定义全表

信号方向类型x4 / x8x16说明与设计要点
CK / CK#输入差分时钟 POD1 对1 对DDR4-3200 为 1600 MHz 差分;差分阻抗 80 Ω,对内等长 ±2 mil;Fly-by 时是时序基准
CKE输入单端 POD11时钟使能;上电后必须保持低电平 ≥ 200 µs,自刷新/掉电入口
CS#(CS_n)输入单端 POD11片选;3DS 器件配合 C0/C1/C2 选择物理 rank 内的逻辑 die
ACT#输入单端 POD11DDR4 新增;低电平时 RAS#/CAS#/WE# 有效,高电平时该三引脚复用为 A16/A15/A14
RAS# / A16输入复用11见命令真值表
CAS# / A15输入复用11见命令真值表
WE# / A14输入复用11见命令真值表
BG0 ~ BG1输入单端 POD22Bank Group 选择;决定 tCCD_S / tCCD_L,影响实际带宽
BA0 ~ BA1输入单端 POD22Bank 组内 bank 选择(4 个)
A0 ~ A17输入单端 POD1815~17行/列复用;实际使用位数随密度与位宽变化,未用位为 NC;A10 用于 Auto-Precharge,A12 用于 BC4 on-the-fly
ODT输入单端 POD11片内端接使能;配合 MR1 Rtt_Nom / MR2 Rtt_WR / MR5 Rtt_Park
RESET#输入单端 POD(施密特)11低有效复位;上电时保持低 ≥ 200 µs;建议 4.7~10 kΩ 下拉 + 100 nF(可选)
PAR输入单端 POD11命令/地址奇偶校验位;不用时必须接固定电平(推荐 10 kΩ 下拉),不能浮空
ALERT#输出开漏11CRC / CA 奇偶 / 温度事件上报;必须外接 4.7~10 kΩ 上拉到 VDDQ(或 1.8 V,按 datasheet),多片时可线与
TEN输入单端 POD11连通性测试模式(Connectivity Test Mode);正常工作时必须 10 kΩ 下拉到 VSS
DQI/OPOD124 / 816数据总线;40 Ω 单端,组内等长 ±5 mil
DQS / DQS#I/O差分 POD121 对2 对(LDQS/UDQS)数据选通;差分 80 Ω;x16 分上下字节各一对
DM_n / DBI_nI/OPOD1212(LDM/UDM)写数据掩码(DM 使能时)或数据总线反转(DBI 使能时),二者互斥,由 MR5[10]/[11]/[12] 选择
TDQS_t / TDQS_c输出差分x8 有无仅 x8 器件,用于 x4/x8 混合模组时提供端接;板载单片可关闭(MR1[5]=0)并悬空
ZQ参考模拟11接 240 Ω ±1% 到 VSSQ,走线 ≤ 5 mm,不可与任何信号并行
VREFCA参考模拟输入11VDDQ/2(0.60 V),±1%;需 0.1 µF + 10 nF 去耦,单独走线并包地
VDD / VDDQ电源—1.2 V ±0.06VDD 与 VDDQ 可同源,但需分别去耦
VPP电源—2.5 V(+0.25 / −0.125)字线升压;电流小,可用 3.3 V LDO 或电荷泵;不可省
VSS / VSSQ地——信号回流;每个地球至少一个过孔
四个最常被漏接 / 错接的引脚

PAR:不使用时若浮空,会在 Fly-by 上引入不确定电平,且部分控制器在上电训练期间会驱动 PAR,浮空会导致 CA 校验误报。→ 10 kΩ 下拉。
ALERT#:开漏输出,无上拉则永远读不到错误,且上电自检可能卡住。→ 4.7~10 kΩ 上拉到 VDDQ,走线远离 DQS/DQ,长度 ≤ 100 mm。
TEN:浮空时噪声可能把器件带入连通性测试模式,表现为"所有 DQ 被内部上下拉、读写全错"。→ 10 kΩ 下拉。
VPP:漏接时部分颗粒仍能通过基本读写,但刷新保持能力极差,高温老化后大面积比特翻转。→ 必须与 VDD 同时甚至更早建立。

2.2 8n 预取与 Bank Group

8n 预取(Prefetch = 8n)

  • DDR4 内部阵列一次读出 8 × 总线位宽 的数据到 I/O 缓冲,再用 DDR 方式在 4 个时钟周期内送出(BL8 突发 = 8 个数据拍 = 4 tCK)。
  • 核心(阵列)频率 = 数据速率 / 8:DDR4-3200 → 核心 400 MHz,I/O 时钟 1600 MHz。
  • 这是 DDR4 能到 3200 MT/s 而核心仍停留在几百 MHz 的根本原因,也是 最小突发长度为 8(BL8) 的原因。
  • BC4(突发截断 4)只是把 8n 中的一半丢弃或按 A12 动态选择,不提升峰值效率,仅在窄访问时减少总线占用。

Bank Group(4 组 × 4 bank = 16 bank)

  • 16 个 bank 被划分为 4 个 bank group,每组 4 个 bank。BG0~BG1 选组,BA0~BA1 选组内 bank。
  • 同组内的连续列访问受 tCCD_S(较长,典型 4 nCK)限制;跨组的连续列访问只受 tCCD_L(较短)限制。
  • 因此跨 bank group 交错访问才能真正跑满带宽;访问模式全落在同一组时,有效带宽会明显下降。
  • 控制器侧的 bank 交织策略(如 addr bit 映射)必须让连续地址落到不同 bank group。
速率等级I/O 时钟核心频率(8n 预取)tCKBL8 突发时长tCCD_StCCD_L
DDR4-1600800 MHz200 MHz1.250 ns5.000 ns4 nCK4 nCK
DDR4-1866933 MHz233 MHz1.071 ns4.286 ns4 nCK4 nCK
DDR4-21331066 MHz267 MHz0.938 ns3.750 ns4 nCK4 nCK
DDR4-24001200 MHz300 MHz0.833 ns3.333 ns4 nCK4 nCK
DDR4-26661333 MHz333 MHz0.750 ns3.000 ns4 nCK4 nCK
DDR4-29331466 MHz367 MHz0.682 ns2.727 ns4 nCK5 nCK
DDR4-32001600 MHz400 MHz0.625 ns2.500 ns4 nCK6 nCK

表中 tCCD_S / tCCD_L 为典型工程取值;不同厂商、不同密度会有差异,请以目标 datasheet 的 speed bin 表为准。

2.3 命令真值表

DDR4 命令由 CS#、ACT#、RAS#/A16、CAS#/A15、WE#/A14 共同编码。关键规则:ACT# = 0 时,三个引脚为 RAS#/CAS#/WE#;ACT# = 1 时,它们被解释为地址位 A16/A15/A14。

命令CS#ACT#RAS#/A16CAS#/A15WE#/A14附加条件
MRS(模式寄存器写)LHLLLBG/BA 选择 MR0~MR6;地址位承载配置值
REFRESH(刷新)LHLLH需满足 tRFC / tREFI
自刷新进入 SRELHLHL同时 CKE 拉低
自刷新退出 SRXLHHHHCKE 拉高后等待 tXSR
ACTIVATE(激活行)LLLHHBG/BA 选 bank,A 为行地址
READLLHLHA10=1 时读后自动预充电
WRITELLHLLA10=1 时写后自动预充电
PRECHARGE(预充电)LLLHLA10=1 为全部 bank 预充电
ZQ 校准(ZQCL / ZQCS)LHHHLZQCL 用于上电(等 tZQinit);ZQCS 用于周期性维护(等 tZQCS),两者命令编码相同,由所处阶段区分
NOP / DESELECTL / HHHHH空操作
掉电进入 / 退出LHHHHCKE 低进入,CKE 高退出(tXP / tCKE)

命令编码的硬件含义(对 Layout 的直接影响)

  • ACT# 与 RAS#/CAS#/WE#、A14/A15/A16 属于同一命令组,必须与地址/命令信号同组等长、同层、同 Fly-by 顺序,否则 ACT# 与地址位的相对偏移会直接造成命令译码错误。
  • 由于 A14/A15/A16 与命令复用,地址组等长公差必须按命令时序(而非宽松的地址建立时间)来约束,通常整组 ≤ ±25 mil 到 CK。
  • CS# 上升/下降沿同样是命令译码的一部分,CS# 必须与 CK 保持严格的建立保持关系,且在多 rank 时每 rank 独立等长。

2.4 模式寄存器 MR0 ~ MR6

模式寄存器通过 MRS 命令写入,BG/BA 选择寄存器编号,地址位承载配置值。以下为硬件工程师必须理解并与固件/控制器对齐的字段;位段编号以 JEDEC 通用定义给出,保留位与厂商自定义位以目标 datasheet 为准。

MR0 — 突发长度、CAS 延迟、DLL 复位

位段字段可选值工程建议
MR0[1:0]突发长度 BL00 = BL8 固定;01 = BC4 或 BL8 动态(OTF);10 = BC4 固定通用计算选 01(OTF),由 A12 动态切换;纯流式访问选 00
MR0[3]突发类型0 = 顺序(sequential);1 = 交错(interleaved)与控制器配置保持一致,一般 0
MR0[6:4, 2]CAS 延迟 CL9 ~ 24(按速率等级与是否 Gear-down 取)见附录 B 速率表;如 DDR4-3200 常取 CL22(Gear-down 时按 CL/2 编码)
MR0[8]DLL 复位1 = 复位 DLL(自清零)初始化必须执行一次,之后等 tDLLK = 512 nCK(部分场景 768/1024 nCK)
MR0[11:9]写恢复 WR10 ~ 26(对应 tWR 的 nCK 数)按 tWR(典型 15 ns)换算:DDR4-3200 取 24 nCK
MR0[12]读预同步 / PPD?厂商相关按 datasheet 设为默认值
MR0[13]DLL 掉电模式控制0 = 慢速退出(tXPDLL);1 = 快速退出(tXP)低功耗场景设 1 可缩短退出时间
MR0[14]测试模式0 = 正常必须为 0

MR1 — DLL 使能、驱动强度、Rtt_Nom、附加延迟、Write Leveling

位段字段可选值工程建议
MR1[0]DLL 使能0 = 禁用(低频测试和缓);1 = 使能正常工作必须为 1
MR1[2:1]输出驱动阻抗 DIC00 = RZQ/7(34 Ω);01 = RZQ/5(48 Ω);10 = RZQ/6(40 Ω);11 = 保留板载点对点、走线短 → 34 Ω;多负载/长走线(模组、2 rank)→ 40 或 48 Ω;需仿真确认
MR1[4:3]附加延迟 AL00 = 禁用;01 = CL−1;10 = CL−2由控制器调度策略决定,一般 00
MR1[5]TDQS 使能(仅 x8)0 = 禁用;1 = 使能板载单片 x8 → 0(悬空 TDQS 引脚),混合模组 → 1
MR1[7]Write Leveling 使能0 = 禁用;1 = 使能训练阶段置 1,训练完成后必须清 0
MR1[8]输出使能(Qoff)0 = 输出使能;1 = 输出关闭正常 0
MR1[10:8]Rtt_Nom000 = 断开;001 = RZQ/1(240 Ω);010 = RZQ/2(120 Ω);011 = RZQ/3(80 Ω);100 = RZQ/4(60 Ω);101 = RZQ/5(48 Ω);110 = RZQ/6(40 Ω);111 = RZQ/7(34 Ω)见 §7.1 选型表;板载单 rank 常用 60 Ω 或 48 Ω,2 rank 常用 40 Ω
MR1[12]预充电掉电 / 低功耗厂商相关按 datasheet 默认
MR1[13]CRC/DM 相关或保留—以 datasheet 为准

MR2 — CAS 写延迟 CWL、Rtt_WR(动态 ODT)、自刷新温度范围

位段字段可选值工程建议
MR2[2:0]部分阵列自刷新 PASR000 = 全部刷新;其余按 bank 屏蔽正常 000;LPDDR 式省电才用
MR2[5:3]CAS 写延迟 CWL9 ~ 20按速率等级:DDR4-1600 → CWL 9/11;DDR4-2400 → CWL 12/14;DDR4-3200 → CWL 16/18
MR2[6]自动自刷新 ASR0 = 手动(SRT);1 = 自动无温控固件时设 1,由颗粒根据内部温度传感器自动加倍刷新
MR2[7]自刷新温度范围 SRT0 = 常温范围;1 = 扩展范围(85~95 °C 时 2× 刷新)ASR=0 时由固件按温度设置;高温设备选 1
MR2[9:8]Rtt_WR(写动态 ODT)00 = 动态 ODT 关闭;01 = RZQ/2(120 Ω);10 = RZQ/1(240 Ω);11 = 保留多 rank 共享 DQ 总线时必须使能:被写 rank 用 Rtt_WR,非目标 rank 用 Rtt_Nom(或 Rtt_Park)
MR2[10:12]LPASR / 写 CRC 使能厂商相关;部分器件 MR2[12] 为写 CRC 使能需要写 CRC 时置 1,并与控制器 CRC 使能同步;位段以 datasheet 为准

MR3 — MPR、Gear-down 模式、刷新粒度

位段字段可选值工程建议
MR3[1:0]MPR 页选择00 = Page 0(预定义图案);01 = Page 1;10 = Page 2;11 = Page 3读/写 leveling 训练必须使用 MPR:MPR 读出固定图案(如 0x00/0xFF/交替),排除阵列数据干扰
MR3[2]MPR 操作0 = 正常读;1 = MPR 读训练时置 1,训练结束清 0
MR3[3]Gear-down 模式0 = 1/2 速率命令(正常);1 = Gear-down(1/4 速率命令)DDR4-2666 及以上且 Fly-by 负载重时建议使能:命令/地址以 1/2 速率发送、每个命令占 2 nCK,显著降低 CA 时序压力,代价是命令带宽略降
MR3[5:4]MPR 读格式串行 / 并行 / 交错按控制器训练流程选择,一般串行
MR3[8:6]刷新粒度(Fine Granularity Refresh)1× / 2× / 4×(部分器件)抗 Row Hammer 时可配置为 2× 或 4× 刷新;以 datasheet 为准
MR3[12:11]MPR 读格式高位与 MR3[5:4] 组合按控制器要求

MR4 — 前导、最大掉电、3DS 的 CS-to-CA 延迟

位段字段可选值工程建议
MR4[0]最大掉电模式 MPD0 = 正常;1 = 最大掉电(DLL/PLL 关闭)极低功耗待机时使用,唤醒时间显著变长
MR4[4]内部 VREF 监视0 = 关闭;1 = 通过 MPR 输出内部 VREF 电平调试 VREFDQ 训练时使用
MR4[8:6]CS 到命令/地址延迟(3DS)0 ~ 6 nCK3DS 堆叠(2H/4H/8H)必须配置,用于补偿 C0/C1/C2 相对 CS# 的飞行时间差
MR4[9]写前导0 = 1 tCK;1 = 2 tCK高速(≥ 2666)常取 2 tCK 以改善写眼图
MR4[10]读前导0 = 1 tCK;1 = 2 tCK≥ 2666 建议 2 tCK,与控制器 DQS 门控训练配合
MR4[11]读前导训练模式0 = 关闭;1 = 使能DQS 门控训练阶段必须使能,训练完成清 0
MR4[12]自刷新中止 / 其他厂商相关以 datasheet 为准

MR5 — Rtt_Park、CA 奇偶校验、DM / DBI

位段字段可选值工程建议
MR5[2:0]CA 奇偶校验延迟 PL000 = 禁用;其余 = 4/5/6/8 nCK(与速率相关)需要 CA 校验时按速率设置;控制器侧需同步使能 PAR 生成
MR5[3]CA 奇偶错误状态只读,读后清除调试时轮询判断是否发生 CA 传输错误
MR5[4]CA 奇偶持续错误只读置位说明存在系统性 SI 问题,需查 VREFCA / 时序 / 端接
MR5[8:6]Rtt_Park(空闲端接)同 Rtt_Nom:断开 / 240 / 120 / 80 / 60 / 48 / 40 / 34 Ω多 rank 系统中非选中 rank 用 Rtt_Park 端接,抑制总线浮空反射
MR5[10]数据掩码 DM 使能0 = 禁用;1 = 使能与 DBI 互斥:需要字节写掩码时用 DM
MR5[11]读 DBI 使能0 = 禁用;1 = 使能降低读功耗与 SSN,需控制器支持
MR5[12]写 DBI 使能0 = 禁用;1 = 使能降低写功耗与 SSN,需控制器支持

MR6 — VREFDQ 片内训练值

位段字段可选值工程建议
MR6[5:0]VREFDQ 训练值0 ~ 63(步进约 0.5% VDDQ,实际步进按 datasheet)由训练固件扫描;典型最终值落在 70%~75% VDDQ(POD12 端接到 VDDQ,摆幅中心高于 VDDQ/2)
MR6[6]VREFDQ 训练值最高位与 MR6[5:0] 组合成 7 bit—
MR6[7]VREFDQ 范围选择0 = Range 1(60.0% ~ 92.5% VDDQ);1 = Range 2(45.0% ~ 77.5% VDDQ)先用 Range 1 扫描;若最优点落在边界,切到 Range 2 复扫
MR6[8]VREFDQ 训练使能0 = 训练完成(冻结);1 = 训练中训练结束必须置 0,否则数值不生效

MRS 配置序列示例(寄存器级伪代码)

// ---------- DDR4-2400, 8Gb x8, 板载 2 rank, 64 bit 总线 ----------
// 说明:以下为工程示例,地址/位段编码以目标 datasheet 为准

// 1) 复位释放后先发 DLL 复位
MRS( MR = 0,  value = 0x0A10 | (CL_Encode(16) << 4) | (1 << 8) );  // MR0: BL8 OTF + DLL reset
wait( tDLLK = 512 nCK );                       // DLL 锁定等待

// 2) MR1: DLL 使能 + 驱动强度 40 Ω + Rtt_Nom = 60 Ω(RZQ/4) + WL 关闭
MRS( MR = 1,  value = (1 << 0)                // DLL enable
                | (0b10 << 1)                 // DIC = RZQ/6 = 40 Ω
                | (0b100 << 8)                // Rtt_Nom = RZQ/4 = 60 Ω
                | (0 << 7) );                 // Write leveling = off

// 3) MR2: CWL = 14, ASR = 1, Rtt_WR = 120 Ω(RZQ/2), 写 CRC 使能
MRS( MR = 2,  value = (CWL_Encode(14) << 3)
                | (1 << 6)                    // ASR = auto self-refresh
                | (0b01 << 8)                 // Rtt_WR = RZQ/2 = 120 Ω
                | (1 << 12) );                // write CRC enable (位段以 datasheet 为准)

// 4) MR3: MPR page0 + gear-down 关闭 + 1x 刷新
MRS( MR = 3,  value = (0b00 << 0) | (0 << 2) | (0 << 3) );

// 5) MR4: 读/写前导 1 tCK, CS-to-CA latency = 0 (非 3DS)
MRS( MR = 4,  value = 0x0000 );

// 6) MR5: Rtt_Park = 240 Ω(RZQ/1), DM 使能, DBI 关闭, CA parity 关闭
MRS( MR = 5,  value = (0b001 << 6)            // Rtt_Park = RZQ/1 = 240 Ω
                | (1 << 10) );                // DM enable

// 7) MR6: VREFDQ 先给默认中点, 训练阶段再扫描
MRS( MR = 6,  value = (0 << 7) | (0x20 << 0) );  // Range1, code 0x20, training on
wait( tMRD = 8 nCK );  wait( tMOD = max(24 nCK, 15 ns) ) 之间插 NOP;
MRS 时序硬约束(违反会导致初始化随机失败)

相邻两条 MRS 命令间隔 ≥ tMRD = 8 nCK;MRS 之后到任何非 MRS 命令需等待 tMOD = max(24 nCK, 15 ns);DLL 复位之后必须等 tDLLK;VREFDQ 训练值写入后需等 tVREF_long / tVREF_short(随步进跨度变化)才能采样。写固件时把这四个等待做成显式宏,不要靠经验延时。

2.5 突发长度、CRC 与命令地址奇偶校验

突发长度 BL8 / BC4

  • BL8:8 拍数据,占 4 tCK,是 DDR4 的原生突发(8n 预取)。
  • BC4:突发截断到 4 拍,占 2 tCK;可由 MR0[1:0] 固定,或在 OTF 模式下由 A12 在读写命令时动态选择。
  • CRC 与 BC4 冲突:写 CRC 使能时,CRC 需要额外的突发拍,因此 写 CRC 只能与 BL8 配合使用(CRC 占第 9、10 拍,写突发变为 10 拍 / 5 tCK)。控制器与 DRAM 必须一致配置。
  • 硬件影响:使能写 CRC 后,写数据的 DQ 有效窗口延长 2 拍,tWR、tWTR 等写相关时序需按 datasheet 追加。

CRC 与 CA 奇偶校验的作用边界

  • 写 CRC:由控制器在写数据后附加 CRC 码,DRAM 校验;出错时拉低 ALERT#,并记录错误状态。只检错不纠错,需由软件重试。
  • CA 奇偶校验:控制器在每个命令/地址周期给出 PAR 奇偶位,DRAM 校验奇偶;出错同样通过 ALERT# 上报。
  • 两者的价值在于把间歇性 SI 失效从"静默数据损坏"变成"可检测、可上报的错误",是服务器/工业产品的必选项。
  • 硬件代价:PAR 需要与地址/命令同组等长(它是命令编码的一部分);ALERT# 需上拉并连到控制器中断或 GPIO。
机制保护对象关键引脚使能位开销错误上报
写 CRC写数据 DQALERT#MR2(位段以 datasheet 为准)写突发 +2 拍(BL8 → 10 拍)ALERT# 拉低 + 错误状态位
CA 奇偶校验ACT#/RAS#/CAS#/WE#/A/BA/BGPAR(输入)、ALERT#(输出)MR5[2:0] 奇偶延迟 PL每命令 1 bit 奇偶;延迟 PL 个时钟ALERT# 拉低 + MR5[3]/[4] 状态位
DBI(数据总线反转)不检错,用于降低功耗与 SSNDM_n/DBI_n 复用MR5[11] 读 / MR5[12] 写与 DM 互斥—
ECC(外部)全数据路径额外 8 bit DQ(72 bit 总线)控制器侧容量 +12.5%,延迟略增控制器中断

2.6 带宽计算

理论峰值带宽 (GB/s) = 数据速率(MT/s) × 总线位宽(bit) / 8 / 1000

64 bit 单通道:
  DDR4-1600 : 1600 × 64 / 8 = 12800 MB/s = 12.8 GB/s   (PC4-12800)
  DDR4-2133 : 2133 × 64 / 8 = 17064 MB/s = 17.0 GB/s   (PC4-17000)
  DDR4-2400 : 2400 × 64 / 8 = 19200 MB/s = 19.2 GB/s   (PC4-19200)
  DDR4-2666 : 2666 × 64 / 8 = 21328 MB/s = 21.3 GB/s   (PC4-21300)
  DDR4-2933 : 2933 × 64 / 8 = 23464 MB/s = 23.4 GB/s   (PC4-23400)
  DDR4-3200 : 3200 × 64 / 8 = 25600 MB/s = 25.6 GB/s   (PC4-25600)

32 bit(单片 x16 ×2 或单片 x16 32bit): 峰值减半 → DDR4-3200 = 12.8 GB/s
双通道 64 bit ×2                      : DDR4-3200 = 51.2 GB/s

有效带宽估算:
  有效带宽 ≈ 峰值 × 效率系数 × (1 − 刷新开销 − 读写切换开销)

刷新开销 = tRFC / tREFI
  8 Gb  @ 85 °C 以下: 350 ns / 7800 ns = 4.5%
  8 Gb  @ 85~95 °C   : 350 ns / 3900 ns = 9.0%
  16 Gb @ 85 °C 以下: 550 ns / 7800 ns = 7.1%

效率系数经验值:
  纯顺序流式访问(跨 bank group 交错): 0.85 ~ 0.92
  常规应用(随机 + 顺序混合)        : 0.60 ~ 0.75
  随机小颗粒访问(行命中率低)        : 0.35 ~ 0.55
  读写频繁切换(每 64 B 切换一次)    : 再打 0.85 ~ 0.95

示例: DDR4-3200 64 bit, 8 Gb 颗粒, 常温, 常规应用
  有效 ≈ 25.6 × 0.70 × (1 − 0.045) ≈ 17.1 GB/s

带宽设计的工程结论:与其把速率从 2666 提到 3200(+20% 峰值),不如优化访问模式让其跨 bank group 交错、减少读写切换、降低刷新占用,往往能拿到更大收益;同时 3200 对 PDN、Layout 与训练的要求陡增,成本与风险不成正比。

3 · 电源设计

DDR4 的电源是四轨:VDD(1.2 V,核心逻辑)、VDDQ(1.2 V,I/O)、VPP(2.5 V,字线升压)、VREFCA(0.6 V,命令地址参考)。与 DDR3 相比多了一条 VPP,且数据组的 VREFDQ 改为片内生成、数据组取消外部 VTT 端接——这两点是最容易沿用 DDR3 经验而出错的地方。

3.1 三轨电源与 POD12 电平

电源轨标称允许范围精度要求典型电流(4 片 8 Gb x8)推荐实现失效后果
VDD1.2 V1.14 ~ 1.26 V(±5%)±5%0.2 ~ 0.8 A与主 VDDQ 同源的 DCDC 或独立 DCDC(≥ 6 A)欠压→DLL 失锁、训练失败;过压→器件永久损伤
VDDQ1.2 V1.14 ~ 1.26 V(±5%)与 VDD 偏差 ≤ 30 mV0.15 ~ 0.6 A与 VDD 同源(磁珠/0 Ω 隔离 + 各自去耦)或独立路眼图中心漂移、VREFCA/VREFDQ 跟踪失效
VPP2.5 V2.375 ~ 2.75 V(+0.25 / −0.125)+10% / −5%5 ~ 40 mA由 3.3 V 经 LDO 降压,或 1.2 V/1.8 V 经电荷泵升压;输出能力 ≥ 50 mA字线升压不足→行无法完全打开→刷新保持能力丧失、高温丢数据
VREFCA0.60 V(VDDQ/2)0.49 ~ 0.51 VDDQ跟踪 VDDQ/2,偏差 ≤ ±1%(±12 mV)< 1 mA专用 DDR VREF 缓冲、或 1 kΩ/1 kΩ ±0.1% 分压 + 运放跟随偏小→命令采样窗口整体上移,误触发 ACTIVATE;偏大→命令漏检
VREFDQ片内生成Range 1:60% ~ 92.5% VDDQ
Range 2:45% ~ 77.5% VDDQ
由训练确定—无需外部电路,由 MR6 训练—
VTT(可选)0.60 VVDDQ/2 ±1%仅地址/命令 Fly-by 末端端接使用0.1 ~ 0.5 AVTT LDO(吸/灌型),配 ≥ 20 µF + 0.1 µF误接到 DQ 上会严重破坏 POD12 眼图
POD12 与 SSTL 的端接差异(硬件设计的核心分水岭)

DDR3 的 SSTL_15 是推挽输出,端接电阻接到 VTT = VDDQ/2,因此数据组需要一片 VTT 电源与大量端接电阻排。
DDR4 的 POD12(Pseudo Open Drain):驱动器只主动下拉(低电平由驱动管的 Ron 建立),高电平由接收端的片内 ODT 上拉到 VDDQ 提供。因此:
① 端接点是 VDDQ 而不是 VTT,数据组不再需要任何外部端接电阻与 VTT 电源;
② 信号摆幅不再关于 VDDQ/2 对称:低电平约 VDDQ × Ron/(Ron+Rtt)(Ron=40 Ω、Rtt=60 Ω 时约 0.48 V),高电平约 VDDQ,所以 VREFDQ 的合理值在 70%~75% VDDQ 而非 50%;
③ 静态功耗上,POD 在传输高电平时几乎不耗电(无 DC 通路),这也是 DDR4 更省电的原因之一;
④ 地址/命令组是 Fly-by 多负载拓扑,DDR4 颗粒通常不在片内端接 C/A,因此 Fly-by 末端仍需端接:可由控制器侧 ODT 提供,或外接 39~56 Ω 到 VTT(0.6 V),具体取决于主控设计与仿真结果。

VREFCA 生成电路设计要求

  • VREFCA 必须实时跟踪 VDDQ 的一半。用固定 LDO 输出 0.6 V 而不跟踪,会在 VDDQ 波动时引入共模误差;推荐做法:由 VDDQ 经 两颗 1 kΩ ±0.1%(≤ 25 ppm/°C)电阻分压,再经低失调运放/专用缓冲驱动。
  • 缓冲输出必须稳定驱动容性负载:加 10 nF + 0.1 µF + 1 µF(并联)到地,并保证运放在该容性负载下不振荡(输出端串 1~2 Ω 隔离电阻)。
  • VREFCA 走线:独立走线、两侧包地、线宽 ≥ 10 mil,长度尽量短(≤ 80 mm),不与 DQ/DQS/CK 相邻或平行。
  • 每颗颗粒的 VREFCA 球旁放置 0.1 µF + 10 nF(0402)到地。
  • 允许的 VREFCA 噪声(含 DC 误差 + 纹波 + 噪声)一般按 ≤ ±1% VDDQ(约 12 mV) 设计,纹波分量控制在 ≤ 5 mV rms。

3.2 上电与初始化时序

t0 电源稳定 RESET# 释放 CKE↑ 训练开始 就绪 上电 复位保持 ≥200 µs 初始化(等待 → MRS → ZQCL → DLL 锁定) 训练(WL/门控/读/2D) VPP 2.5 V 2.5 V(+0.25 / −0.125) 上升 VDD 1.2 V 1.2 V ±0.06 VDDQ 1.2 V 与 VDD 偏差 ≤ 30 mV ① VPP 必须不晚于 VDD 建立,且不得晚于 VDDQ;缓升/迟滞是初始化随机失败的常见原因 RESET# 低电平 ≥ 200 µs(电源稳定后计) ≥ 500 µs CKE tXPR = max(5 nCK, tRFC + 10 ns) CK / CK# 时钟必须早于第一条 MRS 稳定(≥ 5 nCK 稳定期) 命令 M3 M6 M5 M4 M2 ZQCL M1 M0* MRS 序列(示例:MR3→MR6→MR5→MR4→MR2→MR1→MR0,MR0 带 DLL 复位) tDLLK = 512 nCK
图 3-1 DDR4 上电、复位、初始化与训练时序波形(VPP→VDD→VDDQ 建立、RESET# 200 µs、CKE、tXPR、ZQCL、MRS、DLL 锁定、训练阶段)

上电/初始化硬性顺序(逐条落实)

// ---------- DDR4 上电初始化序列(硬件时序约束) ----------
T0 : VPP 开始上升          // VPP 不得晚于 VDD
T1 : VDD 开始上升          // VDD 与 VDDQ 可同时
T2 : VDDQ 开始上升         // |VDD − VDDQ| ≤ 30 mV(稳态与瞬态均需满足)
     └─ 上电全过程 RESET# 必须保持 ≤ 0.2 × VDDQ,CKE 保持 ≤ 0.2 × VDDQ

T3 : 电源全部稳定(VDD/VDDQ 进入 1.14~1.26 V,VPP 进入 2.375~2.75 V)
     └─ RESET# 继续保持低电平  ≥ 200 µs          ← JEDEC 硬性要求
     └─ CKE 继续保持低电平

T4 : RESET# 释放(拉高)
     └─ CKE 仍保持低电平
     └─ 等待 ≥ 500 µs(部分器件按 datasheet 为 tINIT3/tINIT5,需核对)

T5 : CKE 拉高,等待 tXPR = max(5 nCK, tRFC + 10 ns)
     └─ 时钟 CK/CK# 必须在 CKE 拉高前已稳定(≥ 稳定 5 nCK 且抖动达标)

T6 : 发送 MRS 序列(相邻 MRS 间隔 ≥ tMRD = 8 nCK)
     MR3 → MR6 → MR5 → MR4 → MR2 → MR1 → MR0(DLL reset = 1)
     └─ 最后一条 MRS 之后等待 tMOD = max(24 nCK, 15 ns) 才能发非 MRS 命令

T7 : ZQCL(上电长校准),等待 tZQinit = 512 nCK
T8 : 等待 tDLLK = 512 nCK(DLL 锁定;低速/特殊模式可能 768 或 1024 nCK)

T9 : 训练(Training)
     a) Write Leveling      —— 每字节通道独立,补偿 Fly-by 的 CK→DQS 偏移
     b) DQS 门控训练        —— 确定读 DQS 前导窗口(配合 MR4[11] 读前导训练模式)
     c) Read Leveling       —— MPR 图案,扫描 DQS 延迟确定读数据眼中点
     d) Write Leveling 复检 —— 部分控制器在写 DQ 延迟确定后复扫
     e) VREFDQ 训练(1D)   —— 扫描 MR6,找到最大 VREF 裕量
     f) 2D Training         —— 延迟 × VREFDQ 二维扫描,取联合窗口中心
     g) (可选)CA 训练 / VREFCA 训练、读/写 DBI 训练

T10: 训练完成 → 清除训练模式位(MR1[7]=0、MR3[2]=0、MR4[11]=0、MR6[8]=0)
     → 进入正常工作,开始周期性刷新(tREFI)与 ZQCS(tZQCS = 64 nCK)

掉电与自刷新

场景操作顺序关键时序注意事项
进入自刷新所有 bank 预充电 → 发 SRE(CKE 拉低)→ 保持 VDD/VDDQ/VPP/VREFCAtCKE ≥ max(3 nCK, 5 ns);退出后等 tXSR = tRFC + 10 ns自刷新期间 VREFCA 必须保持有效;温度 > 85 °C 时自动 2× 刷新(若 ASR=1)
进入掉电(Power-Down)预充电掉电:所有 bank 预充电 → CKE 低;激活掉电:行保持打开 → CKE 低退出等待 tXP = max(4 nCK, 6 ns)(DLL 保持)或 tXPDLL(DLL 掉电)掉电期间刷新停止,停留时间不得超过 9 × tREFI(典型 64 ms 内),否则数据丢失
受控掉电(断电关机)CKE 低 → 撤 VDDQ → 撤 VDD → 撤 VPPVDD 与 VDDQ 压差始终 ≤ 0.3 V(部分器件要求,以 datasheet 为准)严禁在 VDD 仍有效时撤 VPP;严禁 VPP 高于 VDD 超过规格
突然断电——掉电检测电路应在 ≤ 1 ms 内把 CKE 拉低进入自刷新或切断负载,防止刷新中途断电造成行数据破坏

3.3 去耦电容配置与 PDN 目标阻抗

PDN 目标阻抗计算

Z_target = (VDD × 允许纹波百分比) / ΔI_max

示例:4 片 8 Gb x8,DDR4-2400,连续写
  ΔI_max(动态电流跳变)≈ 0.6 A(VDD)+ 0.5 A(VDDQ)
  允许纹波 = ±3%(留 2% 给 DC 容差与器件差异,规格为 ±5%)
  Z_target(VDD)  = (1.2 V × 0.03) / 0.6 A = 60  mΩ
  Z_target(VDDQ) = (1.2 V × 0.03) / 0.5 A = 72  mΩ
  → 工程上取更严格者,统一按 ≤ 30~50 mΩ 设计整个 PDN(DC ~ 100 MHz)

频段划分与责任元件:
  DC ~ 100 kHz   : DCDC 环路响应 + 大容量 Bulk 电容
  100 kHz ~ 2 MHz: Bulk(100~220 µF)+ 中频陶瓷(10 µF)
  2 MHz ~ 30 MHz : 高频陶瓷(0.1 µF 0402,靠近 BGA)
  30 MHz ~ 200 MHz: 电源/地平面对电容(平面间距 ≤ 4 mil)+ 封装内电容
  > 200 MHz      : 由颗粒封装内去耦与片内电容承担,PCB 侧已难以改善

去耦电容配置表(以 4 片 x8 板载设计为例)

位置容值封装数量耐压作用布局要求
DCDC 输出100 ~ 220 µF聚合物钽/低 ESR 铝电解1 ~ 22.5 V / 6.3 VBulk,维持 DC~100 kHz距 DCDC 输出端 ≤ 15 mm
DDR 区域入口10 µF0805 X5R4 ~ 86.3 V中频储能沿 DDR 阵列两侧均匀分布
每颗颗粒 VDD/VDDQ 球区0.1 µF0402 X5R4 ~ 6 / 片6.3 V高频去耦(至 ~25 MHz)背面紧贴 BGA 投影区,过孔到焊盘总长 ≤ 1.5 mm
每颗颗粒 VDD/VDDQ 球区1 µF0402/0603 X5R1 ~ 2 / 片6.3 V中高频补位与 0.1 µF 交替排布
VPP(每片)1 µF + 0.1 µF0402/0603 X5R各 1 / 片6.3 V / 10 VVPP 纹波 ≤ 50 mV靠近 VPP 球,注意 2.5 V 走线载流足够(≥ 10 mil)
VREFCA(每片)0.1 µF + 10 nF0402 X7R各 1 / 片6.3 V参考电压滤波紧靠 VREFCA 球,回流到干净地
VTT(若使用)20 µF + 0.1 µF × 40805 + 0402—6.3 V吸/灌瞬态紧靠 VTT LDO 与末端端接电阻
ZQ240 Ω ±1%04021 / 片—ODT 与驱动强度基准紧靠 ZQ 球,两引脚走线总长 ≤ 5 mm
去耦电容的三个反直觉要点

① 容值越大不一定越好:0.1 µF 0402 的自谐振频率(SRF)约 15~25 MHz,1 µF 0402 约 5~8 MHz。超过 SRF 后电容呈感性,只对更低频有用。因此必须多容值并联且优先用小封装(0402 > 0603 > 0805,ESL 更低)。
② 过孔电感常常毁掉去耦效果:一对过孔(电源+地)的回路电感约 0.5~1 nH,与 0402 电容自身的 ESL 相当。做法:电容电源/地焊盘各打 2 个过孔、电源地过孔紧邻且方向相反(回路面积最小)。
③ 直流偏压效应:X5R 0402 10 µF/6.3 V 在 1.2 V 偏置下容量可能衰减到标称的 30%~50%。选型时要看 DC bias 曲线,或选更高耐压(10 V)与更大封装。

3.4 功耗估算与热设计

// ---------- 功耗估算示例:4 片 8 Gb x8,DDR4-2400,70% 写 + 30% 读 ----------
P_VDD   = VDD  × ΣIDD     = 1.2 V × (0.15 A × 4) = 0.72 W
P_VDDQ  = VDDQ × ΣIDDQ    = 1.2 V × (0.10 A × 4) = 0.48 W
P_VPP   = VPP  × ΣIPP     = 2.5 V × (0.003 A × 4)= 0.03 W
P_ODT   ≈ (VDDQ² / Rtt) × 线数 × 写占空比
        = (1.44 / 60 Ω) × 72 × 0.35 ≈ 0.60 W        // 端接功耗,常被忽略!
P_Refresh ≈ IDD5B × VDD × (tRFC / tREFI)
        = 0.2 A × 1.2 V × (350 ns / 7800 ns) × 4 片 ≈ 0.04 W
------------------------------------------------
P_total ≈ 1.87 W(4 片,约 0.47 W/片)

温升估算:
  θJA(FBGA-96,4 层板 + 底部散热过孔)≈ 30 ~ 40 °C/W
  ΔT = P_per_device × θJA = 0.47 W × 35 °C/W ≈ 16.5 °C
  环境温度 55 °C → TCASE ≈ 71.5 °C   → 接近 85 °C 的 2× 刷新阈值,需优化

降额策略:
  · TCASE > 85 °C:tREFI 由 7.8 µs 缩到 3.9 µs → 刷新功耗翻倍、带宽降 5%~9%
  · TCASE > 55 °C:建议每升高 10 °C 降一档速率(如 3200 → 2933 → 2666)
  · 改善手段:颗粒底部铺完整铜皮 + Ø0.3 mm 散热过孔阵列(间距 1.0~1.2 mm)
            导热垫(1.0~1.5 W/m·K)连到金属外壳或散热器
            避免颗粒正上方堆叠发热器件(PMIC、功率电感、CPU)
热设计项目标值实现手段验证方法
TCASE(商业级)≤ 85 °C(推荐)/ ≤ 95 °C(极限)散热过孔 + 铺铜 + 风道热电偶贴颗粒表面,跑满带宽压力测试 30 min
TCASE(工业级)−40 ~ 95 °C选工业级颗粒(-40~95 °C 型号)高低温箱 + 内存压力测试
颗粒间温差≤ 5 °C均匀分布、对称布局、避免串联风道红外热像仪
温度补偿自刷新ASR = 1(自动)或固件按 SRT 位切换MR2[6]/MR2[7] 配置 + 控制器温度采样85 °C 环境下长时间数据保持测试

4 · 典型应用电路

DDR4 的硬件形态分两类:板载颗粒(down device)与 内存条模组(DIMM)。板载颗粒走线短、SI 好但不可更换;模组可更换、容量灵活但对主板 Layout 与 PDN 要求更高。以下四张原理图覆盖四种典型接法。

4.1 单片 x16(16 bit 总线)板载接法

SoC / FPGA DDR4 控制器 + PHY · 1 × 16 bit 通道 · DDR4-2400(示例) · 支持 write leveling · 支持 2D VREFDQ 训练 · 内建 ODT 控制逻辑 · 地址/命令为 Fly-by · DQ/DQS 点对点 · PAR 生成、ALERT# 输入 · 温度补偿刷新(可选) · 预留 I²C 读取模组 SPD (板载时不用) DDR4 SDRAM x16 8 Gb · FBGA-96 · 0.8 mm pitch · 16 bank = 4 BG × 4 bank · POD12,片内 ODT · VDD/VDDQ 1.2 V · VPP 2.5 V · VREFCA 外部 0.6 V · VREFDQ 片内训练 · DQ0~DQ15 · LDQS/LDQS#、UDQS/UDQS# · LDM/LDBI#、UDM/UDBI# · 行地址 A0~A15 / 列 A0~A9 CK / CK#(差分 80 Ω,对内 ±2 mil) CKE CS# / ODT ACT# / RAS#(A16) / CAS#(A15) / WE#(A14) A[17:0] / BA0~BA1 / BG0~BG1(Fly-by,40 Ω) PAR(命令地址奇偶) 10 kΩ 下拉(不用 PAR 时) ALERT#(开漏输出,CRC/CA 错误上报) 4.7~10 kΩ 上拉到 VDDQ RESET#(4.7~10 kΩ 下拉) / TEN(10 kΩ 下拉,正常模式) DQ[15:0](16 根,40 Ω 单端,组内等长 ±5 mil) LDQS/LDQS#、UDQS/UDQS#(差分 80 Ω,双向) LDM/LDBI#、UDM/UDBI#(DM 与 DBI 互斥,由 MR5 选择) VDD / VDDQ 1.2 V ±5% DCDC ≥ 6 A;220 µF ×1 10 µF ×4;0.1 µF ×16(0402) |VDD − VDDQ| ≤ 30 mV VPP 2.5 V 3.3 V → LDO(≥ 50 mA) 或 1.2 V → 电荷泵 1 µF + 0.1 µF 每片 VREFCA 0.60 V VDDQ/2,跟踪 ±1% 1 kΩ/1 kΩ ±0.1% + 缓冲 0.1 µF + 10 nF,包地走线 ZQ 240 Ω ±1%(0402) ZQ 球 → VSSQ,走线 ≤ 5 mm 不可与高速信号并行 ① 数据组不接任何外部 VTT 端接电阻:DDR4 用 POD12,端接由颗粒片内 ODT 上拉到 VDDQ 提供(Rtt_Nom / Rtt_WR / Rtt_Park)。 ② 地址/命令组为多负载 Fly-by:板载单片时负载轻,可不加末端端接;若控制器支持 C/A ODT 则优先用片内方式。 ③ 单 x16 片仅提供 16 bit 数据总线;需要 32/64 bit 时按 §4.2 方式扩展为多片共享 C/A、DQ 各自独立。
图 4-1 单片 x16 DDR4 颗粒与 SoC 的典型应用电路(CK/CK#、ADDR/BA/BG、ACT#/RAS#/CAS#/WE#、CKE/CS#/ODT/RESET#/PAR/ALERT#/TEN、DQ/DQS/DM/DBI、VREFCA、ZQ 240 Ω 1%、VPP 2.5 V、去耦电容)

逐网络说明表(单片 x16)

网络数量拓扑阻抗 / 等长关键器件常见错误
CK / CK#1 对点对点差分80 Ω 差分;对内 ±2 mil无串阻、无端接加 DDR3 习惯的 100 Ω 差分端接电阻
CKE1点对点40 Ω;与 CK 长度差 ≤ ±50 mil—上电时序未满足 200 µs / 500 µs
CS# / ODT2点对点40 Ω;与 CK 长度差 ≤ ±50 mil—漏接 ODT,导致读操作时无端接
ACT# / RAS# / CAS# / WE#4与地址同组 Fly-by40 Ω;整组与 CK 等长 ≤ ±25 mil—把 ACT# 当普通地址处理,等长放到 ±100 mil
A[17:0] / BA / BG22Fly-by40 Ω;组内 ±25 mil—未使用的地址位未接地/悬空造成误命令
PAR1与地址同组40 Ω,同地址组等长10 kΩ 下拉(不启用时)浮空导致 CA 校验误报
ALERT#1开漏,可多片线与长度 ≤ 100 mm,远离 DQS4.7~10 kΩ 上拉到 VDDQ忘记上拉,错误永远读不到
RESET#1点对点普通走线即可4.7~10 kΩ 下拉直接接电源,失去复位能力
TEN1点对点普通走线10 kΩ 下拉浮空,噪声触发连通性测试模式
DQ[15:0]16点对点40 Ω;与同字节 DQS 等长 ±5 mil无外部端接误加 39 Ω 端接到 VTT
LDQS/UDQS 差分2 对点对点差分80 Ω 差分;对内 ±2 mil无外部端接差分对走成 100 Ω
LDM/UDM(或 DBI)2点对点40 Ω;与 DQ 组等长—DBI 与 DM 同时使能(互斥)
ZQ1—≤ 5 mm240 Ω ±1%用 5% 电阻或阻值选错
VREFCA1—≤ 80 mm,包地0.1 µF + 10 nF;分压 0.1%用普通 LDO 固定 0.6 V 不跟踪 VDDQ
VDD / VDDQ多球电源平面PDN ≤ 30~50 mΩ220 µF + 10 µF + 0.1 µF去耦放在板边而非 BGA 背面
VPP1~2 球≥ 10 mil 走线或铜皮纹波 ≤ 50 mV1 µF + 0.1 µF漏接或误接 1.2 V

4.2 九片 x8 拼 72 bit(64 bit 数据 + 8 bit ECC)

DDR4 的 x8 颗粒每片提供 8 bit 数据。4 片 x8 只能拼出 32 bit;要得到 64 bit 数据总线需要 8 片 x8,若再带 ECC 则需额外 1 片,共 9 片 x8 = 72 bit。另一种更省面积的做法是用 4 片 x16 拼 64 bit(再加 1 片 x8 做 ECC,共 5 片)。

SoC / CPU DDR4 控制器 · 72 bit · CK/CK# ×1 对(1 rank) · C/A + CTRL:Fly-by · DQ[71:0]:9 字节通道 · DQS 差分 ×9 · DM/DBI ×9 · ODT 控制(片内) · Write leveling 训练 · DQS 门控 + 读 leveling · VREFDQ 2D 训练 · ECC 校验(8 bit) · CRC / CA parity 可选 CK/CK# + ADDR/BA/BG + ACT#/RAS#/CAS#/WE# + CKE/CS#/ODT + PAR (Fly-by 主干,40 Ω) 39~56 Ω VTT 0.6 V DDR4 x8 #1DQ[7:0]DQS0 / DM0 DDR4 x8 #2DQ[15:8]DQS1 / DM1 DDR4 x8 #3DQ[23:16]DQS2 / DM2 DDR4 x8 #4DQ[31:24]DQS3 / DM3 x8 #5 ~ #8(略)DQ[63:32]DQS4~7 x8 #9 ECCECC[7:0]DQS8 / DM8 残桩 ≤ 80 mil(≥DDR4-2666) 字节 0字节 1字节 2 字节 3字节 4~7ECC 字节 ① 地址/命令/时钟为 Fly-by 菊花链:串联经过每一片,分支残桩必须尽量短(≥2666 时 ≤ 80 mil),末端用 39~56 Ω 端接到 VTT 0.6 V(或控制器侧 ODT)。 ② 数据/选通/掩码为点对点:每片 8 bit 数据独立直连控制器,不共享、不端接、无外部 VTT;9 条字节通道之间等长公差 ±25 mil。
图 4-2 九片 x8 拼 72 bit(64 bit 数据 + 8 bit ECC)的 Fly-by 拓扑与点到点数据通道

多片并联的关键设计规则

项目规则原因违反后果
C/A + CK 拓扑Fly-by:从控制器出发依次穿过每一片,禁止 T 型分支Fly-by 让每片的 CK 到达时间不同,由 write leveling 逐字节补偿T 分支造成多重反射,C/A 眼图完全闭合
分支残桩长度DDR4-1600/1866 ≤ 150 mil;2133/2400 ≤ 100 mil;≥ 2666 ≤ 80 mil残桩是开路支节,产生反射与谐振高速下 C/A 采样错误、训练无法收敛
末端端接39~56 Ω 到 VTT(0.6 V),或控制器侧 C/A ODT吸收 Fly-by 末端反射末端颗粒(离控制器最远)命令错误率最高
CS# 走线单 rank 时可共用;多 rank 时每 rank 独立且单独等长CS# 参与命令译码多 rank 时 CS# 与地址偏斜导致误选片
片数上限板载颗粒建议 ≤ 9 片(72 bit);更多走 REG/LRDIMMFly-by 负载电容累积,C/A 上升沿退化负载过重导致速率上不去
ECC 片处理ECC 片与数据片完全同等对待:同一 Fly-by 链、同样的等长与阻抗规则ECC 字节与数据字节必须时序一致ECC 字节延迟不同 → 校验错,系统降速或宕机
ODT 分工(单 rank)写:Rtt_WR 使能;读:Rtt_Nom 关闭(点对点无反射源)点对点拓扑本来无多负载反射读时开 ODT 白白增加功耗、压低幅度
ODT 分工(多 rank 共享 DQ)被选中 rank 用 Rtt_WR / Rtt_Nom,非选中 rank 用 Rtt_Park(如 240 Ω)抑制浮空 rank 的桩线反射非选中 rank 开路桩造成总线振铃

4.3 UDIMM / SODIMM 插槽接法

DDR4 模组接口:288 pin UDIMM / RDIMM / LRDIMM(台式机/服务器)、260 pin SODIMM(笔记本/嵌入式)。与 DDR3 的 240 pin 物理不兼容(防呆口位置不同)。

SoC / CPU DDR4 控制器 + PHY · 最多 2 slot / 2 rank · 72 bit(64 + ECC) · CK0/CK0#、CK1/CK1# · C/A + CTRL:Fly-by · DQ/DQS/DM:点到点 · I²C 主(读 SPD) · 提供 VREFCA 0.6 V · 提供 VPP 2.5 V · 提供 VTT 0.6 V · VDD/VDDQ 1.2 V · ODT / 训练引擎 · 支持 2D VREFDQ · ALERT# / EVENT# 输入 插槽 288 pin (SODIMM 260 pin) DDR4 UDIMM 模组 Rank 0(9 × x8 = 72 bit) 含 ECC 时 9 片;无 ECC 时 8 片 Rank 1(可选,双面贴装) 2 rank 时 C/A 负载翻倍,速率需降档 SPD EEPROM(I²C 0x50~0x57) SA0~SA2 地址选择;VDDSPD 上电 温度传感器 TS(0x18~0x1F,可选) 用于固件温度补偿刷新 模组上 C/A 端接电阻到 VTT UDIMM 自带,主机需提供 VTT 0.6 V (RDIMM/LRDIMM 见 §4.4) C/A + BA/BG + ACT#/RAS#/CAS#/WE# + PAR(Fly-by,40 Ω) CK0/CK0#、CK1/CK1#(差分 80 Ω) CKE / CS# / ODT / RESET# / ALERT# / EVENT# DQ[63:0] + CB[7:0](72 根,40 Ω) DQS/DQS# ×9 + DM_n/DBI_n ×9(差分 80 Ω) SCL / SDA(SPD I²C,2.2 kΩ 上拉到 VDDSPD)+ SA0~SA2 接地/上拉 VDD/VDDQ 1.2 V、VPP 2.5 V、VTT 0.6 V、VREFCA 0.6 V、VDDSPD ① 主机必须提供 VPP 2.5 V 与 VTT 0.6 V 给 UDIMM:UDIMM 上的 C/A 端接电阻需要 VTT;VPP 供模组上所有颗粒的字线升压。 ② SPD 的 I²C 上拉必须接到 VDDSPD(不是 VDDQ),上拉 2.2 kΩ;SA0~SA2 按插槽编码接地或上拉。 ③ DDR4 插槽与 DDR3 插槽 物理防呆口位置不同,但外形相近,贴片前务必核对料号,插错会顶弯针脚甚至短路烧毁。
图 4-3 DDR4 UDIMM / SODIMM 插槽接法(C/A 与 CK 的 Fly-by、72 bit 数据通道、SPD I²C、VDD/VDDQ/VPP/VTT/VREFCA 供电)

UDIMM / SODIMM 关键信号与电源表

类别信号UDIMM 288 pinSODIMM 260 pin设计要点
数据DQ[63:0] + CB[7:0](ECC)72 根(非 ECC 模组为 64)40 Ω 单端;同一字节通道内 DQ 与 DQS 等长 ±5 mil
选通DQS/DQS# ×9(ECC 为 ×9,非 ECC 为 ×8)9 对80 Ω 差分;差分对内 ±2 mil
掩码DM_n / DBI_n9与对应 DQ 组同长
时钟CK0/CK0#、CK1/CK1#2 对(2 rank 模组用满)80 Ω 差分;走线尽量等长以简化 write leveling
地址命令A[17:0]、BA0~1、BG0~1、ACT#、RAS#/A16、CAS#/A15、WE#/A14、PAR约 26~28Fly-by;总长与 CK 匹配,公差按控制器设计指南(常见 ±50~100 mil)
控制CKE、CS#(×2 rank)、ODT、RESET#、ALERT#、EVENT#、TEN约 8RESET# 建议 4.7 kΩ 下拉;ALERT# 上拉到 VDDQ
SPDSCL、SDA、SA0~SA2、VDDSPD、EVENT#5 ~ 62.2 kΩ 上拉到 VDDSPD;走线尽量短并远离 DQS
电源VDD / VDDQ 1.2 V多 pin(数十)每 pin 至少 1 个过孔;主板侧 PDN ≤ 20~30 mΩ(模组满载电流可达 8~15 A)
电源VPP 2.5 V数 pin主板提供;单条模组峰值约 50~200 mA
电源VTT 0.6 V(C/A 端接用)数 pin需吸/灌型 LDO;配 ≥ 20 µF + 多颗 0.1 µF
参考VREFCA 0.6 V1 ~ 2 pin跟踪 VDDQ/2,±1%

4.4 RDIMM / LRDIMM 与 RCD 缓冲

当内存容量/槽位数增加时,C/A 与 CK 的 Fly-by 负载会超出驱动能力,此时需要在模组上增加寄存器时钟驱动器 RCD(Registering Clock Driver):C/A 先到 RCD,由 RCD 重新驱动后再 Fly-by 到各 DRAM;RDIMM 只缓冲命令地址,LRDIMM 还额外在 DQ 通道上加入数据缓冲 DB(Data Buffer),进一步隔离数据总线负载。

SoC / CPU · 内存控制器 · C/A + CK 输出 · DQ/DQS 72 bit · 只需驱动 RCD 一个 负载(RDIMM) · 支持 DB(LRDIMM) · 通过 I²C/SMBus 配置 RCD/DB 的控制寄存器 · RCD 有 1~2 tCK 的 额外延迟,训练时计入 RCD 寄存器时钟驱动 缓冲 C/A、CK、 CTRL,重驱动输出 (LRDIMM 还有 DB 缓冲 DQ) C/A + CK + CTRL (点到点,负载仅 RCD) DRAMx8 DRAMx8 DRAMx8 …… RCD 输出后 Fly-by 串接全部 DRAM(×9 或 ×18 片 / rank) DQ/DQS 通道(UDIMM/RDIMM:直连;LRDIMM:经 DB 缓冲) DB 数据缓冲(仅 LRDIMM) 隔离 DQ 负载,支持大容量 ① RCD 引入 1~2 tCK 的额外命令/地址延迟,控制器的 write leveling 与读 leveling 训练必须把它计入,否则训练偏移一个时钟周期。 ② RDIMM/LRDIMM 的 RCD/DB 需要通过 SMBus/I²C 控制寄存器配置(驱动强度、ODT、延迟),上电流程比 UDIMM 多一步"RCD/DB 配置"。 ③ 选型:≤ 2 slot / ≤ 2 rank → UDIMM;服务器级 4~8 slot 或大容量 → RDIMM;单条超大容量(如 128 GB+)→ LRDIMM。
图 4-4 RDIMM / LRDIMM 的 RCD(寄存器时钟驱动)与 DB(数据缓冲)拓扑
模组类型C/A + CK 路径DQ 路径主机负载容量/速率折中典型应用
UDIMMFly-by 直连所有 DRAM直连重(C/A 负载 = 片数 × rank)速率最高,容量最小台式机、工业主板、嵌入式
SODIMM同 UDIMM,260 pin 小型化直连重同 UDIMM,体积受限笔记本、边缘计算盒、COM Express
RDIMM经 RCD 缓冲后再 Fly-by直连轻(仅 RCD 一个负载)可多插槽,速率略降(+1~2 tCK 延迟)单路/双路服务器
LRDIMM经 RCD 缓冲经 DB 缓冲最轻容量最大,延迟与成本最高四路服务器、大容量数据库