诺姆·莱文,MathWorks
Robin Getz,模拟设备
Luc Langlois, Avnet电子营销
加入来自MathWorks、模拟设备和Avnet的工程师,他们将为软件定义的电台展示单个硬件/软件开发和部署环境。使用MATLAB®和仿真软金宝app件®用户可以从设计和模拟通信算法,到生成针对Xilinx的生产实现®Zynq®-7000所有可编程SoC和模拟设备AD9361射频敏捷收发器™。
在我们的简报中,我们将演示如何:
记录:2015年10月20日
大家好,欢迎来到使用MATLAB和Simulink进行软件定义无线电设计的网络研讨会。金宝app我的名字是Noam Levine,在MathWorks为FPGA和SSE解决方案做技术营销。金宝搏官方网站我将和来自模拟设备的Robin Getz以及来自Avnet的Luc Langlois一起参加这次演讲。在本次网络研讨会结束时,我们希望您能够理解SDR设计的新工作流的元素,该工作流允许您在一个硬件/软件工具环境中从系统模拟到生产部署。
我们也想让你知道你可以在哪里找到资源来帮助你的电台实施项目。本次网络研讨会的主题包括射频信号链的建模和仿真,通信算法的建模和仿真,用真实数据测试和验证算法,最后,将通信系统部署到硬件进行原型和生产。
这个工作流可以应用于许多基于zynq的SDR平台,包括来自Avnet的新的模块上的PicoZed SDR系统,它允许您使用相同的硬件从开发到生产部署。对于设计到原型部署,该工作流程也可以应用于其他开发平台,包括Zynq-7000所有可编程SoC,以及模拟设备AD9361射频敏捷收发器。
现在我将把工作交给Avnet的Luc Langlois来描述新的PicoZed SDR平台。
大家好,软件定义电台的设计师们。我是Avnet Global Technical Marketing的Luc Langlois,在这里向大家介绍我们最新的PicoZed SDR software-defined radio,它是一个可生产的系统,在模块上,体积小,功耗低。
该系统包括模拟器件AD9361射频灵活收发器、Xilinx Zynq-7000全可编程SoC,并能运行嵌入式Linux。我们与行业领导者模拟装置紧密合作,MathWorks,和Xilinx上创建一个生产系统模块集成在设备中传输和接收函数一副牌的大小,使2×2 MIMO配置,并从70兆赫到6兆赫频段。它可以用于开发,最终,直接插入到最终产品中。
应用包括便携式敏捷无线通信、公共安全无线电、点对点通信、femtocell和picocell基站以及便携式仪表。
PicoZed SDR SOM的特点是Xilinx 7Z035 Zynq SoC设备,模拟设备9361射频收发器,1g的ddr3低功耗,256mb的四口SPI非易失性存储器,运行中的USB 2.0,以太网,一个microSD卡,204个用户I/O都在SOM上。完整的开发套件增加了一个固定-移动通信载波卡、天线、电源和电缆。更多信息和订购请访问picozed.org/sdr。
谢谢,卢克。现在我们已经确定了目标硬件,可以开始设计过程了。这个简单的框图显示了一个软件定义的无线电系统的主要元素。正如我们在对PicoZed SDR SOM的描述中所看到的,硬件包括一个射频收发器,本例中来自模拟设备的AD9361,以及一个基带处理引擎,Xilinx Zynq-7035全可编程SoC。我们已经添加了另一个块、测试和验证,以展示如何将开发工作流集成到硬件上。
在这个网络研讨会上,我们将采用基于模型的设计,或自顶向下的方法,来进行系统开发。在这种方法中,我们首先在MATLAB和Simulink中对所有主要系统元素进行软件仿真,然后在开发和验证这些元素时将它们迁移到硬件。金宝app我们将从在MATLAB和Simulink中建模整个信号链开始,以验证我们的基带处理算法和整个系统概念。金宝app
然后,我们将使用真实的流数据在Simulink中验证和优化我们的算法。金宝app一旦我们的算法通过真实数据验证,我们就可以将其部署到原型环境的硬件中,并在MATLAB和Simulink中进行实时参数调优和分析,以验证目标的性能。金宝app最后,我们将把我们的算法部署到一个用于生产实现的独立系统。
现在,让我们从软件模拟开始,更详细地研究每个步骤。在这部分工作流程中,我们将纯粹在Simulink环境中工作,模拟从RF收发器开始的整个信号链。金宝app我们的系统将使用模拟设备AD9361射频敏捷收发器,这是Robin从我们现在将要描述的模拟设备中获得的。
我们今天要讲的是9361 9364。这是一个完整的射频收发器。它是70兆赫,6千兆赫的调谐范围,200千赫到56兆赫的频道带宽。所以这是非常宽的波段,非常宽的调音范围,非常集成。所以你在屏幕上看到的所有东西都集成到一个10乘10的包中,两个完整的接收链,和两个完整的9361传输链。
因此,我们有什么是从单晶完整的LO产生,所以它推动我们的VCO。这反过来又推动了我们收到的PLL,发射锁相环,基带的PLL,完整的ADC / DAC的数字滤波器,数字接口,启用状态机,可以在多种不同的模式进行操作,从快速攻击一个非常复杂的自动增益控制,攻击速度慢,为手动模式。
和的事情之一是,当你谈论这样的集成系统,是你可以实际达到的性能,你会在一个独立的解决方案?我们可以在这种装置,因为数字和模拟校准和修正,我们做内部的设备。
再一次,如果你看这些部分,它有很多可编程性的阶段。从模拟接收路径,我们有跨阻放大器,我们有低通滤波器,我们有可以用来降低ADC速率的半频带。我们有可编程的FIR滤波器。当我们在看一些东西的时候我们需要理解好的可编程性会变得很混乱。
所以当我们谈论1000种方法,或者1000个spy配置寄存器时,基本上有999种方法会出错,只有一种方法能真正使它正确,并正常工作,并获得你想要的性能。
谢谢,罗宾。为了帮助您正确地使用它,MathWorks结合模拟设备对AD9361进行了编程,建立了一个行为模拟模型,以使RF和系统设计人员能够看到整个RF信号链。这使您能够准确地了解算法在实际硬件环境中的执行情况。
这是一个真正的多域系统级模型,它准确地表示了AD9361的行为,使用户能够访问实际硅上可用的所有可编程特性。在这个演示中,我们没有时间深入探讨这个模型,但是我们将提供一个链接,以获得更详细的信息。对于这个示例,我们将只考虑AD9361收发器模型的接收路径。
您可以在这里看到,设备的所有主要组件都在Simulink中表示,并结合状态流程图对自动增益控制进行建模,而SIM RF模块则对收发器的RF部分进行建模。金宝app对于本文的讨论,我们将使用QPSK接收器作为示例处理算法。让我们看看如何为处理建模。
在这里,我们有我们在Simulink QPSK系统的正常运行。金宝app正如你所看到的,我们有我们的QPSK发射器直接连接到我们的QPSK接收器。在这里,您将开始您的设计理想的来源提供的输入到模型process--纯算法仿真。
现在让我们进一步建模,并将AD9361射频收发器的模型引入我们的系统,这样我们就可以看到该设备对模拟信号的影响。现在,我们将详细说明我们的系统模型,以包括AD9361的接收器部分的模型,以及输入信号的一些控制,如添加一个连续的波源,以更好地模拟潜在的实际实现。
我们仍然在使用我们在上一个例子中看到的相同的QPSK接收器模型。但是现在我们可以看到收发机设置和系统条件的改变是如何影响算法性能的。例如,我们可以调整我们的QPSK发射功率相对于我们的连续波功率的水平,看看这如何影响我们的接收信号。
看看AD9361接收器内部,我们开始理解设备的复杂性,但你也获得了检查整个信号链的能力——这是单靠硬件无法做到的。同样,我们将向您提供关于仿真模型的更深入讨论的链接,但是我想强调一下这个模型的一些主要部分,包括AGC,它在Stateflow中以状态图的形式实现。你的增益表,你有能力编辑。再一次,提供对设备的精确控制。你的射频接收部分,在那里你可以深入到你想要进入去调制器。这些都是从我们的模拟射频库模块。然后几个可编程滤波器在接收端,和我们的数字下变频器。
所有这些过滤器都是可配置的通过使用AD9361过滤器向导,这是一个MATLAB应用程序,可从模拟设备。因此,filter向导允许您指定可以下载到模型中的所有筛选参数,以便对设备的操作进行微调。
现在我们已经看到了我们的算法在使用模拟数据进行模拟时的工作,我们现在希望使用从AD9361到MATLAB和Simulink的真实数据流来验证我们的算法的运行。金宝app我们可以把这个操作看作是循环中的无线电模拟。使用通信系统工具箱中的Zynq SDR金宝app支持,您可以将AD9361中的数据流到MATLAB和Simulink中。金宝app支持包允金宝app许您控制收发器参数。
在这部分工作流程,没有对ZYNQ运行任何代码。所有基带处理的是发生在MATLAB和Simulink,与上ZYNQ包装数据ARM内核的流通过以太网。金宝app这是我们的QPSK接收器,它看上去很像我们看到在我们的最后一个例子的QPSK接收器模型,现在除了没有将其连接到AD9361的模型,我打算将它连接到这个SDR接收器模块。而这个SDR接收机块就是建立Simulink和我ZYNQ目标硬件之间我的通信链路。金宝app
我要对这个模型做一个改动。这是我们的航运例子,它没有附带星座图。我要从我们的通信系统工具箱中添加一个星座图。我们把它带进来,这样我们就能看到我们的数据,另一个数据的可视化。我们还将从发射机发送消息——“Hello, World!”消息,这是我们在前面的例子中看到的,当我打开MATLAB屏幕时。
我们现在要做的就是运行这个模型。在房间的另一边,我有另一个基于zynq的SDR工具包,它运行着QPSK发射器,我们将看看能否捕捉到我们已经拥有的数据。如果我打开MATLAB窗口,我们可以看到这个接收信号的Hello世界。
在本例中,我们没有在Zynq设备上运行任何QPSK算法。该算法完全在Simulink中运行,但数据来自AD9361。金宝app我们可以看到现在发生了什么,当我关闭我的发射机,以显示我们,事实上,正在接收真实的数据直播。我把发射机关掉。我们可以看到我的星座消失了。我不会再收到任何东西了。
现在我们的算法已经被实际数据验证,我们可以生成针对Zynq SoC上可编程逻辑的HDL代码来实现我们的设计。下面是需要采取的一些步骤,以便从Simulink设计中生成良好的HDL代码。金宝app
首先,您需要创建一个浮点引用。将浮点引用转换为定点数据类型。详细说明您的设计,以便更有效地实现硬件。生成和合成HDL代码,然后研究各种HDL优化并验证您的代码。
第一步我们已经做过了。我们在这个演示中一直在看的QPSK接收器模型是我们的参考实现。现在我们需要做一些改变,使它更适合HDL。
这样我们就可以实现在FPGA上我们的模型,我们首先需要将其转换为工作与固定点数据类型。MathWorks公司提供了大量的定点Designer中的工具来帮助自动化和简化这个任务。完成后,你会想模拟模型的定点版本,看看它是如何,你已经做了浮点仿真相匹配。
使模型HDL友好的另一个关键步骤是转换我们处理传入数据的方式,到目前为止,大部分数据都是基于框架的。我们需要转换体系结构,使用基于示例的处理,并查看模型的元素,我们可能希望修改这些元素以使其对硬件更加友好。再次,重新模拟并与您之前的模型详细说明进行比较,以保持持续的验证。
这张幻灯片展示了我们在QPSK发射机中可以做什么来产生数据流。在接收器上,我们可以修改一些元素,比如粗频率补偿,以实现更适合硬件实现的架构。所有这些导致了一个hdl优化的QPSK模型。
这里我们有一个经过hdl优化的QPSK接收器示例,其中以一种更加硬件友好的方式实现了各种块。现在我们有了模型的HDL友好版本,我们现在可以生成HDL代码并将其部署到目标上。第一步是生成HDL代码,我们将使用HDL Workflow Advisor来完成。
这是我的HDL工作流顾问,它将带我一步一步地完成为我的模型生成代码的过程。我已经设定了目标和SDR选择;在这种情况下,我们的目标是一个SDR平台。下一步是检查我的模型以确保它是有效的,使用有效的块来生成HDL代码。
所以我们要做的是我们要运行所有这些模型检查来确保一切都是正确的。现在我们的模型检查已经完成,我们准备生成HDL代码。有很多优化选项可供选择。我们有一些基本的报告选项,我将会选择,这样我们可以在之后看看我们的代码生成的一些特性。现在我们来生成HDL代码。
我们的代码生成现在已经完成。让我们来看看我们要求的一些报道。我们能得到的第一件事是我们为模块生成代码的代码生成报告。这很棒。这告诉你如何定位设备。你有一个非常高水平的资源报告,告诉你你的FPGA有多少可以利用。
我们还能够跟踪代码。这样做的好处是,您可以从一个代码转到另一个模型,再从一个模型转到另一个模型,这样您就可以获得完整的可跟踪性。如果你想看看你的HDL是什么样子的,你可以点击这些超链接中的任何一个,它会带你回到生成代码的模型中的block。
类似地,您可以转到模型中的任何块,并导航到该块生成的代码。当需要做设计评审时,这是非常方便的;或者,如果您不得不担心标准遵从性,这是一个可跟踪的工作流。
接下来的步骤,很遗憾我们没有时间在这个演讲中展示。这些将会在Simulink中创建和合成一个Vivado项目然后创建IP核心用于Vivado中的PicoZed SDR参考设计。金宝app这使用我们的IP核心生成工作流来针对Zynq-7000 SoC。
我们也有很多的优化HDL性能选项。当我们产生了HDL代码,我们选择了所有的系统默认值。在真实世界的情况下,你可能会开始使用所有默认设置,看看如何快速运行应用程序,然后开始寻找各种优化速度和面积,以获得最佳的HDL代码生成。
在本讨论中,我们实际上只能触及到SDR设计过程的皮毛。如果您对更深入的培训感兴趣,Avnet以及MathWorks、模拟设备和Xilinx将提供一系列为期两天的实践研讨会,这些研讨会将在世界范围内的特定城市举行。这些研讨会将带您了解我们在本次网络研讨会中概述的整个设计过程,从设计到使用MATLAB、Simulink和PicoZed SDR SOM进行生产。金宝app
更多信息请访问picozed.org/sdr。如果您没有看到您所在地区的研讨会安排,请联系您当地的Avnet代表,或者您可以通过fpga_expert@mathworks.com与我们联系,讨论其他培训安排。
为了全面理解HDL代码生成过程和SDR设计过程,我们可以深入研究一些主题。这些链接将在后续的电子邮件中发送给所有的网络研讨会注册者。其中包括关于Zynq工作流和Zynq培训的资源,更深入地分析了AD9361仿真模型,以及关于IP核生成工作流的信息。如往常一样,您可以通过fpga_expert@mathworks.com与我们联系。谢谢你!
我们不会出售或出租您的个人联系信息。详情请参阅我们的隐私政策。
您到您的MathWorks公司的帐户已经签署。请按“提交”按钮,完成这一过程。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站表现。其他MathWorks国家站点不适合来自您所在位置的访问。