一、概述

IBERT(集成误码率测试仪)是xilinx为7系列FPGA GTX收发器设计的,用于评估和监控GTX收发器。IBERT包括在FPGA逻辑中实现的模式生成器和检查器,以及对端口的访问和GTX收发器的动态重新配置端口属性,还包括通信逻辑,以允许设计在运行时通过JTAG进行访问。

IBERT工具用于对Xilinx FPGA芯片的高速串行收发器进行板级硬件测试。通过IBERT可以获取误码率,观察眼图,调节串行收发器的参数,从而有助于判断可能存在的问题,便于验证硬件的稳定性和信号完整性。

二、测试原理

GTX接收和发送方向均由PMA和PCS两部分组成,PCS提供丰富的物理编码层特性,如8b10b编码、时钟校准等功能,PMA部分为模拟电路,提供高性能的串行接口特性,如预加重、均衡等功能。GTX同时还提供动态配置接口,用于动态的修改GTX的配置。

         IBERT 工具的环回模式有近端PCS环回测试(路径①),数据流仅通过近端GTX的PCS部分,可用于验证近端GTX中PCS收发双向的设置;近端PMA环回测试(路径②,数据流通过近端GTX的PCS、PMA,可用于验证近端GTX收发双向的设置;远端PMA环回测试(路径③),数据流通过近端GTX的PCS和PMA,远端的GTX的PMA部分,通过两个GTX之间的物理连线,验证两个GTX之间物理联系的可靠性,以及验证两个GTX的PMA部分设置的正确性;远端PCS环回测试(路径④)验证近端收发器和远端收发器的通信状况;以及None无环回模式即通过外部连接发送和接收。

远端PCS或PMA环回测试时板卡下载IBERT核生成的bit文件,通过两个通道上的Tx和Rx接口互相连接,其中一个通道上的模式设置为Far_End_PMA或Far_End_PCS模式,另一个通道设置为默认的None模式并监测误码率。

Vivado中IBERT默认模式为None模式,收发器通过外部连线由外部环回进行自收自发而实现。可将同一组收发器的TX和RX进行短接,在RX接收端接收TX发送的数据后,通过比对发送和接收的数据,从而得出接收端误码的统计值。

三、测试过程

1、器件支持速率说明

GTP , GTX , GTH都是串行收发器,区别在速率不一样,在不同的器件中叫的名字不同而已,由于在vivado创建工程时选择对应的器件型号,使用IBERT时会自动根据器件型号检查所选的线速是否在器件支持的线速范围以内。

在示例中使用器件型号为xc7z030ffg676-2,在数据手册中根据7系列-2的速度等级和FF封装可查到该器件GTX的数据率范围为0.5~10.3125G,因此在测试的过程测试速率应在此范围内。(参考文档DS182)

2、IBERT IP核配置

(1)首先打开vivado,新建工程后从IP Catalog找到IBERT并双击打开;


(2)IBERT测试协议选择Custom1,GTX参考时钟选择频率为125MHz,在配置的过程中,Refclk可选的频率是由LineRate决定,由于在板卡上Refclk已固定为125MHz,因此测试所选择的线速应支持125MHz的参考时钟。(以4G线速为例)


(3)在开发板中,差分时钟与MGTREFCLK0112连接,因此参考时钟选择MGTREFCLK0112。


(4)将GTX输入的125MHz的时钟同时作为IBERT内部逻辑的工作时钟,这样就可以不使用额外的外部时钟。

(5)配置结束后点击OK


(6)完成配置后,右击打开exampledesign工程


(7)打开exampledesign工程后,经过Synthese、Implementation,生成bit文件即可进行烧录。

3、测试

(1)近端PCS或PMA环回测试(Near-End PCS/PMA loopback)

无需外部连线,烧录成功后,在Serial I/O Links窗口创建连接,将同1个GTX中同一个通道的TX和RX建立link。(也可以选择auto-detectlinks)

建立link后,若链路中连续五个数据传输成功,则认为链路连通,否则为未连通。在serial I/O link最右端的loopback mode选择近端PCS(或PMA)环回模式,在改变模式时可能会出现误码,需要点击reset重新监测。


经过一段时间测试, Errors的数值一直为0,表明测试过程中没有出现误码,说明板级层面的GTX硬件工作稳定。


眼图可以更直观的观察GTX的信号完整性,右键所连接的link,选择create scan,便可以生成眼图。

在Serial I/O link窗口中,errors为误码个数,BER为误码率,在reset之后,errors和BER会恢复为0重新统计,通常在改变其他的参数后可能会出现少量的误码,此时需要reset后重新统计误码。TX Pre-Cursor和TX Post-Cursor为预加重和后加重,TX Diff Swing为摆幅,RX Pattern和TX Pattern为输入、输出数据类型,提供不同位宽的伪随机码、慢时钟(101010……)和快时钟(11111111110000000000……),需要注意的是输入和输出的数据类型应设置为同一种类型,Loopback Mode为环回模式,默认为None无环回模式,Near-End PCS为近端PCS环回模式,Near-End PMA为近端PMA环回模式,Far-End PCS为远端PCS环回模式,Far-End PMA为远端PMA环回模式。若信号传输质量不够理想,可以通过在serial I/O link的参数设置进行调整,再重新扫描眼图查看是否有改善。

为了测试GTX四个通道的误码率,创建多个links,对四个通道都进行近端环回测试


(2)远端PMA环回测试(Far-End PMA loopback)

在一个板卡上烧录ibert生成的bit文件,将其中两个通道的Tx和Rx接口互连,一个通道设置为Far-EndPMA模式,另一个通道设置为None模式并监测误码情况和眼图。


创建对应连接的link并查看误码率和眼图


(3)远端PCS环回测试(Far-End PCS loopback)

在一个板卡上烧录ibert生成的bit文件,将其中两个通道的Tx和Rx接口互连,一个通道设置为Far-End PCS模式,另一个通道设置为None模式并监测误码情况和眼图。


创建对应连接的link并查看误码率和眼图

(4)None模式的测试方式

板卡下载IBERT核生成的bit文件,然后将同一通道的Tx与Rx接口连接起来,环回模式设置为None,实现自发自收。

四、总结

通过环回和开环方式的误码率测试,可判断出存在的问题以及测试出板卡实际支持的速率。IBERT可在运行过程中设置高速串行收发通道的各项参数,并提供了多种环回模式及多种测试激励源,并可通过自动扫描测试,确定收发的最佳参数。可以满足硬件测试时对高速串行收发通道信号测试的大部分需求,在故障定位等场合均可使用。

FPGA---7系列之IBERT_GTX内外环测试相关推荐

  1. 敏捷开发团队管理系列之四:程序与测试团队III

    这是敏捷开发团队管理系列的第四篇.(之一,之二,之三,之四) 整体上有两种测试团队的模型,既然都有存在,自然是各有各的道理.城里城外的人倒不必互相羡慕,只是要观察对面的优点,分析自己的缺点,尝试做点事 ...

  2. Unity5.3官方VR教程重磅登场-系列6 VR真机测试和产品发布

    不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场-系列6 VR真机测试和产品发布 王寒 · 3 个月前 在本教程中我们将学习如何将产品在两个真机平台上进行测试-DK2和Gear VR.当然 ...

  3. Zabbix5系列-监控SpringBoot内置的Tomcat和JVM(二十一)

    Zabbix5系列-监控SpringBoot内置的Tomcat和JVM 一.参考 二.环境 三.开启JMX 四.配置模板 五.测试 六.修改后的模板参考 6.1 Apache Tomcat JMX模板 ...

  4. FPGA经验谈系列文章——时序不过怎么办

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA经验谈系列文章--时序不过怎么办 前言 如果设计验证和测试已经接近尾声,偶尔进行小改可能出现几条时序违例的情况 逻辑级数过大引 ...

  5. FPGA信号处理系列文章——码元同步

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA信号处理系列文章--码元同步 前言 码元粗同步 超前-滞后门同步器 鉴别器 matlab程序 前言 前面,我们将了锁频环和锁相 ...

  6. 【先楫HPM6750系列】CoreMark跑分测试

    [先楫HPM6750系列]CoreMark跑分测试 上篇帖子中,我们完成了Embedded Studio开发环境搭建,对Hello World示例进行了编译和调试. 本篇将会使用SEGGER Embe ...

  7. FPGA信号处理系列文章——数字锁相环

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA信号处理系列文章--数字锁相环 锁相环的一些概念 鉴相器 Matlab 程序 锁相环的一些概念 1.捕获.锁定与跟踪的概念 捕 ...

  8. FPGA经验谈系列文章——那些曾经让我发狂的BUG

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA经验谈系列文章--那些曾经让我发狂的BUG 前言 跨时钟域处理不对问题 组合逻辑产生锁存器问题 外围器件协议理解不深的问题 接 ...

  9. JS组件系列——BootstrapTable 行内编辑解决方案:x-editable

    JS组件系列--BootstrapTable 行内编辑解决方案:x-editable 参考文章: (1)JS组件系列--BootstrapTable 行内编辑解决方案:x-editable (2)ht ...

最新文章

  1. SAP Spartacus产品页面的normalizer
  2. 2016.7.15 NOIP2014模拟试题解题报告(又名:方克顺和他的正余弦朋友们(
  3. 第四十四篇 面向对象高阶
  4. jQuery基础之jQuery和原生js实现tab选项卡和电影排行榜
  5. 《无人机DIY》——导读
  6. 【九天教您南方cass 9.1】 14 坐标数据的纠正
  7. python生成器详解
  8. (连载0.2)加强版Python提取上市公司年报报告中财务报表
  9. 计算机考研统考压分吗,担忧!考研初试会被压分吗?
  10. MATLAB中怎么表示对数函数及e
  11. 20172328《程序设计与数据结构》第六周学习总结
  12. 击退加拿大鹅,波司登成年轻人冬季新欢?
  13. 支付宝面试:什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决?...
  14. 如何把视频或者音频转成文字
  15. AUM、MAU与DAU
  16. Python Diary - Day 4 运算符
  17. 100天精通Python(基础篇)——第26天:lambda表达式基础+代码实战
  18. can总线用java怎么解析_CAN信号值解析
  19. 如何用JS局部刷新页面指定元素
  20. 单片机简谱音乐2(孤勇者)-连音与0调的音处理,一个音仅占一个字节(8bit)大小

热门文章

  1. vue-element-admin的v-waves指令失效问题解决(与@click冲突导致水波纹失效)
  2. Communication-Efficient Learning of Deep Networks from Decentralized Data 论文笔记
  3. Skype的服务器架构
  4. 线特征LSD提取、LBD描述子匹配实现过程源码
  5. 金彭电动三轮车质量好吗?来听听“老司机”怎么说
  6. 学习笔记C语言 switch语句
  7. 10.7 IO 流 | 转换流 Flie
  8. 手工编写html5,HTML5实现动画效果的方式汇总
  9. Oracle的概念理解
  10. cfa的pv怎么用计算机算,CFA考点解析:如何用计算器Amort键计算interest rate