【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,一经查实,立即删除!

相关文章

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…

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

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

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

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

Milvus 简介与核心特性

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

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

C#中json数据序列化和反序列化的最简单方法(C#对象和字符串的相互转换)

文章目录 将C#对象转换为json字符串Newtonsoft模块的安装用Newtonsoft将对象转换为json字符串 将json字符串转换为C#对象 将C#对象转换为json字符串 本介绍将基于C#中的第三方库Newtonsoft进行&#xff0c;因此将分为Newtonsoft模块的安装和使用两部分。该模块的优势在于只需要…

Python以docker形式部署,flask简易服务器。

公司大部分都是springboot 服务器&#xff0c;有时候用到python写的一些模型&#xff0c;部署在linux上进行处理 首先项目这样&#xff1a; flask就不说了&#xff0c;快捷服务器&#xff0c; # -*- coding: utf-8 -*-from flask import Flask, request# 实例化Flask对象 app…

LVM - Linux磁盘逻辑卷管理器概念讲解及实践

1、lvm概念 逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(Logi…

【核弹】我的第一款IDEA插件

SuperHotSwap 插件名称叫做&#xff1a;SuperHotSwap&#xff08;超级热更新&#xff09; 开发初心&#xff1a;旨在做出一款最便捷的IDEA热更新插件&#xff0c;减少用户操作步骤&#xff0c;提供零配置的可视化操作更新。 为什么要写这个插件&#xff1a; 每次改一下Mappe…

OSPF工作过程

1.OSPF的数据包 hello包——周期性的发现&#xff0c;建立以及保活邻居关系 hello时间 --- 10S 死亡时间 --- 4倍的hello时间 --- 40S RID --- 1&#xff0c;全网唯一;2&#xff0c;格式统一---- 格式要求和IP地址一样&#xff0c;由32位二进制构成&#xff0c;使用点分十进制…

[js] 递归,数组对象根据某个值进行升序或者降序

一、效果图 1.1 父级 1.2 父级与子级 二、代码 升序降序&#xff0c;只要把 a.num - b.num 改成 b.num - a.num <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, i…

idea 使用 git

可以看见项目地址&#xff0c; git clone 地址 就可以拉新项目了 命令 git remote -v

JETBRAINS IDES 分享一个2099通用试用码,支持一键升级!CLion 2024 版

文章目录 废话不多说上教程&#xff1a;&#xff08;动画教程 图文教程&#xff09;一、动画教程激活 与 升级&#xff08;至最新版本&#xff09; 二、图文教程 &#xff08;推荐&#xff09;Stage 1.下载安装 toolbox-app&#xff08;全家桶管理工具&#xff09;Stage 2 : 下…