织梦免费自适应网站模板,建筑公司企业愿景范文简短,什么是工具型网站,安阳宣传片制作公司前言#xff1a; 大学里面#xff0c;总有很多课程#xff0c;很浪费时间#xff0c;学了没点用处#xff0c;问过老师#xff0c;为什么信号完整性#xff0c;示波器使用等课程不开呢#xff0c;这种是对工作真实有帮助的#xff1f; 老师#xff1a;因为老师…
前言 大学里面总有很多课程很浪费时间学了没点用处问过老师为什么信号完整性示波器使用等课程不开呢这种是对工作真实有帮助的 老师因为老师可能也不会。 您可能都熟悉 DDRx 计算机 RAM其中 x 是一代。我想从 SI Signal Integrity 的角度和跟踪此接口的原理来告诉您。 阅读各种 CLU、FPGA、DSP、ASIC 的文档您可以看到许多不同的建议即所谓的“经验法则”用于跟踪 DDR3/4 SDRAM双倍数据速率同步动态随机存取存储器。但是在其中您很少能找到为什么需要这样做的信息。在本文中我将尝试向您解释在电路和拓扑方面改进 SI 的不同方式。 本文参考谢尔盖的一篇著作他是一名从事电路和 PCB 拓扑学的大佬。 由于我只是在自学我引用德州仪器 TI 的话 翻译一下以下应用程序部分中的信息不是Tl组件规范的一部分Tl不保证其准确性或完整性。Ti的客户有责任确定组件是否适合其用途。客户应该验证和测试他们的设计实现以确认系统功能。
相关词语概念 IBIS: IBIS模型是一种基于表格的、用于描述集成电路I/O缓冲器行为的模型。它通过提供电压和电流之间的关系来模拟信号的传输特性从而帮助工程师在设计阶段预测信号完整性问题。说白了就是仿真模型一般原厂提供在vivado中可以找到常见模型。 目录 前言一、介绍1.1 发射器侧的串行匹配1.2 接收器侧的并行 二、内存连接类型及PCB配置2.1 内存配置类型2.2 数据计算分析2.2.1 数据控制器到芯片1 rank2.2.2 数据控制器到 2 个芯片2 rank2.2.3 数据 1DPC 1 rank2.2.4 数据 1DPC 2 rank2.2.5 数据 2DPC 1 rank2.2.5.1 内存条上的拓补电阻 2.2.6 数据 2DPC 2 rank 2.2 PCB过孔影响三、总结 一、介绍 我们应该从提高传输速度时遇到的主要问题开始我们的对话来自 SDRAM 数据线末端的信号反射。为了减少这些反射从 DDR2 开始添加了内置的片上终止 ODT。 因此让我们了解一下阻抗匹配是如何发生的。理想情况下来自驱动器的信号沿着 PCB 传输线传播到负载并在那里被完全吸收。但是每当信号通过阻抗变化的部分时信号就会被反射。例如驱动器的输出阻抗通常在 15-30 欧姆范围内传输线为 50 欧姆而带有 CMOS 逻辑的接收器具有数百千欧姆量级的非常大的输入阻抗。在这种情况下主要使用两种类型的端接发射器侧的串行匹配和接收器侧的并行
1.1 发射器侧的串行匹配 在实施例1中Rs_Term串联终端电阻与R_Driver驱动器的输出阻抗之和必须等于传输线 Z 的波阻抗。在这种情况下来自线路近端的信号的反射系数为零。 当设置为 1 时由于产生的分压器 R_Driver Rs_Term 和 Z 线的阻抗等于驱动器电压一半的信号将沿传输线传播。线远端的反射系数为 1意味着从远端反射回来的信号与入射信号的幅度相同但方向相反。反射信号和入射信号将完全叠加。。由于入射信号和反射信号重叠接收器输入端的信号将增加到驱动器电压。 反射信号半振幅返回到驱动器输入端并被 R_Driver Rs_Term 负载完全吸收。但是如果传输线上有两个接收器两个内存模块那么位于线路中间的接收器将具有与分频器之后接收到的信号相同的信号并且在一段时间后反射信号将从远处的接收器到达取决于线的长度 (Vser_mid表格红色线 ) Vser_mid – 第一个接收器的电压。 Vser_far – 远接收器电压。 从以上可以看出这种类型的方案并不适合 DDR。
简单分析一下这个表格信号 中间接收器的信号红线比较低主要是因为 1、反射信号的延迟导致信号的叠加发生在不同的时间点导致中间接收器的信号幅度较低。 2、反射信号和直接信号在中间接收器处可能部分抵消尤其是由于传输线长度引起的时延和相位差异。反射系数是 1表示反射信号与入射信号的幅度相等且相位相反。远端接收器的反射信号会增强远端接收器的信号但在中间的接收器处由于信号的反射时间和相位的差异叠加效果较弱。此时两个信号直接信号和反射信号可能部分抵消导致中间接收器的信号幅度较低。
更直白的说 远端接收器的反射信号路径相对较简单。当信号从驱动器发出经过传输线到达远端接收器时反射信号直接返回到远端接收器。远端接收器会立即接收到反射信号因为它没有中间的接收器阻止信号的返回。 中间接收器的情况较为复杂。当信号从驱动器出发并传播到中间接收器时反射信号必须从中间接收器传播到远端接收器再反射回来到中间接收器。这个过程涉及到两段信号传播 反射信号从中间接收器到达远端接收器然后再反射回来这个过程比远端接收器直接接收到反射信号的时间要长。
1.2 接收器侧的并行 第二种类型是接收方并行协商。在该方案中电阻并联连接的等效电阻Rp_Term选择等于传输线的波阻抗 Z即 Rp_Term2*Z。因此负载上不会有反射因此线路中第二个接收器的信号将具有良好的形状 因此这种类型的协商适合在 DDR 中使用。这就是 DDR1-DDR3 选择具有类似协商的短截线系列端接逻辑 SSTL 类型的原因。DDR 接口中的这些反向端电阻器称为 ODT。它与线路的连接及其电阻由控制器在配置过程中确定通过 RTT_PARK、RTT_NOM RTT_WR 进行设置。 还值得注意的是由于负载侧的匹配在容性负载下运行时瞬态响应上升时间将是发射器侧匹配传输线的一半。 SSTL 逻辑的输入可以使用两个电阻器连接一个连接到 VDDQ另一个连接到 GND或者一个连接到 VDDQ/2 从 DDR3 切换到 DDR4 时负载侧接收器协商方案从中心抽头 I/O 接口更改为伪开漏 POD I/O 接口。 中心抽头IO 伪开漏IO 这样做是为了减少电流消耗。也就是说使用 POD 终端时直流电 DC 仅在驱动器设置零时发生。同时还添加了一个有趣的功能 – DBI数据总线反转。如果准备将一个字节的数据传输到包含 0 多于 1 的总线它还有助于通过反转数据来减少消耗。也就是说在数据传输期间总线上最多可以有一半的 0。因此由于同时进入电流流动状态的端口较少因此电源中的噪声较小。 使用 DBI 函数时的数据转换示例
数据来自 COREDM/DBIDM/DBI1110 1010→11110 10101000 1000→00111 0111 由于迁移到 PODVref 选择方案已更改。Vref 是参考电压相对于该电压确定锁存器 1 或 0 的阈值电平。对于 DDR1-DDR3无论选择何种 ODT 值该电压都是固定的并且等于 VDDQ 电压的一半。在 DDR4 中有必要将其移位因为由于产生的分压器电平 0 会根据电阻器的 ODT 和驱动器的阻抗而变化。这发生在配置开始时的所谓训练期间。 可以从以下范围内选择R_ODT34、40、48、60、80、120、240 欧姆。选择这组电阻主要是为了在将 2 个内存条连接到一个 DDR 控制器时能够很好地匹配线路同时也是为了降低功耗。所选的 ODT 值越低消耗的能量就越高。 R_Drive可以从以下范围内选择34、48 欧姆。根据标准这些阻抗是指 SDRAM但控制器可能具有不同的这些值集。 让我们看一下具有不同 ODT 值的所谓“眼”图。建模方案经过简化R_driver48 欧姆线路阻抗50 欧姆ODT 已更改 3200Mb 时的仿真结果 随着 ODT 值的增加“眼”的跨度增加但由于符号间干扰 ISI 和反射的增加其失真也会增加。 有关眼图的相关知识可以自己找文章或者视频研究一下这里不做讲解 ISI 是由于高频信号01010101 位序列没有时间达到标称值并且在切换状态时更快地返回到相反的值这与低频序列 00001111 相反 随着 ODT 电阻的增加信号的上升时间增加反射增加红线更接近0 ODT48 Ω的线路上出现的反射很可能是由于 SDRAM 输入电容造成的这会给线路带来不均匀性。 现在让我们看看不同的内存连接配置以及它们对 DATA 和 ADDR/CMD 线路的协商基础。 2024.11.10 21:45
二、内存连接类型及PCB配置
2.1 内存配置类型 DDR 接口可以有很多不同的选项将内存芯片连接到控制器这对于能够连接不同数量的内存和不同的数据总线宽度即不同数量的 SDRAM 芯片是必要的。
有以下选项 控制器到 DQ 上的 1 个芯片即 1 rank 换句话说该配置中的每个Rank仅由一个物理芯片组成且该芯片的所有数据引脚都直接与内存控制器的数据总线相连。(类似国内很多FPGA开发板一样上面有1个或若干个DDR颗粒
控制器到 DQ 上的 2 个芯片即 2 rank
1DPC 1R - 每个通道 1 个 DIMM双列直插式内存模块1 rank
1DPC 2R - 每个通道 1 个 DIMM 2 rank
2DPC 1R - 每个通道 2 个 DIMM1 rank
2DPC 2R - 每个通道 2 个 DIMM2 rank
2.2 数据计算分析
2.2.1 数据控制器到芯片1 rank 这很容易连接因为这种连接具有“最大的安全边际”。因此例如最困难的选择是当 4 个存储芯片2DPC 和 2 列连接到一条数据线时。因此在我们的例子中你至少可以使用 ODT - 240 欧姆这将减少消耗和加热。在这样的拓扑中最好多注意串扰。 但有一个有趣的点在具有 34 欧姆驱动器和 34 欧姆线路的线路中抖动高于具有不同 ODT 选项的 34 欧姆驱动器和 50 欧姆线路。现在弄清楚为什么会发生这种情况以及信号是如何形成和反映的为了清楚起见简化了此操作
由于使用了 POD因此可以假设电压会相对于 1.2V 发生变化。 计算分析 让我们看看使用理想线、负载和驱动器获得的图表 发射器 接收器 使用 IBIS 模型构建的信号图表
在发射器上在接收器上 这些电平与上述图表不同因为电阻本身在不同条件下可能与 IBIS 中的标称值不同并且由于芯片输入/输出的寄生参数不同。
反射信号与有用信号的比值为0.335V 至 0.6V 0.558反射信号与有用信号的比值为0.238V 至 0.714V 0.333 由于反射水平较高该变体具有 34 欧姆驱动器线路阻抗为 34 欧姆它们将对驱动器的输出电流产生更强的影响即输出电流与不同数据序列的分散因此不同的反射会更大。这将影响输出信号的上升和下降速率 蓝色表线的长度等于信号波长的一半。红色表线的长度等于传输信号波长的四分之一。通过这种方式我们可以模拟信号的最大和最小反射情况。 这些图表显示阻抗为 50 欧姆的线路的电流上升速率差异小于阻抗为 34 欧姆的线路的电流上升率差异。这就是为什么 50 欧姆线的抖动更小的原因。
2.2.2 数据控制器到 2 个芯片2 rank 这是一种连接选项其中数据信号DQx、DM、DQSx并联连接到两个 SDRAM 芯片。这些 SDRAM 依次工作哪一个由片选 CS 信号决定。在电路板上执行此操作的最简单方法是将芯片彼此安装在一起镜像。连接将如下所示 通常线路的阻抗始终等于 50 欧姆。但对于对齐来说这是一个糟糕的选择因为在线条的发散点会有反射。这可以通过使用以下 topology 选项来避免 但是由于波阻力的线路非常不同因此此选项很难实现。但是即使我们做出微小的差异也会对减少反射产生积极影响。例如我们可以追踪到 40 欧姆的叉子 TL0 并追踪到 60 欧姆的芯片 TL1 TL2。同时ODT 也对最终的眼睛有很大影响因为它结果是两个 ODT 的并联连接如果你选择一个较小的值例如 48 欧姆眼睛的张开度会大大变窄高度。
以下是两种拓扑的示例、它们的眼图以及它们之间的区别 可以看出有明显的效果。虽然两种选择都有很大的余量但考虑到串扰以及电源噪声“眼睛”仍然会闭合。因此这种改进可能是有益的。 眼图的张开度也受从线路发散点到芯片的区域长度的影响因此这与 2DPC 等连接选项更相关。但还有其他减少反射的选项我们将进一步考虑。
2.2.3 数据 1DPC 1 rank
我们来看一下 1DPC 1 Rank 的数据连接图 此处插槽 1 是具有 1 列的双列直插式内存模块 DIMM。
Rstub 是一个 15 欧姆的电阻器放置在内存芯片上它的用途是什么我们将进一步考虑。
TL1 是内存模块电路板上的一条走线阻抗为 50 欧姆。因此如果只使用板上的一个插槽建议使用阻抗为 50 欧姆的 TL0。
带有 34 欧姆驱动器的选项在这里比使用 48 欧姆的效果更好因为它提供了更大的眼图开放度。为了清楚起见让我们考虑几个选项 有趣的是值得注意的是Rstub 电阻器减少了眼图的张开度但由于内存模块是标准配置因此它存在于所有模块上。它有助于提高使用 2DPC 时的 SI:下图可以看出来 增加终端电阻的 ODT 值将增加眼图的张开度并降低电流消耗。
2.2.4 数据 1DPC 2 rank
我们来看看 1DPC 2 Rank 的数据连接图 此处插槽 1 是 Rank 为 2 的内存 DIMM。
Rstub 是放置在内存芯片上的 15 欧姆电阻器。
TL1、TL2 是内存模块电路板上的走线阻抗为 50 欧姆。因此如果只使用板上的一个插槽建议使用阻抗为 50 欧姆的 TL0。
34 欧姆驱动器选项在这里和 48 欧姆一样有效因为它提供了更多的眼图开放性。为清楚起见请考虑以下几个选项 您可以看到当切换到 ODT 240 Ohm 时信号就很差了但同时抖动和过冲增加并且轨道更容易出现串扰。 2024.12.21 15:20
2.2.5 数据 2DPC 1 rank
我们来看一下 2DPC 1 Rank 的数据连接图 连接器区域中的拓扑部分示例 此处插槽 1.2 是具有 1 个列的内存 DIMM。
Rstub 是放置在内存芯片上的 15 欧姆电阻器。
TL1 是内存模块电路板上的走线阻抗为 50 欧姆。 此选项适用于两个 1 列的 DIMM 连接到同一控制器时。此拓扑的主要问题是如果信号写入其中一个 DIMM例如写入插槽 2则由于部分信号将从插槽 1 反射并到达插槽 2因此信号将在那里发生失真 可以减少这种反射。这可以通过在插槽 1 中包含 ODT48 Ω来实现这将使我们免于反映在线路的那一端。当在插槽 2 中使用时ODT48 Ω它将大大减少眼图的张开度因为两个 48 Ω的 ODT 将并联。但是由于我们不担心我们写入的插槽会有反射因为它们实际上不会影响这个插槽中的信号质量因此最好对插槽 2 使用高电阻端接 考虑到建模中有许多简化利润率非常低。 这种终止对眼图的张开效果明显更好。
这同样适用于从内存中读取 可以看出有了这样的 ODT 组合边际就更大了。还可以清楚地看到由于过冲和抖动增加不建议使用 240 欧姆。
提高 SI 的另一种方法是降低数据线到连接器的阻抗以减少并行化点的反射。上面讨论过 由于内存模块上的阻抗固定为 50 欧姆因此我们只能降低连接器的阻抗。 可以看出眼图张开度的增加发生了大约 55 mv 的高度。
我们可以进行的下一个改进是连接器的对称连接 或此选项 正确的选项提供大约 35mV 的高度。
从内存中读取
2.2.5.1 内存条上的拓补电阻
在阅读时您还可以看到这种拓扑的优势。
Rstub 中
现在是时候弄清楚 Rstub 的用途了。
rstub 是一个电阻器位于 DIMM 上尽可能靠近边缘连接器 这个电阻器乍一看似乎是 SDRAM 的串联端接电阻器但这不是必需的因为驱动器的内部阻抗可以是 34 欧姆或 48 欧姆。它用于抑制多 DIMM 配置中当前未使用的模块的反射从而提高信号质量很好地抑制过冲并减少抖动。该电阻器的值为 15 欧姆与 ODT34 欧姆一起您将在线路末端获得良好的匹配。
记录 高于过冲和抖动。 左侧版本的过冲和抖动略少但右侧版本的眼图张开度更高。
读数 在阅读时您可以特别清楚地看到过冲和抖动放大倍率尽管眼图张开度几乎相同。 在读取时过冲和抖动放大倍率特别清晰可见。
2.2.6 数据 2DPC 2 rank
我们来看看 2DPC 2 Rank 的数据连接方案 此处插槽 1.2 是具有 2 个列的内存 DIMM。
Rstub 是放置在内存芯片上的 15 欧姆电阻器。
TL1 是内存模块电路板上的一条走线阻抗为 50 欧姆。
当两个 DIMM 各具有 2 列时此选项适用于连接到同一控制器的情况。此拓扑中的主要问题与 2DPC1 列变体中的主要问题相同并且是如果信号写入其中一个 DIMM例如插槽 2它将在那里失真因为部分信号将从插槽 1 反射并到达插槽 2 提高信号质量的选项与上面提到的完全相同。
以下是基于模块数量、排名和写入或读取的数据行协商示例
写入的 SDRAM ODT 矩阵 SR: single-ranked DIMM;
DR: dual-ranked DIMM.
用于读取的 SDRAM ODT 矩阵 SR: single-ranked DIMM;
DR: dual-ranked DIMM
ADDR/CMD通用 DDR3/4 对地址和命令使用飞越式拓扑具有尽可能小的内存存根和线尾终止因为这些信号没有内部 ODT
R_term 的值范围很广在内存模块中R_term通常在 40 欧姆的范围内。
在 UDIMM 中单个地址/命令行可以连接到 9 个内存芯片如果使用 ECC如果是单列则连接到 18 个芯片如果是两个列 如果使用 2 个插槽那么最大可能的是将一条线连接到 36 个芯片并在两个内存模块上热化。这样地址/命令行就连接到了繁重的负载。
例如RDIMM 内存在一个模块中已经可以有多达 36 个芯片如果使用 具有 4 位数据的 SDRAM因此它们在地址上使用缓冲区从而提高信号质量 线路末端需要一个端接电阻器这样就不会有反射不会使其余芯片上的信号严重失真 由于每条 ADDR/CMD 线可以连接大量芯片因此值得密切关注线的均匀性以免沿途发生反射。
ADDR/CMD 1 芯片 我见过许多使用单个 SDRAM 芯片来应用线路末端端接的设计但这不是必需的。当使用 2 个或更多芯片时并且远程芯片上的信号良好这成为强制性的 ADDR/CMD 9 芯片 在分配地址和命令时阻抗必须恒定并且与信号整个路径上的R_term相对应这一点尤为重要。否则将发生反射导致 SDRAM 上的信号严重失真。但这很难确保因为在飞越拓扑中沿路径存在许多阻抗不均匀性例如过孔和芯片 SDRAM 的电容负载。
让我们看一下以下连接 Rterm40 Ω
TDR 您可以看到阻抗下降到 Rterm 以下这是由于芯片的 SDRAM 的输入容量这些 SDRAM 沿地址线分布。
眼图 远处芯片上眼图的最佳开口是靠近终端电阻器。这是因为 SDRAM 输入电容会产生沿相反方向传播的信号反射。
原理图上地址行中的 SDRAM 输入容量可以表示如下 这种不均匀性电容的影响可以通过补偿不均匀性电感来减弱。一种异质性将补偿另一种异质性。也就是说通过改变电容两侧的线宽增加其阻抗可以补偿其异质性。从电容不均匀性反射的负极性信号被走线狭窄部分反射的正极性信号所抵消。
它看起来像这样 增加阻抗可以降低反射信号的高度前提是迎面而来的信号边缘的上升或下降时间超过线路校正部分产生的有效延迟量。例如L-comp 基于相同的原理 相对于 ZRterm 的阻抗越高导体越窄可以实现的校正区域的截面就越短因此阻抗跳跃就越小。例如在 UDIMM 模块中SDRAM 之间的走线为 0.075mm宽点为 0.15mm。
这是减少 UDIMM 模块中使用的不均匀性的方法 TDR
可以看出阻抗保持在 Rterm 区域 40 欧姆。
眼图 可以看出与前一种情况相比眼图的张开度有了明显的改善。例如这里是两个选项第一个筹码最坏情况的眼图轮廓 ~30% 改进
2.2 PCB过孔影响
现在让我们试着弄清楚 make 的影响是什么。在前面的配置中以下 interlayer 连接结构用于连接地址总线上的 SDRAM 芯片 这就是 UDIMM 内存模块通常的分离方式使用这种拓扑结构需要最少的层数。这种通孔具有电容特性并被添加到 SDRAM 输入电容中这就是为什么需要如此大的阻抗差来衰减这些不均匀性的原因。
您可以使用以下连接 通过这样的连接电感已经存在因此需要更小的阻抗差来均衡 TDR。
让我们看一下与此类过孔的连接其中 Rterm40 欧姆 TDR 通过这样的过孔可以看出与第一种层间连接选项相比TDR 明显更高因此需要更小的阻抗差来补偿这些不均匀性。
因此拓扑中的每种情况都是唯一的您需要选择布线、过孔的参数和信号层的位置。在这里我们只能建议在所有地址进行相同类型的连接这将有助于拓扑参数的选择。下面是一个拓扑示例由于密度的原因建立了不同类型的连接这是一个等级一些芯片在顶部一些在底部 对于这样的拓扑结构设计结构来补偿不均匀性非常困难且耗时。
此行的 TDR 如下 我们可以在 TDR 上观察到大量导致反射的不均匀性。
三、总结 从本文中可以看出从 SI 的角度来看DDR4 SDRAM 接口是一件非常重要的事情。开发它的工程师做了大量工作以提高每个新版本界面的运行速度。在以后的文章中我将尝试告诉您有关SDRAM 跟踪的同样重要的事情例如信号对齐和串扰。