Quartus® Prime Pro Edition User Guide: Third-party Simulation

ID 683870
Date 9/30/2024
Public
Document Table of Contents

1.3.4. Understanding Elaboration

Simulator elaboration is analogous to the linking step in C/C++ programming that produces an executable binary file.

You can run elaboration with a single command that accepts the following inputs and generates an executable model for the top-level testbench module name:

  • An ordered list of logical library names. You can specify the ordered list of logical library names either explicitly on the elaboration command line, or by ordering them in the library mapping file. If reading from the library mapping file, the simulator uses the order of logical libraries in the library mapping file.
  • (Optional) Elaboration options.
  • Top-level testbench module name.
  • (Optional) The name of the logical library containing the top-level testbench module definition. If omitted, the top-level testbench module defaults to the work library.

The elaboration command does not read any HDL files. The elaboration command only reads the library directories containing the module definitions.

An important part of elaboration is to find the module definitions for all the module instances in the top-level testbench module hierarchy. This identification is described as binding the module instances to their module definitions, or linking the module instances to their module definitions. Understanding the binding process during elaboration is important when debugging common elaboration errors, as Elaboration Binding Phase describes.