0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ZU+RFSoC之RFDC API介绍和使用

Comtech科通 来源:FPGA FAE技术分享选集 2025-04-16 10:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:FPGA FAE技术分享选集

RF Data Converters驱动APIAMD Xilinx为RFSoC提供的一套软件接口,用于控制Data Converters(RF-ADC和RF-DAC)的硬件功能。它作为用户应用程序与底层硬件寄存器之间的抽象层,封装了复杂的配置流程和时序控制,使开发者能够通过函数调用直接管理射频信号链的关键参数。

RF Data Converters驱动API在绝大多数实际应用场景中是必须的,尤其是在需要动态控制、多设备同步或复杂校准的场景。虽然理论上系统参数完全静态不变(例如仅需一次初始化且无需动态调整)或者通过直接寄存器操作可以不用API,但缺点是代码可维护性差、无法适应需求变更、且同步功能难以实现,显著增加开发难度、调试风险和后期维护成本。对于基于RFSoC的射频系统开发,掌握并合理使用驱动API是高效、可靠实现设计目标的必要前提。

RFDC API介绍

AMD Xilinx的RFDC驱动API提供了高度灵活的配置能力,涵盖混频器、QMC、时钟同步等关键功能,支持动态更新与多设备同步。RFDC驱动基于libmetal构建,裸机和Linux使用相同的驱动程序。两个软件平台的驱动程序都在AMD提供的libmetal软件层上运行。这种设计选择带来了多方面的技术优势,尤其在异构计算平台(如RFSoC的ARM + FPGA架构)中体现得尤为明显:可以统一硬件抽象层,适配多操作系统(Linux/RTOS/裸机)及Xilinx异构平台(如RFSoC、Versal),降低移植成本,简化中断处理,内存与缓存的一致性,与OpenAMP深度集成,支持复杂异构系统架构等等。

7735e482-18e6-11f0-9310-92fbcf53809c.png

驱动程序由以下文件组成:

•API

xrfdc.c :此文件中实现了用户接口API函数。

xrfdc.h :此文件中提供了用户接口API原型。该文件提供了驱动程序实例结构的原型,以及API中使用的所有其他结构的原型。该文件实现了实用的内联函数用于访问驱动程序和IP中的各种数据。

xrfdc_mts.c :该文件实现了多Tile同步API函数。

xrfdc_mixer.c :该文件实现了混频器API函数。

xrfdc_clock.c :该文件实现了与时钟相关的API函数。

xrfdc_mb.c :该文件实现了多频段API函数。

xrfdc_ap.c :该文件实现了模拟路径API函数。

xrfdc_dp.c :该文件实现了数字路径API函数。

xrfdc_sinit.c :该文件实现了初始化API函数。

•硬件寄存器映射

xrfdc_hw.h :该文件提供了硬件寄存器映射的定义。同时,该文件还

提供了Zynq UltraScale+ RFSoC寄存器接口中各相关字段的掩码。

•中断处理

xrfdc_intr.c :实现了处理IP核各类中断和错误的函数。

关于RFDC的API函数、数据结构等详细介绍可以参考Xilinx的PG269文档。

RFDC API使用

在大规模MIMO通信、相控阵雷达、多芯片级联扩展等应用中需要多Tile的ADC、DAC严格对齐同步。在RF Data Converters启动时,同一Tile内的转换器始终是对齐的,但不能保证确定的延时。在多Tile系统中,不能保证具有确定的延时,甚至不能保证跨Tile的延时对齐。这需要我们必须提供一种机制来对齐这些Tile。RFSoC多Tile同步通过硬件时钟信号SYSREF与驱动API共同实现,确保跨Tile/芯片的时钟与数据严格对齐。这里我们以实现多个Tile之间的同步为例来介绍RFDC API的使用。

1.参照前面RFDC IP设计文章,在Vivado里配置好RFDC IP后生成bit文件,然后导出xsa文件;

2.在Vitis里选择Vivado设计生成的xsa新建一个平台项目,选择standalone,处理器选cortexa53,然后单击完成;

77438308-18e6-11f0-9310-92fbcf53809c.png

3. 修改平台BSP的设置,勾选libmetal库,然后单击OK;

775063b6-18e6-11f0-9310-92fbcf53809c.png

4. 选择刚刚创建的平台新建一个空的应用程序;

77608fe8-18e6-11f0-9310-92fbcf53809c.png

5.将Vitis安装路径data/embeddedsw

/XilinxProcessorIPLib/drivers/rfdc_v11_1/examples文件夹下的xrfdc_mts_example.c导入到应用程序中;

776dfc46-18e6-11f0-9310-92fbcf53809c.png

6.由于是裸机工程,在刚刚导入的xrfdc_mts_example.c中添加宏定义:#define __BAREMETAL_;

7.Build工程,连接板子加载程序调试看是否打印了Successfully ran MTS Example,打印了说明多tile同步成功。然后可以去观察硬件adc、dac的延时对齐效果了。

Petalinux操作系统中RFDC API使用跟裸机步骤差不多,但是要注意的是在进行debug时要是出现SDK hangs when it attempts to run metal_init时,网上有通过加驱动库的方式来解决,但是还会出现如下报错:

777afc16-18e6-11f0-9310-92fbcf53809c.png

其实只要不勾选Auto-attach Process children就能解决该问题。

778872f6-18e6-11f0-9310-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • amd
    amd
    +关注

    关注

    25

    文章

    5647

    浏览量

    139029
  • 接口
    +关注

    关注

    33

    文章

    9446

    浏览量

    156149
  • Xilinx
    +关注

    关注

    73

    文章

    2192

    浏览量

    129945
  • 射频系统
    +关注

    关注

    0

    文章

    130

    浏览量

    13794
  • RFSoC
    +关注

    关注

    0

    文章

    44

    浏览量

    3139

原文标题:ZU+RFSoC之RFDC API介绍和使用

文章出处:【微信号:comtech_inc,微信公众号:Comtech科通】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Power Optimization SDK介绍Static API

    一.前言 近期关注到高通在介绍他们推出的Power Optimization SDK,于是便抽个口去了解一波。高通推出该款SDK旨在开发者可以通过该SDK去控制CPU,GPU的功耗和性能,从芯片层级
    发表于 09-27 11:58

    MLDLAPI:关于各国内外大平台API简介、使用方法详细攻略

    MLDLAPI:关于各国内外大平台API简介、使用方法详细攻略
    发表于 12-19 17:00

    Xilinx ZYNQ UltraScale+RFSoCZU27DR 开源RFSOC算法验证评估板

    / O 端口和DDR4 内存,适用于 各种不同的可编程应用,带有ZU27DR FPGA 的ZXB-RFSOC-2T2R 由 4 路12 位,采样率 4.0GSPS ADC 和 4 路14 位,采样率
    发表于 08-25 15:11

    python代码示例基于Python的日历api调用代码实例

    本文档的主要内容详细介绍的是python代码示例基于Python的日历api调用代码实例。
    发表于 09-06 14:25 43次下载
    python代码示例<b class='flag-5'>之</b>基于Python的日历<b class='flag-5'>api</b>调用代码实例

    Zynq USP RFSoC产品选择指南资料免费下载

    本文档的主要内容详细介绍的是Zynq USP Rfsoc产品选择指南资料免费下载。
    发表于 02-15 11:51 17次下载
    Zynq USP <b class='flag-5'>RFSoC</b>产品选择指南资料免费下载

    zu plus RFSoC频率规划器的详细资料说明

    本文档的主要内容详细介绍的是zu plus RFSoC频率规划器的详细资料说明。
    发表于 02-15 14:42 12次下载
    <b class='flag-5'>zu</b> plus <b class='flag-5'>RFSoC</b>频率规划器的详细资料说明

    ZXB-RFSOC-2T2R验证评估板手册

    / O 端口和DDR4 内存,适用于 各种不同的可编程应用,带有ZU27DR FPGA 的ZXB-RFSOC-2T2R 由2 路12 位,采样率 4.0GSPS ADC 和2 路14 位,采样率6.554 GSPS DAC 端口提供支持。
    发表于 08-02 16:31 4次下载

    ZU7EV卡设计原理图536篇:基于ZU7EV的FMC 通用PCIe卡

    基于3U PXIe的ZU11EG/ZU7EG/ZU7EV的通用 ,实现FMC的数据接口和主控计算,广泛应用于工业控制,检测,视觉处理。支持工业级温度工作。
    的头像 发表于 01-13 11:05 2293次阅读
    <b class='flag-5'>ZU</b>7EV卡设计原理图536篇:基于<b class='flag-5'>ZU</b>7EV的FMC 通用PCIe卡

    Zynq UltraScale+ RFSoC器件介绍

    介绍一下Xilinx公司的新一代Zynq UltraScale+ RFSoC器件,可用于LTE、5G、SDR、卫星通信等无线平台。
    的头像 发表于 05-22 10:38 7329次阅读
    Zynq UltraScale+ <b class='flag-5'>RFSoC</b>器件<b class='flag-5'>介绍</b>

    PyTorch教程19.2超参数优化API

    电子发烧友网站提供《PyTorch教程19.2超参数优化API.pdf》资料免费下载
    发表于 06-05 10:27 0次下载
    PyTorch教程19.2<b class='flag-5'>之</b>超参数优化<b class='flag-5'>API</b>

    PyTorch教程23.8API

    电子发烧友网站提供《PyTorch教程23.8API.pdf》资料免费下载
    发表于 06-05 17:48 0次下载
    PyTorch教程23.8<b class='flag-5'>之</b><b class='flag-5'>API</b>

    国产RFSoC 47DR/28DR/27DR核心板

    采用FDW复旦微电子FMZQ28DR- RFSoC处理器,兼容Gen1 ZU28/27、Gen3 ZU48/47DR RFSoC,拥有8个RF-ADC、8个RF-DAC通道。提供完整的
    的头像 发表于 09-03 17:08 4079次阅读
    国产<b class='flag-5'>RFSoC</b> 47DR/28DR/27DR核心板

    高性能紧凑型 RFSoC FPGA 开发平台 AXW22,重塑射频开发体验

    UltraScale+ RFSoC Gen3 系列 ZU47DR 芯片 ,将射频直采转换器、高性能 FPGA 逻辑与多核 ARM 处理器融合,简化了系统架构、降低了功耗和延迟,减少了设计和调试的工作量,显著提升了开发效
    的头像 发表于 06-24 10:24 718次阅读
    高性能紧凑型 <b class='flag-5'>RFSoC</b> FPGA 开发平台 AXW22,重塑射频开发体验

    璞致电子 UltraScale+ RFSoC 架构下的软件无线电旗舰开发平台

    璞致电子 PZ-ZU49DR-KFB 开发板基于 Xilinx ZYNQ UltraScale+ RFSoC XCZU49DR 主控制器,以 "ARM+FPGA 异构架构" 为
    的头像 发表于 08-06 10:08 877次阅读
    璞致电子 UltraScale+ <b class='flag-5'>RFSoC</b> 架构下的软件无线电旗舰开发平台

    如何使用PetaLinux检查RFDC IP状态

    本篇博客演示了在 ZCU208 评估板和 ZCU216 评估板中通过运行简单的 RFDC 示例来快速检查 RFDC IP 初始化的过程。它使用“rfdc-read-write”和“rfdc
    的头像 发表于 09-23 16:08 687次阅读
    如何使用PetaLinux检查<b class='flag-5'>RFDC</b> IP状态