找回密码
 注册
关于网站域名变更的通知
查看: 499|回复: 3
打印 上一主题 下一主题

Xilinx SERDES调试方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-2 09:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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 |

该用户从未签到

2#
发表于 2021-4-2 10:32 | 只看该作者
是的,通常会使用一定的调试步骤来定位问题,避免重复工作。一开始,一般不进行整个工程的测试,而是基于SERDES的Wrappers工程,以方便定位问题。一般可以使用CORE generator里的Transceivers Wizard产生的Example Design。在Core generator里产生Transceivers Wizard的Example Design后,会输出源文件和scripts。利用scripts可以直接产生运行结果。Example Design里的数据产生和检测都是基于BRAM,可以很方便的修改数据。在工程里面,Chipscope VIOs and ILAs必须被加入到工程里面,进行控制和调试分析。

该用户从未签到

3#
发表于 2021-4-2 15:05 | 只看该作者
谢谢分享,学习了!

该用户从未签到

4#
发表于 2021-4-2 15:25 | 只看该作者
注意xilinx的串口没有上拉电阻,如果外面232芯片没有上拉,则需要在xilinx的io口设置为上拉7 p- _0 `) g! V: n) Z6 K

0 M, ~! L/ `; V3 t4 p$ a2 u8 u. Z/ I1 n2 ]

- k; c0 i5 v% `  f3 s- ~. I* y5 |, ]8 q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 21:10 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表