主要内容

用FPGA在环加速通信系统仿真

本例使用FPGA在环(FIL)仿真来加速部分通信系统。该应用程序使用维特比算法对卷积编码的随机流进行解码,该随机流经过BPSK调制,通过AWGN信道发送,然后进行解调。与普通Simulink®模拟相比,使用逐个样本的方法会带来适度的加速,而使用“作为帧处理”选项会带来进一步的加速。金宝app

此示例使用通信工具箱™ 结合HDL编码器™ 和HDL验证器™ 展示使用FPGA在环加速仿真的设计流程。

要求和先决条件

运行此示例所需的工具:

  • FPGA设计软件

  • 支持的FPGA开发板之金宝app一。有关支持的硬件,请参阅金宝app用于FPGA验证的支持FPGA设备.

  • 对于使用以太网的连接:安装在主机上的千兆以太网适配器、千兆以太网交叉电缆

  • 用于使用JTAG进行连接:用于英特尔FPGA板的USB Blaster I或II电缆和驱动程序。用于Xilinx FPGA板的Digilent®JTAG电缆和驱动程序。

  • 用于使用PCI Express®连接:安装在主机PCI Express插槽中的FPGA板。

要求:MATLAB®和FPGA设计软件可以本地安装在您的计算机上,也可以安装在网络可访问的设备上。如果您使用网络上的软件,则需要在计算机上安装第二个网络适配器,以便为FPGA开发板提供专用网络。请参阅公司的硬件和网络指南学习如何在计算机上安装网络适配器。

1.打开并执行Simulink模型金宝app

打开模型。由于处理的数据量大,模拟大约需要9秒而无需电池。我们将通过使用FPGA-In--in-Loop提高以下步骤的模拟速度。

2.生成HDL代码

此步骤需要HDL编码器。如果您没有HDL编码器,则可以在当前目录中使用预先生成的HDL文件。

如果要使用这些复制的文件,请直接转到步骤3。

通过执行这些步骤为Viterbi块子系统生成HDL代码:

一种。右键单击标记为的现有FIL块维特比尤区块1.单击“删除”以删除此块以获取代码生成。

B在里面建模选项卡,单击模型设置.

D点击一下HDL代码生成窗格并确保hdlcoderviterbi_for_fil / viterbi_block.被选中。

E点击生成.

或者,您可以通过在MATLAB提示符下输入以下命令来生成HDL代码:

makehdl(“hdlcoderviterbi_用于fil/viterbi_块”)

3.设置FPGA设计软件环境

在使用FPGA循环之前,请确保正确设置系统环境以访问FPGA设计软件。您可以使用该功能hdl setuptoolpath.将FPGA设计软件添加到当前MATLAB会话的系统路径中。

4.运行fpga-in-out循环向导

要启动FIL向导,请在MATLAB提示符下输入以下命令:

filwizard;

4.1硬件选项

从线路板列表中选择线路板。单击“下一步”继续。

4.2源文件

一种。添加所有先前生成的HDL源文件viterbi块子系统。

B选择文件viterbi_block.vhd作为顶级文件。您可能需要使FPGA-In-Loop向导窗口更宽,以便查看这些选项。

C请注意维特比尤区块已为您输入默认的顶级模块名称。单击“下一步”继续。

4.3 DUT I/O端口

观察顶层模块的端口是否已正确识别。单击“下一步”继续。

4.4构建选项

一种。选择一个输出文件夹。

B单击“构建”以构建FIL块和编程文件。

在生成过程中,会发生以下操作:

  • 在新模型中生成名为viterbi_块的FIL块。

  • 在新模型生成之后,FIL向导将打开一个命令窗口,其中FPGA设计软件执行合成,映射,地点和路由,时序分析和FPGA编程文件生成。对于此块,这些步骤需要大约20分钟。

FPGA设计软件过程完成后,命令窗口中会显示一条消息,告知您可以关闭窗口。

5.打开并完成FIL的SIMULINK模型金宝app

一种。打开hdlcoderviterbi_for_fil.mdl

B将先前生成的FIL块复制到它中,并并行地连接到或代替维特比块。请注意,原始块具有右侧的输入。要使FIL块在右侧有其输入,请右键单击块,然后单击“旋转和翻转 - ”翻转块。

6.配置FIL块

一种。双击模型中的FIL块以打开块掩码。

B点击加载.

C点击好的关闭块遮罩。

7.运行FIL模拟

运行模拟20480秒并遵守性能。

FrameSize=1;tic;sim卡(‘hdlcoderviterbi_for_fil’);FS1 = TOC.

您可以尝试将帧大小设置为更大的数字。在本例中,帧大小设置为1024字节。

框架= 1024;tic;SIM(‘hdlcoderviterbi_for_fil’);FS2 = TOC.

在我们的测试中,当FrameSize=1时,模拟时间约为16秒,这与在不使用FIL的Simulink中模拟时间大致相同,但当使用Xilinx Spartan-6 SP605板将帧大小增加到1024时,模拟时间减少到12秒左右。此特定板和金宝app系统的总体加速比约为1。7倍的速度,但其他板和通信系统可能更快。

Speedup = FS1 / FS2

通过删除Simulink块版本并金宝app仅模拟FIL版本,并通过将更多块添加到设计的文件部分并尽可能地删除Simulink范围并显示更大的加速。

最后以FPGA在环加速通信系统仿真为例进行了总结。