RFSoC应用笔记 - RF数据转换器 -06- RFSoC关键配置之RF-ADC内部解析(4.1)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: RFSoC应用笔记 - RF数据转换器 -06- RFSoC关键配置之RF-ADC内部解析

前言


RFSoC中最重要的部分是射频直采ADC和DAC的配置,因此了解内部相关原理结构可以帮助我们更好理解相关功能配置参数含义。本文参考官方手册,主要对RFSoC ADC的可编程逻辑数据接口、多频带操作、以及奈奎斯特区的操作进行介绍。

RF-ADC 可编程逻辑数据接口


RF-ADC 块和 PL 之间的数据接口通过使用 AXI4-Stream 协议的并行数据流实现。 这些数据流通过FIFO 输出,在用户应用程序和 RF-ADC 块之间提供灵活的接口。 对于第 3 代,最大接口宽度为 192 位,最多代表 12 个16 位小端字。数据流和相关的 FIFO 具有可配置的字数,可以灵活地在字数和时钟频率之间进行选择,以与 PL 设计接口。 每个 tile 有四个流,命名约定是 mXY_axis,其中 X 代表 RF-ADC tile 编号,Y 代表从该 tile 输出的流 (FIFO)。 下图显示了接口。

image.png

接口数据格式


数据流代表真实数据或 I/Q 数据,具体取决于 RF-ADC 块配置。 对于双 RF-ADC 块,给定的流是实数,I 或 Q。如果 RF-ADC 配置有 I/Q 输出数据,则具有偶数的流代表 I 数据,具有奇数的流代表 Q 数据。 这些双实数和 I/Q 配置显示在 RF-ADC IP 配置中。

对于四路 RF-ADC 块,给定的流要么是真实的,要么是 I/Q 交错的。 如果 RF-ADC 配置有 I/Q 输出数据,则流的偶数样本代表 I 数据,奇数样本代表 Q 数据。 这些 Quad real 和 I/Q 配置将在以下部分中进行说明。

RF-ADC 接口数据和时钟速率


每个通道到 PL 的总数据速率由许多因素决定,RF-ADC 采样率、抽取因子和 I/Q/Real 数据格式。FIFO 通过允许更改每个时钟的字数,提供了一种将此数据速率与 PL 设计的时钟频率相连接的方法。唯一的要求是字数和时钟速率相结合,以匹配 RF-ADC 的输出数据速率和抽取率(如果启用)。

一个 tile 中的所有 RF-ADC 共享一个公共接口时钟频率。 这由以下等式显示,其中 2G_IQMode 对于 Quad RF-ADC tile 设置为 2,I/Q 模式启用,否则设置为 1。

image.png

内核根据 RF-ADC 采样率和数据路径设置自动计算数据速率。

image.png

因为每个块都有独立的时钟,所以可以在每个块的基础上指定采样率、时钟率、PL 速率和配置。

PL 时钟接口


所有四个片流的 AXI4-Stream 数据与来自 PL 的时钟同步,PL 的命名约定为 mX_axis_aclk,其中 X 代表 RF-ADC 瓦片编号。 此时钟必须处于 IP 内核配置屏幕上显示的所需 AXI4-Stream 时钟指定的频率。

RF-ADC 块还输出可供 PL 使用的时钟。 该输出时钟是 RF-ADC 采样时钟的分频版本,因此对其进行频率锁定。 此时钟具有 clk_adcX 的命名约定,其中 X 表示 RF-ADC 块编号。

接口 FIFO 溢出


通过接口FIFO 的数据速率必须在 RFADC 块运行期间保持恒定,PL 时钟和 RF-ADC 采样时钟域之间没有频率漂移。 如果这些域之间存在频率不匹配,则可能会发生 FIFO 溢出。 接口 FIFO 具有确定是否发生 FIFO 溢出的内置功能,使用 IP 中断机制将其标记到 PL。

溢出有两种类型,实际溢出和边际溢出。 实际溢出表明 FIFO 读/写指针重叠,这意味着数据没有在域之间安全传输,必须采取措施。 边际溢出是一个警告,表示 FIFO 读/写指针接近重叠。 正常操作期间不应发生溢出,如果观察到溢出,则表明 PL/PCB/IP 的时钟基础结构配置不正确。

同步


FIFO 为 RF-ADC 块提供灵活的数据和时钟接口。 但是,与所有双时钟 FIFO 一样,延迟可能会在一个 tile 和另一个 tile 之间变化。 虽然 tile 中的所有通道都具有相同的延迟,但某些应用可能需要使用多个 RF-ADC tile,并且需要在所有 RF-ADC 通道中匹配延迟。 这些应用程序可以使用多块同步 (MTS) 功能来实现这种块间同步。

RF-ADC 多频带操作


RF-ADC 可以配置为在多频带模式下操作。 这是输入模拟输入由上变频(混合)到不同载波频率的基带信号组成的地方。多个 DDC 模块用于下变频模拟输入以恢复单独的基带信号。

RF-ADC 多频段功能支持以下配置:

  • 每对2x 多频段实际数据。 一个 RF-ADC 模拟输入处于活动状态。 两个 RF-ADC 输出均启用。
  • 每对2x 多频段I/Q 数据。 两个 RF-ADC 输入都处于活动状态,一个用于 I,一个用于 Q。两个 RF-ADC 输出均启用。
  • 每个区块4x 多频段实际数据(仅限四路ADC 区块)。 一个 RF-ADC 模拟输入处于活动状态。 所有 4 个 RF-ADC 输出均启用。
  • 每块4x 多频带I/Q 数据(仅限四ADC 块)。 两个 RF-ADC 输入处于活动状态,一个用于 I,一个用于 Q。所有 4 个 RF-ADC 输出均启用。

当多频段关闭时,I 和 Q 输入直接通过多频段路由逻辑。

当多频段开启时,I 和 Q 输入被路由到 tile 中的多个 DDC 模块。

image.png

RF-ADC 多频段是通过将一个 RF-ADC 模拟模块的输出路由到多个 RF-ADC DDC 模块来实现的。 每个块处理一个数据带,并且可以从多个载波混合到基带。 下图中的 Quad ADC 块显示了这一点。

86011cda1db0e2ccdce852c7573346f4.png

RF-ADC Tile 0 (Tile_224) 配置为实际输入到 I/Q 输出模式。 ADC0 转换双频信号; ADC1 关闭。 顶部对可以配置为独立的 RF-ADC。 双频输出路由到 ADC0 和 ADC1 的 DDC 模块。 DDC 模块中的混频器可以配置为从输入数据中提取正确的频带。

RF-ADC Tile 1 (Tile_225) 配置为 4x 多频段 I/Q 输入到 I/Q 输出模式。 这里 ADC0 承载四波段 I 信号,ADC1 承载 Q 数据。 ADC2 和 ADC3 关闭。 RF-ADC 的输出被路由到所有四个 DDC 模块。 每个 DDC 都可以配置为从所需的频带中提取数据。

RF-ADC 奈奎斯特区操作


每个 RF-ADC 通道都可以对第一或第二奈奎斯特区的信号进行采样。 为确保 RFADC 性能最佳,RF-ADC 配置设置应指示预期的操作区域。

  • 第一奈奎斯特区定义为 0 和 Fs/2 之间的信号。
  • 第二奈奎斯特区定义为 Fs/2 和 Fs 之间的信号。

只要信号满足 RF-ADC 输入带宽要求,也可以使用其他奈奎斯特区 . 1、3、5、…区称为奇数区,2、4、…区称为偶数区。

RF-ADC IP 配置


RF-ADC 模块可以配置为多种模式。 Vivado IDE 的 IP 内核配置屏幕上提供了基本配置选项,并且可以使用 RFdc 驱动程序 API 配置高级操作模式。

RF-ADC 可用于四路或双路配置,具体取决于 tile。

双 RF-ADC 配置选项


双 RF-ADC 实输入到实输出


image.png

image.png

下图显示了一个双 RF-ADC,它具有实际数据输入到实际数据输出、1x 抽取、混频器被绕过并以 250 MHz AXI4-Stream 时钟运行。

image.png

双路 RF-ADC 实输入到 I/Q 输出


image.png

image.png

下图显示了一个双路 RF-ADC,其具有真实数据输入到 I/Q 数据输出、1x 抽取、启用混频器并以 500 MHz AXI4-Stream 时钟运行。

image.png


目录
相关文章
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
52 10
|
16天前
|
机器学习/深度学习 搜索推荐 API
淘宝/天猫按图搜索(拍立淘)API的深度解析与应用实践
在数字化时代,电商行业迅速发展,个性化、便捷性和高效性成为消费者新需求。淘宝/天猫推出的拍立淘API,利用图像识别技术,提供精准的购物搜索体验。本文深入探讨其原理、优势、应用场景及实现方法,助力电商技术和用户体验提升。
|
22天前
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
27 1
|
23天前
|
存储 供应链 算法
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
47 0
|
24天前
|
存储 监控 API
深入解析微服务架构及其在现代应用中的实践
深入解析微服务架构及其在现代应用中的实践
36 0
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
76 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
62 0
|
2月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
66 0
|
2月前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
86 0

推荐镜像

更多
下一篇
DataWorks