当前位置: 首页 > news >正文

#PCIE#基础知识分解之 CC/SRNS/SRIS 时钟架构

参考资料为PCIe Base SpecCEM Spec

1.1 时钟架构分类

PCIe参考时钟的三种架构:

  1. Common Refclk (Shared Refclk) Architecture
  2. Data Clocked Rx Architecture
  3. Separate Refclk Architecture

下面,我们来简单地聊一聊前面说到的三种参考时钟架构,首先是

1.2 Common Refclk Architecture

Common Refclk (Shared Refclk) Architecture的示意图如下图所示,

这种参考时钟架构是Spec推荐使用的,链路两端的器件均使用同一个参考时钟源。

即使使能了带有扩频的参考时钟源,时钟抖动也只有-300~+2800ppm。其次,当PCIe链路处于L0s或者L1状态时,即使链路上没有数据流,Rx CDR依然可以设计出保持锁定的状态,这样做的好处是,链路从L0sL1状态恢复到L0状态的时间将会更短。

1.3 Data Clocked Rx Architecture

Data Clocked Rx Architecture的示意图如下图所示:

从示意图来看,这种参考时钟架构最为简洁,Rx端器件的CDR并不需要参考时钟,而是直接从数据流中恢复出时钟。不过这种结构的Rx CDR几乎很少在FPGASerDes中使用,因为在没有外部参考时钟的协助下,CDR实现锁定都是一个很大的挑战,还要保证在5600ppm的抖动范围内不失锁(对于带有扩频时钟的PCIe链路来说)。

注:绝大部分的FPGA SerDes都是多协议SerDes,除了支持PCIe外,往往还需要支持其他主流的串行协议,比如SATAUSBDisplayPortHDMIEthernet (Q)SGMIICoaXpressCPRIFPD-Link II/IIISerial RapidIOSLVS-EC等等。这种参考时钟架构对于PCIe来说行得通,对于其他的某些串行协议来说可能是无法实现的。

1.4  Separate Refclk Architecture

Separate Refclk Architecture的示意图如下图所示:

PCIe Spec强烈不推荐使用这种参考时钟架构,尽管这是其提出的三种参考时钟架构之一。PCIe Spec强调,如果使用这种架构,扩频时钟必须被禁止使用(2.5GT/s & 5GT/s),因为这中情况下使用扩频时钟的话,CDR的带宽需甚至需要大于5600ppm,这对于CDR来说是非常大的挑战。

需要注意的是,PCIe Base Spec V3.x中,提到对于8GT/sPCIe链路而言,在Separate Refclk Architecture下实现扩频时钟也是可行的(即Separate Refclk With Independent SSC (SRIS) Architecture),但是需要更复杂的CDR设计,具体请参考Spec相关章节。

SSC - Spread Spectrum Clocking 作用:扩频时钟技术主要是用来降低EMI。

CC - Common Clocked architectures (CC)

SRIS - Separate Refclk Independent SSC

SRNS - Separate Refclk with No SSC

Note:

Separate Refclk Independent SSC (SRIS) Architecture

Separate Reference Clocks With No SSC (SRNS) Architecture

The maximum difference with SRNS is 600 ppm which can result in a clock shift once every 1666 clocks. The maximum difference with SRIS is 5600 ppm which can result in a clock shift every 178 clocks.

SRNS允许600ppm,而SRIS允许5600ppm(其中SSC允许5000ppm,TX/RX允许600ppm)

如果使用SSC,所有使用SSC芯片的时钟必须同源

如果不使用SSC,各芯片的时钟不要求同源。


http://www.mrgr.cn/news/59254.html

相关文章:

  • Linux中安装Tomcat
  • 【正点原子K210连载】第四十八章 自学习分类实验 摘自【正点原子】DNK210使用指南-CanMV版指南
  • 服务器虚拟化
  • week08 zookeeper多种安装与pandas数据变换操作-new
  • 山西农业大学20241025
  • JDK9——JDK13新特性总结
  • 基于SSM的网上购物系统的设计与实现
  • 高级 SQL 技巧全面教程:提升你的数据库操作能力
  • [Python学习日记-56] Python 中的包与代码的跨模块代码调用
  • C++ 模板专题 - 表达式模板
  • RabbitMQ 发布确认高级部分
  • 大模型多模态应用深化,AI Agent 如何为应用普及提速(科普一键收藏版)
  • 【Linux】从open到write:系统文件I/O 的奥秘与实战指南
  • Redis 过期策略 问题
  • 关于python的import
  • Spark RDD
  • 事务的原理、MVCC的原理
  • Node-Red二次开发:git下载本地打镜像docker部署
  • 挑战Java面试题复习第2天,百折不挠
  • 【mysql进阶】4-7. 通用表空间
  • RabbitMQ延迟消息插件安装(Docker环境)
  • 使用MirrorMaker跨集群同步数据原理
  • 潮畔汽车文化营地开营啦!全民测试场启动典礼圆满成功
  • 第九部分 Java API
  • C++11特性
  • 基本Linux命令