FPGA SERDES的应用需要考虑到板级硬件,SERDES参数和使用,应用协议等方面。由于这种复杂性,SERDES的调试工作对很多工程师来说是一个挑战。本文将描述SERDES的一般调试方法,便于工程师准确快速定位和解决问题。

1. 硬件检测
硬件检测可以分为原理图/PCB检查和板上硬件检查。这一部分的工作相对简单,但是很多时候问题是由这些看起来很不起眼的地方导致的。

a) 原理图/PCB检查
根据SERDES应用手册要求检查原理图和PCB设计。例如对于Xilinx 7系列GTX/GTH SERDES,可以参考UG476的Board Design Guidelines检查原理图和PCB设计。

b) 板上硬件检查
使用示波器/万用表等仪器设备实际测量板上硬件,确认提供给SERDES的工作环境正常。

i. 检查电源的电压/精度/纹波/上电顺序是否符合数据手册的要求。例如对于Xilinx 7系列GTX SERDES,需要对照DS182检查。

ii. 检查SERDES参考时钟频率/摆幅是否符合数据手册的要求,以及参考时钟的管脚位置是否正确。

iii. 物理通道的检查,例如确认AC耦合电容的容值是否正确,光模块是否兼容,焊接是否正常。

2. 使用IBERT
IBERT是一个强有力的调试工具,可以用于调整参数设置和确认系统余量,也可以用于故障现象判断。IBERT在CORE generator里产生工程和BIT文件。将BIT文件下载到FPGA后,使用ChipScope Analyzer连接到FPGA上,就会出现IBERT的GUI调试界面。

a) 检查PLL是否LOCK,如果没有,需要检查时钟和电源。比如时钟频率是否正确,SERDES是否选择了正确的时钟源。

b) 将SERDES的TX和RX设为相同的数据pattern,例如PRBS-31。设置SERDES为Near-end PMA模式。如果这一步不能工作,检查TX/RX极性是否反转;检查TXUSRCLK/TXUSRCLK2/RXUSRCLK/RXUSRCLK2上的时钟频率是否正常。通过这一步保证SERDES内部工作正常。

c) 将SERDES设置为Far-end PMA和Far-end PCS模式,确认远端设备的SERDES是否收发正常。通过这一步排除和时钟OFFSET相关的问题。

d) 如果这些步骤工作正常,但是误码率很高,有可能是参数设置有问题。需要通过调整TX/RX的参数设置来解决。也可以通过EYE SCAN功能来得到最佳设置和判断系统余量。

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

a) 进行Near-end PCS测试。
i. 启动SERDES复位(VIO)。
ii. 确认复位结束(VIO)。
iii. 检查SERDES状态信号(VIO)。
iv. 使用计数器确认时钟频率(VIO)。

b) 进行Near-end PMA测试。
i. 确认CDR工作正常,检测CDR产生的恢复时钟(VIO)。
ii. Comma alignment和8B/10B状态检查(ILA)。

c) 正常操作检测
i. 确认clock correction电路状态(ILA)。
ii. 确认Channel bonding电路状态(ILA)。
iii. 链路通讯检查(ILA和VIO)。

转载:http://xilinx.eetrend.com/article/3803

一步步教你如何进行Xilinx SerDes调试的更多相关文章

  1. 一步步教你搭建VS环境下用C#写WebDriver脚本

    一步步教你搭建VS环境下用C#写WebDriver脚本http://www.automationqa.com/forum.php?mod=viewthread&tid=3529&fro ...

  2. 我写了个教程《一步步教你把ubuntu安装到U盘》

    一步步教你把ubuntu安装到U盘 作者 Val 2452013147@qq.com 原因: 由于某些原因(学生党),需要把ubuntu安装到U盘到处走,百度了一下,教程都不是很好,要么很复杂,要么不 ...

  3. 一步步教你读懂NET中IL(附带图)

    一步步教你读懂NET中IL(附带图) 接触NET也有1年左右的时间了,NET的内部实现对我产生了很大的吸引力,在msdn上找到一篇关于NET的IL代码的图解说明,写的挺不错的.个人觉得:能对这些底部的 ...

  4. 一步步教你轻松学奇异值分解SVD降维算法

    一步步教你轻松学奇异值分解SVD降维算法 (白宁超 2018年10月24日09:04:56 ) 摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分 ...

  5. 一步步教你轻松学支持向量机SVM算法之案例篇2

    一步步教你轻松学支持向量机SVM算法之案例篇2 (白宁超 2018年10月22日10:09:07) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  6. 一步步教你轻松学支持向量机SVM算法之理论篇1

    一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  7. 一步步教你轻松学主成分分析PCA降维算法

    一步步教你轻松学主成分分析PCA降维算法 (白宁超 2018年10月22日10:14:18) 摘要:主成分分析(英语:Principal components analysis,PCA)是一种分析.简 ...

  8. 一步步教你轻松学关联规则Apriori算法

    一步步教你轻松学关联规则Apriori算法 (白宁超 2018年10月22日09:51:05) 摘要:先验算法(Apriori Algorithm)是关联规则学习的经典算法之一,常常应用在商业等诸多领 ...

  9. 一步步教你轻松学K-means聚类算法

    一步步教你轻松学K-means聚类算法(白宁超  2018年9月13日09:10:33) 导读:k-均值算法(英文:k-means clustering),属于比较常用的算法之一,文本首先介绍聚类的理 ...

随机推荐

  1. 转 IntelliJ IDEA 快捷键

    https://www.cnblogs.com/clwydjgs/p/9390488.html 一.视图查看 Ctrl+F12 查看file,method结构图.类继承机构图 (不知道方法结构,Ctr ...

  2. Android开机过程

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha Android开机过程 BootLoder引导,然后加载Linux内核. 0号进程ini ...

  3. HTTP状态代码集

    所有 HTTP 状态代码及其定义.   代码  指示     2xx  成功     200  正常:请求已完成.     201  正常:紧接 POST 命令.     202  正常:已接受用于处 ...

  4. 【暴力】UVALive - 4882 - Parenthesis

    就不断地扫整个序列,如果发现多余的括号就删除.大概复杂度还是O(n²)左右.如何判断不合法请详见代码. To a computer, there is no difference between th ...

  5. 快速创建Django验证码

    # 生成随机验证码图片 import stringfrom random import randint, samplefrom PIL import Image, ImageDraw, ImageFo ...

  6. SQL Server Latch Classes Library

    https://www.sqlskills.com/help/latches/ (Companion SQL Server Wait Types Library) This site lists al ...

  7. S3C2440的存储器映射(27根地址线如何寻找1G的地址)

    转:http://blog.csdn.net/ce123_zhouwei/article/details/6882091 查S3C2440的数据手册可知S3C2440可寻址1G的地址范围,但是S3C2 ...

  8. 使用Vue-cli创建project遇到的坑

    环境: win10 / node( v10.2.1) /npm( v5.6.0) 准备: 1.安装node:上node官网下载node版本进行安装 2.安装vue-cli:npm install -- ...

  9. oracle 11g jdbc jar包在哪个文件目录

    一. 如果装了oracle数据库的话, 大致是这样的目录:    D:\oracle\product\11.2.0\client_1\oui\jlib\classes12.jar 或者    D:\o ...

  10. LLBLGen Pro ORM 生成器

    LLBLGen Pro  ORM 生成器:         http://www.llblgen.com/default.aspx 支持多种 框架,多种数据库.