Skip to content

mathworks/Best-Practice-Guide-for-SystemVerilog-DPI-Component-Generation

Repository files navigation

Best Practice Guide for SystemVerilog DPI Component Generation

HDL Verifier™ facilitates the generation of SystemVerilog DPI and Universal Verification Methodology (UVM) testbench components directly from MATLAB® or Simulink®, bridging the gap between algorithm development and design verification. This guide is tailored to enhance your MATLAB workflow by providing recommended practices for preparing MATLAB designs for SystemVerilog DPI component generation.

In this guide, you will find comprehensive coverage of topics essential for evaluating MATLAB code compatibility with code generation, including:

  • Getting started with code generation
  • Converting scripts to functions
  • Frame/stream modeling
  • Working with vectors and matrices, including variable-sized vectors and matrices
  • Using floating- and fixed-point data types
  • Considerations for constrained randomization
  • Generating UVM components

Setup

In MATLAB release R2023a and earlier, the DPI-C generation feature was installed with HDL Verifier. Beginning with release R2023b, this feature is available through the ASIC Testbench for HDL Verifier add-on. HDL Verifier users can download and install the ASIC Testbench add-on via the MATLAB Add-Ons menu or File Exchange.

MathWorks Products (https://www.mathworks.com)

HDL Verifier introduced support for DPI generation in R2014b. However, this guide is based on R2024a. To perform the examples in this guide, the following MathWorks products are required:

3rd Party Products:

Many commercial HDL simulators support the SystemVerilog DPI interface. However, MathWorks verifies that the generated DPI components are compatible with the following commercial HDL simulators:

For more information on supported HDL simulator versions and configurations, please refer to Supported EDA Tools and Hardware – HDL Verifier.

Examples

The guide includes numerous examples to illustrate key concepts. Use the MATLAB script runme.mlx within each example folder to get started.

License

The license is available in the License.txt file in this GitHub repository.

Community Support

MATLAB Central

Copyright 2024 The MathWorks, Inc.