MATLAB for FPGA Prototyping

Develop, deploy, and debug prototypes using MATLAB and Simulink

You can prototype your algorithms on FPGA-based hardware, regardless of how much FPGA design experience you have.

With MATLAB and Simulink, you can:

  • Build a hardware-ready design using proven IP blocks and subsystems
  • Simulate system-level hardware behavior to eliminate bugs before deploying to the FPGA
  • Generate HDL and C code that can target any FPGA or SoC device
  • Automatically deploy to AMD® and Intel® FPGA and SoC boards and kits
  • Probe and capture signals running in hardware

“We have a wealth of experience in our domain but little experience with FPGA integration. Simulink and HDL Coder enabled us to focus on designing intelligent algorithms for our product and not on how to run those algorithms on a specific FPGA.”

Boris Van Amerongen, Safran

Wireless Applications

You can incrementally add live hardware elements to your design, from simulating your algorithm with live over-the-air input/output to full deployment on an FPGA or SoC software-defined radio platform or custom board.

The hardware-proven wireless design IP blocks and subsystems in Wireless HDL Toolbox let you get started quickly. IP includes examples that show you how to incrementally transition from algorithm design using MATLAB to wireless-system implementation models in Simulink. All of the IP has been quantized to fixed-point, and you can then use Fixed-Point Designer to manage quantization of the custom logic that you add before deployment with HDL Coder.

Design and simulate at the system-level, then incrementally add real hardware aspects toward full deployment for field testing.

Motor and Power Electronics Control Applications

Deploy motor and power electronics control algorithms to FPGA hardware and accelerate hardware-in-the-loop plant models on FPGA accelerators such as Speedgoat I/O modules.

Motor and Power Electronics Control Applications

You can explore the performance of control algorithms running on FPGA-based hardware or accelerate plant models with FPGA-based hardware-in-the-loop. With broad HDL code generation support for math and trigonometric functions in fixed-point or native floating point (9:19), HDL Coder provides you with a straightforward path from a Simulink model to hardware.

If you are exploring how to partition your algorithm for SoC deployment, you can search and simulate partitioning strategies to assess performance before deploying to a prototype platform. Then target pre-configured kits, Speedgoat hardware (7:53), or your own custom board.

Video and Image Processing Applications

You can prototype vision algorithms on FPGA-based platforms connected to MATLAB and Simulink by automatically generating HDL and C code. Also, you can use hardware-proven vision processing blocks to build an implementation model to simulate hardware behavior such as pixel streaming, neighborhood-based algorithms, external memory access, and control signals.

Support for deploying your models to off-the-shelf FPGA evaluation kits with cameras is available. Alternatively, your hardware team can build support for your platform so you can deploy prototypes directly from MATLAB and Simulink.

Video and Image Processing Applications

A fog rectification algorithm running on an FPGA prototype board.

Run FPGA-based deep learning inference on prototype hardware directly from MATLAB, then generate a deep learning HDL IP core for deployment on any FPGA or ASIC.

Deep Learning Inference

With just a few MATLAB commands, you can accelerate deep learning inference by prototyping networks on FPGA and SoC boards. Then you can iterate on your network from within MATLAB by analyzing the performance of inferencing on the FPGA, adjusting the network, quantizing to fixed-point, and re-deploying. Finally, you can generate a target-independent HDL IP core to handoff to the hardware team for implementation.

FPGA Prototype Debugging

FPGA prototyping with real-world input helps you discover bugs that were not found and fixed with early simulation. You can insert logic into your FPGA or SoC prototype that lets you use MATLAB commands to interactively read from and write to AXI-accessible registers or to capture data from test points internal to the FPGA fabric.

If you prefer to run your FPGA prototype using your MATLAB or Simulink testbench, FPGA-in-the-loop automates the setup and manages the simulation interface to send data to the FPGA and read it back to your testbench.

These techniques support a variety of boards out-of-the-box with AMD, Intel, and Microsemi devices, or you can define your own Using Custom Boards for FPGA-in-the-Loop Verification (2:16).

Automatically insert logic to debug and interact with your FPGA prototype from MATLAB.