|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 dragongfly 于 2022-7-1 10:21 编辑
/ z) Y2 e, _8 `% T7 k9 \ r1 O( ]3 a2 V# R9 t R% `& L
本文介绍的内容:
" _# @0 h X& B" M0 F: E1.TX 8B/10B编码器结构和使用) W3 B) U/ b \1 K% Y0 s9 r6 Z
2.TX Gearbox功能介绍# Z, H+ Z8 T7 h9 C$ B
3.TX 差分管脚极性控制
. d- o3 T0 b; z' M+ z& Z3 W* |8 w5 t
1.TX 8B/10B编码器9 d" w: c& S7 y9 F& N
PCIe、SRIO、STAT等高速串行协议数据发送都采用了8B/10B编码方案,它是一种行业标准编码方案。8B/10B以每字节(8bits)两比特的开销来换取DC直流平衡,来确保时钟可以从数据流中正确恢复。如图1所示,GTX/GTH收发器内置8B/10B TX路径实现TX数据编码,无需消耗FPGA逻辑资源。
0 i/ v+ e- V# E, q' S
6 z v# l) I; t/ E使能8B/10B编码会增加TX路径上数据延迟,如果不需要,可以旁路8B/10B编码,以减少TX路径延迟。
0 h# a4 s6 _- ], ]6 D2 ^
" m- }( m9 H3 @3 `# W1.2 K字符和差异极性控制- \8 M9 D) U% @
8B/10B编码表使用特殊的字符(K字符)用作控制功能。TXCHARISK端口用来指示TXDATA端口的数据是否为K字符。8B/10B编码器检查接收到的TXDATA字节,如果匹配为K字符,则TXCHARISK比特为置为高。
/ A+ g. x" l' ~$ }+ s: B2 o
' @7 c1 e6 K3 L- @9 O5 V. X由于8B/10B是直流平衡的,所以发送“1”和“0”的个数比例应该为1:1,为了实现这一要求,编码器总是计算发送“1”和“0”之间的差值。每发送一个字符后,这种差值要么为“+1”,要么为“-1”,这种不同被称为“运行差异”。GTX/GTH收发器允许控制这种差异极性,如图3所示。/ l; k: b7 [% ?( @1 T! m& n4 P' H
3 m8 O: Q0 n- b! b8 f' y
2.TX Gearbox(速率变换箱)
3 F: d3 O: ]& F k3 i1 t图1中②为TX Gearbox在GTX/GTH收发器结构中的位置。一些高速数据速率协议使用64B/66B编码来减少8B/10B编码的开销,同时保留编码方案的优点。TX Gearbox提供了对64B/66B和64B/67B编码支持。常见的高速协议Interlaken就采用了64B/67B编码方案。TX Gearbox支持2字节、4字节和8字节接口定义,数据加扰是在FPGA逻辑内实现的。在GTH收发器中,CAUI接口模式支持附加的TX Gearbox特性。
/ a. U6 \. t; [& o2 [+ v2 V+ R+ S# O# l# R
3.TX管脚极性控制7 d" F* R- N8 v9 A
图1中③为TX 极性控制在GTX/GTH收发器结构中的位置。如果GTX/GTH收发器TXP和TXN差分管脚在PCB布线时进行了交换,差分对发送输出的比特流会取反。一种解决办法是在并串转换之前对发送的数据位逐位取反。另外一种方法是通过TX极性控制,实现TXP和TXN极性交换。( b, a) g( ~# k/ p L& X; B) {
/ x9 c( ~; F0 W# z
|
|