此示例使用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开发板提供专用网络。请参阅计算机的硬件和网络指南,以了解如何安装网络适配器。
打开模型。由于流程的数据量大,模拟大约需要9秒而无需FIL。我们将通过使用FPGA-In--in-Loop来提高以下步骤的模拟速度。
此步骤需要HDL编码器。如果您没有HDL编码器,则可以在当前目录中使用预先生成的HDL文件。
如果要使用这些复制的文件,请直接转到步骤3。
通过执行这些步骤为Viterbi块子系统生成HDL代码:
一种。右键单击标记为现有的FIL块Viterbi_block1.
。单击“删除”以删除代码生成的此块。
湾在里面造型选项卡,单击模型设置。
天。点击一下HDL代码生成窗格并确保hdlcoderviterbi_for_fil / viterbi_block.选择了。
e。点击产生。
或者,您可以通过在MATLAB提示符下输入以下命令来生成HDL代码:
makehdl('hdlcoderviterbi_for_fil / viterbi_block'的)
在使用FPGA循环之前,请确保正确设置系统环境以访问FPGA设计软件。您可以使用该功能hdl setuptoolpath.将FPGA设计软件添加到当前MATLAB会话的系统路径中。
要启动FIL向导,请在MATLAB提示符下输入以下命令:
filwizard;
从电路板列表中选择一个板。单击“下一步”继续。
一种。添加所有先前生成的HDL源文件Viterbi块
子系统。
湾选择文件viterbi_block.vhd.
作为顶级文件。您可能需要使FPGA-In-in-Loop向导窗口更宽,以便查看这些选项。
C。请注意viterbi_block.
已为您输入默认的顶级模块名称。单击“下一步”继续。
观察到顶级模块的端口已正确识别。单击“下一步”继续。
一种。选择一个输出文件夹。
湾单击“构建”以构建FIL块和编程文件。
在构建过程中,发生以下操作:
在新模型中生成名为Viterbi_Block的FIL块。
在新模型生成之后,FIL向导将打开一个命令窗口,其中FPGA设计软件执行合成,映射,路由,时序分析和FPGA编程文件生成。对于此块,这些步骤需要大约20分钟。
当FPGA设计软件流程完成后,命令窗口中的消息允许您知道您可以关闭窗口。
一种。打开hdlcoderviterbi_for_fil.mdl.
湾复制到以前生成的FIL块,并将其与viterbi_block并行或代替。请注意,原始块具有右侧的输入。要使FIL块在右侧有其输入,请右键单击该块,然后选择格式>翻转块。
一种。双击模型中的FIL块以打开块掩码。
湾点击加载。
C。点击好的关闭块掩码。
运行模拟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 - 循环示例的加速通信系统仿真。