主要内容

fpga在环加速通信系统仿真

本例使用fpga -in- loop (FIL)仿真来加速部分通信系统。该应用程序使用维特比算法解码卷积编码随机流,该流经过BPSK调制,通过AWGN信道发送,然后解调。使用一个样本一个样本的方法导致一个适度的加速超过普通的Simulink®仿真,而使用“过程作为框架”选项导致进一步加速。金宝app

本示例使用通信工具箱™与HDL Coder™和HDL Verifier™结合使用,以显示使用fpga在环加速仿真的设计工作流。

要求和前提条件

运行本例所需的工具:

  • FPGA设计软件

  • 支持的FPGA开发板之金宝app一。支持的硬金宝app件,请参见金宝appFPGA校验支持的FPGA设备

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

  • 使用JTAG连接:用于Intel FPGA板的USB Blaster I或II电缆和驱动器。Digilent®JTAG电缆和驱动器用于Xilinx FPGA板。

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

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

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

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

2.生成HDL代码

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

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

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

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

b。建模选项卡上,单击模型设置

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

e。点击生成

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

makehdl (“hdlcoderviterbi_for_fil / viterbi_block”

3.设置FPGA设计软件环境

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

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

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

filWizard;

4.1硬件选项

在单板列表中选择单板。单击Next继续。

4.2源文件

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

b。选择文件viterbi_block.vhd作为顶级文件。为了看到这些选项,您可能需要将FPGA-in-the-Loop Wizard窗口变宽。

c。注意viterbi_block已为您输入默认顶级模块名。单击Next继续。

4.3 DUT I/O端口

注意顶层模块的端口已经被正确标识。单击Next继续。

4.4构建选项

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

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

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

  • 在新模型中生成一个名为viterbi_block的FIL块。

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

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

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

一个。打开hdlcoderviterbi_for_fil.mdl

b。将先前生成的FIL块复制到其中,并将其与viterbi_block并行连接或连接到viterbi_block的位置。注意,原始块的输入在右侧。要使FIL块的输入位于右侧,右键单击该块,然后选择格式>翻转块

6.配置FIL块

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

b。点击负载

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

7.运行FIL模拟

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

FrameSize = 1;抽搐;sim卡(“hdlcoderviterbi_for_fil”);Fs1 = toc

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

FrameSize = 1024;抽搐;sim卡(“hdlcoderviterbi_for_fil”);Fs2 = toc

在我们的测试中,当FrameSize = 1时,模拟时间约为16秒,这与在不使用FIL的Simulink中进行模拟大致相同,但当使用Xilinx spartan6 SP605板将帧大小增加到1024时,模拟时间减少到12秒左右。金宝app这个特殊的电路板和系统提供了大约1.7倍的整体加速,但其他电路板和通信系统可能更快。

加速= fs1 / fs2

通过删除Simulink块版本,金宝app只模拟FIL版本,通过在设计的FIL部分添加更多块,并尽可能地删除Simulink作用域和显示,甚至可以实现更大的加速。

本文以fpga在环加速通信系统仿真为例。