Contact us Start a Trial

External compilers

This feature allows you to continuously check your code against a third-party compiler like Questa, Riviera-PRO, or XSim, without leaving VS Code. It helps you catch tool-specific syntax or semantic issues early in the development cycle, long before you run a full simulation.

Creating the Compiler Task

Follow the general process. The only compiler-specific step is choosing your desired compiler from the list:

  • Questa Compile (Siemens ModelSim/Questa)
  • Riviera Compile (Aldec Riviera-PRO)
  • XSim Compile (AMD-Xilinx Vivado XSim)
  • NVC Compile (NVC, VHDL only)

Advanced Configuration (tasks.json)

You may need to further configure the arguments in tasks.json to match your specific tool setup and command-line options.

Example tasks.json

Here is an example of a tasks.json file with a configured external compiler task:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Compile with Questa (rtl_target)",
            "type": "sigasiQuestaCompile",
            "target": "rtl_target",
            "watch": true,
            "runOptions": {
                "runOn": "folderOpen"
            },

            "installationPath": "/opt/questa_sim/2023.1/bin",
            "precompiledLibraries": [ "unisim", "xpm" ],
            "vlogArguments": [ "-suppress 2223" ]
        }
    ]
}

Common External Compiler Properties

These properties are available for all four external compiler tasks.

PropertyTypeDescription
installationPathstringAn optional, absolute path to the directory containing the compiler’s executables, e.g. /opt/questa/bin. If not provided, the extension will search for the executables in the system’s PATH.
precompiledLibrariesstring[]An optional list of library names that are already compiled in the tool environment and should be skipped during compilation, e.g. ["unisim"].

Compiler-Specific Properties

These properties provide fine-grained control and are unique to each compiler task.

sigasiQuestaCompile (Siemens ModelSim/Questa)
PropertyTypeDescription
modelsimInistringOptional path to a custom modelsim.ini file to be used for the compilation.
vcomArgumentsstring[]A list of additional command-line arguments to pass to the vcom VHDL compiler.
vlogArgumentsstring[]A list of additional command-line arguments to pass to the vlog Verilog/SystemVerilog compiler.
sigasiRivieraCompile (Aldec Riviera-PRO)
PropertyTypeDescription
libraryCfgstringOptional path to a custom library.cfg file to be used for the compilation.
vcomArgumentsstring[]A list of additional command-line arguments to pass to the vcom VHDL compiler.
vlogArgumentsstring[]A list of additional command-line arguments to pass to the vlog Verilog/SystemVerilog compiler.
sigasiXSimCompile (AMD-Xilinx Vivado XSim)
PropertyTypeDescription
xvhdlArgumentsstring[]A list of additional command-line arguments to pass to the xvhdl VHDL compiler.
xvlogArgumentsstring[]A list of additional command-line arguments to pass to the xvlog Verilog/SystemVerilog compiler.
sigasiNvcCompile (NVC)

Note: The NVC task only supports VHDL and will fail if the selected target contains Verilog or SystemVerilog files.

PropertyTypeDescription
nvcGlobalArgumentsstring[]A list of additional global arguments to pass to the nvc  compiler.
nvcAnalysisArgumentsstring[]A list of additional arguments to pass to the nvc  analysis phase.