【vivado】 IBERT GT收发器误码率测试

一、前言

IBERT(Integrated Bit Error Ratio Tester),集成误码率测试仪。作为用户来说可以使用这个工具对自己设计的板子中的高速串行收发器进行简单测试,从而判断设计的接口是否有问题。因为这个工具是直接集成到FPGA上,这样一来直接使用这个工具来测试高速接口就方便很多了,它只需要JTAG和测试接口用的连接线就能完成对板子的测试。

二、IBERT配置

使用ibrt时主要时例化时对各个参数进行配置,本节将顺应IP的配置顺序对各个配置参数进行介绍。在对4个配置页面进行介绍之前,先对component name进行说明,这个就是ip的定义名字,可以有字母数字下划线组合而成,下划线不能再最前面。

2.1 协议定义

协议是线速/数据宽度/参考时钟速率的组合。一个 IBERT 内核最多可以定义三个协议,并且可以将任意数量的可用 Quad 指定为定义的任何协议。

Silicon Version:选择“常规 ES/产品”或“初始 ES”按钮以匹配目标芯片,这两者的区别暂时还没弄清楚,一般来说使用过程中默认选第一个。

Number of Protocols:选择协议的数量, 一个IBERT 最多可定义三个协议。

Protocol:在Protocol框中,选择自定义(custom)或其他预定义协议。如果为自定义,需要在linerate框中输入线速率(如果超出允许的范围,则线速率以红色文本显示)。

LianRate(Gbps):线速率,单位为吉比特每秒。可以根据要求选择自定义值,也可以从预先提供的行业标准协议(例如,CPRI、™千兆以太网或 XAUI)中进行选择。

DataWith:选择数据的位宽。

refclk(Mhz):参考时钟频率,单位为兆赫兹。GT收发器的参考时钟。

Quad Count:再参考时钟频率下运行的Quad数量。一个Quad对应四个channel。

Quad PLL:Quad的时钟单元,默认情况下,Quad PLL 处于选中状态。要改为选择 CPLL,可以取消选中 QPLL 复选框。Xilinx建议在高于 6.5 Gb/s 的线速率下使用 QPLL,可以为 0.6 Gb/s 至 6.5 Gb/s 范围内的每个线速选择 QPLL或者CPLL。

2.2 协议选择

GTH location:将显示器件/封装组合中可用的Quad。

Protocol Selected:将要测的Quad分配给特定协议。

Refclk Selection:参考时钟输入的合法选择列在 REFCLK 选择组合中,这里需要结合原理图确定是选择MGTREFCLK0还是MGTREFCLK1,以及是否选择相邻的南北两个Quad的参考时钟作为本Quad的参考时钟。

TXUSRCLK Source:将 Quad 分配给协议后,将启用 TXUSRCLK 驱动源组合会被使能。TXUSRCLK 在 Quad 中的所有四个通道之间共享,因此需要确认组合中 TXOUTCLK 中的哪一个通道应用于用户时钟。

2.3 Clock Settings

Add RXOUTCLK Probes:如果需要,接收器时钟探头使能功能可从任何串行收发器中提取恢复的时钟。启用后,会出现一个新面板,可以在其中填写串行收发器源和探针标准。在“时钟设置”选项卡中,单击“添加RXOUTCLK探头”,Quad lane0 驱动输出引脚或引脚对。需要从列表中选择 I/O 标准并分配有效的引脚位置。

Systom clock:IBERT内核需要一个自由运行的系统时钟,用于通信和内核中包含的其他逻辑。选择 I/O 标准、有效引脚位置和频率以完成系统时钟设置。或者,也可以选择任何启用的Quad参考时钟。为了使内核正常工作,当FPGA配置为IBERT内核设计时,该系统时钟源必须保持工作和稳定。如果系统时钟的运行速度超过150 MHz,则会使用混合模式时钟管理器(MMCM)在内部对其进行分频,以满足时序限制。xilinx推荐选择外部时钟源来驱动系统时钟 。

注:在我自己的使用过程中选择了一个Quad的参考时钟作为系统,结果在vivado hardware 下始终不会出现IBERT,导致无法观测误码率,最终选择板上晶振作为IBERT时钟IBERT才被探测到,而后发现最初为其选择参考时钟为系统的哪个Quad则是无法link上。因此如Xilinx的推荐一样,最好选择外部时钟源来驱动IBERT的系统时钟。

2.4 Summary

回顾总结之前配置的内容。

三、IBRT使用

在完成好IP的设置之后,可以在工程下看到综合好的IP模块,单击右键点击open IP example design即可获得基于该IP生成的示例工程。直接生成比特然后下载到板子上即可。

工程下载完成后,在vivado hardware manager中便会显示IBRT的内容,下下方也会出现serial I/O Links以及serial I/O Scans页面,在IBERT上右键创建Links或者直接在serial I/O Links点击+号添加links。

3.1 serial I/O Links

在serial I/O Links页面中可以看见详细的链路信息。

Status:链路传输速率,如果为建链成功会显示No Link,建链不成功多半时时钟不对,以及PCB的问题。.当检查器连续五个周期接收到没有错误的数据时,就会断言LINK信号(显示线速率)。如果 LINK 信号被置位,并且检查器连续收到五个带有数据错误的周期,则 LINK 信号将被取消置位(显示No Link)。

Bits:探测到的比特数量。

Error:错误的比特数量。

BER:误码率,bit error ratio。

Reset:如果更改了serial I/O Links中的某些配置,需要reset下一重新进行检测。

TX/RX Pattern:测试时的伪随机码(PRBS),接收端需要校验发送端发送的数据是否正确的来计算误码率,故需要Tx和Rx的伪随机码一致。

TX Pre-Cursor:TX 预加重,用于改善信号传输质量的参数,可以修改参数获取最优质量链路。

TX Post-Cursor:TX后加重,用于改善信号传输质量的参数,可以修改参数获取最优质量链路。

TX Diff Swing:用于改善信号传输质量的参数,可以修改参数获取最优质量链路。

DFE Enabled:收发器的Rx接收端的均衡器的使能信号,勾选有利补偿信号在信道传输中的损失。

Inject Error:可以在测试过程中注入错误,可以模拟真实情况下有可能遇到的各种影响。

TX/RX Reset:发送端和接收端各自单独的复位。

RX/TX PLL Status:显示locked即表示可以进行测试,如果显示其他则说明对应的参考时钟设置或参考时钟的管脚约束有问题,需要重新设置。

Loopback Mode:主要五个选项,分为近端、远端的PCS和近端、远端PMA回环,以及none。如果选择none,则Tx端的码流将会输出,根据自行外部连接线再输入到Rx端去,选择外部连接一定要注意连接情况。

3.2 serial I/O Scans

serial I/O Scans用来生成GT链路的眼图,可以在serial I/O Links页面中右键添加scan以产生眼图,也可以在serial I/O Scans页面添加。

眼图的横坐标为-0.5到0.5,表示一个数据的数字周期。

除了单次查看眼图判断信道质量,还可以选择sweep的方式来设置多组不同的参数生成眼图的方式,这样就可以获取最佳预加重参数,这样一来在此后的接口设计当中就可以使用到这样的一组参数,以此提供信号传输的质量。

四、参考资料

xilinx pg152:Integrated Bit Error Ratio Tester 7 Series GTH Transceivers v3.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu下安装wireshark

1、安装wireshark 打开终端,输入安装命令 sudo apt-get install wireshark 2、启动 输入命令回车,一定要加上sudo sudo wireshark 3、看到有很多UDP、ARP、ICMP协议等的网络报文 4、以太网口抓取到的报文,列表属性分别为: 编号| 时…

STL----push,insert,empalce

push_back和emplace_back的区别 #include <iostream> #include <vector>using namespace std; class testDemo { public:testDemo(int n) :num(n) {cout << "构造函数" << endl;}testDemo(const testDemo& other) :num(other.num) {cou…

数据分析——对比思维、A/B test

对比分析 数据大小 &#xff1a;与中值、平均值、目标值、标准做对比数据波动&#xff1a;变异系数、方差、标准差数据趋势&#xff1a;时间维度和空间维度 其中 时间维度 横向比较&#xff08;连续7天每天的销售量&#xff09; 纵向比较&#xff08;同一时期不同品类对比&…

iframe父级元素高度百分比不生效

<iframe :src"iframeUrl" width"100%" height"100%" frameborder"0" /> 1、使用绝对定位&#xff1a;将 iframe 的父级元素设置为相对定位&#xff0c;并将 iframe 设置为绝对定位。这样&#xff0c;iframe 就可以根据父级元素…

实验十 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 完成以下页面设计。 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; Wxml <view class"container"> <view class"header"> <view class"logo"…

景源畅信:抖音小店比较冷门的品类分享?

在抖音小店的世界里&#xff0c;热门品类总是吸引着众多商家和消费者的目光。然而&#xff0c;就像星空中的繁星&#xff0c;虽不那么耀眼却依然存在的冷门品类同样值得我们关注。它们或许不似服装、美妆那样日进斗金&#xff0c;但正是这些小众市场的存在&#xff0c;为平台带…

Java面试之SpringCloud篇

Nacos有什么用&#xff1f; ①服务注册与发现 ②配置管理 Es为什么查询效率快&#xff1f; &#xff08;1&#xff09;首先&#xff0c;ES使用了倒排索引这种数据结构来快速查找文档。倒排索引是一种针对文本搜索而优化的数据结构&#xff0c;它将每个词与出现这个词的文档列…

Linux 服务器配置共享文件夹(NFS)

一、准备三台 linux 服务器 三台服务器: manger:172.16.11.178 ap1:172.16.11.179 ap2:172.16.11.180 /root/serverfiles/ 为共享目录 二、配置步骤 1、在服务端01的机器上安装nfs和rpcbind程序 yum -y install nfs* yum -y install rpcbind* 2、在安装完nfs以及rpcb…

基于IDEA快速创建一个SpringMVC项目并且配置Tomcat

1&#xff0c;打开IDEA&#xff0c;新建Maven项目【使用web模板创建】 使用社区版的同学创建普通的maven项目&#xff0c;并配置项目的webapp&#xff0c;详情可参考 快速创建一个SpringMVC项目&#xff08;IDEA&#xff09; 2&#xff0c;在main目录下创建Java和resource目录…

2024洗地机爆款榜单,哪个牌子洗地机值得买?助你轻松选对洗地机

随着现代生活节奏的加快&#xff0c;人们对于家庭清洁的需求也越来越高。家用洗地机作为一种高效清洁工具&#xff0c;能够帮助您轻松应对家庭地板的清洁问题&#xff0c;节省时间和精力。然而&#xff0c;在选择洗地机时&#xff0c;究竟哪个牌子的洗地机值得买呢&#xff1f;…

Protobuf(基本使用和IDA中的protobuf解包逆向识别和重新利用)

文章目录 安装protobuf 基本使用如何使用 .pb.cc&#xff08;实现文件&#xff09;和.pb.h&#xff08;头文件&#xff09;.pb.h&#xff08;头文件&#xff09;.pb.cc&#xff08;实现文件&#xff09; 生成的c和h文件ida中解包打包解题1. 定义.proto文件2. 生成Python代码3. …

SpringBoot版本问题,类文件具有错误的版本

项目场景&#xff1a; Spirng Boot 版本3.2.5 jdk 版本 1.8 问题描述 运行程序的时候报错&#xff0c;什么错误的版本&#xff0c;比如&#xff1a; java: 无法访问org.springframework.amqp.core.Binding 错误的类文件: /Maven/repository/org/springframework/amqp/spring…

Linux软硬链接

Linux软硬链接 1.指令 软链接指令&#xff08;link soft&#xff09; ln -s [被链接的文件的路径名字] [软件链接的路径名字].link 硬链接指令(默认) ln [被链接的文件的路径名字] [软件链接的路径名字].link 解除链接&#xff1a; unlink [link_name] 软硬链接的区别&#x…

Milvus 简介与核心特性

一、Milvus 概述 Milvus 是一个开源的向量数据库&#xff0c;由 Zilliz 公司发起并维护。它专为处理非结构化数据而设计&#xff0c;能够存储、检索和分析大量的向量数据。Milvus 的名字来源于拉丁语&#xff0c;意为“一万”&#xff0c;象征着其处理大规模数据集的能力。 M…

力扣爆刷第138天之哈希表五连刷(二三四数之和)

力扣爆刷第138天之哈希表五连刷&#xff08;二三四数之和&#xff09; 文章目录 力扣爆刷第138天之哈希表五连刷&#xff08;二三四数之和&#xff09;一、1. 两数之和二、454. 四数相加 II三、383. 赎金信四、15. 三数之和五、18. 四数之和 一、1. 两数之和 题目链接&#xf…

linux安装Openresty

安装必要的依赖库 指定仓库地址 下载openresty 添加环境变量 vi /etc/profile i export NGINX_HOME/usr/local/openresty/nginx/ export PATH${NGINX_HOME}/sbin:$PATH esc :wq source /etc/profile #启动 nginx # 重启 nginx -s reload #关闭 nginx -s stop

宿舍管理系统代码详解(主页面)

本篇将对管理系统的主页面的代码进行详细的介绍。 目录 一、主页面前端代码 1.样式展示 2.代码详解 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 &#xff08;3&#xff09;路由导航守卫 &#xff08;4&#xff09;在vue中引用vue 一、主页…

运维别卷系列 - 云原生监控平台 之 01.prometheus 入门和部署

文章目录 [toc]什么是 PrometheusPrometheus 架构及其一些生态系统组件Prometheus 的工作模式Prometheus 的适用场景Prometheus 的不适用场景Prometheus 词汇表 Prometheus 启动参数Prometheus 配置文件通用占位符定义配置文件示例解释服务发现 Prometheus 部署创建 namespace创…

Unity里的Time

Time and frame rate management Time类&#xff1a; Time script reference page. 一些常见的属性有&#xff1a; Time.time 返回从游戏开始经历的时间.Time.deltaTime 返回从上帧结束到现在经历的时间&#xff0c;和帧率成反比Time.timeScale 控制时间流逝的因子Time.fixe…

嵌入式学习-通用定时器

简介 框图介绍 时钟选择 计数器部分 输入捕获和输出比较框图 嵌入式学习全文参考&#xff08;小向是个der&#xff09;做笔记&#xff1a;https://blog.csdn.net/qq_41954556/article/details/129735708