serdes 详细文档.pdf

上传人:大张伟 文档编号:8940219 上传时间:2021-01-26 格式:PDF 页数:37 大小:850.17KB
返回 下载 相关 举报
serdes 详细文档.pdf_第1页
第1页 / 共37页
serdes 详细文档.pdf_第2页
第2页 / 共37页
serdes 详细文档.pdf_第3页
第3页 / 共37页
serdes 详细文档.pdf_第4页
第4页 / 共37页
serdes 详细文档.pdf_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《serdes 详细文档.pdf》由会员分享,可在线阅读,更多相关《serdes 详细文档.pdf(37页珍藏版)》请在三一文库上搜索。

1、 第三章 技术技术 实现千兆位串行实现千兆位串行I/O的相关技术的相关技术 实际的串行实际的串行I/O 在前面的章节中,我们分析了输入/输出(I/O)设计将面临的一些挑战。同时,我们也注意到 串行I/O可以提供很多优点。但是,一名设计工程师怎样才能真正充分利用串行I/O的各种技 术呢?在开始设计之前,我们需要知道什么对于实现串行I/O是有益的。我们需要研究一些 基于串行设计的单元器件,从而了解一下是否有现成的工具可以帮助实现串行I/O。 千兆位串行的实现千兆位串行的实现 在本章中,我们讨论了千兆位(multi-gigabit)链路设计的相关技术,同时也会介绍一下串 行器/解串器(SERDES)

2、及其基本构成单元,最后我们还讨论了所有这些速率是如何达到的 (图3-1)。我们还将从逻辑和物理两个层面回顾串行数据流的格式。本章的内容是千兆位 I/O设计的基础。 XILINX19 轻松实现高速串行 I/O轻松实现高速串行 I/O 串行器串行器/解串器解串器 串行器串行器/解串器和解串器和CDR的历史的历史 串并转换和并串转换一开始就是I/O设计的一部分。时钟恢复,或“把时钟锁定在输入 比特流上”也早就是I/O设计的一部分。那么为什么SERDES突然变得这么重要呢? 图3-1 SERDES结构框图 随着集成电路尺寸的变小,最大翻转速率(Fmax)的增大,I/O的带宽需求也日益增加。 事实上,一

3、些技术甚至允许I/O的频率比Fmax还要快。 Fmax:在给定技术或领域中,触发器的最大翻转速率:在给定技术或领域中,触发器的最大翻转速率 20XILINX 技术技术 基本工作原理和总体框图基本工作原理和总体框图 让我们来看看SERDES的基本构成模块(图3-2)。 图 3-2 SERDES总体结构框图 串行器串行器:将速率为y的n位宽并行数据转变成速率为n*y的串行数据。 解串器解串器:将速率为n*y的串行数据转变成速率为y的n位宽并行数据。 Rx(接收)对齐(接收)对齐:将接收的数据对齐到合适的字边界。可以使用不同的方法,从自动检 测和对齐特殊的预留比特序列(通常也称作comma字符),到

4、用户控制的比特调整。 时钟管理器时钟管理器:管理各种时钟操作,包括时钟倍频,时钟分频,时钟恢复。 发送发送FIFO(先进先出)(先进先出):在输入数据发送之前,暂时保存数据。 接收接收FIFO:在接收数据被提取之前,暂时保存数据。在需要时钟修正的系统中,接 收FIFO是必须的。 接收线路接口 接收线路接口: 模拟接收电路, 包括差分接收器, 还可能包括有源或者无源均衡电路。 发送线路接口发送线路接口:模拟发送电路,可以支持多种驱动负荷。通常还带有转换的预加重部分。 线路编码器线路编码器:将数据编码成适应不同线路的格式。编码器通常会消除长的无转变位的 序列,同时还可以平衡数据中0、1的出现次数。

5、(这是一个可选模块,某些SERDES 可能没有。) 线路译码器线路译码器:将线路上的编码数据分解成原始数据。(这是一个可选模块,编码可能 在SERDES外完成。) 时钟修正和通道绑定时钟修正和通道绑定:修正发送时钟和接收时钟之间的偏差,同时也可实现多通道间 的歪斜修正。(通道绑定是可选的,并不一定包含在SERDES中。) XILINX21 轻松实现高速串行 I/O轻松实现高速串行 I/O 其他可能包括的功能模块有:循环冗余检测(CRC)码生成器、CRC检测器、多种编码 和解码(4b/5b,8b/10b,64b/66b)、可调的扰码器、各种对齐和菊花链选项,以及可配置的时 钟前端和后端。 SER

6、DES的常用功能还包括不同等级的自环。市场上有多种商用的SERDES。图 3-3和 图 3-4给出了几种SERDES的结构框图。 图3-3 :VirtexTM-Pro X RocketIO结构框图 22XILINX 技术技术 图3-4 :VirtexTM-Pro X RocketIO结构框图 为何为何SERDES速度如此之快?速度如此之快? 人们多少会觉得千兆位SERDES是不可思议:它们就像魔法一样。千兆位SERDES可以工作 在3、5甚至10Gb/s。它怎么可能达到这么高的速度呢?千兆位SERDES可以使用多种技术来 实现这种工作速度。 这些技术中多数都采用了多重相位技术(图3-5和图3-

7、6)。通过分析多重相位数据提取 电路,我们可以知道多重相位有何帮助。如果输入的串行数据流比特率为x,那么我们可以 使用多重相位以x/4的低速时钟来重新组织数据流。输入的数据流直接连接到4个触发器,每 一个触发器运行在时钟的不同相位上(0、90、180 以及270)。 XILINX23 轻松实现高速串行 I/O轻松实现高速串行 I/O 图 3-5 多重相位数据提取电路 24XILINX 技术技术 图3-6 多重相位提取电路的示例波形 每个触发器的输出连接到时钟相位小90度的触发器,直到到达时钟相位为0 的触发器。 这样,输入数据流就被分解成了1/4输入速率,4bit宽度的并行数据流。 在上述的示

8、例电路中,相位等差排列,时钟频率严格等于输入数据流速率的1/4。怎样 才能实现呢?我们必须和输入的数据流保持锁定。我们可以使用典型的锁相环来实现这一 点,但是锁相环需要一个全速率的时钟,这是很难满足的。锁相环是高速SERDES设计中最 重大的改进之一, 它主要用于时钟和数据恢复。 一般的锁相环需要有运行在数据速率上的时 钟,不过可以通过多种技术来避免这种要求,包括分数鉴相器、多重相位锁相环、并行采样 以及过采样数据恢复。 线路编码机制线路编码机制 线路编码机制将输入的原始数据转变成接收器可以接收的格式。 同时, 线路编码机制还必须 保证有足够的切换提供给时钟恢复电路。 编码器还提供一种将数据对

9、齐到字的方法, 同时线 路可以保持良好的直流平衡。 XILINX25 轻松实现高速串行 I/O轻松实现高速串行 I/O 线路编码机制也可选择用来实现时钟修正、块同步、通道绑定和将带宽划分到子通道。 线路编码机制主要有两种数值查找机制和自修改数据流或扰码器机制。 8b/10b编码编码/解码解码 8b/10b编码机制是由IBM开发的,已经被广泛采用。8b/10b编码机制是Infiniband,千兆位以 太网,FiberChannel以及XAUI 10G以太网接口采用的编码机制。它是一种数值查找类型的编 码机制,可将8位的字转化为10位符号。这些符号可以保证有足够的跳变用于时钟恢复。表 3-1给出了

10、几个例子,例子中的8位数值会导致很长时间不出现切换。8b/10b将12个特殊字符 编码成12个控制字符,通常也称作“K”字符。我们将对K字符详细了解,但首先让我们看 一下8b/10b是如何保证了良好的直流平衡性能。 表3-1 8位数值 8位数值位数值 10位符号位符号 00000000 1001110100 00000001 0111010100 运行不一致性(运行不一致性(Running Disparity) 8b/10b中的直流平衡是通过一种称作“运行不一致性”的方法来实现的。实现直流平衡的最简 单办法是:只使用有相同个数0和1的符号,但是这将限制符号的数量。 而8b/10b则为各个数值分

11、配了两个不同的符号。在大多数情况下,其中一个符号有6个0 和4个1, 另一个符号则有4个0和6个1。 编码器检测0和1的数量, 并根据需求选择下一个符号, 以保证线路的直流平衡。这两个符号通常也称作+和-符号。表3-2给出了一些符号示例。 表3-2 8b/10b 符号示例 名称名称 16进制进制 8位位 负运行不一致性负运行不一致性 正运行不一致性正运行不一致性 D10.7 EA 11101010 0101011110 0101010001 D31.7 FF 11111111 1010110001 0101001110 D4.5 A4 10100100 1101011010 001010101

12、0 D0.0 00 00000000 1001110100 0110001011 D23.0 17 00010111 1110100100 0001011011 “运行不一致性”的另一个优点是接收器可以通过监控运行不一致性, 并检测输入数据中的错 误,因为此时数据违反了运行不一致性规则。 26XILINX 6 个0 ,正运行 6 个1,负运行 技术技术 控制字符控制字符 表 3-3列出了12个称作控制字符或K字符的特殊符号 表 3-3 有效的控制K字符 名称名称 16进制进制8位位 负运行不一致性负运行不一致性 正运行不一致性正运行不一致性 K28.0 1C 00011100 00111101

13、00 1100001011 K28.1 3C 00111100 0011111001 1100000110 K28.2 5C 01011100 0011110101 1100001010 K28.3 7C 01111100 0011110011 1100001100 K28.4 9C 10011100 0011110010 1100001101 K28.5 BC 10111100 0011111010 1100000101 K28.6 DC 11011100 0011110110 1100001001 K28.7 FC 11111100 0011111000 1100000111 K23.7

14、F7 11110111 1110101000 0001010111 K27.7 FB 11111011 1101101000 0010010111 K29.7 FD 11111101 1011101000 0100010111 K30.7 FE 11111110 0111101000 1000010111 这些控制字符用于对齐,控制以及将带宽划分成为子通道。 Comma字符检测字符检测 数据的对齐是解串器的一项重要功能,图3-7给出了串行流中的有效8b/10b数据示例。 图3-7 串行数据流中的有效8b/10b符号 XILINX27 低5位值 高三位值 轻松实现高速串行 I/O轻松实现高速串行

15、 I/O 我们如何知道符号的边界呢?符号被comma字符隔开。 此处comma字符包括一个或两个 符号,用于指定comma或对齐序列。收发器中这个序列通常是可以设置的,不过有时序列是 预先定义好的。 comma字符:用于表示对齐序列的一个或两个符号字符:用于表示对齐序列的一个或两个符号 接收器在输入数据流中扫描搜寻特定的比特序列。 如果找到序列, 解串器调整字符边界 以匹配检测到的comma字符序列。扫描是连续进行的。一旦对齐确定,所有后续的comma 字符均会发现对齐已经确定。当然,在任意的序列组合里comma字符序列必须是唯一的。 举个例子,如果我们使用符号c作为comma字符,则我们必须

16、确保任意有序符号集xy中 都不包含比特序列c。使用预定义协议时是不出现这个问题的,因为comma字符都是已经定 义好的。 常用的K字符是全部控制字符中的一个或多个特定子集。这些子集中包含K28.1 K28.5 K28.7,这些字符的头7位都是1100000。这种比特序列模式只可以在这些控制字符中出现。 其他任意的字符序列或者其他K字符都不包含这一比特序列。因此,这些控制字符是非常理 想的对齐序列。 在使用自定义协议的情况下, 最安全且最常用的解决方案是从比较著名的协 议中“借”一个序列。千兆位以太网使用K28.5作为comma字符。鉴于这个原因,尽管在技术 上还有其他的选择,这个字符还是经常被

17、当作comma字符。 控制字符的命名方式源于编码器和解码器构建方式,例如:D0.3和K28.5,图3-8 描绘 了这种方法。 图3-8 编码器/解码器结构框图 输入的8位比特被分割到5位和3位的总线上,这就是其名字的来源。举例说明,Dx.y表 示最低5位的数值对应十进制值x,而最高3位的数值对应十进制值y的输入字节。 28XILINX 技术技术 K表示控制字符。3位转化为4位,5位转化为6位。另一种命名方式中, 8位比特对应于 HGFEDCBA,而10位比特对应于abcdeifghj。 开销是8b/10b机制的一个缺陷。为了获得2.5Gbit的带宽,需要3.125Gb/s的线路速率。使 用扰码

18、技术可以很容易地解决时钟发送和直流偏置问题,并且不需要额外的带宽。 扰码扰码 扰码是一种将数据重新排列或者进行编码以使其随机化的方法, 但是必须能够解扰恢复。 我 们希望打乱长的连0和长的连1序列,将数据随机化。显然,我们希望解扰器在解扰时不需要 额外的对齐信息。具有这种特性的码称作自同步码。 扰码:一种将数据重新排列或者编码以使其随机化的方法,但必须能解扰恢复。扰码:一种将数据重新排列或者编码以使其随机化的方法,但必须能解扰恢复。 一个简单的扰码器包含一组排列好的触发器, 用于移位数据流。 大部分的触发器只需要 简单地输出下一个比特即可, 但是某些触发器需要和数据流中的历史比特相与或者相或。

19、 图 3-9 描述了此概念。 图3-9 基本扰码电路 扰码方法通常是伴随着多项式出现的, 因为扰码的数学原理中使用了多项式。 多项式的 选择通常是基于扰码的特性,包括生成数据的随机度,以及打乱长的连0、连1的能力。扰码 必须避免生成长的连0或连1序列。 XILINX29 轻松实现高速串行 I/O轻松实现高速串行 I/O 我们希望能够加快触发器的时钟速率。 但是想要达到诸如10Gb/s的高速率不是能轻易办 到的。但是,还是有方法可以将任意形式的串行数据并行化为y位宽度的并行数据,从而加 快进程。如图3-10所示。 图3-10 并行扰码电路 扰码器消除了长连0、 连1序列以及其他会对接收器接收能力

20、有负面影响的序列。 但是线 路编码机制(例如:8b/10b)的其他功能不是由扰码器提供的,包括: 字对齐 时钟修正机制 通道绑定机制 子通道生成 某些情况下后三种功能可能是不需要的, 而字对齐通常是必要的。 如果线路编码使用了 扰码, 那么字对齐也必须采用相应的方法。 例如, 我们可以将某些数值排除在容许的数据 (或 者有效载荷)数值之外。此后,我们可以使用这些禁用的值来创建一个比特流,这个比特流 不会在序列的数据部分中出现(图3-11)。 图 3-11 为扰码设计的数据帧格式 30XILINX 技术技术 通常,因为存在不允许的数值,所以需要设计数据流中不能出现连0或连1的长度。长的 连0、连

21、1会被扰码器打乱,并在解扰时进行恢复。接收数据流的解扰逻辑在数据流中搜寻这 些符号并对齐数据。类似的技术还可用于建立其他特性。 4b/5b 64b/66b 4b/5b和8b/10b是类似的, 但是要简单些。 顾名思义, 这种机制将4个比特编码成5个比特。 4b/5b的编码器和解码器要比8b/10b简单一些。但是4b/5b的控制字符要少一些,并且不能处 理直流平衡和不一致性问题。由于编码开销相同但是功能却比较少,4b/5b编码机制并不经 常使用。它的最大优势是设计的尺寸,不过随着逻辑门价格的降低这个优势也不再明显。 4b/5b仍用在各种标准中,包括低速率版本的FiberChannel、音频工程协

22、会-10(AES-10)以 及多通道数字音频接口(MADI,一种数字音频复接标准)。 还有一种新的编码方式称作64b/66b 。我们可以认为64b/66b是8b/10b的简化版本,它具 有更低的编码开销,但是实现细节相当不同。 在现有的技术用户需求下, 人们开发出了64b/66b机制。10G以太网协会要求实现基于以 太网的10Gb/s通信。他们可以通过使用4条有效载荷速率为2.5Gb/s、线路速率为3.125Gb/s的 链路来实现,但此时SERDES已经可以在单个链路上实现10Gb的解决方案。此时新型 SERDES的运行速率已经可以略高于10Gb/s了,但还不能达到12.5Gb/s以支持8b/

23、10b的开销。 激光驱动二极管是另一个问题。电信标准同步光网络(SONET)使用的激光器性能刚 好超过10Gb。而高速激光器的价格要昂贵的多。千兆位以太网协会要么选择放弃,要么开 发出一种低开销的新方法来取代8b/10b。所以他们选择了64b/66b。 64b/66b:一种为:一种为10G以太网开发的新型线路编码机制,它使用了带有非扰码同步字符和控 制字符的扰码方式。 以太网开发的新型线路编码机制,它使用了带有非扰码同步字符和控 制字符的扰码方式。 不同于8b/10b的查找表方式,64b/66b使用了带有非扰码同步字符和控制字符的扰码方 式。图3-12示意了64b/66b编码机制。 图3-12

24、 64b/66b框图 XILINX31 轻松实现高速串行 I/O轻松实现高速串行 I/O 主帧的类型主要有两种。简单的主帧包括两位同步比特01以及 64位的数据。数据经过 扰码处理,但是同步比特则不进行扰码处理。另一种主帧即可以是数据也可以是控制信息。 控制帧的前两位是同步比特10。类型域的8比特定义其余56位有效载荷的格式。举例说明, 如果类型是十六进制0 xcc,则该帧包含4个字节的数据和3个字节的控制信息(图3-13)。 图 3-13 0 xcc 类型示例类型示例 此处还存在一个和帧相关的0位宽符号(图3-14)。 图3-14 0 xcc Type及符号示例及符号示例 怎样产生一个0位宽

25、的符号?这个符号实际上并不是真的0比特, 而是映射在有效载荷中 的类型字节的一部分。类型域中有8个比特,允许存在256种不同类型的有效载荷。大多数 64b/66b系统定义了约15种不同的类型。这15种类型的简单定义是:x位数据伴随y位控制比 特。也可以反过来是x位控制比特伴随y位数据。通常可以使用某些0位宽符号来定义这些数 据/控制符号的位置。 32XILINX 技术技术 常用的0位宽符号是t(结尾)和s(开始)。图3-15给出了一种64b/66b机制的全部控制块格 式列表。 图3-15 64b/66b的控制模块格式列表 仔细观察此表就会发现0符号。这个符号用于定义有序集。这样就可以允许使用8

26、b/10b 编码机制的协议转而使用64b/66b编码机制。 现在, 让我们来实际讨论一种线路编码机制。 我们将仔细研究编码机制的各种主要功能, 并了解它们是如何实现的。 充足的跳变充足的跳变 有效载荷段的扰码可以提供足够的转变用于时钟恢复。 细心选择的扰码器同时还可以解决直 流偏置问题。64b/66b中使用的扰码器是X58 + X19 + 1。 XILINX33 轻松实现高速串行 I/O轻松实现高速串行 I/O 对齐对齐 64b/66b的对齐程序和其他方法不同。图3-16中显示了它是如何工作的。 图3-16 64b/66b对齐程序 每66位中都会有01或10的同步比特。 在比特流的其他地方也会

27、出现这样的比特组合。 对 齐程序首先随机选择一个起点。它首先搜寻有效的同步(01或者10组合),如果没有找到, 则移动一位然后重新检测。一旦找到01或者10组合,则检查后续的66个比特。如果后续比特 中包含一个有效同步符号,则计数器增1,然后继续检测后面的66个比特。如果在一行中能 够连续检测到足够多的同步符号,而且没有发生错误,则确定对齐。如果检测过程中出现任 何错误,则计数器清零。 一旦对齐位置锁定, 错误的同步符号将被认为是错误。 如果在一段时间内发生了足够多 的错误,则对齐位置将重新估计。乍一看,这种方法可以在最大有效同步尝试内(+66或者 更少)完成锁定。但是因为数据窗中出现类似的0

28、1或10序列概率很大,所以排除这些错误路 径会花费很多时间。 为了加快锁定时间, 建议使用其他的可选协议。 这些协议中用特殊的训练序列或锁定序 列来替换数据,从而可以实现简单的定位。 时钟修正时钟修正 时钟修正可以在字节、 多字节边界或66位码字内进行。 时钟修正符号可以是一种特殊的码字。 码字的有效载荷内不包含任何有用信息,在必要的时候可以重复或者删除。除此之外,一个 字节宽度的时钟修正符号可以被定义作为任意的未用值。当然,如果我们使用的SERDES只 支持上述方法中的一种,我们就使用这种特定方法。单字节宽度的方法是最常用的方法,因 为它可以有较小的接收FIFO缓冲器而且能够更好地兼容现存的

29、协议。 通道对齐通道对齐 通道对齐的操作很类似于时钟对齐, 既可以是一个特殊符号, 也可以是包含在控制信息中的 特定序列。 子通道子通道 子通道的处理也和时钟对齐类似, 既可以是一个特殊符号, 也可以是包含在控制信息中的特 定序列。 4b/5b 64b/66b 的权衡折衷的权衡折衷 通过开销编码方法等功能的使用,10G以太网可以采用现存的SONET类型的激光二极管。除 了使用相同的激光二极管,这种方法和SONET还有很多相似之处;SONET的定位原理中有 很多和这种方法是相同的,但是要比64b/66b复杂的多。 34XILINX 技术技术 低开销的代价是更长的对齐时间、 出现轻微直流偏置的可能

30、性和更加复杂的编码器和解 码器。 很多复杂处理使得64b/66b的电路比它们的近亲8b/10b要复杂的多, 例如启用或者关闭 有效载荷的扰码器就是很复杂的过程。解码器启用和使用也更加复杂了。 包简介包简介 部分设计师觉得在局域网上用包来传输所有数据完全是一种浪费。 我们首先从包的定义来开 始研究这个问题。 包:一种确切定义的字节集合,包括头部、数据和尾部。包:一种确切定义的字节集合,包括头部、数据和尾部。 注意,定义中没有包括源地址和目的地址、CRC校验码、最小长度、或者开放系统互连 协议层。包只不过是一个定义了起点和终点的数据结构。局域网的包通常有很多特性,但是 其他用途的包则通常要简单得多

31、。 包用于各种场合下的信息传递例如汽车动力布线、 手机以及家庭娱乐中心等等。 但是, 包和千兆位串行链路有什么关系呢? 通过千兆位串行链路传输的数据多数都是嵌入在某种类型的包中的。SERDES自然需要 一种将输入的数据流对齐成字的方法。 如果系统需要时钟修正, 还必须发送特殊的比特序列 或者comma字符。comma字符是指示帧的开始和结束的天然标识。如果需要时钟修正,时钟 修正序列常常是比较理想的字符。 加入有序集合用于指示包的开始、 结束以及包的特殊类型 之后,我们就有了一个简单而又强大的传输通道。 idle符号或序列是包的概念的另一要点。如果没有信息需要发送,则发送idle符号。数据 的

32、连续传输保证链路能够维持对齐, XILINX35 轻松实现高速串行 I/O轻松实现高速串行 I/O 同时PLL可以保持恢复时钟锁定。图 3-17给出了一些不同标准的包格式。 图 3-17 包格式框图 参考时钟的要求参考时钟的要求 千兆位级收发器的输入时钟、 或是参考时钟的规格定义是非常严格的。 其中包含非常严格的 频率要求,通常用每百万次容许频率错误的单位PPM来定义。抖动要求也是十分严格的,通 常用时间(皮秒)或者时间间隔(UI)定义。 PPM:百万分之一;用来描述非常小的比率。:百万分之一;用来描述非常小的比率。 UI:时间间隔;等价于一个符号的时间长度,例如:时间间隔;等价于一个符号的时

33、间长度,例如:0.2UI = 20%的符号时间。的符号时间。 抖动:理想传输位置的偏差。抖动:理想传输位置的偏差。 如此严格的规定才使得PLL和时钟提取电路能够正常工作。通常系统的每一个印刷电路 板都需要有一个精确石英晶体振荡器供MGT使用。这些晶体振荡器的精确度比大多数用在 数字系统中的晶体振荡器要高一个级别,而且价格也要高出一截。很多情况下,一般的时钟 发生芯片和PLL因为带有很大的抖动,而不能用于MGT。 36XILINX 技术技术 图3-18给出了一些最新发布的时钟生成单元,其性能十分优越,可以用在千兆位级SERDES 中。 图3-18 低抖动晶体振荡器规格 时钟修正时钟修正 传输时钟

34、有非常严格的抖动要求,所以千兆位SERDES通常不能将恢复时钟作为传输时钟。 每一个PCB集合都有唯一的振荡器和唯一的频率。 如果两个1GHz的振荡器仅仅有1PPM的频 差, 同时我们提供1/20 th的参考时钟, 则数据流的时钟每秒钟可能会增加或者缺失20,000个周 期。因此,在8b/10b编码的系统中,每秒将会额外增加或者损失2万个符号。 大多数的SERDES都有时钟修正选项。时钟修正需要使用唯一的符号或者符号序列,它 们在数据流中是不会出现的。 因为时钟修正是对齐的后续处理, 所以可以比较容易地通过保 留一个K字符、或者一组有序的K字符、或者一个时钟修正数据序列来实现。 XILINX3

35、7 轻松实现高速串行 I/O轻松实现高速串行 I/O 某些情况需要使用4个符号的时钟修正序列。时钟修正通过检测接收FIFO来完成其工作。如 果FIFO接近于满,则查找下一个时钟修正序列而不将数据序列写入FIFO。这种操作称作丢 弃。相反地,如果FIFO接近于空,则查找下一个时钟修正序列,同时它会被两次写入FIFO。 这种操作通常也称作重复。 时钟修正进行的频数必须足够多, 从而可以通过丢弃或者重复来补偿时钟的差异。 时钟 修正序列和idle序列通常也是一样的。 有些系统并不需要时钟修正。例如,在很多芯片到芯片(chip-to-chip)的应用中,同一 个振荡器为所有收发器提供参考时钟。 相同的

36、参考时钟和相同的速率意味着不需要进行时钟 修正。同样,如果所有接收电路的时钟都来自恢复时钟,那么时钟修正也是不需要的。如果 FIFO的写入速率和读出速率相等,也没有必要进行时钟修正。 如果所有的传输参考时钟都是通过一个外部的PLL锁定在一个公共的参考频率上,那么 也不需要时钟修正。对于高精确度的串行数字视频链路来说,这是常用的一种结构。所有的 传输时钟都是从一个公共的视频参考中获取的。 无法锁定到这个信号往往将导致自由滑动的 视频流,相对于其他的锁定信号。在1G或2G速率上实现是比较简单的,但是设计一个能够 用于10Gb链路且有足够精度的参考时钟是非常有挑战性的。 表 3-4给出了在不同晶振频

37、率和晶振精度下时钟修正序列之间的最大时钟周期数。 表3-4 时钟修正表 修正前的最大周期数修正前的最大周期数 振荡 器频 率 振荡 器频 率 (MHz) 晶振 精度 晶振 精度 (PPM) 线路 速率 线路 速率 (GB/s) Fmax (MHz) Fmin (MHz) 差异差异/ 周期周期 (ps) Remove1 序列序列 Remove2 序列序列 Remove3 序列序列 Remove 4 序列序列 156.25 100 3.125 156.2656 156.2344 1.2800 4,999 9,999 14,998 19,998 156.25 50 3.125 156.2578 15

38、6.2422 0.6400 9,999 19,998 29,998 39,997 156.25 20 3.125 156.2531 156.2469 0.2560 24,999 49,999 74,998 99,998 125 100 2.500 125.0125 124.9875 1.6000 4,999 9,998 14,998 19,997 125 50 2.500 125.0063 124.9938 0.8000 9,999 19,998 29,998 39,997 125 20 2.500 125.0025 124.9975 0.3200 24,999 49,998 74,998 9

39、9,997 62.5 100 1.250 62.5063 62.4938 3.2000 4,999 9,998 14,998 19,997 62.5 50 1.250 62.5031 62.4969 1.6000 9,999 19,998 29,998 39,997 62.5 20 1.250 62.5013 62.4988 0.6400 24,999 49,998 74,998 99,997 接收和发送缓冲器接收和发送缓冲器 接收和发送缓冲器,即FIFO,是千兆位级收发器的主要数字接口。FIFO通常是数据写入和 读出的地方。发送端通常有一个小型的FIFO,它要求读取和写入的时钟是等时同步 (

40、isochronous)的(频率匹配但相位不一定匹配) 。 38XILINX 技术技术 等时同步(等时同步(isochronous):频率匹配但是相位不一定匹配。):频率匹配但是相位不一定匹配。 如果tx_write和tx_read选通信号不是工作在精确相同的频率,则通常采用另外的方法。 此时,需要使用一个较大的FIFO,同时要求持续不断地检测FIFO的当前状态。如果FIFO被 不断地填充,将最终导致溢出。在这种情况下,必须在输入数据流中检测idle符号。如果检 测到idle符号,则不把idle符号写入FIFO。 反过来,如果FIFO运行较慢则在输出数据流会出现idle符号,数据被传送给用户。

41、此时 写指针保持不动,不断重复idle符号。使用idle符号而不使用字节对齐、comma字符、时钟修 正序列或者通道绑定序列,这一点是非常重要的。为了保证一定的发送速率,所有这些序列 都是必需的。 相对于发送缓冲器而言,MGT内建的接收FIFO通常需要有更深层次的考虑。它的主要 目的是为了实现时钟修正和通道绑定。 通道绑定通道绑定 有时候我们需要传送的数据会超过一条串行链路的承载能力。 在这种情况下, 可以同时使用 多条链路来并行传输数据。如果使用这种方式,则输入的数据流必须是对齐的。这个过程通 常称作通道绑定。通道绑定可以吸收两个或多个MGT之间的偏差,将数据提交给用户,就 像只使用一条链路

42、进行传送一样。 图 3-19 通道绑定框图 XILINX39 轻松实现高速串行 I/O轻松实现高速串行 I/O 通道绑定:吸收两个或多个通道绑定:吸收两个或多个MGT之间的偏差,将数据提交给用户,就像只使用一条链路 进行传送一样。 之间的偏差,将数据提交给用户,就像只使用一条链路 进行传送一样。 不同MGT间数据偏差的一些主要原因: 传输通道长度的偏差 传输通道的有源中继器 时钟修正引起的偏差 锁定和字节对齐引起的时间偏差 因为通道绑定需要涉及到收发器之间的通信,所以具体的细节因厂家、器件而异。但是 它们有一些共同的特性,例如:指定一个通道作为主通道,指定从通道,还可能需要指定前 向从通道。三

43、级通道绑定包括一个主通道和前向从通道,所以通常也称为两-跳通道绑定。 通道绑定序列必须是唯一的而且是可扩展的, 因为可能会添加或丢弃通道绑定序列, 所 以下行链路中必须忽略。 通常时钟修正序列和通道绑定序列之间会有最小间隔符号数。 很多 基于8b/10b的标准协议规定时钟修正序列和通道绑定序列之间至少需要间隔四个符号。因 此,四个符号或字节是比较常用的间隔距离。 物理信号物理信号 千兆位级SERDES的物理实现普遍采用基于差分的电气接口。常用的差分信号方法有三种 低电压差分信号(LVDS)、低电压伪射级耦合逻辑(LVPECL)和电流模式逻辑(CML)。千兆 位链路通常使用CML。CML采用最常

44、用的接口类型,并且通常都会提供AC或DC端接以及 可选的输出驱动。部分输入还提供了内建的线路均衡和/或是内部端接。通常端接的阻抗也 是可选的。 前端和后端共同组成了物理接口前端和后端共同组成了物理接口 CML:电流模式逻辑;一种基于差分的电气接口,很适合于千兆位链路。:电流模式逻辑;一种基于差分的电气接口,很适合于千兆位链路。 40XILINX 技术技术 图3-20给出了一个CML型的驱动电路。 这些高速驱动电路的原理非常简单。 两个电阻中 的一个始终都有电流通过,并且此电流和通过另一个电阻的电流不同。图 3-21 给出了一个 MGT接收器的示意图。 图 3-20 CML 驱动电路 图3-21

45、 MGT接收器 XILINX41 轻松实现高速串行 I/O轻松实现高速串行 I/O 图3-22和图3-23给出了模拟前端和后端的数据资料。 图3-22 差分接收器参数 图3-23 差分发送器的参数 预加重预加重 千兆位级驱动器最重要的特性可能就是预加重的能力。 预加重是在转变开始前的有意过量驱 动。如果没有相关的经验,这看起来会像是一个缺陷;看起来就象是一个不好的设计可能发 生的上冲和下冲。为了弄懂这么做的意图,我们需要理解符号间干扰。 预加重:转变起始的有意过量驱动。预加重:转变起始的有意过量驱动。 42XILINX 技术技术 如果串行流包含多个比特位时间的相同数值数据,而其后跟着短比特位(

46、1或2)时间的 相反数据数值时,会发生符号间干扰。介质(传输通道电容)在短位时间过程中没有足够的 充电时间,因此产生了较低的幅度。 码间干扰(码间干扰(ISI):符号间的干扰如果串行流包含有多个比特位时间的相同数值数据, 而其后跟着短比特位( ):符号间的干扰如果串行流包含有多个比特位时间的相同数值数据, 而其后跟着短比特位(1或或2)时间的相反数据数值时,会发生符号间干扰。)时间的相反数据数值时,会发生符号间干扰。 在符号间干扰的情况下, 长时间的恒定值将通道中的等效电容完全的充电, 在紧接着的 相反数据数值位时间内无法反相补偿。所以,相反数据的电压值有可能不会被检测到。图 3-24、图3-25、图3-26给出了这种现象的示意。这个问题的解决方法是:转变开始时加入过 量驱动,而在任意的连续相同数值时间内减少驱动量,这种过程有时也称作去加重。 图 3-24 符号间干扰

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1