基于Ultrascale+系列GTY收发器8b/10b编码方式的数据传输(三)——利用In System IBERT优化信号质量

  基于Ultrascale+系列GTY收发器8b/10b编码方式的数据传输(二)——数据收发及上板测试 一文介绍了利用GTY高速收发器进行8B/10B编码数据收发的使用方式,本文继续介绍使用In System IBERT IP核构建ibert眼图测试,以及通过设置参数以优化信号传输质量的方法。

添加In System IBERT IP核

在现有GT工程中添加In System IBERT IP核

  Vivado中构建眼图的方式存在两个IP核,IBERT Ultrascale GTY是专门用于一或多个GT通道进行眼图测试的IP核,它难以与自行搭建的GT工程相结合,因此本文主要介绍In System IBERT IP核的使用方法。

图片

  In System IBERT IP核的配置界面如下,只需选择需要测试的GTY位置即可完成配置,这里由于要测试VCU128开发板的QSFP1_1所在GT bank,因此选择quad124的第一个GT。

图片

  In System IBERT IP核的输入为两个时钟信号,其中clk为freerun时钟,其时钟频率与GT DRP(动态配置接口)的时钟频率保持一致;rxoutclk时钟使用GT COMMON产生的rxclkout2时钟。

  In System IBERT IP核的输出需要接到GT的DRP接口和几个ibert测试专用接口,在GTY IP核的配置界面include in-system ibert core一栏选择开启。

修改GTY IP核的配置

图片

  在代码中添加相关引脚链接,一一对应即可,完成后重新综合生成比特流。

    in_system_ibert_0 in_system_ibert_0_inst (.drpclk_o(drpclk_in),                       // output wire [0 : 0] drpclk_o.gt0_drpen_o(drpen_in),                     // output wire gt0_drpen_o.gt0_drpwe_o(drpwe_in),                     // output wire gt0_drpwe_o.gt0_drpaddr_o(drpaddr_in),                 // output wire [9 : 0] gt0_drpaddr_o.gt0_drpdi_o(drpdi_in),                     // output wire [15 : 0] gt0_drpdi_o.gt0_drprdy_i(drprdy_out),                  // input wire gt0_drprdy_i.gt0_drpdo_i(drpdo_out),                    // input wire [15 : 0] gt0_drpdo_i.eyescanreset_o(eyescanreset_in),           // output wire [0 : 0] eyescanreset_o.rxrate_o(rxrate_in),                       // output wire [2 : 0] rxrate_o.txdiffctrl_o(txdiffctrl_in),               // output wire [4 : 0] txdiffctrl_o.txprecursor_o(txprecursor_in),             // output wire [4 : 0] txprecursor_o.txpostcursor_o(txpostcursor_in),           // output wire [4 : 0] txpostcursor_o.rxlpmen_o(rxlpmen_in),                     // output wire [0 : 0] rxlpmen_o.rxoutclk_i(gtwiz_userclk_rx_usrclk2_out),  // input wire [0 : 0] rxoutclk_i.clk(gtwiz_reset_clk_freerun_in)            // input wire clk);

上板使用In System IBERT

查看眼图扫描

图片

  重新上板In-System IBERT将出现在ila所在窗口,使用Auto-detect link或create link创建串口链路。右键create scan可创建2D眼图扫描。

图片

  下两图展示了默认配置下的眼图结果,眼图扫描结果代表不同情况下误码率的高低。眼图中心区域越大,代表信号传输质量越好。第二张图展示了RX接收来自TX数据的结果,可以看到数据帧能够被正确解析。

图片

图片

  除了查看眼图外,IBERT还支持设置TX预加重(Pre Cursor)、TX后加重(Post Cursor)、TX差异摆动(Diff Swing)、是否使用DFE均衡器四个GT参数,这四个参数的选择会显著影响眼图大小,即信号传输质量。这四个参数会受多种因素的影响,因此当遇到误码率较高、甚至RX收到的完全为乱码的情况时,可以尝试调整这四个参数解决。

  下两张图展示了参数设置不合理的眼图,此时眼图Open UI为0%,第二张图展示了RX接收来自TX数据的结果,可以看到RX此时完全无法收到正确数据。

图片

图片

使用深度扫描查找最佳GT参数

  想要获取TX预加重(Pre Cursor)、TX后加重(Post Cursor)、TX差异摆动(Diff Swing)、是否使用DFE均衡器四个GT参数的最佳数值,可以在如下界面右键scan sweep。

图片

  在create sweep选项卡中,sweep properties中可以选择设置几个参数,IBERT能够对这些参数进行排列组合,对每种组合均进行眼图扫描,用户可以根据最好的眼图扫描结果配置参数。

图片

  由于IBERT通过DRP接口读写实现GT参数的配置,因此除了上述4个GT参数外,也可以对其他DRP能够访问的GT参数进行读写配置以查看眼图结果。

图片

工程代码

  本文所使用的工程代码可在同名公众号回复GTY_8B10B_IBERT下载。

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

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

相关文章

ArcGIS三维景观分层显示

今天将向大家介绍的事在ArcGIS中如何创建多层三维显示。 地表为影像的 地表为地形晕渲的 在土壤分层、油气分层等都有着十分重要的应用。下面我们具体来看看实现过程 一、 准备数据及提取栅格范围 我们这次准备的数据是之前GIS100例-30讲的案例数据。《ArcGIS三维影像图剖面图…

C语言 函数——代码风格

目录 基本的代码规范 程序版式 对齐(Alignment)与缩进(indent) 变量的对齐规则 空行——分隔程序段落的作用 代码行内的空格——增强单行清晰度 代码行 长行拆分 标识符命名规则 标识符命名的共性规则 windows应用程序…

发人深省:如果前端开发是青春饭,为何你的青春这么匆匆。

有很多人说前端开发是青春饭,干不了多久,很容易被取代,这就是危言耸听了。只要前端岗位在一天,这就不是青春饭;即便被取代,资深前端很快就会在别的地方找到自己立身之本, 反观哪些天天抱怨&…

【Excel2LaTeX】复杂表格制作的解决方案

刚开始用LaTeX写论文,遇到的第一道坎就是绘制表格,较小的普通表格可以通过简单的语法实现,但是较大的复杂的表格却让我无从下手。 Excel2LaTeX插件 这里介绍一种我用到非常顺手的工具:Excel2LaTeX插件,下载地址&#x…

C语言:文件操作(四)

目录 前言 6、文本文件和二进制文件 7、文件读取结束的判定 7.1 被错误使用的feof 8、文件缓冲区 总结 前言 接上篇,本篇要讲解的是文本文件和二进制文件的内容、文件读取结束的判定以及文件缓冲区。 6、文本文件和二进制文件 根据数据的组织形式,数…

嵌入式工程师如何摸鱼?

有老铁问我,做嵌入式开发要加班吗? 也不知道搞什么鬼,现在的年轻人对加班这么抵触。 我刚做开发那会,啥也不懂,每天基本都要加班到晚上7-9点不等,我并不抵触加班,因为早早回家,也没什…

HarmonyOS开发实战:【亲子拼图游戏】

概述 本篇Codelab是基于TS扩展的声明式开发范式编程语言编写的一个分布式益智拼图游戏,可以两台设备同时开启一局拼图游戏,每次点击九宫格内的图片,都会同步更新两台设备的图片位置。效果图如下: 说明: 本示例涉及使…

搜狗多线程长尾词挖掘软件-【批量挖掘搜狗大家还在搜和相关搜索长尾词】

搜狗多线程长尾词挖掘软件-【批量挖掘搜狗大家还在搜和相关搜索长尾词】介绍: 1、软件根据放入多个关键词批量多线程去搜狗搜索里拓搜狗大家还在搜和相关搜索。 2、搜狗大家还在搜和相关搜索长尾词质量好。 3、一个关键词可以拓19个高质量相关长尾词。 4、软件自…

msyql中SQL 错误 [1118] [42000]: Row size too large (> 8126)

场景: CREATE TABLE test-qd.eqtree (INSERT INTO test.eqtree (idocid VARCHAR(50) NULL,sfcode VARCHAR(50) NULL,sfname VARCHAR(50) NULL,sfengname VARCHAR(50) NULL,…… ) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_general_ci;或 alter table eqtre…

【Java】jdk1.8 Java代理模式,Jdk动态代理讲解(非常详细,附带class文件)

📝个人主页:哈__ 期待您的关注 一、什么是代理模式 想要学代理模式,我们就要先弄清一个概念“什么是代理”? 在我们的现实生活中,你或许不少听过关于代理的名词,如:代理商。那什么又叫做代理…

安装SSMS出现错误和SSMS连接数据库失败

目录 1.点击图片下安装的时候,出现0x80070643错误 解决办法: 1,如果是是第一次安装的话,重新启动电脑,把原来下载的SSMS删除掉,在重新下载安装 2.如果是原来就下载过,先重启一下,如果还不可以就…

MySQL 基础使用

文章目录 一、Navicat 工具链接 Mysql二、数据库的使用1.常用数据类型2. 建表 create3. 删表 drop4. insert 插入数据5. select 查询数据6. update 修改数据7. delete 删除记录truncate table 删除数据 三、字段约束字段1. 主键 自增delete和truncate自增长字段的影响 2. 非空…