好的,我们来详细解释一下 PCB 走线中的 Fly-by 设计(也叫 Fly-by 拓扑 或 Daisy Chain 拓扑的一种特化形式)。
核心目的: Fly-by 设计主要用于 高速并行总线(尤其是 DDR3、DDR4、DDR5 内存系统)中,连接一个主控制器(通常是内存控制器或 CPU)到多个从设备(内存颗粒)。其主要目标是解决高速信号在多个负载下的信号完整性问题(主要是反射)和时序同步问题(主要是时钟歪斜)。
工作原理与关键特点:
-
串行连接(Daisy Chain): 这是 Fly-by 的基础。信号线(主要是地址线、命令线、控制线以及时钟线)不是以星形方式从控制器直接拉到每个内存颗粒,而是像链条一样:
- 从控制器出发。
- 连接到第一个内存颗粒的对应引脚。
- 再从第一个内存颗粒的对应引脚(或专门的输出引脚)连接到第二个内存颗粒。
- 依此类推,直到连接到最后一个内存颗粒。
- 最后,在链条的末端(最后一个颗粒之后) 连接一个端接电阻(通常是 VTT 上拉电阻到 0.5Vddq 或 VTT,构成戴维南端接或简单的上拉端接)。
示意图:Fly-by 拓扑连接(地址/命令/控制/时钟)
-
末端端接:
- 这是 Fly-by 设计的精髓。信号在链条末端被电阻端接到一个合适的电压(如 VTT)。
- 作用: 吸收信号传播到末端时产生的能量,防止信号在开路末端发生强烈的反射。这个反射如果传回源端(控制器)和其他颗粒,会严重劣化信号质量(产生振铃、过冲/下冲),导致眼图塌陷。
- 效果: 通过末端端接,信号在链路上基本上是单向传播的,大部分能量被端接吸收,反射被最小化。
-
时序补偿(Write Leveling / Read Leveling):
- 问题: 由于信号是串行传播的,距离控制器最近的颗粒最先收到信号,最远的颗粒最后收到信号。这意味着不同的颗粒在同一时刻看到的地址/命令信号状态可能是不同的(时钟信号到达时间也不同)。这称为飞行时间差。
- 解决方法: DDR3/4/5 引入了写平衡和读平衡功能。
- 写平衡: 控制器在初始化阶段,会测量时钟信号到达每个颗粒的时间差(相对于数据选通信号 DQS)。在写入数据时,控制器会提前或延迟发送数据(DQ/DQS),确保数据在每个颗粒的输入端,与其本地看到的时钟边沿对齐。补偿了地址/命令/时钟在 Fly-by 链路上传播到不同颗粒的时间差。
- 读平衡: 类似原理,确保从不同颗粒读回的数据在控制器端能正确对齐。
-
数据线(DQ/DQS)的差异:
- 与地址/命令/控制/时钟的 Fly-by 不同,数据线(DQ)和数据选通(DQS)通常是点对点连接的!
- 每个内存颗粒(或每个字节通道)的数据线是直接从控制器连接到对应的颗粒的(或者在同位颗粒之间较短距离共享),不采用 Fly-by 方式。
- 原因:
- 数据线是双向的、频率更高、时序要求极其严格(需要与 DQS 严格对齐)。
- 点对点布线可以确保数据路径延迟最短且一致,避免 Fly-by 带来的额外延迟差异。
- 数据线本身也需要在其远端(颗粒端)进行适当的端接(通常是 ODT - On-Die Termination,片内端接)。
Fly-by 设计的主要优势:
- 优异的信号完整性(SI): 末端端接极大抑制了反射,使得地址/命令/控制/时钟信号在长链路上也能保持相对干净,眼图张开度好。这对于高速信号至关重要。
- 简化布线: 相对于星形拓扑需要大量从中心点拉出的长线,Fly-by 的串行结构使得布线空间更紧凑,尤其是在连接多个内存颗粒(如双列直插内存模组 DIMM 上的多颗 DRAM)时。
- 减少分支短截线(Stub): 在理想情况下,信号在到达目标颗粒的引脚后,继续流向下一级,目标颗粒的输入引脚只是线上的一个“探测点”,形成的短截线很短(主要是引脚本身的长度)。较短的短截线对信号完整性的影响较小。相比之下,星形拓扑的分支本身就是一个长 Stub。
- 有利于等长控制: 虽然不同颗粒收到信号的时间不同,但控制器到每个颗粒的链路线路本身的长度差异可以做得相对较小(布线时控制好相邻颗粒间的长度)。时序差异主要通过写平衡/读平衡在协议层补偿。
Fly-by 设计的挑战与注意事项:
- 必须依赖协议层补偿(Write/Read Leveling): 系统必须支持并正确配置写平衡和读平衡功能,否则时序无法对齐。这是 Fly-by 实现的必要前提。
- 时钟歪斜(Clock Skew): 时钟信号也采用 Fly-by 传播,不同颗粒收到的时钟存在相位差(虽然写平衡补偿了时钟与数据的关系,但颗粒间看到的时钟本身有偏移)。设计时需要确保这个偏移在时钟树分配允许的范围内。
- 颗粒间距和数量限制: Fly-by 链路上挂的颗粒越多,链路总长越长,信号衰减(损耗)越大,远端颗粒的信号幅度和边沿质量会下降。同时,时序补偿的范围也有限制。因此,颗粒数量和颗粒间的最大间距是有限制的。
- 严格的阻抗控制和等长要求: 整个 Fly-by 链路的阻抗必须严格保持一致(通常是 40Ω 或 50Ω 单端)。控制器到第一个颗粒、颗粒与颗粒之间、最后一个颗粒到端接电阻的走线都需要做严格的组内等长控制(例如地址组内等长控制在 ±5mil 或更小)。
- 端接电阻的放置: 端接电阻必须放置在链路的最末端(最后一个颗粒之后),并且尽可能靠近最后一个颗粒的输出焊盘,走线要短,避免在末端引入额外的 Stub。
- 分支点的影响: 虽然 Fly-by 的分支 Stub 相对较短,但在非常高的速率下(如 DDR5),颗粒输入引脚、过孔、测试点等形成的微小 Stub 也需要仔细考虑其影响。
总结:
Fly-by 设计是一种针对高速并行总线(特别是 DDR 内存系统)中地址、命令、控制和时钟信号的优化布线拓扑。它采用串行链路 + 末端端接的结构来抑制信号反射,保障信号完整性,同时通过协议层的写平衡/读平衡功能来补偿信号传播到不同颗粒的时间差。数据线(DQ/DQS)则不采用 Fly-by,而是点对点连接。Fly-by 简化了多负载布线,提升了高速下的信号质量,但高度依赖于 DDR 协议提供的时序补偿机制和 PCB 设计时严格的阻抗控制与等长约束。它是现代高性能计算系统中内存子系统设计的关键技术之一。
围绕拓扑结构与端接展开,浅谈对fly-by结构
DDR的历史,就是一个SI技术变革的过程,说白了就是拓扑与端接之争。DDR2使用的是T拓扑,发展到DDR3,引入了全新的菊花链—fly-by结构。使用fly-by并不完全因为现在的线路板越来越高
2021-04-11 10:04:05
FLY-BY拓扑结构:阻抗不连续到了什么程度呢
信号通道中只要有分叉就会存在阻抗的不连续,fly-by结构处处是分叉,阻抗不连续问题就很突出,到底这种阻抗不连续到了什么程度呢?
2021-04-11 09:58:43
走自己的线,就让SI工程师说去吧
,这样主芯片的通道就能够连更多的颗粒。点对点的结构就没有什么拓扑可言,在常规的533M的速率下基本上你把走线阻抗控制好就没什么问题。客户在第二版尝试一拖二的这种结构时,优先考虑了fly-by的拓扑,正如
edadoc
2019-07-18 16:39:11
PCB走线的电阻如何计算?
很多硬件朋友会说,用万用表去测量PCB走线两端的阻值,就可以知道走线的电阻。如果真的用万用表去测量,测量的结果基本是0,非常不准确。
2023-01-29 09:44:09
PCB走线的参考平面在哪
PCB走线的参考平面在哪? 很多人对于PCB走线的参考平面感到迷惑,经常有人问:对于内层走线,如果走线一侧是VCC,另一侧是GND,那么哪个是参考平面?
2019-08-20 15:47:13
pcb设计为什么要是用蛇形走线
PCB上的任何一条走线在通过高频信号的情况下都会对该信号造成时延时,蛇形走线的主要作用是补偿“同一组相关”信号线中延时较小的部分
2019-10-22 16:26:14
有关PCB走线以及如何为PCB设计正确走线的重要事项
设计 PCB 变得非常容易, 由于可用的工具负载。对于正在接触PCB设计的初学者来说, 他可能不太关心PCB中使用的走线特性。然而,当你爬上梯子时,注意PCB走线是非常重要的。在本文中,我们汇总了一些您应该了解的有关PCB走线以及如何为您的PCB设计正确走线的重要事项。
2023-05-13 15:15:46
怎么去计算PCB走线的电阻呢?
很多硬件朋友会说,用万用表去测量PCB走线两端的阻值,就可以知道走线的电阻。如果真的用万用表去测量,测量的结果基本是0,非常不准确。
2023-10-08 15:13:13
PCB layout中的走线设计
PCB layout需要丰富的经验和扎实的理论基础支持,还要多踩几个坑,多做几个仿真加深对走线的理解,才能形成闭环的走线设计。
2022-07-19 15:10:41
用PCB走线来设计一个采样电阻
线来设计一个采样电阻呢?下面介绍用PCB走线设计一个0.05欧姆的方法。 先认识一下物理知识,导体的电阻率公式:R =ρL/S,其中 ρ 是特定导体的电阻率, L 是导体长度, S 是导体截面积。...
2022-02-10 17:18:20
pcb走线厚度:打造更稳定、精准的PCB设计
PCB走线是将电路设计中的电气信号通过导线连接到PCB板上而形成的电路。这些导线被称为“走线”,通常由铜或其他导电材料制成。今天捷多邦小编带大家一起了解pcb走线厚度对线路板的影响 在PCB的制作
2024-04-15 17:43:36
PCB的走线结构
在多层PCB尤其是高速PCB中,经常将介质之间的若干个金属层(Plane)分配给电源和地(PoweriGnd)网络。这样PCB上的走线就可以大致分为两类:微带线和带状线。微带线的附近只有一个金属平面,通常位于PCB的表层(Top/Bottom Laver)
2023-08-28 14:53:37
请问fly-by适用于多个芯片的情况效果一样吗?
请问下关于fly-by用在2个SDRAM和1个NandFlash时,下面2个图片结构的作用是否一样?谢谢。第一种情况:第二种情况: 因为看视频只有1个SDRAM的情况,所以想问问2个SDRAM的情况。上面2种情况是不是都可以?是否效果都一样?谢谢。
asd012
2019-09-16 10:27:05
是否存在有关 PCB 走线电感的经验法则?
本文要点PCB走线具有电感和电容,这两者共同决定了走线的阻抗。有时,了解走线的电感有助于估算因串扰而引起的耦合度。虽然没有设定具体的走线电感值,但它是理解某些系统中的信号行为的有力工具。所有PCB走
2024-12-13 16:54:57
怎么在PCB上用走线做保险?
PCB上面用更细的走线做保险有什么具体的公式算法,我有两种电流规格,一种是2A的持续电流,一种是0.1A的持续电流,如果用表层走线做保险丝,要用多宽的走线,铜厚1OZ
blnocyyp2002
2019-08-21 21:45:15
PCB为什么不能直角走线?三大理由!
最初学习PCB设计时,很多老师说过:注意不要走直角。很多人也认为优秀的电子工程师都应该在PCB电路设计时避免直角走线。但事实上,PCB一定不能直角走线吗?01能不能直角走线,电路频率说了算!PCB
2023-01-11 16:52:33
PCB板上多长的走线才是传输线?
传输线的定义是有信号回流的信号线(由两条一定长度导线组成,一条是信号传播路径,另一条是信号返回路径),最常见的传输线也就是我们PCB板上的走线。那么,PCB板上多长的走线才是传输线呢? PCB板上
2020-11-06 10:25:45
PCB走线是走45度好还是走圆弧好
PCB能不能以锐角走线,答案是否定的,先不管以锐角走线会不会对高速信号传输线造成负面影响,单从PCB DFM方面,就应该避免出现锐角走线的情形。
2022-11-10 10:50:14
高速PCB走线的3-W原则
3-W原则就是让所有的信号走线的间隔距离满足:走线边沿之间的距离应该大于或等于2倍的走线宽度,即两条走线中心之间的距离应该大于或等于走线宽度的3倍。对于靠近PCB边缘的走线,PCB边缘到走线边缘的距离应该大于3倍的走线宽度。
2023-08-29 14:39:32
差分线pcb走线原则
差分线pcb走线原则 差分线是PCB设计中非常重要的一个部分,它的设计和走线原则可以直接影响到电路性能的稳定性和可靠性。在以下文章中,我将详尽、详实、细致地探讨差分线的设计原则及其在PCB走线中
2023-12-07 18:09:37
PCB走线如何避免锐角
PCB走线如何避免锐角 PCB(Printed Circuit Board)是电子元器件的重要载体,能够集成多种电子元器件,实现电路的复杂功能。而PCB设计的时候需要避免锐角,因为锐角可能引发
2023-09-22 16:41:05
有哪些方法可以扩大PCB走线载流量?
当涉及到PCB 设计时,PCB 走线电流容量带来的限制是至关重要的。虽然IPC-2221通用设计指南是一个很好的起点,但 PCB 走线宽度计算器提供了可用于电路板设计的准确值。
2022-12-05 14:56:11
基于PCB设计的走线常用规则
高速产品的轻薄化,PCB厚度限制了走线层数,就有了高速线走在相邻两层上,为了减少相互的串扰,走线的方法有间距管控(DDR部分实现难度比较大),垂直走线(这种方法实现难度比较大),30度角走线。
2022-07-13 15:53:27