高速串行总线设计基础(七)揭秘SERDES高速面纱之时钟校正与通道绑定技术
文章目录
- 前言
- 时钟校正
- 接收和发送缓冲区
- 通道绑定
- 参考文献
前言
上篇文章讲了高速串行总线中的数据包核参考时钟的相关内容,见:高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求,但SERDES的秘密还没有完全揭开,高速串行总线技术环环相扣,缺一不可,本篇继续介绍!
时钟校正与通道绑定技术在多通道Serdes或者Transceiver中十分常用,例如如下Xilinx Transceiver的定制选项:
尽管对于FPGA工程师只需要操作定制化的GUI选项,但是对于通道绑定以及时钟校正的了解还是很有必要的,君不知使用是建立在理解的基础之上的。
下面从一般的情况下对二者进行介绍,后续文章会涉略具体的transceiver的技术理解。
时钟校正
时钟校正技术是高速串行总线中几乎必要的技术,例如Xilinx 7系列的Transceiver,使用了一个弹性缓冲空间即FIFO来做时钟校正:
在后续文章具体介绍吉比特收发器协议时候会特定分析,这里给出通常情况下的时钟校正技术。
参考时钟源之间总是有一个很小的频率差异(通常是~+/-100ppm),即使它们名义上是相同的频率。因此,在每个MGT使用自己的参考时钟的系统中,每个MGT对其传输数据路径(TX)和接收数据路径(RX)使用的频率略有不同。
许多协议通过使用时钟校正来简化时钟。在时钟校正中,每个MGT包括一个异步FIFO。RX数据使用来自CDR(Clock and Data-Recovery)的串行时钟写入FIFO,并使用来自系统其他部分的并行时钟(本地时钟)从FIFO中读取,通常与用于TX的并行时钟相同。
由于CDR(Clock and Data-Recovery)时钟和本地时钟并不完全相同,除非进行校正,否则FIFO最终会溢出或不足。为了允许修正,每个MGT周期性地传送一个或多个特殊字符,允许接收方根据需要在FIFO中删除或复制这些字符。通过在FIFO太满时移除字符,在FIFO太空时复制字符,接收器可以防止溢出/下溢。这些特殊字符通常被称为SKIP。
大多数SERDES都内置了时钟校正选项。时钟校正涉及到数据流中其他地方找不到的唯一符号或符号序列。
时钟校正必须经常发生,以允许丢弃或重复以补偿时钟差异。通常,时钟校正序列也将与空闲序列相同。
一些系统不需要时钟校正。例如,在许多芯片间应用中,同一振荡器将为所有发送器提供参考时钟。使用相同的参考时钟和相同的速率意味着无需时钟校正。而且,当所有接收电路均从恢复的时钟开始计时时,不需要时钟校正。如果以相同的速率清空FIFO,则无需进行时钟校正。
同样,当所有发送参考时钟都使用外部PLL锁定到公共参考时,也不需要时钟校正。下列出了时钟校正序列之间的最大时钟数及其在各种振荡器频率下的精度。
接收和发送缓冲区
接收和发送缓冲区或FIFO是多吉比特收发器的主要数字接口。通常在这里写入和读取数据。在发送端,通常有一个小的FIFO,它要求读和写时钟是同步的(频率匹配,但不一定相位匹配)。
这里所谓的同步,即等时:频率匹配,但不一定相位匹配;
如果tx_write和tx_read选通脉冲的频率不完全相同,则使用不同的方案。此处,使用了较大的FIFO,并不断监视其当前状态。如果FIFO被填满,它将最终溢出。在这种情况下,将监视传入流中是否有空闲符号。遇到这些空闲字符时,不会将它们写入FIFO。
相反,如果在输出上找到空闲时FIFO处于低电平,则将数据带给用户。写指针未移动,导致重复空闲。重要的是,使用空闲符号代替字节对齐,逗号符号,时钟校正序列或通道绑定序列。所有这些都是在下游以一定的保证传输速率下所需要的。
MGT中内置的接收FIFO通常比发送(Tx)缓冲区深得多。其主要目的是允许进行时钟校正和通道绑定。
什么是通道绑定呢?下面给出答案!
通道绑定
有时,需要移动的数据量超出一个串行链路所能容纳的范围。在这些情况下,并行使用多个链路来传输数据。完成此操作后,输入流必须对齐。此过程通常称为通道绑定。通道绑定吸收了两个或多个MGT之间的偏斜,并将数据呈现给用户,就好像它是通过单个链路传输的一样。
许多协议将多个MGT连接结合起来,以创建一个单一的高吞吐量通道(如XAUI、PCI Express)。除非每个串行通道的长度完全相同,否则通道之间的偏斜会导致同一时间传输的数据在不同时间到达。
如下图示:
如上图通道绑定的示意图,通道绑定应该可以说是上述众多技术中最容易理解的技术了,下面给出定义:通道绑定即吸收两个或多个MGT之间的偏斜并将数据呈现给用户,就好像它是通过单个链路传输的一样。
通道绑定定义中提到了多个MGT之间的数据偏斜,通俗点说就是数据之间不对齐,如果在同一时刻采样数据,可能采样不到正确的对齐数据,导致这种偏斜的因素可能有哪些呢?
造成多个MGT之间数据偏斜的原因有如下几个:
- 传输路径长度的差异
- 传输路径上的有源中继器
- 因时钟校正而产生的差异
- 锁定/字节对齐的时间差异
总之,在多个高速串行通道中,由于环境的差异,会带来数据偏斜的问题,这很容易想象,虽说条条大路通罗马,但通往罗马的途中,不同道路遇到的阻碍是不同的,到达终点的时刻也是不同的。
既然如此,通道绑定技术是如何做到好像不感知数据偏斜而正确接收数据的呢?
通道绑定允许MGT补偿多个通道之间的偏移。MGT都会同时传输一个通道绑定字符(或字符序列)。当接收到该序列时,接收的MGT可以确定它们之间的偏移,然后调整其接收数据通路中的FIFO的延迟来进行补偿。
通道绑定序列必须唯一且可扩展,并且在下游必须忽略,因为它可能会添加或删除。通常,时钟校正序列和通道绑定序列之间的符号数最少。许多基于8b / 10b的标准协议在时钟校正和通道绑定序列之间指定了至少四个符号。因此,四个符号或字节是公共的分隔距离。
参考文献
ug476_7Series_Transceivers
Multi-gigabit transceiver
高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求
GTX-Channel-Bonding-in-kintex-7
pg168-gtwizard
注:本文首发在易百纳技术社区:高速串行总线设计基础(七)揭秘SERDES高速面纱之时钟校正与通道绑定技术
高速串行总线设计基础(七)揭秘SERDES高速面纱之时钟校正与通道绑定技术相关推荐
- 以太网口差分电平_高速串行总线设计基础(八)揭秘SERDES高速面纱之CML电平标准与预加重技术...
前言 物理信号 预加重 差分传输线 参考资料 前言 对于数字工程师来说,我们可能关注的仅仅是本文中的差分信号电平标准以及预加重技术,CML电平标准是Transceiver技术的首选,在Xilinx的G ...
- xilinx管脚差分端接_高速串行总线设计基础(八)揭秘SERDES高速面纱之CML电平标准与预加重技术...
前言 物理信号 预加重 差分传输线 参考资料 前言 对于数字工程师来说,我们可能关注的仅仅是本文中的差分信号电平标准以及预加重技术,CML电平标准是Transceiver技术的首选,在Xilinx的G ...
- 高速串行总线设计基础(八)揭秘SERDES高速面纱之CML电平标准与预加重技术
文章目录 前言 物理信号 预加重 差分传输线 参考资料 前言 对于数字工程师来说,我们可能关注的仅仅是本文中的差分信号电平标准以及预加重技术,CML电平标准是Transceiver技术的首选,在Xil ...
- 高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案
文章目录 前言 多相数据提取电路 线路编码方案 8B/10B编解码 运行差异(Running Disparity) 控制字符 Comma 检测 加扰技术 参考文献 前言 SERDES可以工作在多吉比特 ...
- 高速串行总线设计基础(三)SERDES的通用结构介绍
文章目录 前言 SERDES的基本构造 SERDES的通用框图 市场上的SERDES或Transceiver展示 Xilinx的Transceiver架构展示 Altera的SERDES介绍 往期回顾 ...
- 高速串行总线设计基础(四)眼图的形成原理
前言 眼图的形成原理 眼图的参数含义 眼图的模板 眼图的识别依据? 前言 眼图的测量对于高速串行总线的重要性不言而喻,眼图反映了总线通道环境的优劣,信号的好坏等等,正确的识别眼图是一项基础技能,如果具 ...
- 高速串行总线系列(2)高速串行总线技术总览
文章目录 嵌入式高速串行总线技术应用对比 SRIO总线 JESD204总线 PCIE SATA总线 Aurora FC标准 VPX架构 嵌入式高速串行总线技术应用对比 SRIO总线 SRIO(Seri ...
- HyperLynx(三十二)高速串行总线仿真(四)
高速串行总线仿真(四) 在上节的基础上 1.通过导出到LineSim验证一个串行通道 2.快速眼图仿真 3.高速串行总线设计注意事项 1.通过导出到LineSim验证一个串行通道 接下来,将导出网络到 ...
- HyperLynx(二十九)高速串行总线仿真(一)
高速串行总线仿真(一) 1.高速串行接口 2.SERDES(串行/解串器)架构 3.高速串行链路仿真拓扑结构 4.高速串行信号仿真流程 5.IBIS-AMI模型 6.高速串行信号仿真方法 随着电子产品 ...
最新文章
- 用java实现一个计算器程序_1.2第一个java程序——hello world
- 基于TableStore的数据采集分析系统介绍
- Java JFrame 和 Frame 的区别
- C/C++ _strlwr_s 函数 – 字符串大写转小写- C语言零基础入门教程
- 经典重温:《Attention Is All You Need》详解
- Java 实现Excel表数据的读取和写入 以及过程中可能遇到的问题
- HTTP404错误原因
- 蓝桥杯 2017年C语言组大学B组 C/C++
- 【最详细】数据结构(C语言版 第2版)课后习题答案全集 严蔚敏 等 编著
- GD32使用ST的HAL库和GD官方库的一些体会
- Android studio导入项目报错Please refer to the user guide chapter on the daemon at http://gradle.org/docs/2
- MapReduce----并行支持向量机(PSVM)第二部分之原始对偶内点法
- 小程序跳转样式布局错乱_微信小程序页面布局问题
- find7刷Android,OPPO Find 7刷Color OS 2.0教程
- ES索引重建reindex详解
- mysql中生成时间维度表
- java file 获取文件类型_Android中Java根据文件头获取文件类型
- Unity发布WebGL运行Js代码报错:‘Pointer_stringify‘ is obsoleted and will be removed in a future Unity version.
- mac电脑打不开应用程序的解决方法
- 硬盘分区MBR和GPT选哪个好?原来分个区还有这么多讲究!
热门文章
- windowsMobile 注册表136个操作
- [Keil 烧录器下载报错] “Flash Timeout. Reset the Target and try it again”
- 银行招考计算机专业考什么,银行笔试一般都考什么?
- 低电压的1.8V SDHC 接口静电保护
- SD/SDHC/SDXC区别
- Error creating bean with name ‘processEngine‘: FactoryBean threw exception on object creation; neste
- 伊诺ET-33夹式校(音器吉他/贝司/小提琴/尤克里里 使用
- 【2021最新综述】Deep Neural Approaches to Relation Triplets Extraction:A Comprehensive Survey
- Spring+SpringMVC+MyBatis明日方舟版人员信息管理系统前端页面代码前后端交互+SSM框架 管理员登录 游客登录 普通用户登录 人员的增删改查 信息更新 图片上传 分页查询)
- ESP12f/E(8266)以及STM32串口自动烧录电路