主要内容

硬件软件合作设计工作流

本指南帮助您部署分区硬件软件(HW / SW)合作设计特别提款权算法的实现USRP™系列嵌入式无线硬件

您可以使用仿真软件金宝app®设计、模拟和验证应用程序,执行假定场景来优化性能。然后你就可以决定哪些系统元素来实现可编程逻辑,系统元素在手臂上运行®处理器。

使用此工作流,您可以自动生成使用高密度脂蛋白HDL代码可编程逻辑编码器™,并生成C代码使用嵌入式ARM处理器编码器®。最后,您可以实现无线电硬件的设计。

这个工作流使用目标正交相移编码发射机和接收机USRP E3xx使用HW / SW合作设计工作流例子作为参考设计。

步骤1。验证无线硬件连接

  1. 按照说明在安装硬件软件合作设计。确保所有支持包和第三方工具HW / S金宝appW合作设计工作流所需的安装和配置。

  2. 创建一个对象通过使用收音机sdrdev函数。

    无线电= sdrdev (“E3xx”);
  3. 之前,您可以使用HW / SW合作设计工作流,主机必须与无线电通信的硬件。通过调用验证host-radio沟通testConnection收音机里的函数对象。这个函数查询设备并返回成功或失败。

    testConnection(电台);

步骤2。建立第三方工具

访问Xilinx设置您的系统环境®Vivado®从MATLAB®。的hdlsetuptoolpathMATLAB函数将所需的文件夹添加到搜索路径,使用Xilinx你指定的安装文件夹。

例如:

  • 在Windows中®:

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

  • 在Linux中®:

    hdlsetuptoolpath (“ToolName”,“Xilinx Vivado”,“路径”,' / opt / Xilinx / Vivado / 2019.1 / bin ')

步骤3。创建算法和分区设计

当分区一个特别提款权算法,使用ARM处理器的速度较慢,控制功能,并使用FPGA结构的高速信号处理。组块你想实现可编程逻辑到原子子系统。这个子系统是你硬件软件分区的边界。块在这个子系统实现可编程逻辑,和外面的街区这个子系统是用来验证其操作。周围的街区子系统可以包含您最终实现的算法在ARM处理器上。

例如,在目标正交相移编码发射机和接收机USRP E3xx使用HW / SW合作设计工作流,正交相移编码传输和接收物理层前端实现可编程逻辑。这些层包括高效的操作,如增益控制,过滤和频率补偿。数据编码和解码是低利率,在ARM处理器上实现,解码消息输出到控制台窗口。

工作流有特定要求的硬件和软件之间的边界。下面的图显示了强制性的数据和有效的用户逻辑输入和输出的单通道传输和接收参考设计。多通道参考设计包含多个组I和Q数据行。仅传输或只收参考设计只包含传送或接收信号。

的指导方针

  • 每个数据输入或输出必须是16位。不支持复杂的输入和输出端口的HDL子系统。金宝app因此,真实和虚构的信号必须建模子系统边界。

  • 图表只显示单通道输入和输出。您也可以选择多个频道。在USRP E310或E312,您可以使用两个渠道。每个通道由一个真正的和一个虚部。

  • 模型的所有港口对于给定的参考设计,即使在港口不习惯。

  • 数据输入和输出子系统建模使用单独的数据和有效信号。在仿真金宝app软件中,数据和有效的线路必须在同一采样率。因此,子系统的输入和输出的时钟频率必须相等。

  • 时钟数据和有效信号HDL子系统的最快的速度。当Tx-baseband-valid信号是de-asserted,最后的样本值。

  • 你可以在任意AXI4-Lite寄存器的时钟端口速率。

  • 您可以添加AXI4-Stream输入和输出端口连接到单独的DMA引擎与如上所示。您可以使用这些端口将数据处理系统通过AXI4-Stream IIO读AXI4-Stream IIO写块的为Xilinx Zynq嵌入式金宝app编码支持包®平台。例如,看到的HW / SW合作设计与使用USRP AXI4-Stream E3xx

步骤4。生成使用高密度脂蛋白HDL IP核心工作流的顾问

HDL IP核心代允许您生成一个可共享和可重用IP核心模块自动从一个仿真软件模型。金宝app生成的IP核心连接到嵌入式处理器,如收音机ARM处理器硬件。高密度脂蛋白编码器从模型生成HDL代码块。金宝app它还生成AXI HDL代码接口逻辑连接的IP核心的嵌入式处理器。通过使用特别提款权参考设计,您可以创建一个IP核心硬件集成到收音机。使用这个核心,您可以配置射频卡和发送和接收数据。

满意后模拟硬件子系统的行为,产生高密度脂蛋白IP核心SDR参考设计和集成。

答:开始HDL工作流顾问

右键单击该子系统和选择HDL代码>高密度脂蛋白工作流顾问

选择工作流和合成工具

在步骤1.1工作流顾问,选择IP核心代目标工作流程然后选择E310E312目标平台

最后,选择Xilinx Vivado随着合成工具

点击运行这个任务

选择和配置参考设计

  1. 在步骤1.2工作流顾问,为您的系统选择参考设计:

    • 接收路径

    • 传输路径

    • 接收和传输路径

    点击运行这个任务

  2. 在工作流顾问1.3步,设置目标接口,并验证处理器/ FPGA同步被设置为自由奔跑。然后将用户逻辑映射到参考设计。映射射频通道时,指的是一个16位每个I和Q组件端口的用户逻辑。定义了通道指定数量。例如,在[0:15基带Rx I1)映射到接收方通道1的实数部分射频卡。下图显示了正交相移编码目标平台接口传输和接收参考设计有两个AXI4-Lite寄存器。

    点击运行这个任务。检查警告日志文本区域中底部的工作流顾问和之前进行所需的更改。

    警告

    不支持直接进出口外港透传。金宝app如果你连接一个尺寸直接输出港,你必须延迟路径的地方。

  3. 1.4工作流顾问的步骤,为你的设计选择合成频率。合成频率为FPGA比特流生成工具提供了目标用户逻辑时钟频率合成。你可以检查样品时间选择模型调试>信息覆盖>样品时间>传说。您的用户逻辑合成频率必须大于或等于采样频率最高的HDL子系统。默认频率合成30.72兆赫,这是最快的采样率特别提款权所支持的硬件。金宝app最小时钟频率是520.834 kHz,特别提款权硬件支持的采样率最低。金宝app

    点击运行这个任务

d .运行设计检查

工作流步骤2顾问准备设计一代通过执行设计检查。点击运行这个任务

大肠产生高密度脂蛋白IP核

工作流顾问第三步执行IP核心的HDL代码生成。点击运行这个任务

第5步。IP核心融入赛灵思公司Vivado项目

工作流顾问4.1集成了IP核心进入SDR参考设计和生成一个Vivado项目。点击运行这个任务

步骤6。生成软件界面模型和图书馆

工作流顾问步骤4.2生成一个Zynq软件界面模型和软件接口库。库包含块用来生成自己的软件界面模型。软件界面模型概述如何创建一个用户应用程序模型和导游在指定接收者的采样率。点击运行这个任务

软件界面库

库包含AXI接口阻止生成子系统的正交相移编码的例子。块仅公开AXI-lite控制端口,而不是数据端口。上的数据端口存在接收机和发射机块。这些块代表织物HDL用户之间的数据接口逻辑和手臂。它们包含配置射频芯片的手段。如果你使用下游模型库模块,更新你对HDL子系统自动传播到这个库。然后,当您运行工作流,更新传播到你的软件生成模型。使用图书馆的块时,确保您配置您的应用程序所需的参数。

生成的发射机。生成的发射机块包含属性的无线电发射器和一个超时值帧传输完成。默认超时时间是秒。

生成的接收机。生成的接收机块包含属性无线电接收机和一个超时值帧传输完成。默认超时时间是年代。

软件界面模型

您可以使用生成的软件界面模型作为完整的起点Zynq软件目标,包括外部模式模拟,processor-in-the-loop,全面部署。这个模型是覆盖每次运行步骤4.2。保存这个模型在一个唯一的名称和发展你的软件算法保存模型。

包括AXI4-Stream接口时,AXI4-Stream驱动程序块不是自动生成的。您必须添加AXI4-Stream IIO读AXI4-Stream IIO写司机街区金宝app模型库浏览器>嵌入式编码器为Xilinx Z金宝appynq平台支持包你的模型库。从软件界面模型生成代码之前,您必须配置AXI4-Stream IIO读AXI4-Stream IIO写司机块遵循中概述的步骤部署模型AXI-Stream界面Zynq工作流(高密度脂蛋白编码器)

模型显示生成的软件界面模型的正交相移编码的例子。

步骤7。生成FPGA比特流和程序Zynq硬件

  1. 生成比特流

    工作流顾问步骤4.3生成一个比特流的FPGA结构。

    继续使用MATLAB在FPGA映像构建,选择外部运行构建过程生成外部壳层的比特流。几分钟的步骤完成,基本的项目检查后执行步骤是用一个绿色的复选标记。在继续之前,验证在命令窗口Vivado比特流没有印刷错误。

  2. 程序Zynq硬件。

    工作流顾问步骤4.4下载比特流到设备上。

    继续这一步之前,调用zynq使用以下语法来确保MATLAB函数建立正确的物理硬件无线电的IP地址。

    devzynq = zynq (“linux”,“192.168.3.2”,“根”,“根”,“/ tmp”);
    默认情况下,物理无线硬件192.168.3.2的IP地址。如果你改变了无线电硬件IP地址在硬件设置过程中,你必须提供地址。

    在工作流顾问步骤4.4中,你有三个选择下载比特流。

    • 下载比特流持续在权力周期(推荐)。

    • JTAG在权力周期,比特流并不持久

    另外,如果你想加载比特流工作流顾问外,调用downloadImage函数。

    无线电= sdrdev (“E3xx”);downloadImage(广播,“FPGAImage”,“hdl_prj \ vivado_ip_prj \ vivado_prj.runs \ impl_1 \ system_top.bit ')

    这个函数调用重命名生成的system_top.bit文件system.bit和下载文件通过以太网连接到无线硬件。该比特流持续在权力周期。

步骤8。配置软件界面模型

配置软件的界面模型,建立参数根据应用程序建模。

下面的过程显示了如何配置一个特定的应用程序。如果应用程序需要不同的设置,请参阅指南配置软件界面模型

  1. 硬件选项卡,硬件板部分中,选择基于Xilinx zynq - 7000 IIO收音机

    请注意,硬件板是自动设置根据目标平台选择在步骤4. b。

    配置正交相移编码传输和接收模式与运行基准利率引发设置发射机中断

  2. 配置输入向量的宽度(传输帧大小)的值满足您的应用程序需求。

  3. 下溢端口连接到一个停止仿真块。意味着一个下溢中断在数据被发送,这是一个错误在连续流的例子。

  4. 接收机块,设置样品每帧参数的值满足您的应用程序需求,例如DataFrameLength / 2。然后设置数据超时(秒)参数的值相对于帧速率小,例如200年e-6

  5. 资格进入接收机模型,有效的数据连接数据有效端口启用子系统。

  6. 连接溢出接收机阻塞的端口停止仿真块。溢出意味着在数据发送中断,这是一个错误在连续流的例子。

第9步。运行在手臂处理器使用外部模式

您可以使用外部模式在仿真软件优化算法开发的硬件上运行。金宝app首先你的部署算法的ARM处理器Zynq董事会。然后你链接的算法与仿真软件模型通过以太网连接主机。金宝app仿真软件模型的主要作用是调整和监控算法在硬金宝app件上运行。由于ARM处理器连接到高密度脂蛋白IP核心通过AXI接口,您可以使用外部模式调整和监控硬件。

算法在外部运行模式:

  1. 右键单击生成模型,并选择模型配置参数

  2. 常用的参数窗格中,选择解算器,设置停止时间,然后单击好吧

  3. 在运行模型,之前调用zynq使用以下语法来确保MATLAB函数建立正确的物理硬件无线电的IP地址。

    devzynq = zynq (“linux”,“192.168.3.2”,“根”,“根”,“/ tmp”);
    默认情况下,物理无线硬件192.168.3.2的IP地址。如果你改变了无线电硬件IP地址在硬件设置过程中,你必须提供地址。

  4. 运行模型,硬件选项卡上,单击监视和优化。嵌入式程序员构建模型,下载手臂Zynq硬件可执行,执行它,连接模型Zynq硬件上运行的可执行文件。

    请注意

    当您运行这个模型在单通道模式下,样品的数量必须是偶数。

  5. 改变可调参数的模型。确认最终的行为符合您的需求。

  6. 点击停止在模型上。系统命令窗口关闭。

第10步。可执行文件部署到硬件

你可以完全部署设计运行在黑板上即使你断开从仿真软件。金宝app确保模型是在正常执行模式。在硬件选项卡,部署部分中,点击构建、部署和启动。在这种模式下,模型运行时,你不能与仿真软件来优化参数和显示数据。金宝app

步骤11。建立独立的可执行文件

你也可以建立一个独立的可执行文件为您的设计。在硬件选项卡,部署部分中,选择建立独立的而不是构建、部署和启动。你可以在你的工作目录下找到生成的可执行文件名称相同的模型没有文件扩展名的文件名。

自动生成的可执行文件运行时功率无线电硬件,执行这些额外的步骤:

  1. 手动生成的可执行文件复制到SD卡。

  2. 生成的可执行文件名称添加到init.sh文件在SD卡上。

    例如,如果mymodel是生成的可执行文件的名称、更新的脚本名称:

    # !/bin/sh #添加任何自定义代码运行在启动/ mnt / mymodel &

另请参阅

功能

相关的例子

更多关于