主要内容

使用Xilinx RFSoC设备发送和接收音调-第1部分系统设计

本示例展示了如何使用SoC Blockset®为Xilinx®RFSoC设备设计数据路径。您将设计和模拟一个系统,该系统从FPGA生成正弦音调,并使用射频数据转换器(RFDC)块跨多个射频通道传输该音调。然后,系统将使用RFDC块接收数据返回到FPGA,并使用嵌入式处理器一次将接收到的一个通道的音调可视化。

设计任务和系统规格说明

考虑一个无线应用程序,该应用程序需要在Xilinx RFSoC设备上以双工模式以每秒千兆采样(GSPS)数据速率访问多个RF通道。在本例中,设计任务是在ZCU111、ZCU216和ZCU208评估套件上,按照以下系统规格,从FPGA生成正弦波音,配置RFDC块,并将数据接收回FPGA。

ZCU111评价试剂盒系统规格

  • ADC和DAC采样率= 2048 MSPS

  • ADC通道数= 8

  • DAC通道数= 8

  • 数字数据接口=真实

ZCU216评估试剂盒的系统规格

  • ADC和DAC采样率= 1024 MSPS

  • ADC通道数= 16

  • DAC通道数= 16

  • 数字数据接口=智商

ZCU208评估试剂盒的系统规格

  • ADC和DAC采样率= 2048 MSPS

  • ADC通道数= 1

  • DAC通道数= 1

  • 数字数据接口=智商

上述系统的设计和实现面临以下挑战:

  • 配置RFDC块的多个参数值以满足系统需求比较困难。

  • 在FPGA中设计算法来一次操作多个样本,由于高数据速率,增加了设计的复杂性。

  • 鉴于FPGA和处理器的异步特性,设计从FPGA到处理器的数据路径以满足给定的系统需求是很困难的。

使用SoC块集设计

通过使用SoC Blockset提供的RF数据转换器块和外部存储块对系统建模,您将在实现之前模拟设计。模拟设计使您能够在硬件上实现之前,在Simulink中识别和修复问题。金宝app

本设计示例包含三个顶级模型。

  • soc_rfsoc_datacapture-在ZCU111评估试剂盒上使用8个通道获取真实数据

  • soc_rfsoc_IQ_datacapture_top-在ZCU216评估套件上使用16个通道捕获复杂的IQ数据

  • soc_IQ_datacapture_top-在ZCU208评估套件中捕获复杂的IQ数据

方法的工作流soc_rfsoc_datacapture模型。工作流步骤对于所有三个模型都是通用的。

创建SoC模型soc_rfsoc_datacapture作为顶级模型和设置硬件板选项Xilinx Zynq UltraScale+ RFSoC ZCU111评估试剂盒.该模型包括FPGA模型soc_rfsoc_datacapture_fpga以及处理器模型soc_rfsoc_datacapture_proc实例化为模型引用。顶级模型还包括在FPGA和处理器之间共享外部内存的AXI4-Stream to Software块。

open_system (“soc_rfsoc_datacapture”

close_system (“soc_rfsoc_datacapture”

射频数据转换器配置

射频数据转换器模块为硬件逻辑中建模的无线算法提供了一个射频数据路径接口。您可以使用此块对adc和dac进行建模和配置,并将数据从硬件逻辑连接到硬件逻辑。该模块提供了一个到Simulink中的Xilinx RF数据转换器IP的接口,用于建模无线系统,目的是在Xilinx RFSoC设备上实现。金宝app

为了满足系统要求dac和adc的数据速率为2048 MSPS,需要选择插值模式大量毁灭模式,每个时钟周期的样本使无线算法FPGA的有效时钟周期(采样率)在理想的范围内。计算方法如下所示,并在块上显示为流时钟频率点击之后应用

对于本例,在DAC选项卡,设置插值模式而且每个时钟周期的样本参数值为4ADC选项卡,设置大量毁灭模式而且每个时钟周期的样本参数值为4.这意味着流时钟频率为2048/(4*4)= 128 MHz。

射频数据转换器模块在左侧为DAC提供输出端口(dac1、dac2等,直到dac8)和ADC输入端口(adc1、adc2等,直到adc8)。左侧端口信号是连接到FPGA的相应右侧信号的向量化版本。对于这个例子,右边的DAC和ADC信号(dac1Data, dac2Data,等等,直到dac8Data和adc1Data, adc2Data,等等,直到adc8Data)每个都是64位宽(uint64),左边的信号是对应右边信号的4x1 int16矢量版本。如果需要,这些端口可用于模拟无线通道的ADC和DAC之后的数据路径。在本例中,将DAC信号连接到ADC信号,以循环传输信号。

硬件逻辑设计

为了匹配射频数据转换器模块的DAC数字接口,硬件逻辑的传输路径必须每128 MHz时钟周期发送四个样本。该图显示了射频数据转换器块的八个DAC数据接口之一的数据接口。生成正弦音的采样率为512 MSPS (128 x 4)。

类似地,在接收端,算法必须在每个时钟周期上操作4个样本。该图显示了射频数据转换器块的八个ADC数据接口之一的数据接口。

FPGA模型soc_rfsoc_datacapture_fpga包含两个子系统,连接到RFDC块的DAC部分的DAC音生成子系统和连接到ADC部分的ADC捕获子系统。通过使用四个HDL优化NCO块并为每个HDL优化NCO块选择不同的偏移量,并行生成四个连续的正弦波样本。所有四个样本都打包为64位数据,作为axis - stream数据宽度。此外,相同的波形在所有八个通道中传输。每个通道由不同的缩放因子集作为处理器的寄存器进行缩放。

在ADC捕获子系统中,使用处理器设置的寄存器选择八个通道中的一个。来自选定通道的数据在发送到处理器之前被下采样128。

open_system (“soc_rfsoc_datacapture_fpga”

close_system (“soc_rfsoc_datacapture_fpga”

处理器逻辑设计

处理器逻辑包含一个基于事件的任务,该任务由来自FPGA的数据通过DDR内存到达驱动。处理器算法任务在任务管理器块中表示为dataTask,并指定为事件驱动的。任务管理器块通过缓冲区就绪事件异步调度数据,rdEvent在内存中,表示来自FPGA的一帧数据的到达。算法本身是在处理器算法包装器处理器模型中的子系统soc_rfsoc_datacapture_proc并连接到顶层的任务管理器块。要对接收到的数据进行操作,需要首先解包并恢复数据的符号。的输出。处理器然后子系统连接到频谱和时间范围进行可视化。在一个单独的初始化函数FPGA子系统上的各种寄存器用它们的默认值初始化。

open_system (“soc_rfsoc_datacapture_proc”

close_system (“soc_rfsoc_datacapture_proc”

模拟

运行该模型,并在频谱分析仪范围上可视化FPGA生成的正弦音DAC输出

波形通过RFDC模块从FPGA回传给处理器,ADC捕获FPGA中的子系统和内存块。在处理器系统中,使用标题为的频谱作用域块将其可视化到频域ADC捕获信号.信号也可以在时域中使用一个名为time scope的块进行观察ADC捕获范围输出.在模拟开始后,在这些范围上观察数据有相当长的延迟。这是因为由于长循环回数据路径,作用域对第一帧数据的可用性有延迟。

观察发射和接收的信号都显示0.5 MHz的音调。

要从第五个通道捕获数据,请修改adcChannelSelect价值5从命令窗口,如下所示。再次运行模拟并注意到ADC捕获信号范围上的频谱峰值约为91.245 dBm,而通道1为100 dBm。类似地,请注意通道1的时域信号的振幅从4000降低到1578。

adcChannelSelect = 5;

基于ZCU216试剂盒的IQ模型设计与仿真

为了在ZCU216评估工具包上使用16个通道捕获复杂的IQ数据,创建一个SoC模型soc_rfsoc_IQ_datacapture_top作为顶级模型和设置硬件板选项Xilinx Zynq UltraScale+ RFSoC ZCU216评估试剂盒.该模型包括FPGA模型soc_rfsoc_IQ_datacapture_fpga以及处理器模型soc_rfsoc_IQ_datacapture_proc实例化为模型引用。按照前面章节中提到的步骤,射频数据转换器配置硬件逻辑设计,处理器逻辑设计通过执行以下更改。

当需要满足1024msps的系统要求时,可以设置插值模式参数。DACTAB和大量毁灭模式参数。ADC标签的RFDC块到40.设置每个时钟周期的样本参数。ADCTAB和DAC选项卡,2.这意味着流时钟频率为1024/(40*2)= 12.8 MHz。设置NCO的频率参数0.5GHz和NCO的阶段参数0所有16个频道。

为了匹配射频数据转换器模块的DAC数字接口,硬件逻辑的传输路径必须在每个12.8 MHz时钟周期发送两个样本。该图显示了射频数据转换器模块的16个DAC IQ数据接口之一的数据接口。生成复杂正弦波的采样率为25.6 MSPS (12.8 x 2)。

类似地,在接收端,算法必须在每个时钟周期上操作2个样本。该图显示了射频数据转换器模块的16个ADC IQ数据接口之一的数据接口。

运行模型并在频谱分析仪上可视化ADC捕获的正弦音。

基于ZCU208的IQ模型设计与仿真

为了在ZCU208评估套件上捕获复杂的IQ数据,创建一个SoC模型soc_IQ_datacapture_top作为顶级模型和设置硬件板选项Xilinx Zynq UltraScale+ RFSoC ZCU208评估试剂盒.该模型包括FPGA模型soc_IQ_datacapture_fpga以及处理器模型soc_IQ_datacapture_proc实例化为模型引用。按照前面章节中提到的步骤,射频数据转换器配置硬件逻辑设计,处理器逻辑设计通过执行以下更改。

为了满足2048 MSPS的系统要求,可以设置插值模式参数。DACTAB和大量毁灭模式参数。ADC标签的RFDC块到4.设置每个时钟周期的样本参数。ADCTAB和DAC选项卡,4.这意味着流时钟频率为2048/(4*4)= 128 MHz。设置NCO的频率参数0.5GHz和NCO的阶段参数0

为了匹配射频数据转换器模块的DAC数字接口,硬件逻辑的传输路径必须每128 MHz时钟周期发送四个样本。复杂正弦音生成的采样率为512 MSPS (128 x 4)。类似地,在接收端,算法必须在每个时钟周期上操作4个采样。

运行模型并在频谱分析仪上可视化ADC捕获的正弦音。

总结

本示例演示了如何在Xilinx RFSoC设备上设计涉及射频数据转换器的数据路径。您设计了一个系统,每个时钟生成多个采样的正弦波形,并配置RFDC块以更高的数字数据速率传输。您还设计了数据路径,以接收传输的样本返回到设备中,并通过模拟验证波形。若要在硬件上验证结果,请参见使用Xilinx RFSoC设备发送和接收音调-第2部分部署.您可以按照上述设计过程为Xilinx RFSoC Device建模任何其他高数据速率无线算法。

另请参阅