文档

在多核处理器和FPGA上实现FFT

此示例向您展示如何通过图形化划分模型来利用具有FPGA加速的多核处理器目标。这个例子需要Simulink Coder™生万博1manbetx成多线程代码和HDL Coder™生成HDL代码。不能在Macintosh系统上生成HDL代码。

简介

一些现代处理器包括与FPGA组件集成的多核处理器,以创建高性能应用程序。这些需要多核和FPGA编程,包括并行线程编程、HDL编程和系统核心之间的通信接口编程。万博1manbetxSimulink™允许您利用这些方法,通过图形化地对算法进行分区,并将由这些分区生成的软件分配给处理器上的线程和FPGA上的模块。该示例使用一个应用程序级模型生成一个可执行文件,由多个线程和HDL代码组成,以利用FPGA的硬件并行性。如下图所示。

示例模型

加载示例模型:

slexMulticoreFPGAExample

架构定义

此模型的所有并发执行设置都可以在并发执行对话框(配置参数>求解>配置任务)中访问。

实现算法的第一步是定义目标体系结构的结构元素。这包括硬件的结构元素,例如处理节点(CPU、FPGA)和通信通道(AXI、PCI)的数量和类型。

这也包括模型的配置参数中的软件设置(例如,系统目标文件,硬件实现,数据传输设置)。在这个例子中,我们选择了预先配置的目标架构“Sample architecture”。该体系结构使用桌面作为部署过程的替身。

模型的划分和映射

对模型进行分区,以决定哪些函数按顺序运行,哪些函数并发运行。

示例模型被显式地分区,由MATLAB系统块、模型块和一个Outport块组成。显式分区在模型的根级基于这些块创建分区。另一方面,隐式分区根据块采样时间和其他调度约束创建分区。

在对模型进行分区后,可以将分区映射到CPU任务和FPGA节点。您可以通过GUI或API更改映射以探索设计空间。在映射过程中,信号将自动映射到通道。

您可以在“并发执行”对话框中更改块映射到线程和FPGA的方式。你也可以在文档

生成多线程和HDL代码

双击“Generate Code and Profile Report”按钮,生成多线程代码。在本例中,主机将替换目标环境。为映射到处理器任务的块生成C代码。这段代码是使用桌面计算机本机线程组织的。代码片段显示了如何创建线程。此外,还为映射到硬件节点的块生成HDL代码。下面的代码片段说明了如何在VHDL中创建模块/实体。

close_system (“slexMulticoreFPGAExample”, 0);
这个话题有用吗?