· cpu / memory
从电路节点到端口:电压、电流和输入输出不是一回事
从电路节点到 DDR5:一步步理解高速信号反射(1)
很多关于高速接口的困惑,起点并不是公式太难,而是把三个不同视角混在了一起:
- 电路中的节点电压;
- 支路中的电流方向;
- 系统端口的输入和输出。
先把这三件事分开,后面讨论传输线、反射和 ODT 时会轻松很多。
1. 电压属于两个节点
电压不是一个“流进芯片”的东西。电压描述的是两个节点之间的电势差:
\[V_{AB}=V_A-V_B\]说“这个信号是 1.1 V”,通常省略了参考节点。更完整的说法是:信号节点相对于某个参考地,电势差约为 1.1 V。
因此,同一个节点可以同时拥有多个电压描述:
V_signal - VSSQ
V_signal - VDDQ
V_signal - another reference node
它们不是三个不同的信号,而是选择了不同参考点后的电压差。
2. 电流属于一条支路
电流描述电荷通过某条支路的速率。我们可以先人为规定一个参考方向,再根据计算结果判断真实方向是否相反。
节点处满足 KCL。用最简单的形式写就是:
\[\sum I_\mathrm{in}=\sum I_\mathrm{out}\]这句话不表示电压会在节点里“汇合”。它表示电流的代数和必须满足电荷守恒。
例如,一个输出驱动器给传输线充电时,电流路径可能是:
VDDQ
|
输出驱动器
|
信号节点/传输线
|
负载输入电容和终端
|
VSSQ
输出端的电压由驱动器、传输线和负载共同决定。不能只看“输出驱动器内部有一个 1.1 V 电源”,就断言任意时刻线上的每个位置都是 1.1 V。
3. 输入和输出是端口视角
“输入”和“输出”描述的是一个模块对外交换信号的方向:
控制器模块 ──输出──> DRAM 模块
控制器模块 <──输入── DRAM 模块
但它们不是传输线内部波的方向。传输线内部更关心的是:
向 +x 方向传播的波
向 -x 方向传播的波
这两个方向由坐标和传播过程定义,而不是由“谁是输入设备”定义。
在 DDR 的读写切换中,同一条 DQ 线的系统角色还会变化:
写:Controller 是源端,DRAM 是负载端
读:DRAM 是源端,Controller 是负载端
所以“DRAM 的输入端”与“沿着线向右传播的波”不能当成同义词。
4. 一个最小的端口模型
把驱动器和接收器抽象成两个端口,可以得到:
源端 负载端
| |
|---- 传输线 ------------|
| |
等效源阻抗 ZS 等效负载阻抗 ZL
在低速或很短的连接中,我们常常把中间的线看成一根理想导线,直接使用节点分析。
但如果信号边沿在走线传播完成之前就已经发生,线上的不同位置还没有机会同时“知道”这个变化。这时需要把中间的连接看成会传播波的结构。
5. 本篇结论
需要记住三组不同的词:
电压:两个节点之间的电势差
电流:通过某条支路的电荷流动
输入/输出:模块或系统端口的信号角色
下一篇要回答的问题是:什么时候一根看起来普通的 PCB 走线,必须从理想导线升级为传输线模型?答案主要取决于边沿时间和传播延迟,而不只是时钟频率。
References
- Transmission line:传输线作为分布参数结构,以及电压、电流随位置传播的基本模型。
- Characteristic impedance:电压、电流和传播方向之间的关系。