2. PCIe信号定义与电气规范
PCIe 的物理层并不是“把几根线连起来就能通”的总线,它由一组职责明确的信号族构成:高速差分数据对负责载荷传输,参考时钟为收发器提供频率基准,复位信号决定链路何时进入可训练状态,边带信号承担带外管理与状态上报,链路训练信号在物理层完成位锁定与通道对齐,电源管理信号则控制链路在 L0、L1、L2 等低功耗状态之间迁移。理解这些信号的电气属性与相互时序,是 Allegro 中做约束、布线和后仿真的前提。
差分对:PCIe 的物理传输骨架
PCIe 的每一通道(Lane)由一对发送差分对(TXp/TXn)和一对接收差分对(RXp/RXn)组成,采用交流耦合,发送端串联电容典型值为 100 nF(Gen1/Gen2 常见 75~200 nF)。差分阻抗目标为 85 Ω,允许偏差通常按 ±10% 控制,即 76.5~93.5 Ω;单端对地阻抗约 42.5 Ω。差分对的电气规范核心是“对称”:两条走线等长、等宽、等间距,参考平面连续,过孔成对出现并尽量靠近。
在 Allegro 中,差分对通过 Constraint Manager 的 Differential Pair 约束绑定,需要设置 Primary Gap、Primary Width、Neck Gap、Neck Width 以及差分对内的 Phase Tolerance(相位容差)。以 Gen3(8 GT/s)为例,单位间隔 UI 为 125 ps,若差分对内偏斜按 5 ps 估算,对应约 0.04 UI,通常要求控制在 5~10 ps 以内;Gen4(16 GT/s)UI 为 62.5 ps,偏斜预算更紧,常按 2~5 ps 控制。这些数值是设计目标示例,实际应以所选器件手册和协议版本为准。
参考时钟与复位:链路启动的两个前提
PCIe 参考时钟为 100 MHz 差分时钟,常见电平标准为 HCSL,部分低功耗场景使用 LVDS 或内部时钟。规范对 REFCLK 的频率精度要求为 ±300 ppm(含展频 SSC 时通常为 -5000~0 ppm 的下行展频),差分摆幅约 0.7~1.2 V,共模电压约 0.35 V。REFCLK 必须在 PERST# 释放前稳定,否则链路训练可能无法进入 Polling 状态。
PERST# 是低有效复位,由根复合体或上游器件驱动。规范要求:电源稳定后 PERST# 至少保持 100 ms 有效;释放后系统需在 100 ms 内提供稳定的 REFCLK 和电源。在 Allegro 中,PERST# 通常按低速单端信号处理,但要注意其走线不要与高速差分对长距离并行,避免复位边沿耦合到接收端造成误触发。
边带信号:带外管理与状态上报
边带信号不参与高速数据搬运,但决定了设备能否被正确识别、唤醒和调试。常见边带包括:
- PRSNT#:存在检测,通过插槽中的短针或电阻分压告知系统板卡已插入,并可用于判断卡的类型(x1/x4/x8/x16)。
- WAKE#:唤醒信号,低有效,用于设备从 L2 等深度低功耗状态请求系统唤醒。
- CLKREQ#:时钟请求,低有效,允许设备在不需要 REFCLK 时请求关闭时钟以省电。
- SMBus:带外管理总线,用于读取温度、功耗、故障日志等,通常与 PCIe 配置空间互补。
- JTAG:边界扫描与调试,用于生产测试和板级互连检查。
这些信号在 Allegro 中一般按普通单端网络处理,但要注意上拉电阻的位置和阻值。例如 WAKE# 和 CLKREQ# 通常需要 10 kΩ 上拉到 3.3 V 辅助电源,PRSNT# 则通过插槽侧接地或分压实现。边带信号若与高速差分对共享连接器区域,应保证足够的回流路径和间距。
链路训练与电源管理:状态迁移的电气含义
链路训练由 LTSSM(Link Training and Status State Machine)控制,核心状态包括 Detect、Polling、Configuration、L0、Recovery、Loopback 等。Detect 阶段检测接收端是否存在;Polling 阶段通过发送 TS1/TS2 有序集完成位锁定和符号锁定;Configuration 阶段完成通道对齐、极性反转和链路宽度/速率协商;进入 L0 后链路才可传输 TLP。若训练失败,会进入 Recovery 重试,多次失败则降速或降宽。
电源管理信号与 LTSSM 紧密耦合。L0 为全速工作态;L1 为低功耗待机,PLL 可关断,退出需通过 Recovery 重新训练;L2 为深度睡眠,REFCLK 和主电源可关闭,仅靠 WAKE# 或辅助电源唤醒。设计时需注意:L1 退出延迟通常在微秒级,L2 退出则可能达到毫秒级,这会直接影响系统唤醒响应时间。
关键参数速查与检查要点
| 信号/对象 | 关键电气参数 | Allegro 检查要点 |
|---|---|---|
| TX/RX 差分对 | 85 Ω 差分阻抗,100 nF 串联电容,偏斜 2~10 ps | 差分对绑定、Phase Tolerance、过孔成对、参考平面连续 |
| REFCLK | 100 MHz,HCSL,±300 ppm,抖动预算 | 等长、包地、远离高速差分对、终端匹配 |
| PERST# | 低有效,100 ms 保持,异步释放 | 最大长度、串扰隔离、上拉位置 |
| 边带信号 | 3.3 V 单端,10 kΩ 上拉 | 上拉电阻位置、连接器区域回流、ESD 保护 |
| LTSSM / 电源管理 | L0/L1/L2 状态迁移,退出延迟 | 与 REFCLK、PERST# 的时序配合,唤醒路径完整性 |
实际调试时,可先确认 REFCLK 在 PERST# 释放前已稳定,再用示波器观察差分对眼图是否满足模板要求,最后通过配置空间读取 Link Status 寄存器确认链路宽度和速率是否协商成功。若链路停留在 Polling 或 Configuration,优先检查参考时钟、复位时序和差分对极性;若频繁进入 Recovery,则重点排查阻抗不连续、串扰和电源噪声。