FPGA Design and Codesign

FPGA and ASIC Design with HDL Coder and HDL Verifier

For FPGA and ASIC designs, you can use HDL Coder™ and HDL Verifier™ to specify and explore functional behavior, generate HDL code for implementation, and continuously test and verify your design through cosimulation with HDL simulators or FPGA-in-the-loop.

The Simulink Library Browser.

Generate HDL Code from MATLAB and Simulink

You can generate synthesizable HDL code for FPGA and ASIC implementations in a few steps:

  • Model your algorithm, including finite-state machines and datapath elements, using MATLAB® and Simulink®.
  • Optimize models to meet speed-area-power objectives for FPGA or ASIC design using methods such as resource sharing (folding) and distributed pipelining.
  • Generate HDL code using HDL Coder.
  • Prototype on FPGAs and automate HDL verification using HDL Verifier.

Generate HDL Code from MATLAB

Using HDL Coder, you can automatically convert MATLAB code from floating point to fixed point and generate synthesizable VHDL and Verilog code. With this capability, you can model your algorithm at a high level using MATLAB constructs and System objects while utilizing options for optimizing generated HDL code. You can use the library of ready-to-use logic elements, such as counters and timers, which are written in MATLAB.

Generate HDL Code from Simulink

You can use HDL Coder to generate VHDL and Verilog code from Simulink and Stateflow®. With Simulink, you can model your algorithm using a library of more than 200 blocks. This library provides complex functions, such as the Viterbi decoder, FFT, CIC filters, and FIR filters, for modeling signal processing and communications systems and generating HDL code.

Prototype on FPGAs

Using HDL Coder, you can program FPGAs, including devices from Altera®, Xilinx®, and other FPGA vendors. This capability helps you quickly prototype your design on FPGA hardware. The Workflow Advisor in HDL Coder integrates with Xilinx ISE® and Altera Quartus® II design suites to automatically program your FPGAs from within MATLAB and Simulink.

You can use HDL Coder to prototype your algorithm on a variety of Xilinx and Altera FPGA development boards. Additionally, you can use target-independent HDL code to program FPGA devices from vendors like Actel® or Lattice Semiconductor®.

Automate HDL Verification

You can reuse your MATLAB and Simulink testbench to verify your HDL code using cosimulation and FPGA-in-the-loop functionality provided by HDL Verifier.

When used with HDL Verifier, HDL Coder automatically generates cosimulation and FPGA-in-the-loop models to accelerate the workflow for FPGA or ASIC design verification. This approach eliminates the need to manually transfer test vectors and helps identify errors earlier in the ASIC design process.