31.07.2013 Views

轻松实现高速串行I/O

轻松实现高速串行I/O

轻松实现高速串行I/O

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!