使用 MATLAB 进行 FPGA 原型设计

使用 MATLAB 和 Simulink 进行原型开发、部署和调试

无论您是否拥有深厚的 FPGA 设计经验,都可以在基于 FPGA 的硬件上设计算法原型。

借助 MATLAB 和 Simulink,您可以:

  • 使用经过验证的 IP 模块和子系统构建即可部署到硬件的设计
  • 仿真系统级硬件行为,以在部署到 FPGA 之前消除 Bug
  • 生成可部署到任何 FPGA 或 SoC 器件的 HDL 和 C 代码
  • 自动部署到赛灵思 (AMD®) 和英特尔 (Intel®) FPGA 以及 SoC 板及套件
  • 探测并捕获硬件上运行的信号

“我们在自己的领域有丰富的经验,但在 FPGA 集成方面经验很少。Simulink 和 HDL Coder 使我们能够专注于为产品设计智能算法,而不用操心如何在特定 FPGA 上运行这些算法。”

Boris Van Amerongen, Orolia

无线应用

您可以在设计中逐步添加实时硬件元素,无论是使用实时无线 (OTA) 输入/输出对算法进行仿真,还是在 FPGA 或 SoC 软件无线电平台或自定义板上进行完整部署。

Wireless HDL Toolbox 提供经硬件验证的无线设计 IP 模块和子系统,帮助您快速上手。IP 包含若干示例,演示如何将 MATLAB 中的算法设计逐步转化为 Simulink 中的无线系统实现模型。所有 IP 都经过定点量化,因此,您可以使用 Fixed-Point Designer™ 管理您添加的自定义逻辑的量化,然后再使用 HDL Coder 进行部署。

先进行系统级设计和仿真,然后逐步添加真实硬件元素,直到实现完整部署,以用于现场测试。


电机和电力电子控制应用

将电机和电力电子控制算法部署到 FPGA 硬件,并使用 FPGA 加速器(例如 Speedgoat I/O 模块)对硬件在环被控对象模型进行加速。

电机和电力电子控制应用

您可以研究基于 FPGA 的硬件上所运行的控制算法的性能,或者使用基于 FPGA 的硬件在环对被控对象模型进行加速。HDL Coder 广泛支持数学及三角函数的定点或本机浮点 (9:19) HDL 代码生成,让您能够从 Simulink 模型直达硬件。

如果您正在研究如何进行算法分区以用于 SoC 部署,您可以搜索和仿真分区策略以评估性能,之后再部署到原型平台。您可以部署到预配置套件Speedgoat 硬件 (7:53)或您的自定义板


视频和图像处理应用

将基于 FPGA 的平台连接到 MATLAB 和 Simulink 后,您可以为平台上运行的算法自动生成 HDL 和 C 代码,以进行视觉算法原型设计。同样,您可以使用经硬件验证的视觉处理模块构建实现模型,以仿真硬件行为,例如像素流、基于近邻的算法、外部内存访问以及控制信号。

您可以将模型部署到带摄像头的现成 FPGA 评估套件。或者,如果您的硬件团队可以为平台提供支持,您也可以直接从 MATLAB 和 Simulink 部署原型。

视频和图像处理应用

FPGA 原型板上运行的去雾算法。


直接从 MATLAB 对原型硬件运行基于 FPGA 的深度学习推断,随后生成深度学习 HDL IP 核,以在任意 FPGA 或 ASIC 上进行部署。

深度学习推断

只需几条 MATLAB 命令,即可在 FPGA 和 SoC 板上设计网络原型以加速深度学习推断。随后,您可以分析 FPGA 推断的性能、调整网络、量化为定点、重新部署,从而在 MATLAB 内进行网络迭代。最终,您可以生成不依赖于特定目标的 HDL IP 核,交给硬件团队进行实现。


FPGA 原型调试

将 FPGA 原型与真实输入相结合,有助于发现早期仿真中未能发现和修复的 Bug。您可以向 FPGA 或 SoC 原型中插入逻辑,从而可以使用 MATLAB 命令,交互式地对 AXI 可访问寄存器进行数据读写,或者从 FPGA 结构内部测试点捕获数据。

如果您希望使用 MATLAB 或 Simulink 测试平台运行 FPGA 原型,则 FPGA 在环可以自动化设置并管理仿真接口,以向 FPGA 发送数据并将其读回测试平台。

这些方法支持多种赛灵思英特尔以及 Microsemi 出品的开箱即用板,您也可以定义使用自定义板进行 FPGA 在环验证 (2:16)

自动插入逻辑,以在 MATLAB 中对 FPGA 原型进行调试和交互。