大多数的SERDES都有时钟修正选项。时钟修正需要使用唯一的符号或者符号序列,它们在数据流中是不会出现的。因为时钟修正是对齐的后续处理,所以可以比较容易地通过保留一个K字符、或者一组有序的K字符、或者一个时钟修正数据序列来实现。时钟修正进行的频数必须足够多,从而可以通过丢弃或者重复来补偿时钟的差异。当然,有些系统并不需要时钟修正。例如,相同的参考时钟和相同的速率意味着不需要进行时钟修正。同样,如果所有接收电路的时钟都来自恢复时钟,那么时钟修正也是不需要的。如果FIFO的写入速率和读出速率相等,也没有必要进行时钟修正。如果所有的传输参考时钟都是通过一个外部的PLL锁定在一个公共的参考频率上,那么也不需要时钟修正。
3线路编码机制
线路编码机制将输入的原始数据转变成接收器可以接收的格式。同时,线路编码机制还必须保证有足够的切换提供给时钟恢复电路。编码器还提供一种将数据对齐到字的方法,同时线路可以保持良好的直流平衡。线路编码机制也可选择用来实现时钟修正、块同步、通道绑定和将带宽划分到子通道。线路编码机制主要有两种:数值查找机制和自修改数据流或扰码器机制。目前常用的有:8B/10B编码、4B/5B编码以及扰码。
1)8b/10b编码
8b/10b编码机制是由IBM开发的,已经被广泛采用。8b/10b编码机制是Infiniband,吉比特以太网,FiberChannel以及XAUI 10G以太网接口采用的编码机制。它是一种数值查找类型的编码机制,可将8位的字转化为10位符号。这些符号可以保证有足够的跳变用于时钟恢复。8b/10b编码具有良好的直流平衡特性,通过―运行不一致性‖的方法来实现,即只使用有相同个数0和1的符号,但这会限制符号的数量。同时,8b/10b中的comma字符(用于表示对齐序列的一个或两个符号)可辅助数据对齐。
8b/10b机制能带来字对齐、时钟修正机制、通道绑定机制和子通道生成等功能,其唯一的缺陷是开销。为了获得2.5Gbit的带宽,它需要3.125Gb/s的线路速率。从减小开销的角度讲,下面所讲述的扰码技术可以很容易地解决时钟发送和直流偏置问题,并且不需要额外的带宽。
2)4b/5b编码
4b/5b和8b/10b是类似的,但是要简单些,将4个比特编码成5个比特。4b/5b的控制字符要少一些,但不能处理直流平衡和不一致性问题。由于编码开销相同但是功能却比较少,4b/5b编码机制并不经常使用。它的最大优势是设计的尺寸,不过随着逻辑门价格的降低这个优势也不再明显。目前,4b/5b仍用在各种低速标准中,包括低速率版本的光纤通路、音频标准AES-10以及多通道数字音频复接标准MADI接口中。 3)扰码
扰码是一种将数据重新排列或者进行编码以使其随机化的方法,但要求必须能够通过解扰恢复。加扰的目的就是打乱长的连0和长的连1序列,将数据随机化。一般将那些在解扰时不需要额外对齐信息的扰码称作自同步码。扰码发生器通常由移位寄存器组成,所占用的硬件资源很少。
扰码器消除了长连0和长连1序列以及其它会对接收器接收能力有负面影响的序列,但并不能取代8b/10b编码。在实际中,由于存在不允许的数值,所以需要设计数据流中不能出现连0或连1的长度。长的连0、连1会被扰码器打乱,并在解扰时进行恢复。接收数据流的解扰逻辑在数据流中搜寻这些符号并对齐数据。
4.接收和发送缓冲器
接收和发送缓冲器,是吉比特级收发器的主要数字接口,通常是高速FIFO。发送端通常有一个小型的FIFO,它要求读取和写入的时钟是等时同步的(频率匹配但相位不一定匹配)。如果接收和发送的选通信号不是工作在精确相同的频率,则通常需要使用一个较大的FIFO,并持续检测FIFO的当前状态。如果FIFO被不断地填充,将最终导致溢出。在这种情况下,必须在输入数据流中检测idle符号。如果检测到idle符号,则不把idle符号写入FIFO;反过来,如果FIFO运行较慢则在输出数据流会出现idle符号,数据被传送给用户。此时写指针保持不动,不断重复idle符号。相对于发送缓冲器而言,MGT内建的接收F