HW / SW合作设计与使用模拟设备AD9361 / AD9364 AXI4-Stream
这个例子演示了如何使用AXI4-Stream datapath公司之间的手臂®处理器和FPGA结构模拟设备AD9361 / AD9364在硬件软件无线电平台(HW / SW)合作设计一个波形发射机和接收机的实现。本例使用AXI4-Stream datapath公司加载波形的ARM处理器的FPGA RAM传输和发送功率计算信号的传输和接收波形实时显示的手臂。
介绍
这个示例部署一个波形发射机和接收机算法作为HW / SW合作设计实现有针对性的模拟设备AD9361 / AD9364广播平台。本文中描述波形传输和接收基于触发器的和算法是可行的计算功率信号的传输和接收波形。
上的高密度脂蛋白IP核心Zynq®可编程序逻辑(PL)结合:
从FPGA RAM波形传输广播前端
功率信号传输和接收波形的计算
触发逻辑
Zynq处理系统上的嵌入代码(PS)包括:
自定义波形生成的传播。默认情况下,波形是一个线性调频信号
加载波形ARM处理器的FPGA RAM进行传输
发送计算功率信号回到PL的手臂
因为本文中描述算法是基于触发器的和处理通过数据,是可行的例子使用AXI4-Stream接口而不是管理I / Q流ARM处理器和FPGA之间的数据传输。
这个例子强调了如何:
该算法使用AXI4-Stream协议模型
生成一个高密度脂蛋白与AXI4-Stream接口IP核与DMA引擎
生成的IP核心和软件界面集成模型使用AXI4-Stream IIO读(嵌入式编码支持包Xilinx 万博1manbetxZynq平台)和AXI4-Stream IIO写(嵌入式编码支持包Xilinx 万博1manbetxZynq平台)块
为更多的信息关于如何使用AXI4-Stream接口,使手臂和FPGA之间的高速数据传输,明白了部署模型AXI-Stream界面Zynq工作流(高密度脂蛋白编码器)。
这个图显示了一个概念性的这个例子的数据流体系结构的概述。
高密度脂蛋白的IP核心这些端口的接口:
AXI4-Stream写波形的输入端口到FPGA RAM
AXI4-Stream输出端口阅读Tx的计算能力和Rx信号到PS
AXI4-Lite输入端口的实时控制和调整设计
AXI DMA端口之间的I / Q样本数据移动HDL IP核心和PS,通过AXI DMA
Tx和Rx基带端口之间的数据移动的I / Q样本HDL IP核心和AD936x IP
软件界面模型初始化广播前端在PL运行和控制硬件模型。模型的执行期间,FPGA与线性调频信号加载内存。在每一个触发的txStart
注册,该模型将信号数据发送到AD936x广播前端传输和使接收机捕获发送信号和接收信号在空气中。计算能力(I / Q的平方级)的这些信号从PL读入到PS使用AXI4-Stream接口。PS将接收的数据发送到主机通过UDP实时显示。
设置
使用HW / SW合作设计工作流,您必须安装并配置额外的支持包和第三方工具。万博1manbetx有关更多信息,请参见安装硬件软件合作设计。
硬件生成模型
这个模型使万博1manbetx用AXI4-Stream®模型是一个硬件生成模型。从这个模型中,您可以生成PL和HDL代码生成模板使用HDL工作流软件界面模型的顾问。使用模板软件界面模型,您可以生成一个应用程序,该应用程序可以运行在PS。
的HDL_DUT子系统模型上的功能实现PL。强调块子系统外代表PS要实现的控制功能。这些都是建模,这样你就可以通过仿真验证行为。
modelname =“zynqRadioHWSWAXI4StreamAD9361AD9364SL”;load_system (modelname);open_system (modelname);
的Tx和处方子系统模型PL的Tx逻辑和Rx逻辑算法,分别。
currentSubSys =“HDL_DUT”;open_system ([modelname' / 'currentSubSys]);
在Tx子系统,一个有效的输入帧AXI4-S数据写入双端口RAM。Tx数据的传输是通过控制maxTxCount
,txSel
并通过触发txStart
。
currentSubSys =“HDL_DUT / Tx”;open_system ([modelname' / 'currentSubSys]);
在处方子系统、电源(I / Q的平方级)计算的传播和接收信号。一个有效了
信号生成,有效期内对应1.5倍帧传输信号的大小,为了提供填充。这所花费的时间占传播波形出现在接收方。
currentSubSys =“HDL_DUT / Rx”;open_system ([modelname' / 'currentSubSys]);
的HDL_DUT子系统已经指定端口模型AXI4 datapath公司之间的PS和PL。
AXI4-Lite寄存器:
maxTxCount
定义了传输信号样本的最大数目(2047)。txStart
当该值设置成真时触发一个传播maxTxCount
样本。txSel
交换机之间传输数据存储在RAM FPGA的PS或斜坡信号。
AXI4-Stream接口:
AXI4S_Data_In
加载Tx FPGA的PS RAM的数据。AXI4S_Data_Out
检索计算Tx的PS和Rx信号。
模拟硬件生成模型
这个模型可以模拟确认其操作。线性调频信号是工作区中定义变量y
。信号读入的模型Tx数据块并为代表的比例int16
定点数据类型。的Tx写数据生成AXI4-Stream数据块和有效信号,用于写信号样本内的RAMHDL_DUT子系统。AXI4-Lite控制寄存器是模仿的马克斯Tx计数,Tx开始和Tx选择块。这些模块配置的值触发一个线性调频信号的传播,紧随其后的是一个斜坡信号的传输,每2047个样本的I / Q接口原路返回。这个传输触发接收在同一时间传送和接收信号可以被捕获在一定长度和两信号的功率计算之前通过AXI4-Stream传输数据和有效信号。
模拟块的力量Tx和Rx数据帧范围。
在这一点上你可以开始生成HDL IP核的过程,并将其集成到SDR参考设计,ARM处理器和生成软件。
生成IP核心
为了目标,您必须设置Xilinx工具链通过调用hdlsetuptoolpath
函数。例如:
> > hdlsetuptoolpath (“ToolName”,“Xilinx Vivado”,“路径”,“C: \ Xilinx \ Vivado \ 2019.1 \ bin \ vivado.bat ');
通过右键单击启动针对工作流HDL_DUT子系统和选择高密度脂蛋白HDL代码>工作流顾问。
在步骤1.1中,选择
IP核心代
工作流和适当的Zynq广播平台:ADI射频SOM
,ZC706和FMCOMMS2/3/4
,ZedBoard和FMCOMMS2/3/4
,ZCU102和FMCOMMS2/3/4
,或ZC706和FMCOMMS5
。在步骤1.2中,选择
接收和传输路径
参考设计。对于这个示例,您可以使用默认的参考设计参数。在步骤1.3中,表映射DUT的接口信号的接口信号可用参考设计。对于这个示例,配置数据和AXI4接口,这些图片所示。
在步骤1.4中,设置DUT合成频率。DUT合成频率取决于系统的基带采样率。在这个例子中,采样率为3.84 MHz,因此合成4 MHz的频率就足够了。
第二步准备HDL代码生成的模型通过执行设计检查。
第三步生成HDL代码的IP核心。
生成软件界面模型和块库
步骤4的高密度脂蛋白将新生成的IP核心集成到工作流顾问Zynq特别提款权参考设计,生成相应的比特流,并加载比特流到董事会。
步骤4.2生成一个软件界面库和模板软件界面模型。
软件界面库
库包含一个AXI界面块和无线电模块产生的HDL_DUT子系统。
AXI界面块暴露AXI4-Lite控制端口。
的数据端口无线电接收机和发射机块代表AXI DMA I / Q之间的数据接口和ARM处理器的FPGA用户逻辑。
AXI4-Stream司机块不会自动添加到库中。使用这些模型中,您必须手动添加AXI4-Stream IIO读(嵌入式编码支持包Xilinx 万博1manbetxZynq平台)和AXI4-Stream IIO写(嵌入式编码支持包Xilinx 万博1manbetxZynq平台)驱动程序块的万博1manbetx模型库浏览器>嵌入式编码器为Xilinx Zynq平台支持包万博1manbetx图书馆。
当使用软件库块在下游模型中,您必须配置参数正确地为您的应用程序。考虑到任何更新HDL_DUT
子系统自动传播到下游模型中的图书馆块当你再次运行步骤4.2。
软件界面模型模板
您可以使用生成的软件界面模型作为起点Zynq上运行您的设计与外部模式模拟或全部部署。由于生成的模型覆盖每次运行步骤4.2中,建议您保存这个模型在一个唯一的名称和发展你的软件算法。
部分AXI4-Stream软件接口模型展示了这一代模型可以用来构造一个软件界面模型,可以运行这个例子Zynq平台监视和优化
模式。
生成和负载比特流
高密度脂蛋白的最后步骤工作流程顾问产生的比特流PL和下载比特流到板上。
步骤4.3 PL生成一个比特流。您可以执行这个步骤在外部壳通过选择外部运行构建过程。这个选择允许你继续使用MATLAB在构建FPGA映像。一旦一些基本项目检查完成,步骤4.3是标志着一个绿色的复选标记。然而,你必须等到外部壳层显示一个成功的比特流构建在继续下一步之前。
步骤4.4下载比特流到设备上。继续这一步之前,确保MATLAB建立正确的物理IP地址的无线电硬件通过调用
zynq
函数。
> > devzynq = zynq (“linux”,“192.168.3.2”,“根”,“根”,“/ tmp”);
默认情况下,物理无线硬件192.168.3.2的IP地址。如果你改变了无线电硬件IP地址在硬件设置过程中,你必须提供地址。
另外,如果你想加载外的比特流工作流的顾问,创建一个特别提款权广播对象和使用downloadImage
函数。收音机对象创建步骤1.1中选择取决于广播平台。
如果选择广播平台
ADI射频SOM
,ZedBoard和FMCOMMS2/3/4
,ZC706和FMCOMMS2/3/4
,或ZCU102和FMCOMMS2/3/4
,创建一个AD936x广播对象。
> > = sdrdev(电台“AD936x”);
如果所选的广播平台
ZC706和FMCOMMS5
,创建一个FMCOMMS5广播对象。
> > = sdrdev(电台“FMCOMMS5”);
下载比特流使用广播对象接口选择的无线电设备。
> > downloadImage(广播,“FPGAImage”,…“hdl_prj \ vivado_ip_prj \ vivado_prj.runs \ impl_1 \ system_top.bit ')%路径生成的比特流
AXI4-Stream软件接口模型
AXI4-Stream界面模型从模板生成的软件接口模型。模型允许您运行算法监视和优化
模式。在这种模式下,您可以配置并触发从无线电硬件实时传输和接收。
close_system (modelname);modelname =“zynqRadioHWSWAXI4StreamAD9361AD9364SL_interface”;load_system (modelname) open_system (modelname)
模型配置为运行使用基于Xilinx zynq - 7000 IIO收音机
目标。您可以使用此目标ADI射频SOM
,ZedBoard和FMCOMMS2/3/4
,ZC706和FMCOMMS2/3/4
,或者是ZC706和FMCOMMS5
广播平台。如果您正在使用ZCU102和FMCOMMS2/3/4
广播平台,双击选择硬件目标板
块改变配置使用Xilinx Zynq UltraScale + MPSoC ZCU102 IIO收音机
目标。
AD936x发射机块初始化射频参数,使数据传输路径。这一块必须包含在界面模型,即使不发送任何数据块从PS PL。
AD936x接收器块初始化射频参数,使接收数据路径。这一块必须包含在界面模型,即使从PL不接收任何数据块。
的AXI4-Stream IIO读(嵌入式编码支持包Xilinx 万博1manbetxZynq平台)和AXI4-Stream IIO写(嵌入式编码支持包Xilinx 万博1manbetxZynq平台)司机块已经添加到接口模型万博1manbetx模型库浏览器>嵌入式编码器为Xilinx Zynq平台支持包万博1manbetx库和配置为例,概述部署模型AXI-Stream界面Zynq工作流(高密度脂蛋白编码器)。的AXI4-Stream IIO写块中使用波形写入FPGA RAM触发子系统写波形从PS PL。AXI4-Stream IIO读块用于读取接收功率信号从PL PS,然后将其发送给主机通过通过UDP发送子系统。
在软件界面模型配置的更多信息,请参考指南配置软件界面模型
在Zynq董事会运行设计
模型执行期间,您可以控制信号的传输通过遵循3步骤,高亮显示的注释中概述的接口模型
1。信号选择
选择波形数据并将其加载到FPGA RAM。
2。源开关
之间的切换传输信号波形或斜坡信号加载。
3所示。触发
触发一个传输信号的无线前端。
一旦PS已成功收到一封AXI4-Stream事务,它向主机发送的数据帧的以太网电缆使用UDP发送块模型在软件界面。UDP发送块一直使用默认配置IP地址的主机“192.168.3.1”。如果你改变了无线电硬件IP地址在硬件设置过程中,您必须提供相应的主机地址。提供了一个简单的UDP接收模型,您可以使用实时接收和显示帧数据使用范围。
close_system (modelname);modelname =“zynqRadioHWSWAXI4StreamAD9361AD9364SL_UDP_host_interface”;load_system (modelname) open_system (modelname)
1。UDP接收模式运行
2。运行软件界面模型监视和优化
模式
3所示。双击触发
开关在软件界面模型将选中的波形和触发接收。
接收功率信号的范围出现在实时UDP接收模型。
帧的数据显示在UDP接收的范围块模型对应的权力(I / Q的平方级)策划的信号。这匹配仿真模型的功能。
这个结果捕获使用射频天线连接到传输和接收端口的硬件,您可以更改接收到的信号通过修改的力量获得(dB)
价值AD936x接收机块面具。
总结
这个例子向您展示了如何使用AXI4-Stream接口与模拟设备AD9361 / AD9364电台通过实现,模拟和部署一个简单的触发波形发射机和接收机的硬件。
close_system (modelname);