主要内容

HW / SW合作设计正交相移编码使用模拟设备AD9361 / AD9364传输和接收

这个例子展示了如何实现算法在Zynq广播平台,在ARM和FPGA结构分区。正交相移编码传输和接收功能在硬件和软件中实现和映射到广播平台如下图所示。

所需产品:下载188bet金宝搏

  • 金宝app

  • 通信工具箱

  • 高密度脂蛋白编码器

  • 高密度脂蛋白编码器为金宝appXilinx Zynq支持包

  • 嵌入式编码器

  • 金宝app仿真软件编码器

  • 为Xilinx Zynq嵌入式金宝app编码支持包

  • Xilinx Zynq-Based无线电通信工金宝app具箱支持包(包)

介绍

在这个示例中,发送和接收的FPGA实现正交相移编码系统结合成一个高密度脂蛋白IP核心和实现Zynq可编程序逻辑(PL)。数据编码和解码是通过代码生成Zynq的ARM处理器上运行。一些控制参数被添加到FPGA IP核心展示这个设计可以使用AXI4-Lite实时调整寄存器访问模型。金宝app

设置

如果您还没有这样做,确保你遵循安装硬件软件合作设计在文档中。

硬件生成模型

硬件代模型是用于开发出你希望实现的功能在FPGA结构。HDL-optimized正交相移编码发射器和接收器是模仿,然后在FPGA上实现织物Zynq广播平台。在这个例子中,我们发送和接收一个板上,然而,这个例子可以修改工作频分双工(FDD)通过移动传输和接收中心频率分开,两个独立的董事会上使用相同的模型。

打开模型。

硬件/软件划分:一般而言,FPGA的可编程逻辑用于高速信号处理在手臂用于速度较慢、控制功能。在这个例子中,正交相移编码传输和接收物理层前端实现可编程逻辑,其中包括高速率控制等操作,过滤和频率补偿。数据编码和解码速度慢得多,手臂上实现的,而解码消息并发送主机打印。

IP核心代工作流用于实现FPGA IP核心和生成软件界面模型有一些具体要求:

  • 不支持复杂的输入和输出端口的HDL子系统。金宝app因此,真实和虚构的信号必须模拟子系统边界。

  • 数据输入和输出子系统使用单独的数据模型和有效信号。子系统的输入和输出的时钟频率必须是平等的,在仿真软件数据和有效的线路必须在同一采样率。金宝app有效信号还必须模拟用户输入和输出的逻辑。

AXI4-lite控制端口txSrcSelect:一个控制输入txSrcSelect允许添加一些控制传输数据。的txSrcSelect港口之间的高密度脂蛋白子系统用于选择发射机的两个不同的数据源。如果txSrcSelect港口是真的,发射机的数据源将查找表存储在FPGA织物和接收的数据应该类似于“Hello World 0 xx”字符串的其他正交相移编码示例。如果txSrcSelect港口是假的,接收的数据的数据源将ARM处理器,实时生成样品和寄给发射机的FPGA结构。消息在这种情况下将“* Zynq HW / SW合作设计*”。消息文本从一个工作空间变量txtStr在编译时,可以修改更改信息。请注意,这个字符串的长度必须小于24个字符。

AXI4-lite控制端口rxStreamEnable:一个控制输入rxStreamEnable只补充说,保证了HDL算法处理数据时这个输入是正确的。的rxStreamEnable港口总是适用于模拟硬件生成模型。当整个设计实现在FPGA织物和ARM处理器的Zynq广播平台,这个值将被设置为true只有当发射机HDL算法已经开始传输有效数据,确保接收机正确锁。

您可以运行这个模型并确认其操作。通过双击开关内部Tx开关你可以选择哪个源传输。请注意,转到块用于模型天线连接并通过传输数据在传输用户的输出逻辑来接收用户的输入逻辑。

IP核心代工作流

一旦你满意仿真硬件子系统的行为,你就可以开始生成HDL IP核的过程,并将其集成到SDR参考设计和生成软件上运行的手臂。

为了目标,您必须设置Xilinx工具链通过调用hdlsetuptoolpath。例如:

> > hdlsetuptoolpath (“ToolName”,“Xilinx Vivado”,“路径”,“C: \ Xilinx \ Vivado \ 2019.1 \ bin \ vivado.bat ');

通过右键单击启动针对工作流HDL_QPSK子系统和选择高密度脂蛋白HDL代码/工作流顾问

  • 在步骤1.1中,选择IP核心代工作流和适当的Zynq广播平台的选择:ADI RF SOM, ZC706 FMCOMMS2/3/4, ZedBoard FMCOMMS2/3/4, ZCU102 FMCOMMS2/3/4, ZC706 FMCOMMS5。

  • 在步骤1.2中,选择接收和传输路径参考设计。你可以把参考设计参数为默认值。

  • 在步骤1.3中,接口表可以用于将用户映射逻辑信号的接口信号可用参考设计。在这个例子中,我们只使用一个通道,通道1的连接应连接到相关端口,如下所示。

  • 在步骤1.4中,确保DUT合成频率设置为一个合理的数量由于基带系统的采样率。在航运的例子中,采样率略高于520过度增殖,因此合成1 mhz的频率是充分的。

  • 第二步准备HDL代码生成的模型做一些设计检查。

  • 第三步执行实际的IP核的HDL代码生成。

  • 第四步将新生成的IP核心集成到更大的Zynq特别提款权参考设计,生成比特流,帮助你加载到董事会。

依次执行每个步骤体验完整的工作流,或者,如果你已经熟悉,准备和HDL代码生成阶段,右键单击步骤4.1左边表的内容和选择选择任务运行。你应该不需要修改任何默认设置的步骤2或3。

软件生成模型和块库

  • 在步骤4.2中,工作流生成一个Zynq软件生成界面模型和一块库。单击运行这个任务按钮使用默认设置。

软件界面库

库包含AXI界面块HDL_QPSK子系统产生的。请注意,这仅公开AXI4-lite控制端口,而不是数据端口。数据端口存在接收机/发射机模块之间的数据接口,它代表的FPGA用户逻辑和手臂。如果你在下游使用图书馆块模型,任何更新你使高密度脂蛋白子系统将自动传播到这个库,然后当您运行您的软件生成模型通过工作流。在这个例子中,硬件生成模型不包含任何特别提款权传输或接收阻塞参数对这些不能填充。在使用图书馆块您为您的应用程序必须确保正确地配置参数。

软件界面模型

软件界面模型可以作为一个起点完整SW Zynq目标:外部模式模拟,Processor-in-the-loop和全面部署。注意,这个模型将被重写每个时间步4.2生成运行时,因此建议保存这个模型在一个唯一的名称和发展您的软件算法。软件界面模型提供了显示您可能决定结构这个模型中,看到的部分运行软件和硬件Zynq董事会

比特流生成和加载

其余的工作流用于生成一个比特流的FPGA结构并下载它。

  • 在步骤4.3中,工作流顾问为FPGA结构生成一个比特流。你可以选择执行这个步骤在外部壳通过定时选择外部运行构建过程。这个选择允许你继续使用MATLAB在FPGA图像正在建造中。步骤将在几分钟后完成一些基本的检查已经完成,项目和步骤将标志着一个绿色的复选标记。然而,你必须等到外部壳层显示一个成功的比特流构建在继续下一步之前。

  • 步骤4.4下载比特流到设备上。继续这一步之前,调用zynq使用以下语法来确保MATLAB函数建立正确的物理硬件无线电的IP地址。

> > devzynq = zynq (“linux”,“192.168.3.2”,“根”,“根”,“/ tmp”);

默认情况下,物理无线硬件192.168.3.2的IP地址。如果你改变了无线电硬件IP地址在硬件设置过程中,你必须提供地址。

另外,如果你想加载外的比特流工作流的顾问,创建一个特别提款权广播对象和调用downloadImage函数对象。

如果您选择在步骤1.1 ADI射频SOM, ZC706和FMCOMMS2/3/4 ZedBoard FMCOMMS2/3/4,或ZCU102 FMCOMMS2/3/4无线电设备,创建一个AD936x广播对象。

> > = sdrdev(电台“AD936x”);

如果在step1.1你选择ZC706和FMCOMMS5无线电设备,创建一个FMCOMMS5广播对象。

> > = sdrdev(电台“FMCOMMS5”);

下载比特流使用广播对象接口选择的无线电设备。

> > downloadImage(广播,“FPGAImage”,“hdl_prj \ vivado_ip_prj \ vivado_prj.runs \ impl_1 \ system_top.bit ')%路径生成的比特流

建设正交相移编码软件界面模型

软件界面模型提供了展示了如何修改生成的模型来设置它的正交相移编码的例子。这个接口模型允许您运行模型监视和优化模式或完全部署。

打开模型。

注意,在软件界面模型,AD936x发射机块样品序列化处理框架。

设置在ARM处理器上运行的软件模型

应用程序模型建立了以下的指导方针硬件软件合作设计工作流,部分配置软件界面模型

  • 模型配置为运行使用基于Xilinx zynq - 7000委员会的目标以下硬件:ADI射频SOM ZedBoard和FMCOMMS2/3/4 ZC706 FMCOMMS2/3/4/5

  • 如果您使用的是ZCU102 FMCOMMS2/3/4,双击所选硬件板目标块改变配置使用Xilinx Zynq UltraScale + MPSoC ZCU102 IIO无线电委员会的目标。

  • 模型不断传输和接收的数据,所以它被配置为从传输中断运行。这确保了ARM和FPGA在同步运行,意味着该软件将由一个时间表蜱虫的帧速率。

确保有效地使用ARM处理器,传输帧尺寸增加到10000了连接一次50帧使用一个迭代器子系统和MATLAB函数块。随后率过渡块力量为迭代器子系统的数据率传输数据速率相匹配。

  • 器下溢没有连接到一个停止块下溢可能发生当源开关连接在运行监视和优化模式。这是由于增加的加工要求监视和优化模式寄存器写道。参见下面部分运行模型使用UDP块控制硬件。

  • rxStreamEnableAXI4-lite控制港口延误了2帧周期。这样可以确保发射机运行之前最健壮的接收机性能。

  • 作为downsample QPSK接收机包含两个操作,用户的有效信号在输出逻辑是用来减少的有效采样率的时钟频率的一半。在模型中,ARM处理器的帧速率因此将采样率乘以当前帧大小的一半。接收的帧大小是相同的发射机的一半原因。

  • 接收超时设置为200\μ美元年代,小的框架。

运行软件和硬件Zynq董事会

监视和优化模式允许您控制仿真软件的配置模型。金宝app一旦设计运行,从胳膊或采购数据之间切换Tx开关切换的FPGA结构。

一旦手臂正交相移编码信息解码时,它将结果发送回主机通过以太网链路中使用UDP发送块软件界面模型。UDP发送块一直使用默认配置IP地址的主机“192.168.3.1”。如果你改变了IP地址在硬件设置过程中,你必须提供地址。提供了一个简单的UDP接收模型可用于接收解码数据和诊断查看器中显示结果。

打开模型。

你也可以完全部署设计运行在董事会,与仿真软件。金宝app在仿真软件工具金宝app栏,单击构建、部署和启动。在这个模式下,你将无法调整参数。

控制用户使用UDP逻辑块

监视和优化模式需要一些开销包括在软件运行在硬件处理主机和董事会之间的沟通。在软件界面模型可以看到,ARM和FPGA发射机源之间切换导致传输下溢。提供了另一种界面模型显示如何使用UDP块作为替代转换机制,需要较少的开销。

打开模型。

在这个模型中,开关取代了UDP接收块将能够接收UDP数据包源选择和输出值。一些对模型做了进一步的修改。

  • 器下溢现在已经连接到一个限位装置将导致模型退出每当检测到一个下溢。源已经被用于门一步前十的溢出信号帧作为硬件启动时间。一些下溢可能经历的发射机执行缓冲,然后再当接收机两帧后开始。接收初始化将导致一次性加载的处理器可能会导致下溢。

  • UDP接收块有一个默认的输出值为0,所以一个逆变器被放置和UDP接收块之间的多路复用器,以确保发射器启动与FPGA传播源。在仿真软件工具金宝app栏,单击构建、部署和启动。一旦模型部署到硬件,可以使用UDP发射机源驱动传输源的选择。

提供了一个简单的UDP发射机模型可以用于驱动传输源选择在硬件上的以太网链接。UDP发送块中发现发射机模型已经使用默认配置的IP地址广播“192.168.3.2”。如果你改变了IP地址在硬件设置过程中,你必须提供地址。UDP接收块包含在这个模型。它可以用来接收解码数据和诊断查看器中显示结果。

打开模型。

这个模型已经配置为运行一个步骤并发送一个UDP数据包包含源选择的价值。设置源选择你想要的源并单击播放控制发送UDP数据包。