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

2023-11-10 17:12

本文主要是介绍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 映射关系

前言


从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 ——> M0S1[OL], M0S0[OL] ——> tx_phy1(tx_jesd) ——> SERDIN1 ——> Tx1 Q
M2S1, M2S0 ——> M0S1[OL], M0S0[OL] ——> tx_phy2(tx_jesd) ——> SERDIN2 ——> Tx2 I
M3S1, M3S0 ——> M0S1[OL], M0S0[OL] ——> tx_phy3(tx_jesd) ——> SERDIN3 ——> Tx2 Q


五、RX 的 I、Q 映射关系

RX 和 RX_OS:

Rx1 Q 、Rx1 I ——> SERDOUT0 ——> rx_phy0(rx_jesd)
Rx2 Q 、Rx2 I ——> SERDOUT1 ——> rx_phy1(rx_jesd)
Rx_OS I —— > SERDOUT2 ——> rx_phy2(rx_os_jesd)
Rx_OS Q ——> SERDOUT3 ——> rx_phy3(rx_os_jesd)

未完。。。

这篇关于AD9371 Crossbar 和 I、Q数据 映射JESD204B传输层的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384123

相关文章

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内