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

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

  • IP核配置
  • testbench工程
  • 部分代码解读

IP核配置


1、IP核为接收功能
2、LMFC buffer设定为最大
3、4条lane
4、sysref下降沿采样 (前面的帖子有说明为什么下降沿)

1、选择第二种,保持更大灵活性(不然更多的功能被包在了IP核中)


1、SYSREF always 前面博文有介绍
2、不开扰码
3、F K参数与外面transceiver器件设定相匹配
4、SYSREF Required on Re-Sync 前面博文有介绍


1、线速率 9.8304Gbps
2、参考时钟 122.88
3、DRP时钟 122.88

生成IP核后,右击IP核,点击example design,一个tb工程就自动生成了。

testbench工程

以下是xilinx jesd手册文档描述的接收testbench工程



序号 项目 代号 参数 说明
1 ADC转换器个数 M 4 已知前提条件
2 ADC与FPGA连接的SERDES通道数 L 4 已知前提条件
3 ADC每帧包含8位字节数 F 4 根据1,2,5,6计算出来
4 ADC采样位数 N 14 已知前提条件
5 JESD204B字大小(4个半字节) N` 16 根据4计算出来
6 ADC每帧包含样本数 S 1 已知前提条件
7 ADC每个多帧包含的连续帧数 K 32 可配置
8 ADC侧的Device Clock 491.52MHz 根据10,1,5计算出来
9 FPGA侧的Device Clock(Core CLK) 122.88MHz 根据10计算出来
10 JESD204B SERDES速率 9.8304Gpbs 已知前提条件

这里要注意,因为例程中M = LANE数,相当于1条lane对应1个转化器
而一条lane 数据输入或输出接口是 在245.76M下的32bit输出
而转化器是491.52下的14(16)bit输入或输出。
因此相当于一个时钟下两个采样点并行输入输出。

在接收校验模块中 jesd204_ip_4rx_ad_sig_chk.v
在一个clk时钟下接收到了2个数据,即可说明上述说法是正确的

      //Channel 0signal0_sampl0_expected <= sine_lut64_14bit[index0];signal0_sampl1_expected <= sine_lut64_14bit[index0+1];signal0_cntrl0_expected <= index0;  //clipped to two bitssignal0_cntrl1_expected <= index0+1;  //clipped to two bitsindex0 <= index0+2;

(在实际应用中,一般是存在IQ两路数据的,I/Q分别都需要一个转换器,4个转换器相当于2对IQ了)

相关计算过程如下:

1、F的值根据 MSN`/(8L) = 4116/(84) = 2

1、serdes速率为9.8304Gbps,并行数据宽度为32位,core clock为 9.8304G * 0.8 / 32 = 245.76MHz
2、8位字符时钟character clock为
245.76MHz*4 = 983.4MHz
3、Frame clock 为491.52MHz (F=2,四个字节一个frame)
4、Multi - Frame clock 为 491.52MHz/32 = 15.36MHz
5、SYSREF周期数必须是Multi - Frame clock的整数倍分频,可以更小,不能更大。
(This generate a periodic SYSREF with period = 4 Multiframes 3.84)

部分代码解读

下面涉及两个任务
Task:rx_stimulus_send_column 将字节经过8B10B编码后,
通过Task:rx_stimulus_send_10b_column发送出去。其中里面还包含一个8B10B编码函数,因为相对来说比较固定,这里不做解读,只要知道经过了这个函数后,8bit就变成了10bit即可。

ILA 4个多帧,一个多帧(F = 2 K = 32)64字节,那么4个多帧256个字节

------------------------------多帧1------------------------------
字节1 : K28.0 8’h1C (R)
字节2-63: 数字:0 – 61 (D)
字节64 : K28.3 8’h7C (A)

------------------------------多帧2------------------------------
字节1 : K28.0 8’h1C (R)
字节2 : K28.4 8’h9C (Q)
字节3 : pDID 8’h55
字节4 : {pADJCNT, pBID} 4’h0 4’hA
字节5 ([4:0]) : LANEID(如果有4个lane,那么每个lane这个字节分别为0-3)
([7:5]) : {1’b0, pADJDIR, pPHADJ} 0 0

字节6 : {pSCR, 2’b0, pL} pSCR = 0 pL = Lane的个数- 1
字节7 : pF – 1 pF即参数F
字节8 : pK – 1 pK即参数K
字节9 : pM = Lane的个数 – 1
字节10 : {pCS, 1’b0, pN} pCS = 2’d2 pN = 5’d13 查询一下,AD位数14bit
字节11 :{pSUBCV, pNt} 3’b001 5’d15
字节12 :{pJESDV, pS} 3’b001 5’d0
字节13 :{pHD, 2’b0, pCF}
字节14 :{pHD, 2’b0, pCF} 1’b0 5’d1
字节15 :{ pRES1} 8’h5A
字节16 :{ pRES2} 8’hA5
字节17 :prechecksum + LANEID
字节18-63 :数字:0 – 46
字节64 : K28.3 8’h7C (A)

------------------------------多帧3------------------------------
字节1 : K28.0 8’h1C (R)
字节2-63: 数字:0 – 61 (D)
字节64 : K28.3 8’h7C (A)

------------------------------多帧4------------------------------
字节1 : K28.0 8’h1C (R)
字节2-63: 数字:0 – 61 (D)
字节64 : K28.3 8’h7C (A)


发射端在检测到sync后,遇到sysref上升沿开始发送ILA。红色箭头所示
接收端收到了4个多帧后(前后带K码),很快tvalid信号拉高,则可以数据接收准备好,可以取数据了

tb中的axi_write如果IP核中配置正确的话下面代码在实际应用中可以不需要

// 0x008: Support ILAaxi_write(2,32'h00000001);// 0x00C: Scrambling dissabledaxi_write(3,32'h00000000);// 0x010: Sysref onceaxi_write(4,32'h00000001);// 0x014: Tx Only register// 0x018: Test mode = Normal operationaxi_write(6,32'h00000000);// 0x020: Octets per Frame F=2axi_write(8,32'h00000001);// 0x024: Frames per Multiframe K=32axi_write(9,32'h0000001F);// 0x028: Lanes in useaxi_write(10,32'd15);// 0x02C: Device subclass 1axi_write(11,32'h00000001);// 0x030: Rx buffer delayaxi_write(12,32'h00000000);// 0x034: Error reporting via ~syncaxi_write(13,32'h00000000);

只需要对 写这个即可

axi_write(1,32'h00000001);

看明白了接收,那么发射也就不难了,这里就不再说明了


写于2021年11月6日。
如需交流,可以评论区留言,然后加QQ:172146579

JESD204接口调试总结——Xilinx JESD204B IP testbench解析相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. Xilinx JESD204B IP AXI驱动代码

    说明:Xilinx JESD204B IP AXI驱动代码,通过VIO进行JESD204B IP和寄存器的读写. 参考博客:Xilinx_JESD204B 效果简单展示如下: 方便调试,将AXI_Li ...

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

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结--JESD204+In-system-ibert 前言 IP核的设置 IP核连线 调试jtag界面 总结 ...

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

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

最新文章

  1. 软件架构设计之常用架构模式
  2. 地球那么大的开放世界游戏怎么做?腾讯云高级架构师为开发者设计了一套方案
  3. Windows中非常实用的命令
  4. HuggingFace又出炼丹神器!稀疏矩阵运算进入平民化时代!
  5. Vijos1240 朴素的网络游戏
  6. 【华为云技术分享】数据管理服务DAS 之 数据库自动化运维功能展播4:慢SQL
  7. LOCK TABLES
  8. javascript Date日期类
  9. 237.删除链表中的节点
  10. mathtype——小白安装
  11. 如何调试 chrome插件
  12. Python学习路线(课程大纲+Python视频教程+下载地址)
  13. 微信公众号开发 获取openid时报错40163:code been used问题的解决
  14. LeetCode - 720 - 词典里最长的单词(longest-word-in-dictionary)
  15. DirectX11 SDK下载地址
  16. LeetCode 1723 完成所有工作的最短时间 题解
  17. CTF初学笔记解题-密码1
  18. Costco已来华,会员制电商是否迎来爆发增长期?
  19. java rgb十六进制数据转图片
  20. 27个机器学习图表,帮你作弊一般飞速成长!

热门文章

  1. 把时间当作朋友——第3章 管理
  2. 《把时间当朋友》 第六章交流 读书笔记
  3. 方维直播增加三级分销推广功能
  4. vue引入D3绘制流程图
  5. 机器人学习笔记(一)
  6. 手游代理加盟如何避免被套路?
  7. 解决 hsdb jinfo jmap sa-jdi等mac不可用问题
  8. Android项目gen目下没有R.class文…
  9. [256个管理学理论]006.刺猬效应(Hedgehog Effect)
  10. Bibtex4word+texlive在win7配置过程及遇到的问题