7500
字,依公知及经验整理,原创保护,禁止转载。专栏 《深入理解DDR》
1 DDR5 颗粒 X4 X8 X16
这里的 X8 or X16, 可以理解为一个DRAM芯片有几个存储阵列。“X几”。进行列寻址时会同时从几个阵列的同一个坐标位置读出数据bit来,X4 就读出4位,x8 就读出8位。
大白话就是: 就是几根数据线, x8,就是颗粒有8根数据线 (DQ0 ~ DQ7), X16 就是颗粒有16根数据线 (DQ0 ~ DQ15)。
这个数字越大,表示位宽越大, 同一时刻存取的数据就多了。
2 DDR5芯片引脚排布
DDR5芯片封装采用BGA封装。
X8 颗粒纵向有13 行(lin A ~ N), 横向有 9 列(1 ~ 9, 其中1/2/3 和 7/8/9 有填充锡球, 4/5/6 没有填充锡球)。
3 引脚说明
下图的引脚行号和列号和上图对应,对照这个就知道每个引脚的功能。
数据线
3.1 DBI_n
是一个输入/输出,用于标识是存储/输出原始数据还是反转数据。翻转就是每个bit和原始数据反过来(0 -> 1, 1 -> 0),如果DBI_n为低电平,则数据将在 DDR5 SDRAM 内反转后存储/输出,如果DBI_n为高电平,则不会反转。
为什么要翻转?
通过发送端数据翻转使较少的数据位为低电平,从而使系统功耗更低。
3.2 DM_n
数据掩膜功能也称为部分写。只支持x8和x16配置。DM功能与DBI和TDQS功能共用相同的管脚。DM功能只用于写操作,且不能与写DBI功能同时使能。比如X16, host 每次发 16 bit, 但可能只想其中的 8 bit 写到内存,就可以带上 DM_n 实现部分写。
3.3 DQ
数据线, 可以输入输出, 是双向的
数据输入/输出:双向数据总线。
3.4 DQS_t、DQS_c、DQSU_t、DQSU_c、DQSL_t,DQSL_c
数据选通信号。DQS_t/DQS_c、DQSL_t/DQSL_c和DQSU_t/DQSU_c是三组差分对信号。
3.5 TDQS_t,TDQS_c
:
终端数据选通
命令/地址、控制、时钟
3.7 CK-t, CK-c
这是时钟信号, 这两个信号是差分信号,即CK_t 和 CK_c 永远是相反的。
差分信号(Differential signal)是指一对相互反向但又有关联的电信号。差分信号具有抗干扰、抑制共模干扰、提高信号完整性等优势,被广泛用于高速数据传输。
CK# (CK_c)的作用,是起到触发时钟校准的作用。由于数据是在 CK 的上下沿触发,要求 CK
的上下沿间距要有精确的控制。但因为温度、电阻性能的改变等原因,CK 上下沿间距可能发生变化,此时与其反相的 CK#就起到纠正的作用(CK
上升快下降慢,CK#则是上升慢下降快)。而由于上下沿触发的原因,也使 CL=1.5 和 2.5 成为可能,并容易实现。
原文: https://blog.csdn.net/xuhao0258/article/details/120306591
3.8 CS_n
片选信号,低电平选中。 引脚里带 “_n” 都是低电平有效, 反之高电平有效。当有多个RANK 时候, 可以通过 CS_n 选中不同 Rank
3.9CA
命令/地址输入,CA 信号根据命令真值表提供命令和地址输入。
3.10Reset_n
低电平硬件复位信号.
Reset_n将使DDR的初始化处理变得简单。
当Reset命令有效时,DDR5 内存将停止所有的操作,并切换至最少量活动的状态,以节约电力。
在Reset期间,DDR5内存将关闭内在的大部分功能,所有数据接收与发送器都将关闭,且所有内部的程序装置将复位。
原文: https://www.cnblogs.com/zhongguo135/p/8486979.html
3.11ALERT_n
警报,含有 CRC 或是命令、地址校验错误
具有CRC错误标志,命令和地址奇偶校验错误标志等多种功能作为输出信号。如果存在错误,则Alert_n变为 LOW。如果未作为信号连接,则ALERT_n引脚必须绑定到板载的 VDD。
3.12TEN
连接测试模式启用:它是一种CMOS轨到轨信号。该引脚可以通过一个弱下拉电阻器在内部将DRAM拉低至VSS。
3.13 MIR
通知系统此设备正在引脚镜像模式下运行, 而非标准模式下运行。如果不需要 CA 镜像,则 MIR 引脚必须绑定到 VSSQ。
从DDR5开始引入物理管脚来管理,通知DRAM颗粒它的双数CA和下一个单数CA进行了swap,
至于要做管脚mirror的原因,是两rank下fly by安装模式的时候,为了CA信号能够尽可能地走线短,减少绕线复杂度,优化信号质量。
原文链接:https://blog.csdn.net/m0_61126667/article/details/131947788
3.14 CAI
命令和地址翻转, 将CAI引脚连接到VDDQ后,DRAM在内部反转所有CA信号上的逻辑电平。
3.15 CA_ODT
(On-Die_Termination, 片内终结)如果引脚连接到 VDD, 启用CA_ODT, 如果引脚连接到 VSS, 禁用 CA_ODT.
电源和参考引脚
3.16 VDDQ
DQ 电源:1.1 V +/- 0.055 V
3.17 VSSQ
DQ接地
3.18 VDD
电源power supply, 1.1 V +/- 0.055 V
3.19 VSS
接地
3.20 VPP
DRAM 激活电源:标称 1.8V、最小值 1.71V、最大值 1.98V
3.21 ZQ
用于 ZQ 校准的参考引脚
ZQ 在ZQ这个引脚上接有一个 240 欧姆的低公差参考电阻。这个引脚通过一个命令集,通过片上校准引擎( ODCE
,On-DieCalibrationEngine )来自动校验数据输出驱动器导通电阻与 ODT 的终结电阻值。 当系统发出这一指令之后,
将用相应的时钟周期 (在加电与初始化之后用 512 个时钟周期,在退出自刷新操作后用 256 时钟周期、在其他情况下用
64个时钟周期)对导通电阻和 ODT 电阻进行重新校准。
ODT是终端匹配,那就是要在你的信号线终端上拉一个电阻,但是这个内部电阻随着温度会有些细微的变化,为了保证信号被准确的进行终端匹配,就需要ZQ了,ZQ的作用就是使用你外面连接的,高精度240R电阻来对这个内部的电阻进行校准。
原文链接: https://blog.csdn.net/xuhao0258/article/details/120306591
4 DDR 布线
4.1 DDR 基本布线规则
布线规则节选自: 无线时代 https://www.witimes.com/ddr-layout-rules-processes/
第一步: 先要确定拓补结构,
拓补结构只影响地址线的走线方式,不影响数据线。常见 T 型(星型)结构和Fly_by拓扑(菊花链拓扑), 如下图。
T 拓扑布线方法在旧版本的 DDR 内存上效果良好,但它不能处理更高的 DDR3 ~ DDR5 信号速率。取而代之的是菊花链模式极大地改善了信号完整性。
第二步,元器件摆放
确定了DDR的拓补结构,就可以摆放元器件:
原则一,CPU地址线的位置,使得地址线有利于相应的拓补结构
原则二,地址线上的匹配电阻靠近CPU
原则三,数据线上的匹配电阻靠近DDR
原则四,将DDR芯片摆放并旋转,使得DDR数据线尽量短,也就是,DDR芯片的数据引脚靠近CPU
原则五,如果有VTT端接电阻,将其摆放在地址线可以走到的最远的位置。
原则六,DDR芯片的去耦电容放在靠近DDR芯片相应的引脚。
第三步,设置串联匹配电阻的仿真模型
参考原文: https://www.mr-wu.cn/ddr-layout-rules-processes/
第四步,设置线宽与线距
-
DDR走线线宽与阻抗控制密切相关,经常可以看到很多同行做阻抗控制。对于纯数字电路,完全有条件针对高速线做单端阻抗控制;但对于混合电路,包含高速数字电路与射频电路,射频电路比数字电路要重要的多,必须对射频信号做50欧姆阻抗控制,同时射频走线不可能太细,否则会引起较大的损耗,所以在混合电路中,本人往往舍弃数字电路的阻抗控制。到目前为止,本人设计的混合电路产品中,最高规格的DDR是DDR2-800,未作阻抗控制,工作一切正常。
-
DDR的供电走线,建议8mil以上,在Allegro可以针对一类线进行物理参数的同意设定,我本人喜欢建立PWR-10MIL的约束条件,并为所有电源网络分配这一约束条件。
-
线距部分主要考虑两方面,一是线-线间距,建议采用2W原则,即线间距是2倍线宽,3W很难满足;二是线-Shape间距,同样建议采用2W原则。对于线间距,也可以在Allegro中建立一种约束条件,为所有DDR走线(XNET)分配这样的约束条件。
-
还有一种可能需要的规则,就是区域规则。Allegro中默认的线宽线距都是5mil,在CPU引脚比较密集的时候,这样的规则是无法满足的,这就需要在CPU或DDR芯片周围设定允许小间距,小线宽的区域规则。
第五步,走线
走线就需要注意的内容比较多,这里只做少许说明。
所有走线尽量短
走线不能有锐角
尽量少打过孔
保证所有走线有完整的参考面,地平面或这电源平面都可以,对于交变信号,地与电源平面是等电位的
尽量避免过孔将参考面打破,不过这在实际中很难做到
走完地址线和数据后,务必将DDR芯片的电源脚,接地脚,去耦电容的电源脚,接地脚全部走完,否则在后面绕等长时会很麻烦的
DDR-Route-Done
第六步,设置等长规则
对于数据线,每个BYTE与各自的DQS,DQM等长,即DQ0:7与DQS0,DQM。等长,DQ8:15与DQS1,DQM1等长,以此类推。
地址线的等长往往需要过孔来配合,具体的规则均绑定在过孔上和VTT端接电阻上。可以看到,CPU的地址线到达过孔的距离等长,过孔到达VTT端接电阻的距离也等长。
第七步,绕等长
完成等长规则的设定后,最后一步也是工作量最大的一步:绕等长。
在这一步,我认为只有一点规则需要注意:尽量采用3倍线宽,45度角绕等长。
Routing-Tunning
绕等长完成后,最好把DDR相关网络锁定,以免误动。
自动布线
对于 PCB 设计工程师来说,要让布线符合时序要求,借助 CAD 软件的设计约束非常重要。可以将这些约束条件设置为符合特定的长度,并自动进行蛇形图案布线,以便将走线布置到正确的长度。
4.2 DDR5 布线规则
以下部分节选自: https://www.intel.com/content/www/us/en/docs/programmable/772538/24-1-6-1-0/ddr5-board-design-guidelines.html
为了支持最大数据速率操作,DDR5 板设计需要使用微型通孔、埋孔或堆叠通孔的高质量 PCB 堆叠,以减少串扰以实现高性能。缩短信号通孔的长度对于最大限度地减少信号之间的串扰至关重要。
DDR 接口中的 DQS 和 CLK 信号是差分信号,在 PCB 上必须作为差分信号, 应该采用对称布线。非对称布线会导致共模电压发生偏移,并导致接收器的时序裕量减小。下图显示了DQS/CLK信号在推荐的差分布线。
DRAM器件将接地拼接通孔保持在距离信号转换80 mil以内,以实现信号通孔上的最佳回路并改善信号完整性。
DDR 接口PCB
对于但RANK, 数据组包括数据选通及其补充(DQS 和 DQS#)、数据 (DQ) 和数据掩码 (DM), 采用点对点连接。
对于双 Rank, 数据组采用 fly-by(菊花拓扑)
对于地址,采用 fly-by(菊花拓扑)。以满足信号完整性性能并简化路由。DDR5 的端接方法是通过可编程片上端接 (ODT), 不需要PCB 板接。
单个Rank: Single Rank, DRAM x 8 bits, 40-bit Interface
双Rank: Dual Rank, DRAM x 8 bits, 40-bit Interface
fly-by路由从 控制器开始,然后是菊花链连接在一起的 DRAM 芯片
DDR5 内存路由指南:
在上表中,信号走线的边缘到边缘的信号走线宽度和最小间距/间隙(以密耳为单位)。
DDR5 内存、1 位 x8 位配置的偏移匹配要求
DDR5 内存的 DQ 路由小结
DDR5 PCB 布线实例
这种布局设计在厚PCB(120mil叠层)上,使用微通孔和带背钻的通孔。DDR5数据信号路由在上层,避免垂直串扰,实现高性能;CS/CTRL 信号可以在更深的层上路由。
4.2 仿真策略
仿真策略包括两部分:
数据信号 对数据组较差的信号完整性进行 DQS 信号完整性模拟(考虑信号之间的最长路由和最大垂直串扰)。
CS/CTRL/CMD 信号完整性模拟 CLK 信号的最差信号完整性(考虑信号之间的最长路由和最大垂直串扰)。
仿真后评估眼图,以确保设计两端都符合眼图规范。
5 DDR5 SDRAM Addressing 寻址
BG Addess 表示哪个 Bank group, 若是 8 group, 需要 3 bit(BG0 ~ BG2) 表示, 000 表示 Bank Group 0, 001 表示 Bank Group 1, 以此类推。若是 4 group, 只需要 2 bit 表示。
Bank Address 表示 Bank group 里的哪个 bank.
为了实现平稳过渡从DDR4到DDR5,初始密度为8Gb的DDR5 SDRAM内部配置为16个Bank和8个bank group,每个bank group包括2个bank。
当行业转向更高的密度(>16Gb)时,Bank 资源将增加一倍,并且内部配置将变为32个bank group 和8个bank group,每个bank group包括4个bank。
参考
1 | https://community.cadence.com/cadence_blogs_8/b/pcbchn/posts/ddr |
2 | https://www.intel.com/content/www/us/en/docs/programmable/772538/24-1-6-1-0/ddr5-board-design-guidelines.html |