IBERT眼图扫描(高速收发器八)

  前文讲解了GTX的时钟及收发数据通道的组成,之后讲解了眼图、加重、均衡等原理及原因,本文通过xilinx提供的IBERT IP完成实际工程的眼图扫描,确定加重和幅值调节的参数。

1、回环模式

  在此之前,需要了解一下GTX的回环模式。如果板卡有两个光口,可以通过光纤把两个光口连接进行测试,如果只有一个光口,通过GTX的回环模式也可以完成测试。

  回环模式的链路如下图所示,左侧是FPGA的一个GTX通道,右侧可以是其余板卡的一个高速收发器通道,中间使用光纤连接。

在这里插入图片描述

图1 回环路径

  信号可以通过4条路径回环,路径1是经过FPGA内部PCS之后直接回环到接收端的PCS。路径2是经过FPGA发送端的PCS和PMA之后,直接环回到接收端的PMA。

  路径3是经过其他板卡的高速收发器通道接收端的PMA后环回到发送端的PMA,然后输出给FPGA的接收通道。

  路径4的原理与路径3类似,只不过经过了PCS转换。下图是GTX中对应的三条回环路径,红色路径对应上图路径2,蓝色路径对应上图路径3,紫色路径对应上图路径4,路径1在下图中没有体现。

  其中路径1和路径2在自身的GTX中完成回环,被称为近端回环。而路径3和路径4在另一个GTX中回环,回环的节点相对于发送端的距离较远,被称为远端回环。

在这里插入图片描述

图2 GTX中回环路径

  在GTX IP或者IBERT IP中,都可以通过信号的取值来更改回环模式,在GTX IP中勾选LOOPBACK,在生成IP后,会提供给用户一个gt0_loopback_in信号,用户修改回环模式。

在这里插入图片描述

图3 回环模式设置

  进入和退出近端PMA回环后需要复位GTX的接收通道。要使近端PCS回送正常工作,必须使能接收通道的弹性buffer并选择接收通道恢复时钟作为XCLK的时钟源(RX_XCLK_SEL设置为RXREC)。

  在近端PCS回送中,RX XCLK域由TX PMA并行时钟(TX XCLK)提供时钟。

  回环模式的设置如下表示所示,在光口的测试中,没有光纤时使用较多的是近端PMA回环,有光纤时,可以使用远端PCS进行测试。

表1 回环模式
LOOPBACK取值回环模式
3’b000正常工作模式
3’b001近端PCS回环
3’b010近端PMA回环
3’b100远端PMA回环
3’b110远端PCS回环
其余取值保留

2、IBERT IP配置

  GTX IP自身也支持眼图测试功能,但是在实际使用时,更多会通过IBERT IP来测试信道的眼图。眼图测试的数据也是通过GTX内部的PRBS发生器生成,在接收端通过PRBS检查器接收数据。

  关于IBERT IP生成如下图所示,在vivado的IP catalog中搜索ibert即可。

在这里插入图片描述

图4 生成IBERT IP

  对IBERT IP的Protocol Definition进行配置,本文对万兆网口进行测试,因此协议可以直接选择”tenGBASE-R”,然后线速率固定为10.3125Gbps。

在这里插入图片描述

图5 Protocol Definition参数配置

  上图中3处是设置GT参考时钟的频率,根据开发板提供给GT bank的时钟频率进行设置,我板卡的GT参考时钟是使用一个可编程晶振实现的,原理图如下所示。

在这里插入图片描述

图6 可编程晶振

  可编程时钟信号通过左侧的SW6拨码开关调节输出差分时钟的频率,开发板默认使用的是156.25MHz时钟,因此图5的参考时钟选择156.25MHz。

在这里插入图片描述

图7 可编程芯片的调节

  因为线速率大于6.5Gbps,必须使用QPLL,因此图5中的4处勾选QPLL。

  然后设置的Protocol Selection界面参数,如下图所示,Protocol Selected选择前面设置的tenGBASE-R/10.3125Gbps。

在这里插入图片描述

图8 Protocol Selection参数配置

  参考时钟的来源需要根据开发板上的差分时钟输入位置确定,我使用开发板上述可编程晶振接在REFCLK0引脚上,因此选择CLK0时钟引脚。

  3是选择发送端用户时钟源,选择需要测试的通道即可。

在这里插入图片描述

图9 GT bank原理图

  之后配置Clock Settings界面,这是用于配置IP的系统时钟信号,该时钟信号可以来源于任何bank,为了方便,可以直接使用GTX的时钟通过BUFG输出作为IP的系统时钟。

  如下图所示,系统时钟来源直接选择QUAD112 0,表示将高速收发器时钟作为IP系统时钟,2、3、4处就不需要用户配置时钟输入引脚和时钟频率了。

  如果时钟其余时钟,需要配置时钟管脚以及时钟频率。

在这里插入图片描述

图10 Clock Settings参数配置

  最后IP的参数汇总如下图所示,点击OK生成IP。

在这里插入图片描述

图11 参数汇总

  生成IP之后,在Hierarchy中选中生成的IP,然后鼠标右键点击Open Example Design…,打开示例工程,用户可以直接使用示例工程完成眼图测试。

  注意如果发现Open Example Design…是灰色的,可能是因为vivado还在生成IP,右上角的圆圈还在旋转,等待IP生成之后再进行操作即可。

在这里插入图片描述

图12 生成示例工程

  选择示例工程存放路径,如下图所示。

在这里插入图片描述

图13 选择示例工程存放路径

  下图是光纤的原理图,需要注意该模块有一个失能引脚SFPB_TX_DIS,该引脚为高电平时,光纤模块无法工作,又由于该引脚通过4.7K电阻上拉到VCC,默认为高电平。因此在使用时,需要给该引脚提供低电平,才能正常工作。

在这里插入图片描述

图14 光纤转换模块

  打开示例工程的顶层文件,添加一个2位的失能信号,输出低电平,分别接到两个光模块的失能引脚。

在这里插入图片描述

图15 添加失能信号

  之后综合示例工程,然后分配顶层模块信号的各个管脚,如下图所示,默认会使用一个bank的所有高速收发器,实际测试时,只有正常工作的才会显示眼图。

在这里插入图片描述

图16 引脚配置

  引脚信息保存后,直接生成bit流文件。

3、眼图扫描

  当bit流生成完成后,通过光纤连接两个光纤,如下图所示。

在这里插入图片描述

图17 开发板光纤短接

  将生成的bit流下载到FPGA中,然后再Hardware下可以查看QPLL的状态,如下图所示,1处显示QPLL已经锁定,如果显示没有锁定,请检查输入GT的参考时钟的频率与IP设置的频率是否一致,另外差分参考时钟信号的引脚是否分配正确。

  2处显示两个高速收发器通道正在运行,而另外两个通道没有连接,这是因为板卡上另外两个通道用于PCIE,本次并没有使用这两个通道。

在这里插入图片描述

图18 查看通道状态

  在Serial I/O Links选项卡下面可以查看正常收发数据各个通道的状态,如果想要查看其余通道,也可以点击+号添加没有连接的通道状态。

  在1处可以查看两个通道的误码率,2处可以复位IP。

在这里插入图片描述

图19 查看连接通道状态

  后续的参数和状态设置如下所示,1处可以设置发送通道和接收通道的伪随机序列。2处可以设置加重、幅值门限、DFE使能。3处可以复位发送、接收的通道,4处显示各个通道锁相环的状态,5处可以设置回环模式。

在这里插入图片描述

图20 通道参数设置

  选中需要查看眼图的通道,然后鼠标右击,选择Create Scan…,如下图所示。

在这里插入图片描述

图21 创建眼图

  之后会弹出如下界面,可以对一些参数进行修改,一般保持默认即可。

在这里插入图片描述

图22 眼图参数设置

  扫描得到的眼图如下所示,眼睛张开的区域占33.33%,K7芯片线速率10.3125Gbps,能够达到这个效果也可以了。

在这里插入图片描述

图23 眼图扫描结果

  综上所述,查看了一组加重、均衡参数对应的眼图结果,如果要得到眼图张开最大,误码率最低的参数该如何做呢,可以手动修改参数,然后复位,重复获取每组数据的眼图,软件还给用户提供了眼图扫描功能,如下所示。

  选中需要扫描的通道,然后鼠标右键,点击Create Sweep…,如下图所示。

在这里插入图片描述

图23 眼图扫描

  会弹出如下选项框,勾选每次扫描之后复位接收端,其余设置保持不变,如下图所示。

在这里插入图片描述

图24 参数设置

  由于参数比较多,扫描的时间会比较久,在Serial I/O Scans选项卡中可以看到一些扫描完成的参数。

  下图中每一项代表一组参数对应的眼图扫描结果,左侧红框中的参数就是加重和接收端幅值参数,右侧框中表示对应参数眼图扫描结果眼睛睁开区域的占比,该值越大,表示眼睛睁开越大,采集数据越准确。

在这里插入图片描述

图25 部分扫描结果

  双击上图中扫描的结果,便可以打开对应参数对应的眼图。双击UI占比为22.22%的一次扫描结果,得到如下所示眼图。

在这里插入图片描述

图26 打开一组参数对应眼图

4、回环测试

  如果用户没有光纤,可以使用回环模式,进行测试。前文讲到,我开发板有两个高速收发器通道用于PCIE通信,并没有接光纤,因此不能使用光纤连接,眼图扫描时显示的未连接,本文使用这两个通道来说明回环的使用吧。

  首先需要将这两个通道加入Serial I/O Links界面,如下图所示,点击+号,然后点击Create Links…

在这里插入图片描述

图27 添加没有连接的通道

  如下图所示,首先选中需要添加的通道,然后点击+号即可。

在这里插入图片描述

图28 添加对应通道

  下图将两个未连接的通道添加成功的截图,然后点击OK。

在这里插入图片描述

图29 添加两个通道信号

  如下图所示,下面框中添加的两个通道没有建立连接,因为没有通道接收数据、也没有通道向他们发送数据。

在这里插入图片描述

图30 添加未连接通道

  然后将这两个通道回环模式分别设置为近端PCS回环和近端PMA回环,如下图所示,设置成功之后复位两个收发器的接收和发送通道。

在这里插入图片描述

图31 设置回环模式及复位

  之后再查看两个通道的状态,他们各自已经能够自己回环收发数据了,这种方式可以用来测试自己的代码是否正确。

在这里插入图片描述

图32 通道状态

  之后选中近端PCS回环的通道,然后查看其眼图,结果如下所示,眼睛张开区域达到100%。这是因为PCS只是数字信号处理,GTX内部直接回环,并没有经过外部电路的损耗传输,因此可以达到100%。

在这里插入图片描述

图33 近端PCS回环测试眼图

  下图是近端PMA回环的测试结果,因为再GTX中已经转换成串行的物理信号后进行的回环,接收端接收的数据有部分衰减,眼睛睁开达到77.78%。

在这里插入图片描述

图34 近端PMA回环测试眼图

  有兴趣的可是试试远端回环,本文远端的回环与真实情况差不多,因为都经过了光纤和PCB的传输,本文不再赘述。

  本文主要讲解眼图扫描IP的使用方式,以及回环模式的含义及作用。需要本文工程的可以在公众号后台回复“眼图扫描”(不包括引号)即可。


  如果对文章内容理解有疑惑或者对代码不理解,可以在评论区或者后台留言,看到后均会回复!

  如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!您的支持是我更新的最大动力!将持续更新工程!

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

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

相关文章

【字典树(前缀树) 字符串】2416. 字符串的前缀分数和

本文涉及知识点 字典树(前缀树) 字符串 LeetCode 2416. 字符串的前缀分数和 给你一个长度为 n 的数组 words ,该数组由 非空 字符串组成。 定义字符串 word 的 分数 等于以 word 作为 前缀 的 words[i] 的数目。 例如,如果 words [“a”,…

【list】list库介绍 + 简化模拟实现

本节博客先对list进行用法介绍,再在库的基础上简化其内容和形式,简单进行模拟实现,有需要借鉴即可。 目录 1.list介绍1.1 list概述1.2相关接口的介绍 2.简化模拟实现3.各部分的细节详述3.1结点3.2迭代器细节1:迭代器用原生指针还是…

【Codesys】-执行第三方程序,或Windows脚本

该记录旨在解决RTE作为第一个Windows的一个exe程序不能调用其他程序的问题。 可以实现:在PLC界面打开第三方程序、在PLC界面关闭本机Windows操作系统 首先添加依赖库-SysProcess,3.5.17.0 然后在程序里执行相应的指令,该指令可以被Windows识别为类似于执行Bat文件…

国产操作系统上使用rsync恢复用户数据 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上使用rsync恢复用户数据 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇关于在国产操作系统上使用rsync备份并还原用户数据的文章。rsync是一款功能强大的文件同步和备份工具,广泛用于Linux系…

河南乙级道路与桥梁资质年审材料准备要点解析

河南乙级道路与桥梁资质年审材料准备要点解析如下:河南宽信权经理 一、企业基本情况材料 营业执照副本复印件:确保复印件清晰、完整,并加盖企业公章。 企业章程:提供最新的企业章程,并加盖企业公章。此材料需反映企业…

代码随想录——从前序与中序遍历序列构造二叉树(Leetcode105)

题目链接 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

Linux(三)

Linux(三) Linux网络配置管理网络基础知识 IP地址A类 由1个字节网络地址3个字节主机地址B类 由2个字节网络地址2个主机地址C类 由3个字节网络地址1个主机地址D类:主要用于组播E类:为将来使用保留 子网掩码子网掩码作用网关DNS服务器 Linux用户管理用户的…

linux创建离线yum源给局域网机器使用

适用场景:在封闭的内网环境中,无法使用互联网进行安装各种rpm包的时候,离线yum源可以解决大部分问题,配置号后可直接使用yum进行安装包 1.准备好镜像源ISO: 例如以下示例,具体可参考自己的系统进行下载&a…

新书推荐:7.3 for语句

本节必须掌握的知识点: 示例二十四 代码分析 汇编解析 7.3.1 示例二十四 ■for语句语法形式: for(表达式1;表达式2;表达式3) { 语句块; } ●语法解析: 第一步:执行表达式1,表达式1初始化循环变量; …

【错题集-编程题】kotori 和迷宫(BFS / DFS)

牛客对应题目链接&#xff1a;kotori和迷宫 (nowcoder.com) 一、分析题目 迷宫问题的扩展。 二、代码 #include <iostream> #include <cstring> #include <queue>using namespace std;const int N 35; int x1, y1; // 标记起点位置 int n, m; char arr[N][…

电机控制系列模块解析(23)—— 同步机初始位置辨识

一、两个常见问题 为什么感应电机&#xff08;异步机&#xff09;不需要初始位置辨识&#xff1f;&#xff08;因此感应电机转子磁场在定子侧进行励磁&#xff0c;其初始位置可以始终人为定义为0&#xff09; 为什么同步磁阻电机需要初始位置辨识&#xff1f;&#xff08;因为…

五分钟搭建一个Suno AI音乐站点

五分钟搭建一个Suno AI音乐站点 在这个数字化时代&#xff0c;人工智能技术正以惊人的速度改变着我们的生活方式和创造方式。音乐作为一种最直接、最感性的艺术形式&#xff0c;自然也成为了人工智能技术的应用场景之一。今天&#xff0c;我们将以Vue和Node.js为基础&#xff…

【软件设计师】计算机组成原理

1、数据的表示 1.1 进制转换 整型有4种进制形式&#xff1a; 1.十进制&#xff08;D&#xff09;&#xff1a; 都是以0-9这九个数字组成&#xff0c;不能以0开头。 2.二进制&#xff08;B&#xff09;&#xff1a; 由0和1两个数字组成。 3.八进制&#xff08;O&#xff09;&am…

嵌入式进阶——数码管

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 数码管结构移位寄存器原理图移位寄存器数据流程移位寄存器控制流程移位寄存器串联实现数码管显示 数码管结构 共阴与共阳 共阳数码…

linux centos循环ping网段ip

循环ping&#xff0c;检测ip是否可用&#xff0c;ping通为正在使用yes&#xff0c;no为不通 vim test.sh#!/bin/bash ip"192.168.1."echo "ping log:" > ./ping.txt for i in {1..128} doping -c 1 -w 1 -W 1 $ip$i | grep -q "ttl" &&a…

Android跨进程通信--Binder机制及AIDL是什么?

文章目录 Binder机制Binder是什么&#xff1f;Binder相对于其他几种跨进程通信方式&#xff0c;有什么区别&#xff1f;谈一下 Binder IPC 通信过程&#xff1a;具体的通讯过程是什么&#xff1f;Binder如何处理发送请求与接收请求?Binder是通过什么方式来进行内存映射的&…

linux入门到精通-第十九章-libevent(开源高性能事件通知库)

目录 参考什么是libevent应用核心实现libevent的地基event_base等待事件产生&#xff0c;循环监听event_loop退出循环监听event_base_loopexit创建事件工作流程 安装一&#xff08;源码安装&#xff0c;推荐&#xff09;现在源码配置编译安装验证安装 安装二&#xff08;可能因…

KingbaseES数据库merge语法

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 MERGE 语句是一种用于数据操作的 SQL 语句&#xff0c;它能够根据指定的条件将 INSERT、UPDATE 和 DELETE 操作结合到单个语句中。其主要作用是在目标表和源表之间进行数据比较和同步&#xff0c;根据条件的匹配情况来…

RAG概述(二):Advanced RAG 高级RAG

目录 概述 Advanced RAG Pre-Retrieval预检索 优化索引 增强数据粒度 粗粒度 细粒度 展开说说 优化索引 Chunk策略 Small2Big方法 元数据 引入假设性问题 对齐优化 混合检索 查询优化 查询扩展 查询转换 Post-Retrieval后检索 参考 概述 Native RAG&#…

springboot vue 开源 会员收银系统 (4) 门店模块开发

前言 完整版演示 前面我们对会员系统 springboot vue 开源 会员收银系统 (3) 会员管理的开发 实现了简单的会员添加 下面我们将从会员模块进行延伸 门店模块的开发 首先我们先分析一下常见门店的管理模式 常见的管理形式为总公司 - 区域管理&#xff08;若干个门店&#xff…