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

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 功能还是比较有限的,不能进行误码率的测试,大部分参量也无法设置,不过对于观察信号质量来说,能看眼图也可以了

JESD204接口调试总结——JESD204+In-system-ibert相关推荐

  1. JESD204接口调试总结——Xilinx JESD204B IP 工程应用

    JESD204接口调试总结--Xilinx JESD204B IP 工程应用 Tb看完了,那我们需要对example 进行改造才能进行上板调试. 很明显,作为一个ADC和DAC接口,我们需要构建一个顶 ...

  2. JESD204接口调试总结——Xilinx JESD204C IP工程应用

    JESD204接口调试总结--Xilinx JESD204C IP工程应用 JESD204C上板调试,我直接跳过了看它的example的过程,因为example blockdesign设计的内容比较多 ...

  3. JESD204接口调试总结——Xilinx JESD204B数据手册的理解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结--Xilinx JESD204B数据手册的理解 时钟架构 Subclass 1 SYSREF Sampli ...

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

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结--Xilinx JESD204B IP testbench解析 IP核配置 testbench工程 部分代 ...

  5. JESD204接口调试总结——JESD204C协议的介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结--JESD204C协议的介绍 前言 JESD204C变化总结 新术语 传输层 数据链路层 物理层 第二部分 ...

  6. JESD204接口调试总结——Xilinx JESD204B IP AXI寄存器简介

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结--Xilinx JESD204B IP AXI寄存器简介 一般来说,如果在IPcore配置正确的话,不太需 ...

  7. JESD204接口调试总结——Xilinx JESD204C IP AXI寄存器简介

    JESD204接口调试总结--Xilinx JESD204C IP AXI寄存器简介 关于JESD204C的寄存器如下所示: 重要的寄存器: 020: 复位 这个复位和JESD204B的复位不太一样, ...

  8. JESD204接口调试总结——一次建链不稳定问题的解决

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结--一次建链不稳定问题的解决 问题的暴露 问题的分析过程 问题的解决 问题根本原因分析 事后反思 问题的暴露 ...

  9. JESD204接口调试总结——目录

    JESD204接口调试总结--目录 写在前面 目录 写在前面 JESD204B调试是我来**的第一个任务,而且是一个全新的射频器件(***79xx),对于我这个之前从来没接触过高速接口的人来说真的是压 ...

最新文章

  1. Linux命令缩写来由
  2. Intellij Idea生成serialVersionUID的方法
  3. python 切片 单冒号的作用[:](批量赋值最小数组单元)
  4. java calendar_Java Calendar internalGet()方法与示例
  5. logback AbstractLogstashTcpSocketAppender 源码解析
  6. 【Java】总结//TODO、//FIXME、//XXX 注释
  7. 【html】表单元素练习
  8. 没法再详细的说说Linux压缩与归档命令(下-2)
  9. 利用Enterprise Library中的DAAB构造的数据库访问架构
  10. CAM365|超高性价比CAM软件推荐
  11. SPI通信协议详解(五)
  12. 京瓷打印机驱动安装教程,怎么安装方便点?
  13. **汉服有哪些基本形制呢**
  14. No Bootable Device 问题解决(由于误删ESP分区导致)
  15. Linux开发板网络直连电脑的设置方法
  16. 感应开关垃圾桶小项目的完成及问题解决——基于STC89C52RC单片机
  17. WORD里,如何在同一个文档中为不同页面,设置不同的页眉和页脚
  18. 7.2 一次产品异常复位引发的质量提升经历
  19. 二维图形的基本变换与裁剪的变换矩阵
  20. 慎重跳槽,我眼中的跳槽黄金时期

热门文章

  1. HTML自动暂停按钮,css播放暂停按钮实现_html/css_WEB-ITnose
  2. 什么是SATA接口硬盘?无法正常使用时如何恢复数据
  3. 决定会计人晋升的四大原因,ACCA绝不背锅!
  4. 安装VS2015时出现“安装包丢失或损坏”
  5. SparkStreaming整合Kafka(0.8.2.1)计算不同业务指标并实现累加(结合Redis)
  6. PPT结尾只会说“谢谢”?学会这些PPT结尾,观众主动为你鼓掌
  7. 新零售模式,数据管理更轻松
  8. linux中ls-f的用法,ls命令--Linux命令应用大词典729个命令解读
  9. 如何查找出局域网中限速的人
  10. Python数据处理与分析小项目-分析员工过早离职原因