主要内容

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

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

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

要求和先决条件

运行此示例所需的工具:

  • FPGA设计软件

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

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

  • 有关使用JTAG的连接:USB Blaster I或II电缆和用于英特尔FPGA板的驱动器。DigIlent®JTAG电缆和Xilinx FPGA板的驱动器。

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

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

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

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

2.生成HDL代码

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

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

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

一种。右键单击标记为现有的FIL块Viterbi_block1.。单击“删除”以删除代码生成的此块。

在里面造型选项卡,单击模型设置

天。点击一下HDL代码生成窗格并确保hdlcoderviterbi_for_fil / viterbi_block.选择了。

e。点击产生

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

makehdl('hdlcoderviterbi_for_fil / viterbi_block'的)

3.设置FPGA设计软件环境

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

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

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

filwizard;

4.1硬件选项

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

4.2源文件

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

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

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

4.3 DUT I / O端口

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

4.4构建选项

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

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

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

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

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

当FPGA设计软件流程完成后,命令窗口中的消息允许您知道您可以关闭窗口。

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

一种。打开hdlcoderviterbi_for_fil.mdl.

复制到以前生成的FIL块,并将其与viterbi_block并行或代替。请注意,原始块具有右侧的输入。要使FIL块在右侧有其输入,请右键单击该块,然后选择格式>翻转块

6.配置文件块

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

点击加载

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

7.运行FIL模拟

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

框架= 1;Tic;SIM('hdlcoderviterbi_for_fil');FS1 = TOC.

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

框架= 1024;Tic;SIM('hdlcoderviterbi_for_fil');FS2 = TOC.

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

Speedup = FS1 / FS2

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

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