JESD204接口调试总结——JESD204+In-system-ibert

article/2025/10/2 3:40:54

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

JESD204接口调试总结——JESD204+In-system-ibert

  • 前言
  • IP核的设置
  • IP核连线
  • 调试jtag界面
  • 总结

前言

之前我们在讲serdes的时候讲到了使用in-system-ibert来进行眼图的扫描,在transceiver wizard 中,是直接有 include in-systemibert选项的,生成一个exanple就可以得到一个带in-systemibert IP核的工程,参见我serdes总结的博文,JESD204B实际上也是基于serdes来实现的,问题是JESD204B的IP核并不带有include in-system-ibert的选项,那JESD204B有没有办法在不影响正常使用的情况下,对JESD 高速接口进行扫眼图和调整收发参数呢?
实际上JESD PHY也是可以挂载一个in-systemibert的,只是需要自己手动添加这个模块,实际上根据transceiver wizard生成的例子,我们自己也很好添加,因为这个接口比较简单也明了,一看就知道怎么连接了,这里直接把连接线列在下面

IP核的设置

1、可以勾选 或者不勾选,不勾选的话需要手动添加逻辑设置相关参数的初值
在这里插入图片描述
2、勾选中serdes的相关位置
在这里插入图片描述
就这么简单,没有其他设置了。
IP核端口模型
在这里插入图片描述
通过这个IP核,我们可以设置以及改变以下这些值:
rxrate, rxlpmen, txdiffctrl, txpostcursor and txprecursor,这些值就是serdes的主要收发参数值了

(The configuration and tuning of the GTH/GTY transceivers is accessible though logic which communicates with the Dynamic Reconfiguration Port (DRP) of the transceivers, to change attribute settings, as well as registers that control the values on the following ports: rxrate, rxlpmen, txdiffctrl, txpostcursor and txprecursor)

rxrate_i、txdiffctril_i、txprecursor_i、txpostcusor_i,rxlpmen_i,这些输入端口是进行初值设置
当不启用include in-systemibert调试时rxrate_o、txdiffctril_o、txprecursor_o、txpostcusor_o,rxlpmen_o的输出就是上述初值,启用include in-systemibert调试时,输出的就是调试界面上得值

IP核连线

in_system_ibert_0 your_instance_name (.drpclk_o(drpclk_o),              // output wire [7 : 0] drpclk_o.gt0_drpen_o(gt0_drpen_o),        // output wire gt0_drpen_o.gt0_drpwe_o(gt0_drpwe_o),        // output wire gt0_drpwe_o.gt0_drpaddr_o(gt0_drpaddr_o),    // output wire [9 : 0] gt0_drpaddr_o.gt0_drpdi_o(gt0_drpdi_o),        // output wire [15 : 0] gt0_drpdi_o.gt0_drprdy_i(gt0_drprdy_i),      // input wire gt0_drprdy_i.gt0_drpdo_i(gt0_drpdo_i),        // input wire [15 : 0] gt0_drpdo_i.gt1_drpen_o(gt1_drpen_o),        // output wire gt1_drpen_o.gt1_drpwe_o(gt1_drpwe_o),        // output wire gt1_drpwe_o.gt1_drpaddr_o(gt1_drpaddr_o),    // output wire [9 : 0] gt1_drpaddr_o.gt1_drpdi_o(gt1_drpdi_o),        // output wire [15 : 0] gt1_drpdi_o.gt1_drprdy_i(gt1_drprdy_i),      // input wire gt1_drprdy_i.gt1_drpdo_i(gt1_drpdo_i),        // input wire [15 : 0] gt1_drpdo_i.gt2_drpen_o(gt2_drpen_o),        // output wire gt2_drpen_o.gt2_drpwe_o(gt2_drpwe_o),        // output wire gt2_drpwe_o.gt2_drpaddr_o(gt2_drpaddr_o),    // output wire [9 : 0] gt2_drpaddr_o.gt2_drpdi_o(gt2_drpdi_o),        // output wire [15 : 0] gt2_drpdi_o.gt2_drprdy_i(gt2_drprdy_i),      // input wire gt2_drprdy_i.gt2_drpdo_i(gt2_drpdo_i),        // input wire [15 : 0] gt2_drpdo_i.gt3_drpen_o(gt3_drpen_o),        // output wire gt3_drpen_o.gt3_drpwe_o(gt3_drpwe_o),        // output wire gt3_drpwe_o.gt3_drpaddr_o(gt3_drpaddr_o),    // output wire [9 : 0] gt3_drpaddr_o.gt3_drpdi_o(gt3_drpdi_o),        // output wire [15 : 0] gt3_drpdi_o.gt3_drprdy_i(gt3_drprdy_i),      // input wire gt3_drprdy_i.gt3_drpdo_i(gt3_drpdo_i),        // input wire [15 : 0] gt3_drpdo_i.gt4_drpen_o(gt4_drpen_o),        // output wire gt4_drpen_o.gt4_drpwe_o(gt4_drpwe_o),        // output wire gt4_drpwe_o.gt4_drpaddr_o(gt4_drpaddr_o),    // output wire [9 : 0] gt4_drpaddr_o.gt4_drpdi_o(gt4_drpdi_o),        // output wire [15 : 0] gt4_drpdi_o.gt4_drprdy_i(gt4_drprdy_i),      // input wire gt4_drprdy_i.gt4_drpdo_i(gt4_drpdo_i),        // input wire [15 : 0] gt4_drpdo_i.gt5_drpen_o(gt5_drpen_o),        // output wire gt5_drpen_o.gt5_drpwe_o(gt5_drpwe_o),        // output wire gt5_drpwe_o.gt5_drpaddr_o(gt5_drpaddr_o),    // output wire [9 : 0] gt5_drpaddr_o.gt5_drpdi_o(gt5_drpdi_o),        // output wire [15 : 0] gt5_drpdi_o.gt5_drprdy_i(gt5_drprdy_i),      // input wire gt5_drprdy_i.gt5_drpdo_i(gt5_drpdo_i),        // input wire [15 : 0] gt5_drpdo_i.gt6_drpen_o(gt6_drpen_o),        // output wire gt6_drpen_o.gt6_drpwe_o(gt6_drpwe_o),        // output wire gt6_drpwe_o.gt6_drpaddr_o(gt6_drpaddr_o),    // output wire [9 : 0] gt6_drpaddr_o.gt6_drpdi_o(gt6_drpdi_o),        // output wire [15 : 0] gt6_drpdi_o.gt6_drprdy_i(gt6_drprdy_i),      // input wire gt6_drprdy_i.gt6_drpdo_i(gt6_drpdo_i),        // input wire [15 : 0] gt6_drpdo_i.gt7_drpen_o(gt7_drpen_o),        // output wire gt7_drpen_o.gt7_drpwe_o(gt7_drpwe_o),        // output wire gt7_drpwe_o.gt7_drpaddr_o(gt7_drpaddr_o),    // output wire [9 : 0] gt7_drpaddr_o.gt7_drpdi_o(gt7_drpdi_o),        // output wire [15 : 0] gt7_drpdi_o.gt7_drprdy_i(gt7_drprdy_i),      // input wire gt7_drprdy_i.gt7_drpdo_i(gt7_drpdo_i),        // input wire [15 : 0] gt7_drpdo_i.eyescanreset_o(eyescanreset_o),  // output wire [7 : 0] eyescanreset_o.rxrate_o(rxrate_o),              // output wire [23 : 0] rxrate_o.txdiffctrl_o(txdiffctrl_o),      // output wire [39 : 0] txdiffctrl_o.txprecursor_o(txprecursor_o),    // output wire [39 : 0] txprecursor_o.txpostcursor_o(txpostcursor_o),  // output wire [39 : 0] txpostcursor_o.rxlpmen_o(rxlpmen_o),            // output wire [7 : 0] rxlpmen_o.rxrate_i(rxrate_i),              // input wire [23 : 0] rxrate_i.txdiffctrl_i(txdiffctrl_i),      // input wire [39 : 0] txdiffctrl_i.txprecursor_i(txprecursor_i),    // input wire [39 : 0] txprecursor_i.txpostcursor_i(txpostcursor_i),  // input wire [39 : 0] txpostcursor_i.rxlpmen_i(rxlpmen_i),            // input wire [7 : 0] rxlpmen_i.drpclk_i(drpclk_i),              // input wire [7 : 0] drpclk_i.rxoutclk_i(rxoutclk_i),          // input wire [7 : 0] rxoutclk_i.clk(clk)                        // input wire clk
);

大部分连线一看就是一目了然。这里就不多讲了,时钟的设置如下即可。

  .drpclk_o(),              // output wire [7 : 0] drpclk_o.drpclk_i(8{drpclk}),              // input wire [7 : 0] drpclk_i.rxoutclk_i(8{drpclk}),          // input wire [7 : 0] rxoutclk_i.clk(drpclk)                        // input wire clk
);

调试jtag界面

1、添加link
在这里插入图片描述

2、修改参数
在这里插入图片描述
3、进行眼图扫描
在这里插入图片描述

总结

这样我们就可以在不影响整个功能正常使用的情况下,进行眼图的观察,也可以对收发参数进行调整,特别是在一些极端情况下,例如高低温,可以直接调试,方便定位问题。

从图中可以看出,in-sysmbert 功能还是比较有限的,不能进行误码率的测试,大部分参量也无法设置,不过对于观察信号质量来说,能看眼图也可以了


http://chatgpt.dhexx.cn/article/gytgqRQj.shtml

相关文章

JESD204B IP核的配置与使用

一、JESD204 配置方式: Configuration 1、Transmit or Receive: 选择是作为接收机还是发射机 2、LFMC : 默认值 3、Number of lanes : 传输的通道数,根据实际需求选择 4、pattern:模式的选择,正常情况下两个都不选 5、clocki…

JESD204接口调试总结——Xilinx JESD204B IP testbench解析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结——Xilinx JESD204B IP testbench解析 IP核配置testbench工程部分代码解读 IP核配置 1、IP核为接收功能 2、LMFC buffer设定为最大 3、4条lane 4、sysre…

STC15W204S下载

一&#xff1a;所使用测试板。 为8管脚最小板&#xff0c; 二&#xff1a;工程新建。 一&#xff1a;keil c51。 2&#xff1a;新建main,加入工程。 测试程序&#xff1a; #include <reg52.h>//stc15w20s为51内核#define MAIN_Fosc 35000000UL //定义主时钟sbit PIN_LE…

JESD204B 系统复位与同步选项

CGS&#xff0c;代码组同步&#xff0c;ILA&#xff0c;初始化多帧序列帧同步&#xff0c;然后进行数据传输 。 系统复位 在系统复位上&#xff1a;JESD204中提供了一个全局的异步时钟复位&#xff0c;rx_reset用来复位整个系统&#xff0c;AXI4-Lite系统总线复位不受此影响&am…

Atsha204a使用心得

最近公司要用到Atsha204a做软件和硬件的绑定加密&#xff0c;于是就调了它的驱动&#xff0c;将使用过程中遇到的坑整理下&#xff0c;也好让各位同仁少加点班&#xff1b;废话少说&#xff0c;直接入正题。 0.加密原理&#xff1a; 主控端和Atsha204a端有相同的16 组密码&am…

JESD204B接口调试记录3 - 总结

目录 一、介绍下项目历史情况 二、为什么要用fs4模式&#xff1f; 三、为什么要将采样率改成2.5Gsps&#xff1f; 四、时钟芯片参数如何设置&#xff1f; 五、AD芯片参数如何设置&#xff1f; 六、FPGA工程里JESD204 IP如何设置&#xff1f; 七、传输层如何解包&#xff…

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

1、JESD204协议概述 ADC、DAC技术即模数、数模转换技术&#xff0c;在军用和民用领域广泛应用&#xff0c;如现在常用的有微信语音、网络电话、其典型数据处理流程&#xff1a; 语音输入->ADC采样->调制->基站->无线传输->基站->解调->DAC->语音输出…

理解JESD204B链路参数 Understanding JESD204B Link Parameters

想要彻底理解参数意义要先看JESD协议标准原文&#xff0c;再看看这文章。这是我花了很久才意识到的道理&#xff0c;不过这篇文章对理解也有一定意义。 这个文章是我看的一篇英文文章的大体翻译&#xff0c;并不是逐行的。文章名《Understanding JESD204B Link Parameters》 L…

FPGA之JESD204B接口——总体概要 首片

1. 简介 JESD204是一种连接数据转换器&#xff08;ADC和DAC&#xff09;和逻辑器件的高速串行接口&#xff0c;该标准的 B 修订版支持高达 12.5 Gbps串行数据速率&#xff08;目前C修订版已经发布&#xff0c;即JESD204C&#xff09;&#xff0c;并可确保 JESD204 链路具有可重…

JESD204B 参数理解

M和N M表示单片芯片上转换器的个数。 N表示转换器的分辨率。 比如一个4通道14位的ADC器件&#xff0c;M为4&#xff0c;N为14. N’ N’ 定位为word 长度。N’的计算为首先把N打散成一个个的nibble,每个nibble为4bit.对于14bit和16bit的分辨率&#xff0c;都是4个nibble,12…

Atmel ATSHA204应用总结

1 ACES软件安装 Atmel Crypto Evaluation Studio (ACES) https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/Atmel%20Crypto%20%20Studio%20(ACES) 2 基本概念 ACES CE&#xff1a;Atmel Crypto Evalution Studio Configuration Environment&#xff08;基于加…

加密芯片ATSHA204之使用

目录 看手册Command PacketsConfiguration ZoneLock CommandNonce CommandGenDig CommandWrite CommandRead CommandMAC CommandDeriveKey Command相关参考 本文旨在记录 ATSHA204 的使用过程。ATSHA204 是一个安全认证和验证设备&#xff0c;可防止设备被抄袭&#xff0c;应该…

ATSHA204芯片手册阅读笔记

使用心得: &#xff08;1&#xff09;配置好IIC&#xff0c;访问芯片之前先唤醒。 &#xff08;2&#xff09;按个人需求配置好Config区域&#xff0c;配置好之后锁住Config。只有锁住了Config&#xff0c;才能去操作Data区。 &#xff08;3&#xff09;开始写数据区&#xff0…

JESD204标准概述

此篇是我在学习中做的归纳与总结&#xff0c;其中如果存在版权或知识错误请直接联系我&#xff0c;欢迎留言。 PS:本着知识共享的原则&#xff0c;此篇博客可以随意转载&#xff0c;但请标明出处&#xff01; 目录 JESD204协议标准的分类和区别&#xff1a; JESD204A JESD20…

【JESD204系列】二、JESD204概述

在JESD204B 版本中&#xff0c;引入了确定性延时这一关键同步机制&#xff0c;并根据确定性延迟的不同实现方式划分了三个子类。通过实现确定性延迟&#xff0c;系统在两次上电之间&#xff0c;或者重新建立链路的时候&#xff0c;有了一个可以重复的延迟&#xff0c;为系统在处…

JESD204B学习之关键点问答

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/u014586651/article/details/86744263 JESD204B学习之关键点问答 1.概述 本文是用于记录JESD20…

jesd204B

调试ADI_JESD204B&#xff1a; 问题描述 卡在CGS阶段。 rx_204B 收到了连续的K码bcbcbcbc&#xff0c;但是SYNC一直不能拉高。 sdk的串口打印报错。initial frame synchronization:NO ? 原因分析&#xff1a; 可能收发的配置问题&#xff1f; sysref频率有问题&#xff1f; 复…

JESD204B 使用说明

JESD204B IP核作为接收端时&#xff0c;单独使用&#xff0c;作为发送端时&#xff0c;可以单独使用&#xff0c;也可以配合JESD204b phy使用。 JESD204B通常配合AD或DA使用&#xff0c;替代LVDS,提供更高的通讯速率&#xff0c;抗干扰能力更强&#xff0c;布线数量更少。 本…

http中的204和205

基本概念 http协议的200&#xff0c;301&#xff0c;302&#xff0c;304&#xff0c;404&#xff0c;503这些常用的状态码就不再介绍了。这里主要说一下不常见的204和205吧。 204代表响应报文中包含若干首部和一个状态行&#xff0c;但是没有实体的主体内容。主要用于在浏览器…

火狐firefox快速切换代理插件:Proxy Switcher

简介 l利用Firefox下的Proxy Switcher插件可以实现快速切换代理 安装 两种方式进入拓展和主题页面 方式一 寻找更多扩展的搜索栏输入Proxy Switcher 选择添加到Firefox 方式二 语言设置为中文的火狐浏览器直接打开地址&#xff1a;https://addons.mozilla.org/zh-CN/f…