Questa* Intel® FPGA Edition Simulation User Guide

ID 730191
Date 4/01/2024
Public
Document Table of Contents

3.8.3. Step 1: Generate Gate-Level Netlists for Simulation

The Quartus® Prime EDA Netlist Writer (quartus_eda on the command line) allows you to write gate-level (technology mapped) netlists for simulation and other applications.12

The EDA netlist writer can generate a Verilog Netlist (.vo file) or a VHDL Netlist (.vho file) for the following types of design ports:

  • Single-bit signal types
  • One-dimensional arrays
  • Two-dimensional arrays

The EDA Netlist Writer does not support complex data types, such as enums, stucts, unions, or interfaces, at the external boundary of the design or the design partition.

To the run the EDA Netlist Writer GUI to generate a gate-level netlist for simulation:

  1. In the Quartus® Prime software, click Assignments > Settings > EDA Tool Settings to specify generation options for the Questa* Intel® FPGA Edition simulator.
    Figure 16. Specifying EDA Netlist Writer Settings for Questa* Intel® FPGA Edition


  2. To compile your design to the desired stage, perform one of the following:
    • To generate the post-synthesis netlist for simulation, double-click Analysis & Synthesis on the Compilation Dashboard
    • To generate the post-fit netlist for simulation, double-click Fitter on the Compilation Dashboard.
    Figure 17. Compiler Stages in Compilation Dashboard


  3. To start EDA Netlist Writer, click EDA Netlist Writer on the Compilation Dashboard. The EDA Netlist Writer generates the netlist, according to your specifications from step 1.
    Figure 18. EDA Netlist Writer Command in Compilation Dashboard


Alternatively, you can start the EDA Netlist Writer by running the quartus_eda command in a shell, with a set of command-line options that specify the type of netlist to produce. To view all the command line options related to simulation, run quartus_eda –-help=simulation.

Table 18.   quartus_eda Command Options
quartus_eda Options Option Description
--simulation

Specifies generation of a Verilog (.vo) or VHDL (.vho) gate-level simulation netlist.13

--tool Specifies the supported simulator that reads the netlist. Supported options are:
  • modelsim, questa_oem, vcs, vcs_mx, xcelium, rivierapro, activehdl, verilogxl.
--format Specifies the supported language format of the simulation output gate-level netlist. Supported options are verilog or vhdl.
--resynthesis Specifies that quartus_eda creates a Verilog Quartus Map (.vqm) netlist. The software can resynthesize the netlist as an RTL input, from the gate-level netlist. Only use this option with partitions containing core logic only, not periphery. The sub-option is a flag only and takes no arguments.
--partition Specifies an individual partition by name for netlist output. For no partition argument, the entire design writes out to a single file. The partition argument takes the name of a partition in the design. You can use the --partition option with the --simulation (.vo, .vho) and --resynthesis (.vqm) output.
--exclude_sub_partitions

Flag that limits the output to the netlist for the partition you specify. This flag is only valid with the --partition option. The software instantiates subpartitions as module instances in the netlist. The sub-option is a flag only and takes no arguments.

You can specify the root_partition as the partition name in the --partition option to get the top level partition, which is useful when using the --exclude_sub_partitions flag.

--module_name

Renames a partition in the output netlist file. By default, the software uses the partition name as the module name in the netlist file. This option is only valid when you use the --partition option. You can rename any module using --module_name=abc=xyz.

The output netlist file name format is: <revision>.<partition name>.<vo or vho>. By default, the Quartus® Prime software writes the netlist file to the simulation directory (for example, simulation/questa), unless you specify an output_directory (using a command line option or .qsf assignment).

12 Gate-level simulation can be slower and harder to debug for larger designs and therefore may not be suitable as the primary means of validation.
13 This option overrides any Quartus® Prime Settings File (.qsf) setting.