AD9371 Crossbar 和 I、Q数据 映射JESD204B传输层

AD9371 系列快速入口

AD9371+ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发

ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射

AD9371 官方例程 时钟间的关系与生成 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成(一)

JESD204B相关IP端口信号 : AD9371 官方例程HDL JESD204B相关IP端口信号

裸机程序配置 AD9528、AD9371、FPGA IP: AD9371 官方例程裸机SW 和 HDL配置概述(一)

AD9371 主函数: AD9371 官方例程 NO-OS 主函数 headless 梳理(一)

AD9371 主函数: AD9371 官方例程 NO-OS 主函数 headless 梳理(二)

文章目录

  • 前言
  • 一、TXDeframer 的 DAC Crossbar 和 Lane Crossbar
  • 二、RXFramer 的 ADC Crossbar 和 Lane Crossbar
  • 三、ObsRxFramer 的 ADC Crossbar 和 Lane Crossbar
  • 四、TX 的 I、Q 映射关系
  • 五、RX 的 I、Q 映射关系
  • 六、RX_OS 的 I、Q 映射关系
  • 总结

前言


从FPGA中的 JESD204B 传输层 tx/rx 基带数据时,I、Q两路 谁占据传输层 组/解帧 时转换器 M0 的位置,谁占据转换器 M1 的位置,才能正确通过AD9371射频 ?

TX传输层要求格式 , [ M3S1, M3S0, M2S1, M2S0, M1S1, M1S0, M0S1, M0S0]
RX传输层输出格式 , [ M3S0, M2S0, M1S0, M0S0]
RX_OS传输层输出格式,[ M1S1, M1S0, M0S1, M0S0]

Lane通道之间的连接关系见 AD9371 官方例程之 tx_jesd 与 xcvr接口映射


一、TXDeframer 的 DAC Crossbar 和 Lane Crossbar

官方例程 TX 分配 4个 LANE和4个转换器M

DAC Crossbar 被一直配置为 framerADC_XBar = 0xB1 = 1011 0001

Lane crossbar 被一直配置为 laneXbar= 0xE4 = 1110 0100;

即 :
LANE0 —> DEFRAMER INPUT 0 —> DEFRAMER OUTPUT 0 —> Tx1 I
LANE1 —> DEFRAMER INPUT 1 —> DEFRAMER OUTPUT 1 —> Tx1 Q
LANE2 —> DEFRAMER INPUT 2 —> DEFRAMER OUTPUT 2 —> Tx2 I
LANE3 —> DEFRAMER INPUT 3 —> DEFRAMER OUTPUT 3 —> Tx2 Q
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
即:

SERDIN0 ——> LANE 0 ——>DEFRAMER INPUT 0 ——> DAC0 ——> DEFRAMER OUTPUT 0 ——> Tx1 I
SERDIN1 ——> LANE 1 ——>DEFRAMER INPUT 1 ——> DAC1 ——> DEFRAMER OUTPUT 1 ——> Tx1 Q
SERDIN2 ——> LANE 2 ——>DEFRAMER INPUT 2 ——> DAC2 ——> DEFRAMER OUTPUT 2 ——> Tx2 I
SERDIN3 ——> LANE 3 ——>DEFRAMER INPUT 3 ——> DAC3 ——> DEFRAMER OUTPUT 3 ——> Tx2 Q

二、RXFramer 的 ADC Crossbar 和 Lane Crossbar

官方例程 RX 分配 2个 LANE和4个转换器M

ADC Crossbar 被一直配置为 framerADC_XBar = 0xB1=1011 0001

Lane Crossbar 根据RX 转换器M 的数量
M=4,framerLaneXbar = 0x08=0000 1000; 使用 Rxframer outputs 0 and 2
M=2,framerLaneXbar = 0x04; 使用 Rxframer outputs 0 and 1

文章后续默认 M=4,framerLaneXbar = 0x08;

在这里插入图片描述

Rx1 I ——>RXFramer INPUT 0 ——>ADC0 ——> RXFramer OUTPUT 0 ——> LANE 0 ——> SERDOUT0
Rx1 Q ——>RXFramer INPUT 1 ——>ADC1 ——> RXFramer OUTPUT 0 ——> LANE 0 ——> SERDOUT0
Rx2 I ——>RXFramer INPUT 2 ——>ADC2 ——> RXFramer OUTPUT 2 ——> LANE 1 ——> SERDOUT1
Rx2 Q ——>RXFramer INPUT 3 ——>ADC3 ——> RXFramer OUTPUT 2 ——> LANE 1 ——> SERDOUT1

三、ObsRxFramer 的 ADC Crossbar 和 Lane Crossbar

官方例程 ObsRx 分配 2个 LANE和2个转换器M

ADC Crossbar 被一直配置为 framerADC_XBar = 0xB1=1011 0001

Lane Crossbar 被一直配置为 framerLaneXbar = 0x40=0100 0000; 使用 ObsRxframer outputs 0 and 1
在这里插入图片描述

在这里插入图片描述

Rx_OS I ——> ObsRxFramer INPUT 0 ——>ADC0 ——> ObsRxFramer OUTPUT 0 ——> LANE 2 ——> SERDOUT2
Rx_OS Q ——>ObsRxFramer INPUT 1 ——>ADC1 ——> ObsRxFramer OUTPUT 1 ——> LANE 3 ——> SERDOUT3

四、TX 的 I、Q 映射关系

第一节内容结合 Lane通道之间的连接关系 AD9371 官方例程之 tx_jesd 与 xcvr接口映射 ,可得到TX:

tx_phy0(tx_jesd) ——> SERDIN0 ——> Tx1 I
tx_phy1(tx_jesd) ——> SERDIN1 ——> Tx1 Q
tx_phy2(tx_jesd) ——> SERDIN2 ——> Tx2 I
tx_phy3(tx_jesd) ——> SERDIN3 ——> Tx2 Q


链路层:

而在 axi_ad9371_tx_jesd/tx IP核逻辑中输入数据 tx_data 经过加扰,字符替换标志后,输出 phy_data

tx_data(tx_jesd) ——> phy_data (tx_jesd)

phy_data [ 31: 0] (tx_jesd) = tx_phy0(tx_jesd)
phy_data [63:32] (tx_jesd) = tx_phy1(tx_jesd)
phy_data [95:64] (tx_jesd) = tx_phy2(tx_jesd)
phy_data [127:96] (tx_jesd)= tx_phy3(tx_jesd)


传输层

dac_ddata(tpl_core) ——> link_tdata(tpl_core) ——> tx_data(tx_jesd)

dac_ddata 格式 :[ M3S1, M3S0, M2S1, M2S0, M1S1, M1S0, M0S1, M0S0]

经过 组帧得到 link_tdata,link_tdata格式 Octets LSB first :

[ M3S1[OL], M3S0[OL], M2S1[OL], M2S0[OL], M1S1[OL], M1S0[OL], M0S1[OL], M0S0[OL]]

注意 : MmSn[OL] = { MmSn [7:0] ,MmSn [15:8] }

即:

M0S1, M0S0 ——> M0S1[OL], M0S0[OL] ——> tx_phy0(tx_jesd) ——> SERDIN0 ——> Tx1 I
M1S1, M1S0 ——> M1S1[OL], M1S0[OL] ——> tx_phy1(tx_jesd) ——> SERDIN1 ——> Tx1 Q
M2S1, M2S0 ——> M2S1[OL], M2S0[OL] ——> tx_phy2(tx_jesd) ——> SERDIN2 ——> Tx2 I
M3S1, M3S0 ——> M3S1[OL], M3S0[OL] ——> tx_phy3(tx_jesd) ——> SERDIN3 ——> Tx2 Q


五、RX 的 I、Q 映射关系

第二节内容结合 Lane通道之间的连接关系 AD9371 官方例程之 tx_jesd 与 xcvr接口映射 ,可得到RX:

{ Rx1 Q[7:0],Rx1 Q[15:8],Rx1 I[7:0],Rx1 I[15:8] } ——> SERDOUT0 ——> rx_phy0(rx_jesd)
{ Rx2 Q[7:0],Rx2 Q[15:8],Rx2 I[7:0],Rx2 I[15:8] } ——> SERDOUT1 ——> rx_phy1(rx_jesd)


链路层:

phy_data [ 31: 0] (rx_jesd) = rx_phy0 (rx_jesd) = rx_0 (ad9371_xcvr)
phy_data [63:32] (rx_jesd) = rx_phy1 (rx_jesd) = rx_1 (ad9371_xcvr)

而在 rx_jesd/rx IP核逻辑中,输入数据 phy_data 经过解扰等操作后输出 rx_data

phy_data(rx_jesd) ——> rx_data(rx_jesd) ——> link_data(rx_ad9371_tpl_core/tpl_core)


传输层

link_data(rx_ad9371_tpl_core/tpl_core) ——> adc_data(rx_ad9371_tpl_core/tpl_core)

link_data 格式 :[ M3S0[OL], M2S0[OL], M1S0[OL], M0S0[OL]]

注意 : MmSn[OL] = { MmSn [7:0] ,MmSn [15:8] }

经过 解帧得到 adc_data,adc_data 格式 samples LSB first :

[ M3S0, M2S0, M1S0, M0S0]

即:

M1S0, M0S0 ——> M1S0[OL], M0S0[OL] ——> rx_phy0 (rx_jesd) ——> Rx1 Q,Rx1 I
M3S0, M2S0 ——> M3S0[OL], M2S0[OL] ——> rx_phy1 (rx_jesd) ——> Rx2 Q,Rx2 I

即:
Rx1 I ——> M0S0,Rx1 Q ——> M1S0,Rx2 I ——> M2S0,Rx2 Q ——> M3S0


六、RX_OS 的 I、Q 映射关系

第三节内容结合 Lane通道之间的连接关系 AD9371 官方例程之 tx_jesd 与 xcvr接口映射 ,可得到RX_OS:

Rx_OS I [OL] —— > SERDOUT2 ——> rx_2(xcvr) ——> rx_phy0(rx_os_jesd)
Rx_OS Q [OL] ——> SERDOUT3 ——> rx_3(xcvr) ——> rx_phy1(rx_os_jesd)

Rx_OS 类似 RX 中的形式,简略为 Rx_OS I、Q [OL]


链路层:

phy_data [ 31: 0] (rx_os_jesd) = rx_phy0 (rx_os_jesd) = rx_2 (ad9371_xcvr)
phy_data [63:32] (rx_os_jesd) = rx_phy1 (rx_os_jesd) = rx_3 (ad9371_xcvr)

而在 rx_os_jesd/rx IP核逻辑中,输入数据 phy_data 经过解扰等操作后输出 rx_data

phy_data(rx_os_jesd/rx) ——> rx_data(rx_os_jesd) ——> link_data(tpl_core)


传输层

link_data(tpl_core) ——> adc_data(tpl_core)

link_data 格式 :[ M1S1[OL], M1S0[OL], M0S1[OL], M0S0[OL]]

注意 : MmSn[OL] = { MmSn [7:0] ,MmSn [15:8] }

经过 解帧得到 adc_data,adc_data 格式 samples LSB first :

[ M1S1, M1S0, M0S1, M0S0]

即:

M0S1, M0S0 ——> M0S1[OL], M0S0[OL] ——> rx_phy0 (rx_os_jesd) ——> Rx_OS I
M1S1, M1S0 ——> M1S1[OL], M1S0[OL] ——> rx_phy1 (rx_os_jesd) ——> Rx_OS Q


总结

TX 传输层输入 I、Q 排列如下:

[ Tx2 Q S1,Tx2 Q S0, Tx2 I S1, Tx2 I S0, Tx1 Q S1,Tx1 Q S0, Tx1 I S1, Tx1 I S0 ]

RX 传输层输出 I、Q 排列如下:

[ Rx2 Q, Rx2 I,Rx1 Q, Rx1 I]

RX_OS 传输层输出 I、Q 排列如下:

[ Rx_OS Q S1, Rx_OS Q S0,Rx_OS I S1, Rx_OS I S0 ]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Win10文件资源管理器卡顿不流畅的解决方法

在Win10电脑中,用户点击打开文件资源管理器,发现文件资源管理器变得卡顿不流畅了,非常影响用户的操作效率。接下来小编给大家带来了最简单的解决方法,解决后用户再去操作Win10系统的文件资源管理器,就会发现变得顺畅不…

主成分分析法(PCA)的理解(附python代码案例)

目录 一、PCA简介二、举个例子三、计算过程(公式)3.0 题干假设3.1 标准化3.2 计算协方差矩阵3.3 计算特征值和特征值向量3.3 多重共线性检验(可跳过)3.4 适合性检验(可跳过)3.5 计算主成分贡献率及累计贡献…

第七章 :Spring Boot web开发常用注解(二)

第七章 :Spring Boot web开发常用注解(二) 前言 本章节知识重点:作者结合自身开发经验,以及觉察到的一个现象:Springboot注解全面理解和掌握的并不多,对注解进行了全面总结,共分两个章节,可以作为web开发工程师注解参考手册,SpringBoot常用注解大全,一目了然!。本…

【码银送书第十期】《强化学习:原理与Python实战》

目录 1.什么是人工智能对齐 2.为什么要研究人工智能对齐 3.人工智能对齐的常见方法 1.什么是人工智能对齐 人工智能对齐(AI Alignment)指让人工智能的行为符合人的意图和价值观。 人工智能系统可能会出现“不对齐”(misalign)的…

助力细胞分选,“量身定做”您的磁珠

免疫磁珠因结合了固化试剂特有的优点与免疫学反应的高度特异性而渗透到病理、生理、药理、微生物、生化以及分子遗传学等各个领域。其中,随着细胞分选技术的不断发展,免疫磁珠细胞分选技术已越来越受到研究者的认可,磁珠细胞分选可以从异质细…

linux:使用nc(netcat)命令进行端口检测,并使用Docker管理容器

需求: 循环检测IP:端口是否能正常连接,能连接则关闭docker服务,不能连接则开启docker服务实现:  &esmp;通过创建linux可执行shell脚本文件,再设置crontab调度执行实现上述需求。详细步骤如下: 创建sh…

matlab中的iddata函数的初步理解和使用程序举例

matlab中的iddata函数的初步理解和程序举例 一、iddata函数功能 iddata函数常用于系统识别分析领域数据分析方面。该函数在时域或频域中,将用于系统识别的输入输出数据及其特性数据的生成对象数据类型。即,可以使用iddata函数封装要标识的系统的输入和…

文件扩展名批量修改:txt文件扩展名批量修改为doc文档,高效办公的方法

在我们的日常工作中,经常需要处理大量的文本文件,这些文件可能以.txt为扩展名,而我们需要将其修改为.doc扩展名以方便进一步的操作。这种情况下,我们引用云炫文件管理器来将扩展名批量修改,提升办公的效率。在进行文件…

万物皆数——用matlab求解二阶微分方程

一、背景 毕达哥拉斯的“万物皆数”哲学观点表达了一个理念,即宇宙万物都可以通过数学语言来描述,数是万物的本原。 勾股定理就是毕达哥拉斯提出,因此在西方勾股定理也被叫做毕达哥拉斯定理。 工科类的专业,越到后面越感觉到数学…

从开源项目聊鱼眼相机的“360全景拼接”

目录 概述 从360全景的背景讲起 跨过参数标定聊透视变化 拼接图片后处理 参考文献 概述 写这篇文章的原因完全源于开源项目(GitHub参阅参考文献1)。该项目涵盖了环视系统的较为全貌的制作过程,包含完整的标定、投影、拼接和实时运行流程。该篇文章主要是梳理全…

Wincc flexible SMART v4 报警蜂鸣器的基本使用方法示例

Wincc flexible SMART v4 报警蜂鸣器的基本使用方法示例 WinCC flexible SMART V4 SP1 软件针对SMART LINE V4 面板新增了触发蜂鸣器报警功能,但要注意该功能仅支持固件版本为 4.0.1.0 及以上的设备。 可通过配置以下两个系统函数来触发蜂鸣器: 举例说明: 组态离散量报警,在…

xss 通过秘籍

终极测试代码 <sCr<ScRiPt>IPT>OonN"\/(hrHRefEF)</sCr</ScRiPt>IPT> 第一关&#xff08;没有任何过滤&#xff09; 使用终极测试代码&#xff0c;查看源码 发现没有任何过滤&#xff0c;直接使用javascrupt中的alert弹框 <script>aler…

树之二叉排序树(二叉搜索树)

什么是排序树 说一下普通二叉树可不是左小右大的 插入的新节点是以叶子形式进行插入的 二叉排序树的中序遍历结果是一个升序的序列 下面是两个典型的二叉排序树 二叉排序树的操作 构造树的过程即是对无序序列进行排序的过程。 存储结构 通常采用二叉链表作为存储结构 不能 …

口水战,余承东从没输过,小鹏最终只能低头和解

小鹏汽车创始人何小鹏近日发言称与余承东握手言和&#xff0c;感谢余总的大度&#xff0c;还表示与余承东探讨了技术路线&#xff0c;双方成为好朋友&#xff0c;可以看出这场口水战最终的赢家还是余承东。 这场口水战先以何小鹏吐槽友商的AEB误触太多&#xff0c;还声言99%是假…

基于springboot实现家具商城管理系统项目【项目源码】计算机毕业设计

基于springboot实现家具商城管理系统演示 Java语言简介 Java是由SUN公司推出&#xff0c;该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称&#xff0c;也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的…

VMware部署CentOS7

一、创建虚拟机 1、点击新建虚拟机 2、选择自定义 下一步 3、点击下一步 4、选择稍后安装操作系统 5、选择linux 下一步 6、选择要安装的centos 版本 这里选择centos7 7、自定义虚拟机名称 设置虚拟机运行空间 8、配置处理器&#xff0c;使用默认 1个处理器 1核 9、修改虚拟机…

企业级操作之STM32项目版本管理方法

在MCU开发过程中&#xff0c;有时候需要软件的迭代&#xff0c;比如从V1.9升级到V1.10&#xff0c;或者从V23.09.23升级到V23.09.24&#xff0c;我们常常通过手动改动字符串或者数组来实现这个功能&#xff0c;从现在开始&#xff0c;我们会使用Keil的内置宏__DATE__和__TIME__…

wav格式如何转mp3?

wav格式如何转mp3&#xff1f;WAV格式是一种高品质的音频文件格式&#xff0c;其采用无损压缩技术存储音频数据。通常&#xff0c;WAV文件使用PCM编码方式将声音信号转换为数字信号&#xff0c;并按照一定规则存储到文件中。这种编码方式可以确保音频数据的完整性和准确性&…

python注释(快捷键)

首先介绍以下三种注释方式&#xff1a; # 123&#xff08;单行注释&#xff09; """123"""&#xff08;多行注释&#xff09; 123&#xff08;多行注释&#xff09; 下面介绍一下快捷键&#xff1a; Ctrl/ 注释单行&#xff1a;指针只要在这行代…

关于近期360自动屏保导致的问题

本身是一个好产品 但是对于某些应用就有点画蛇添足了 1、导致K3无法使用 K3中间层需要用户持续登入系统 2、导致系统停止工作 3、停止网络 4、占用系统资源 5、占用网络资源 6、占用硬件资源 。。。。。。 对于24小时开机的用户影响巨大 对于局域网信息点多的网络影响巨…