Main Content

Test Bench Generation

How Test Bench Generation Works

HDL Coder™ writes the DUT stimulus and reference data from your MATLAB® or Simulink® simulation to data files (.dat).

During HDL simulation, the HDL test bench reads the saved stimulus from the .dat files. The test bench compares the actual DUT output with the expected output, which is also saved in .dat files. After you generate code, the message window displays links to the test bench data files.

Reference data is delayed by one clock cycle in the waveform viewer compared to default test bench generation due to the delay in reading data from files.

Test Bench Data Files

The coder saves stimulus and reference data for each DUT input and output in a separate test bench data file (.dat), with the following exceptions:

  • Two files are generated for the real and imaginary parts of complex data.

  • Constant DUT input data is written to the test bench as constants.

Vector input or output data is saved as a single file.

Test Bench Data Type Limitations

If you have double, single, or enumeration data types at the DUT inputs and outputs, the simulation data is generated as constants in the test bench code, instead of writing the simulation data to files.

Use Constants Instead of File I/O

You can generate test bench stimulus and reference data as constants in the test bench code instead of using file I/O. However, simulating a long running test bench that uses constants requires more memory than a test bench that uses file I/O.

Test bench generation automatically generates data as constants if your DUT inputs or outputs use data types that are not supported for file I/O. For details, see Test Bench Data Type Limitations.

To generate a test bench that uses constants instead of file I/O:

  1. In the HDL Workflow Advisor, select the HDL Verification > Verify with HDL Test Bench task.

  2. In the Test bench Options tab, disable the Use file I/O for test bench option.