DQ 与 DQS 的时序关系详解

做 DDR5 的时序调优,DQ 和 DQS 的关系可以说是最核心的考点。很多人一开始看 spec 觉得就是几个参数的事,但真正在仿真和测试中,这些参数的相互作用会直接决定你的系统能不能跑稳。我最早接触 DDR4 时就被 DQ-DQS 的时序坑过一次,后来做 DDR5 才彻底搞明白——说白了,DQS 是 DQ 的“影子时钟”,但这对影子并不总是同步的。

源同步时钟的本质

DDR5 采用的是源同步时钟架构。什么意思呢?就是数据 DQ 和选通信号 DQS 是打包一起从颗粒发出来的。控制器不需要自己产生一个独立的采样时钟,而是直接用跟着数据一起过来的 DQS 去抓 DQ。好处很明显——时序路径短,不受系统时钟抖动影响。但坏处也在这里:一旦 DQS 和 DQ 之间的相对关系出问题,整个数据传输就崩了。

我个人的理解是:DQS 是一个“参考标尺”,DQ 就是被测量的对象。标尺的刻度(也就是 DQS 的边沿)必须落在 DQ 的有效数据窗口内,否则采样出错。

关键概念:DDR5 中,DQS 是在读周期由颗粒驱动,写周期由控制器驱动。但无论读写,DQS 的边沿总是对准 DQ 数据的中心(读)或边沿(写)。我们此处讨论的是读操作的时序关系,写操作会另有调整。

三个核心参数:tDQSCK, tDQSQ, tQH

要量化 DQ 和 DQS 的关系,JEDEC 定义了三个关键参数。我习惯把它们记作“一参考、一偏差、一窗口”。

参数 含义 个人理解
tDQSCK DQS 边沿相对于 CK(系统时钟)的延迟 基准参考,告诉你 DQS 在哪出现
tDQSQ DQ 边沿相对于 DQS 边沿的偏斜 偏差量,越大说明数据越“歪”
tQH DQ 有效数据窗口的宽度(高电平阶段) 实际能用的采样窗口

为什么这三个参数重要?因为仿真时我们需要把 tDQSQ 和 tQH 结合起来,判断 DQS 的采样边沿是否还有足够的裕量。

我的经验:很多新手只看 tDQSCK 去调延迟,但 tDQSCK 只告诉你 DQS 相对时钟的位置,真正决定数据能否采对的是 tDQSQ 和 tQH 的差值。有一次客户测出读 DQ 偶尔出错,仿真显示 tDQSQ 大了 20ps,直接把有效窗口吞掉了三分之一。

数据有效窗口的计算

数据有效窗口(Data Valid Window, DVW)可以简单看作 tQH 减去 tDQSQ 两侧的消耗。实际上还要考虑抖动、串扰等,但最基本的公式是:

有效窗口宽度 = tQH - 2 × tDQSQ

为什么是 2 × tDQSQ?因为 DQS 的边沿位于窗口中间,tDQSQ 定义了 DQ 边沿到 DQS 边沿的最大偏斜。左侧有一个 tDQSQ,右侧也有一个。如果这两个偏斜方向相反(最坏情况),有效窗口就缩小了 2 倍 tDQSQ。

注意:这个公式是简化模型。实际 DDR5 中还有 DQ-DQS 的建立时间 tDS 和保持时间 tDH,它们定义在 DQS 边沿两侧的额外约束。但 tDQSQ 和 tQH 来自颗粒的内部特性,更本质。

不同速度等级的参数对比

DDR5 有多个速度等级,参数差异很大。我整理了一个对照表,方便你快速参考:

速度等级 tQH (ps) tDQSQ (ps) 有效窗口 (ps)
DDR5-4800 610 85 440
DDR5-5600 523 75 373
DDR5-6400 458 65 328

你看,频率越高,tQH 急剧缩小,而 tDQSQ 也在改善但幅度小,导致有效窗口越来越窄。320ps 除以 UI(312.5ps)大约只剩一个 UI 的宽度,非常紧张。

SVG 时间图:DQ 与 DQS 的时序关系

下面这张图我画了 DQ 和 DQS 的理想时序。红色虚线框标出了最坏情况下的有效窗口位置。你仔细看,DQS 的边沿正好落在数据眼中,但 tDQSQ 把数据边沿向右、向左拉长了,容易吃掉建立时间。

DQ 与 DQS 读时序关系 DQS DQ tQH tDQSQ tDQSQ 采样沿 说明 1. DQS 采样沿应对齐数据眼中心 2. tDQSQ 使数据边沿向两侧偏移 3. 两段 tDQSQ 叠加缩小有效窗口

实际仿真中的调优策略

知道了这些参数的关系,面对仿真结果时该怎么办?我总结了三步法:

  1. 测量 tDQSQ — 用探头看 DQ 和 DQS 的边沿时间差。注意取最差值(所有 bits 中最大的那个)。
  2. 测量 tQH — 找到 DQ 信号高电平持续最短的那个 bit,记录宽度。
  3. 计算有效窗口 — 用上面公式,看窗口还剩多少。如果小于 150ps(对于 DDR5-6400),就需要优化 layout 或调整 ODT。

避坑指南:我曾经在一个 8-layer PCB 项目中,DQS 走线比 DQ 长了 300mil,结果 tDQSQ 超标 25%。后来通过蛇形走线做了等长,才把有效窗口捡回来。记住,等长不是等长度,而是等传播延时。

用表格总结关键公式

公式 用途 注意事项
有效窗口 = tQH - 2×tDQSQ 快速评估裕量 忽略抖动和串扰,保守估计
裕量 = 有效窗口 - tDS(setup) 检查建立时间是否满足 tDS 来自 JEDEC,要加去嵌
裕量 = 有效窗口 - tDH(hold) 检查保持时间是否满足 tDH 通常比 tDS 宽松

特别提醒:DDR5 的 DQS 有差分信号(DQS_t / DQS_c),其交叉点才是采样时刻。仿真时不要只看单端波形,一定要看差分结果。交叉点抖动也会影响 tDQSQ 的测量值。