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

article/2025/10/2 4:06:06

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

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工程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

序号项目代号参数说明
1ADC转换器个数M4已知前提条件
2ADC与FPGA连接的SERDES通道数L4已知前提条件
3ADC每帧包含8位字节数F4根据1,2,5,6计算出来
4ADC采样位数N14已知前提条件
5JESD204B字大小(4个半字节)N`16根据4计算出来
6ADC每帧包含样本数S1已知前提条件
7ADC每个多帧包含的连续帧数K32可配置
8ADC侧的Device Clock491.52MHz根据10,1,5计算出来
9FPGA侧的Device Clock(Core CLK)122.88MHz根据10计算出来
10JESD204B 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)

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

部分代码解读

下面涉及两个任务
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


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

相关文章

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…

关于proxy代理

之前一直有个问题,就是它到底是只代理那部分带有/api的,还是全都代理掉 答案是,只会代理api那部分,也就是你配置了代理的部分 发请求的时候,包括axios发完后,vue会检测你的所有请求,把符合你代理的那部分正则匹配到,然后代理,再发请求 这个地方是我搞错了,其实这个proxy好像…

AnyProxy代理

背景&#xff1a;当一个公司测试团队有多个人的时候&#xff0c;只需搭建一个AnyProxy服务&#xff0c;其它小伙伴浏览器上打开AnyProxy页面&#xff0c;手机上设置代理就能抓到http、https请求了。解决了部分人电脑不正经的小伙伴fiddler死活抓不到https请求的问题&#xff0c…