主要内容

使用FPGA in-Loop加速通信系统仿真

此示例使用FPGA-IN-in-Loop(FIL)模拟来加速通信系统的一部分。该应用程序使用维特比算法解码卷积编码的随机流,其被调制,通过AWGN通道发送,然后解调。使用样品采样方法导致正常Simulink®模拟的适度加速,同时使用“作为框架”选项的“过程”选项会进一步加速。金宝app

此示例使用Communications Toolbox™与HDL Coder™和HDL Verifier™一起使用,以显示使用FPGA-IN-in-Loop加速模拟的设计工作流程。

要求和先决条件

运行此示例所需的工具:

  • FPGA设计软件

  • 其中一个支持的FPGA金宝app开发板。对于支持金宝app的硬件,请参阅金宝app支持FPGA用于FPGA验证的FPGA设备

  • 使用以太网连接:主机上安装了千兆以太网适配器,千兆以太网交叉电缆

  • 有关使用JTAG的连接:USB Blaster I或II电缆和INTEL FPGA板的驱动程序。Digilent®JTAG电缆和Xilinx FPGA板的驱动器。

  • 有关使用PCIExpress®的连接:FPGA板安装到主机的PCI Express插槽中。

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

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

打开模型。由于要处理的数据量很大,在没有FIL的情况下,模拟大约需要9秒。我们将在以下步骤中使用fpga -in- loop来提高仿真速度。

2.生成HDL代码

这一步需要HDL编码器。如果没有HDL Coder,可以在当前目录中使用预生成的HDL文件。

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

通过执行以下步骤生成Viterbi块子系统的HDL代码:

一个。右键单击已标记的FIL块Viterbi_block1..单击Delete以删除此块以进行代码生成。

造型选项卡,单击模型设置

天。点击HDL代码生成窗格,并确保hdlcoderviterbi_for_fil / viterbi_block被选中。

e。点击产生

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

makehdl('hdlcoderviterbi_for_fil / viterbi_block'

3.设置FPGA设计软件环境

在使用FPGA in-the- loop之前,请确保您的系统环境已正确设置,以便访问FPGA设计软件。你可以使用这个函数hdlsetuptoolpath将FPGA设计软件添加到当前MATLAB会话的系统路径中。

4.运行FPGA-in-the-Loop向导

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

filWizard;

4.1硬件选项

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

4.2源文件

一个。的所有先前生成的HDL源文件维特比块子系统。

选择文件viterbi_block.vhd.作为顶级文件。为了查看这些选项,您可能需要将fpga在环向导窗口扩大。

C。请注意viterbi_block.已作为默认的顶级模块名输入。单击“下一步”继续。

4.3 DUT I / O端口

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

4.4构建选项

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

单击Build来构建FIL块和编程文件。

在构建过程中,发生以下操作:

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

  • 生成新模型后,FIL Wizard会打开一个命令窗口,FPGA设计软件在此执行合成、映射、位置和路由、时序分析和FPGA编程文件生成。对于这个区块,这些步骤大约需要20分钟。

当FPGA设计软件流程完成时,命令窗口中的一条消息才能让您知道您可以关闭窗口。

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

一个。打开hdlcoderviterbi_for_fil.mdl.

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

6.配置文件块

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

点击负载

C。点击好吧关闭块掩码。

7.运行FIL模拟

运行模拟20480秒并观察性能。

框架= 1;抽搐;SIM(“hdlcoderviterbi_for_fil”);fs1 = toc

您可以尝试将帧大小设置为更大的数字。对于此示例,帧大小设置为1024字节。

FrameSize = 1024;抽搐;SIM(“hdlcoderviterbi_for_fil”);fs2 = toc

在我们的测试中,当Framesize = 1时,模拟的时间大约为16秒,这与Simulink中的模拟而没有FIL,但使用Xilinx将帧大小增加到1024时,模拟时间减少到大约12秒钟金宝appSpartan-6 SP605板。这种特殊的董事会和系统提供了更快的总速度大约1.7倍,但其他板和通信系统可能更快。

加速= fs1 / fs2

通过删除Simulink块版本,金宝app只模拟FIL版本,并在设计的FIL部分添加更多的块,并尽可能地删除Simulink范围和显示,甚至有可能获得更大的加速。

这总结了使用FPGA在循环示例的加速通信系统仿真。