|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
FPGA SERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面。由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战。本文将描述SERDES的一般调试方法,便于工程师准确快速定位和解决问题。
& a9 y& M# z0 i2 I& k0 t( m
) Y0 }5 Z0 K; E3 ^1 t& Q% I
5 }* n6 t+ I- J4 ^' y' J硬件检测' A7 V* |' A' @" ~1 g( I4 ^
硬件检测可以分为原理图/PCB检查和板上硬件检查。这一部分的工作相对简单,但是很多时候问题是由这些看起来很不起眼的地方导致的。; W% [3 |) e1 b* |# }
' m: H" Q. ] p4 p( v" n& pa) 原理图/PCB检查
$ e" g) a9 O {8 K- L% Z% S- c+ n' [# o
根据SERDES应用手册要求检查原理图和PCB设计。例如对于Xilinx 7系列GTX/GTH SERDES,可以参考UG476的Board Design Guidelines检查原理图和PCB设计。# @$ y+ Q: L+ q( E( S
1 m: o' Q6 ?# g: q- u# x$ ab) 板上硬件检查# f, e; y, F4 h# `4 t
% K T; L3 @0 m6 k- K3 a使用示波器/万用表等仪器设备实际测量板上硬件,确认提供给SERDES的工作环境正常。
, s0 e/ m/ x1 _* c3 B. F8 n+ `7 ]6 G+ j! ?- F
i. 检查电源的电压/精度/纹波/上电顺序是否符合数据手册的要求。例如对于Xilinx 7系列GTX SERDES,需要对照DS182检查。" h0 z/ I& V: K% C1 p
+ b. [0 O) W: x0 n: K- v* r9 A ii. 检查SERDES参考时钟频率/摆幅是否符合数据手册的要求,以及参考时钟的管脚位置是否正确。6 ]0 y# G: d9 G6 d( l$ U
1 X! q) @. u: l" g
iii. 物理通道的检查,例如确认AC耦合电容的容值是否正确,光模块是否兼容,焊接是否正常。7 ~" _" R7 h* {( s+ ?3 w
1 a1 X9 p( G* P8 l) l; M* `. n
: W/ m' n# j/ N, V
2.使用IBERT Q; G; W+ ], X Y. G) e
: J' y# A- N( g( F7 f& H
IBERT是一个强有力的调试工具,可以用于调整参数设置和确认系统余量,也可以用于故障现象判断。IBERT在CORE generator里产生工程和BIT文件。将BIT文件下载到FPGA后,使用ChipScope Analyzer连接到FPGA上,就会出现IBERT的GUI调试界面。
! E" l4 S9 |" {# Q0 R" U) B/ u/ ?# X P0 ?% C+ y
a) 检查PLL是否LOCK,如果没有,需要检查时钟和电源。比如时钟频率是否正确,SERDES是否选择了正确的时钟源。. U: {1 S7 W- ~( L
" \; s4 W5 I9 Y
b) 将SERDES的TX和RX设为相同的数据pattern,例如PRBS-31。设置SERDES为Near-end PMA模式。如果这一步不能工作,检查TX/RX极性是否反转;检查TXUSRCLK/TXUSRCLK2/RXUSRCLK/RXUSRCLK2上的时钟频率是否正常。通过这一步保证SERDES内部工作正常。) r D( n" n0 g8 G W, e
t: B/ O( a" L+ Y
c) 将SERDES设置为Far-end PMA和Far-end PCS模式,确认远端设备的SERDES是否收发正常。通过这一步排除和时钟OFFSET相关的问题。7 q" N0 J. M8 x1 r) } C* [( s
! x& n6 B# b$ s8 w
d) 如果这些步骤工作正常,但是误码率很高,有可能是参数设置有问题。需要通过调整TX/RX的参数设置来解决。也可以通过EYE SCAN功能来得到最佳设置和判断系统余量。$ i' C# Q, T( y1 L0 e8 |4 W, \ T
# ^ O* C# b) |: H+ {
8 s/ R! ?$ Q3 U: _& V+ B
3. 通用的调试步骤
7 v8 d z4 n( m+ m3 H( x" [7 ]% }
通常会使用一定的调试步骤来定位问题,避免重复工作。一开始,一般不进行整个工程的测试,而是基于SERDES的Wrappers工程,以方便定位问题。一般可以使用CORE generator里的Transceivers Wizard产生的Example Design。在Core generator里产生Transceivers Wizard的Example Design后,会输出源文件和scripts。利用scripts可以直接产生运行结果。Example Design里的数据产生和检测都是基于BRAM,可以很方便的修改数据。在工程里面,Chipscope VIOs and ILAs必须被加入到工程里面,进行控制和调试分析。/ a9 U0 I: N; r" H7 G# N& c% ~
" G$ e' D$ T" s9 A: U- ]a) 进行Near-end PCS测试。
# }* |& i& k+ Q. r; V4 V. ]
* N# c6 l' s1 O0 Z3 w5 b- I- M6 V i. 启动SERDES复位(VIO)。/ H& H3 H- k' D* A: P9 Z: |
! m9 f7 H' q$ l6 } F ii. 确认复位结束(VIO)。
( M3 O Y! b5 N4 M
' X6 M C) I( i2 X; w u7 u# K) ?& p iii. 检查SERDES状态信号(VIO)。! q) s& r' L( x8 J! L
: Q- b( H; q. p# u# T iv. 使用计数器确认时钟频率(VIO)。
8 I* ?' U, V+ z$ m. e3 Z0 V, O3 k" m. j3 h7 W
b) 进行Near-end PMA测试。8 G, u+ @, P: I
9 R4 x: N; W5 o: m4 x9 u
i. 确认CDR工作正常,检测CDR产生的恢复时钟(VIO)。6 Z. P3 Q4 Y% z. Q$ O6 E6 z! H
+ }- i; v O, g' c# v' }7 z! ] E
ii. Comma alignment和8B/10B状态检查(ILA)。
7 H* V$ B$ V" i3 T! o! h% Y! a, x8 E2 L% ^; v
c) 正常操作检测1 y" Q, a5 e7 ~% A% D! S% p4 C, G) W; o
y; {1 t7 n; ?, E& L
i. 确认clock correction电路状态(ILA)。; k7 n2 i: c$ R% y P' a( T
1 R8 Q, g' M9 W5 g. F- ?% q ii. 确认Channel bonding电路状态(ILA)。
* ?) |3 T8 f" s; b0 b$ P
- c) o% F! U' l. |" ]- { iii. 链路通讯检查(ILA和VIO)。
H% r# M0 d! m$ X- `! {0 L9 y' u' z3 p' L: P2 @
& Y' p8 Q: M- D% Z, E9 \1 |
|
|