轻松实现高速串行I/O
轻松实现高速串行I/O
轻松实现高速串行I/O
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
轻松实现高速串行 I/O·<br />
线路编码机制也可选择用来实现时钟修正、块同步、通道绑定和将带宽划分到子通道。<br />
线路编码机制主要有两种-数值查找机制和自修改数据流或扰码器机制。<br />
8b/10b编码/解码<br />
8b/10b编码机制是由IBM开发的,已经被广泛采用。8b/10b编码机制是Infiniband,千兆位以<br />
太网,FiberChannel以及XAUI 10G以太网接口采用的编码机制。它是一种数值查找类型的编<br />
码机制,可将8位的字转化为10位符号。这些符号可以保证有足够的跳变用于时钟恢复。表<br />
3-1给出了几个例子,例子中的8位数值会导致很长时间不出现切换。8b/10b将12个特殊字符<br />
编码成12个控制字符,通常也称作“K”字符。我们将对K字符详细了解,但首先让我们看<br />
一下8b/10b是如何保证了良好的直流平衡性能。<br />
表3-1 8位数值<br />
8位数值 10位符号<br />
00000000 1001110100<br />
00000001 0111010100<br />
运行不一致性(Running Disparity)<br />
8b/10b中的直流平衡是通过一种称作“运行不一致性”的方法来实现的。实现直流平衡的最简<br />
单办法是:只使用有相同个数0和1的符号,但是这将限制符号的数量。<br />
而8b/10b则为各个数值分配了两个不同的符号。在大多数情况下,其中一个符号有6个0<br />
和4个1,另一个符号则有4个0和6个1。编码器检测0和1的数量,并根据需求选择下一个符号,<br />
以保证线路的直流平衡。这两个符号通常也称作+和-符号。表3-2给出了一些符号示例。<br />
表3-2 8b/10b 符号示例<br />
名称 16进制 8位 负运行不一致性 正运行不一致性<br />
D10.7 EA 11101010 0101011110 0101010001<br />
D31.7 FF 11111111 1010110001 0101001110<br />
D4.5 A4 10100100 1101011010 0010101010<br />
D0.0 00 00000000 1001110100 0110001011<br />
D23.0 17 00010111 1110100100 0001011011<br />
“运行不一致性”的另一个优点是接收器可以通过监控运行不一致性,并检测输入数据中的错<br />
误,因为此时数据违反了运行不一致性规则。<br />
26·XILINX