点击查看精选 PCIe 系列文章

点击进入【芯片设计验证】社区,查看更多精彩内容


声明

  • 作者主页:【MangoPapa的CSDN主页】。
  • ⚠️ 本文首发于CSDN,转载或引用请注明出处【点击查看原文】。
  • ⚠️ 本文为非盈利性质,目的为 个人学习记录知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
  • ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
  • 欢迎大家指出文章错误,欢迎同行与我交流 ~
  • 邮箱:mangopapa@yeah.net

文章目录

  • 参考时钟
  • 时钟架构
    • Common Clock Architecture
    • Separate Clock Architecture
    • Data Clock Architecture
    • 扩频时钟(SSC)
  • Clock Jitter
    • Common Clock 与 Data Clock Jitter
    • SRNS/SRIS Clock Jitter
  • 参考

开聊之前先梳理几个概念:

  • Jitter,时钟抖动,是对于同一 Clock 而言的, 是时钟源引起的,用来描述被测时钟与理想时钟在时域的偏差(单位为 ps RMS,皮秒均方根)。
  • Skew,时钟偏斜,是对于多个时钟线而言的,是时钟树不平衡引起的。
  • 此外还有一个概念是频率稳定性,用来描述被测时钟频率与理想时钟频率的偏差(单位 ppm,百万分之一)。


参考时钟

  PCIe Serdes 在时钟驱动下收发串行数据流。Serdes 所用时钟由 PHY 内的 PLL 生成,PLL 的参考时钟由外部提供或从接收数据流中恢复出来。

  PCIe 协议指定标准的参考时钟为 HCSL 电平的 100 MHz 时钟,Gen1~Gen4 下要求收发端参考时钟精度在 ±300 ppm 以内,Gen5 要求频率稳定性 ±100 ppm。在 FPGA 应用中,为了兼顾其他 IP,采用 LVCMOS/LVDS/LVPECL 电平 125 MHz/250 MHz 的方案也较为常见。


时钟架构

  PCIe 时钟架构是指 PCIe 系统中收发端设备给定参考时钟的方案。PCIe 有 3 种时钟架构(图 1),分别为:Common Clock Architecture (CC),Separate Clock Architecture 和 Data Clock Architecture

▲ 图 1 三种基本 PCIe 参考时钟架构

Common Clock Architecture

  Common Clock Architecture (CC),通用参考时钟架构,收发端共享同一个参考时钟。三种 PCIe 参考时钟架构中,Common Clock 是最为常用的一种时钟架构,采用 Common Clock 支持时钟扩频(SSC, Spread Spectrum Clock) 且对参考时钟的要求不如 Separate Clock 方案严苛。Common Clock 对于频率稳定性的要求是 ±300 ppm。对于适用同一 Common Clock 作为参考时钟的 PCIe 设备,所有设备间的时钟偏斜(Clock Skew)必须保持在 12 ns 以内,这无疑对大型电路板上或跨板的 PCIe 设备间布局布线形成巨大挑战。

Separate Clock Architecture

  Separate Clock Architecture,收发端采用独立的参考时钟,根据有无 SSC 可进一步分为 SRNS ( Separate Refclk with No SSC) 及 SRIS (Separate Refclk with Independent SSC)。

  对于收发端采用独立参考时钟的方案,其收发端独立使用不同的参考时钟源,无需单独传递时钟,对布局布线的要求更宽松。SRNS 允许 ±300 ppm (600ppm),而 SRIS 允许 ±2800 ppm (5600 ppm,其中SSC允许 5000ppm,TX/RX允许 600 ppm)。

  若 PCIe 设备开启了 SRIS,其发生 SKP 的频率应该加大,同时加大弹性缓存(Elastic Buffer)的深度。弹性缓存加大使得延时更大,在一定程度上降低了 performance。对于一条 PCIe 链路,如何知道要不要采用 SRIS 呢?遗憾的是,目前尚没有机制实现收发端之间的 SRIS 协商。

Data Clock Architecture

  Data Clock Architecture,仅发送端需要 Refclk,接收端无需外部 RefClk,其 CDR (Clock Data Recovery,时钟数据恢复)的 Refclk 参考时钟从数据流中恢复出来。Data Clock 时钟方案是三种方案中最易实现的方案,其无需外部参考时钟,在数据流中携带有时钟信息,接收端接收数据流并从中恢复出时钟供给其 CDR 作参考时钟。Data Clock 时钟方案仅适用于 Gen2 及 Gen3,单 lane 单向最高速率 8GT/s。

扩频时钟(SSC)

  扩频时钟可以抑制电磁干扰(EMI)。为了降低 PCIe 时钟及数据线的电磁辐射、增强高速数据传输可靠性,PCIe 时钟可以采用 SSC 对参考进行时钟扩频。Gen1~Gen5 都支持 SSC,但只有 Gen3 及以上支持 SRIS。

  PCIe 扩频模式为向下扩频,扩频范围为-0.5%~0%,确保最大频率在标称频率之下。最大调制幅度为 -0.5%!

  调制频率为 30 KHz ~ 33 KHz,确保 PLL 能够跟得上,同时减小音频噪声的引入。调制波形采用三角波,该波形易于实现,且调制后的频谱接近均匀分布。

  注意:30 KHz ~ 33 KHz 是指频率随时间周期变化的频率,不是展宽的带宽,带宽为时钟频率的 0.5% 。

  更多扩频相关介绍,请查看文末参考资料。


Clock Jitter

Common Clock 与 Data Clock Jitter

  随着 PCIe 速率的提升,其对时钟抖动 (Jitter) 的要求也越来越严苛。图 2 为 Common Clock 及 Data Clock 模式下的不同 PCIe 速率对 Jitter 的要求。

▲ 图 2 Common Clock 及 Data Clock 架构的 Jitter 需求

SRNS/SRIS Clock Jitter

  目前尚未出台 SRNS/SRIS 模式下 Gen4/Gen5 的 Jitter Limit,现有的 SRNS/SRIS Jitter Limit 是基于 Common Clock Jitter Limit 等效推算出来的。

  假设 Separate Clock 收发端采用跟 Common Clock 相同电平、相同 Jitter 、相同频率的时钟。设 Common Clock 系统 Jitter Limit 为 J C C S y s t . S i mJ_{CC_{Syst.Sim}}JCCSyst.Sim(仿真结果,非标准指定),那么采用 Separate Clock 的方案,引入了两个随机独立的 Jitter J1 J_1J1 J2 J_2J2(图3)。系统总的 Jitter 可以表示为两者平方和的根,即:

J T=J12+ J22 J_T=\sqrt{{J_1}^2+{J_2}^2 } JT=J12+J22

  假设 J1= J2= J S R N S , S R I S J_1=J_2=J_{SRNS,SRIS}J1=J2=JSRNS,SRIS, Separate Clock 要达到跟 Common Clock 相同的系统 Jitter Limit J C C S y s t . S i mJ_{CC_{Syst.Sim}}JCCSyst.Sim, 其收端或发端 Clock Jitter Limit 可以表示为:

J SRNS,SRI S MAX= J C C Syst.Sim/ 2J_{SRNS,SRIS_{MAX}}=J_{CC_{Syst.Sim}}/\sqrt{2} JSRNS,SRISMAX=JCCSyst.Sim/2

▲ 图 3 Separate Reference Architecture Jitter Distribution

▲ 图 4 Separate Clock 架构的 Jitter 需求

  图4 是基于 Common Clock 架构计算出的 SRNS/SRIS Jitter Limit。整体来看,Separate Clock 的 Jitter Limit 比 Common Clock 和 Data Clock Jitter Limit 都要小,也就是说Separate Clock 对Clock Jitter 的要求更为严苛。

  注意:Common Clock 及 Data Clock 时,考虑到长距离时钟线上的耦合噪声,标准中给定的 Limit 是要比仿真结果小的,比如系统仿真 Gen5 的 Clock Jitter Limit 是0.25 ps RMS,标准中给定的是 0.15 ps RMS。但采用 Seoparate Clock 架构的 PCIe 系统,其收发端各自有一个独立的时钟源,消除了时钟线的耦合噪声,其 Jitter Limit 仍采用仿真结果


参考

  1. PCI Express Base 6.0,Chapter 4.3.9 & 8.6
  2. 关于PCIe参考时钟的讨论
  3. PCIe 的时钟结构
  4. Selecting the Optimum PCI Express Clock Source
  5. 进行精准的PCIe 4.0时钟抖动测量
  6. PCIe Separate Reference Clock With Independent Spread (SRIS) Architecture Overview
  7. PCIe Spread Spectrum Clocking (SSC) for Verification Engineers
  8. 什么是SSC(扩频时钟)
  9. 采用扩频技术的EMI解决方案
  10. 扩频时钟SSC技术,即展频
  11. 高速协议时钟SSC扩频展频学习整理
  12. 时钟抖动计算


— END —

精选往期 PCIe 协议系列文章

  • 【最新技术早知道】PCIe Gen5 还没用上,Gen6 就来了?PCIe 6.0 系列文章之:《PCIe 6.0,到底 6 在哪?》
  • 【PCIe 6.0】颠覆性技术!你NRZ相守20年又怎样?看我PAM4如何上位PCIe 6.0 !
  • 【PCIe 6.0】PCIe 6.0 新特性 – L0p 详解
  • PCIe地址转换服务(ATS)详解
  • PCIe访问控制服务(ACS)
  • 【PCIe页请求服务】到底到底到底是啥?半年搜遍全网找不到一篇介绍文章,没人写那我来写吧

⬆️ 返回顶部 ⬆️