不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电

FPGA技术江湖 2026-07-28 08:09

使用 AMD Vitis™ 模型编辑器创建数字 AM 调制和解调方案

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图1

介绍

FPGA 的优势应用领域之一是无线通信和软件定义无线电 (SDR)。无线通信和 SDR 可能很复杂,但 AMD Versal™ RF 系列自适应 SoC 产品家族中的各种器件都能满足这些需求。

但是,我们可以在大多数 AMD 设备上创建简单的 SDR,因此在这个项目中,将创建一个简单的 SDR,它使用幅度调制来发送和接收数据。

为此,本项目演示一下如何使用 AMD Vitis™ 模型编辑器轻松开发这样的解决方案。

Vitis Model Composer是由 AMD 开发的基于模型的设计环境,支持使用 MathWorks MATLAB® 和 Simulink® 快速开发和验证 FPGA 加速系统。它允许设计人员在高抽象级别上创建、仿真和优化硬件架构,然后自动生成可综合的 RTL,而无需手动编写 HDL 代码。

调幅调制。

幅度调制 (Amplitude Modulation,AM) 或许是生成和解调最简单的调制方式,尽管它在功率和带宽方面效率较低。AM 仍然广泛应用于从无线电到航空通信等诸多领域。作为最简单的调制方式,它为理解更复杂的调制方案提供了一个很好的起点。

在这个项目中,将创建一个能够调制和解调单个音调或数字传输数据的解决方案。

AM发射机

AM发射机的原理非常简单。需要一个产生载波频率的本地振荡器。由于信息被调制到载波幅度上,需要将生成的载波与待发射的信息相乘。

还需要为调制信号提供直流偏移。所有这些功能都可以使用 Simulink 中 AMD 工具箱内的模块来实现。

为了生成载波,将使用配置为生成 20 MHz 载波的正弦波模块。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图2

待编码的数据首先会经过一个网关,网关会将 MATLAB 类型转换为 AMD Toolbox 所需的定点类型。

经过网关后,会使用一个恒定乘数,该乘数用于控制调制指数。该指数的取值范围为 0 到 1.0,在本应用中,将其设置为 1.0。

常数乘法器的输出随后与直流偏移量相加,该偏移量确保在输入数据为零时载波仍然存在。使用 AddSub 模块来实现这一点,该模块将输入数据和直流偏移量相加。

然后,通过将载波与 AddSub 运算的结果相乘来创建调制输出。

该设计旨在以 100 MHz 的时钟频率运行。

正弦波发生器的设置如下所示。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图3

该模块是在子系统中创建的,需要在 FPGA 中实现我们希望实现的设计也是在子系统中实现的。

顶层设计

为了测试 AM 调制方案,需要在设计的顶层实现几个功能。

第一个是 Vitis 模型组合器中心,它可以用来选择目标设备或开发板,以及验证硬件和生成 RTL。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图4
不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图5

RTL 设置

在设计中加入 VMC Hub 之后,下一步是加入正弦波发生器和随机数发生器。它们将作为待调制数据的来源。

为了能够在不同的信号源之间切换,使用一个可以通过拨动开关控制的开关。

然后,在输入和输出端添加示波器,以观察时域信号,并使用 FFT 观察调制输出,结果在频谱中看起来是正确的。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图6

正弦波和随机数据均以 500 KHz 的频率生成,开关设置为使用正弦波作为数据源。

在以下输出频谱中,将看到正负频率。在此频谱中,可以看到 20 MHz 的载波,以及 +/- 500 kHz 的上边带和下边带。当使用单根探针时,这些边带是预期会出现的。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图7

下面可以看到时域图,图中显示了经典的包络线。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图8

当切换开关设置为编码随机数据时,可以看到 20 MHz 的载波,由于随机数据包含多个频率,因此上边带和下边带不太明显,能量分散在整个频谱上。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图9

可以在时域中观察到 AM 编码信号。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图10

包络检波器

解调调幅调制信号有几种不同的方法。最简单的方法(也是我们将要实现的方法)是包络检波器。

为了将其生成为 HDL 模块,需要创建一个子系统,并将我们的设计添加到其中。将向子系统的输出端添加频谱分析仪和示波器。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图11

该方法很简单。首先,需要取输入射频波形的绝对值。下一步是进行两级滤波。第一级滤波还将输入采样率从 100 MHz 降低到 4 MHz。第二级滤波则采用一个通带为 500 kHz、阻带为 600 kHz 的窄带滤波器。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图12

为了设计滤波器,可以使用 FDA 工具,因为希望在工作区中存储几个不同的滤波器系数。

第一个滤波器以 100 MHz 的采样率进行采样,设计通带为 500 Khz,阻带起始频率为 2 MHz。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图13

第二个滤波器的工作频率为 4 MHz,截止频率更窄。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图14

使用 500 kHz 正弦波进行测试,可以很好地展示 500 kHz 正弦波的 FFT 波形。由于解调器没有进行直流消除,可以看到 0 MHz 处存在较大的直流分量。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图15

下面还可以看到时域输出。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图16

当随机数据通过解调器运行时,能够在时域中看到传输的信息。

在基带频域中,可以看到直流分量和信号在 500 khz范围内的分布。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图17

时域响应。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图18

生成硬件

在按预期演示了调制和解调功能之后,下一步是生成模块以进行硬件在环测试。

本项目选择使用 AMD Kintex™ 7 FPGA KC705 评估套件。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图19

首先,打开了 VMC Hub 并选择 AM Mod 子系统,然后在导出类型中选择了协同仿真 (JTAG)。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图20

这将为目标板构建项目和比特流。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图21

完成后,将在库中创建一个新组件。保存库,然后将新符号拖放到主图中。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图22

将其拖到主图中后,就可以连接输入和输出了。将输入连接到与模型相同的接口,并将输出连接到另一个频谱分析仪。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图23

这次运行模拟需要更长时间,但我们可以看到相同的 FFT 频谱。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图24

可以通过打开 AMD Vivado™ 设计套件项目来查看实现资源。对于调制器,可以看到它大约需要 699 个查找表 (LUT) 和 844 个触发器 (FF)。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图25

解调器(以相同方式实现时)需要 623 个查找表、970 个触发器和 12 个数字信号处理器。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图26
不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图27

下面图表显示了随机数据和 500 kHz 正弦信号的解调结果。

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图28
不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图29

包起来

该项目证明,利用 AMD Vitis 模型编辑器中的 AMD 工具箱,可以创建一个简单的 AM 调制/解调方案。

这也是了解调制方案以及如何创建简单的软件定义无线电的良好开端。

项目/参考地址

https://www.hackster.io/adam-taylor/am-modulation-with-amd-vitis-model-composer-0ebc1d

END


往期精选 

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图30 
不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图31 


不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图32
不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图33

FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图34

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图35

备注姓名+公司/学校+岗位/专业进群

不用写一行 HDL!AMD 官方教你用 MATLAB + Simulink 搭建 FPGA 软件无线电图36

关于科技区角:国内科技展会垂直内容策划服务商,提供从论坛内容全案策划、会展市场化IP打造到精准专业观众一站式邀约服务,以产业内容吸引高质量B端人群,打通展会从议题设计、演讲嘉宾邀约、宣传预热、精准邀观到供需对接全链路。
声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。
FPGA 无线 软件 AMD
more
翻车了!添可无线吸尘器拆解维修,遇见从未见过的芯片封装!
2025年中国耳返行业产业链、市场规模及发展趋势分析:耳返行业规模达到15亿元,未来无线耳返发展潜力巨大[图]
资讯 | 西工大实施国际首次太空环境无线植入式脑机接口离体在轨试验、西电广研院发布脑机接口成果转化、翔宇医疗/念及科技等新进展
18元买个赛博手办?7.5W的联想透明无线充值不值?
Neuralink首例受试者证实脑机芯片支持无线升级,类比特斯拉OTA机制
140GHz无线芯片突破120Gbps传输速率,加州大学团队绕过传统功耗瓶颈
无线脑机接口2025:无创技术如何终结“植入时代”?
六款热门超薄磁吸充电宝拆解,内部无线主控芯片曝光!
强制性国标《民用无人驾驶航空器探测与反制设备唯一识别码》《常规无线电反制设备通用技术要求》立项公开征求意见
拆解报告:贝尔金Qi2.2三合一无线充
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号