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.jsonto 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.
| Property | Type | Description |
|---|---|---|
installationPath | string | An 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. |
precompiledLibraries | string[] | 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)
| Property | Type | Description |
|---|---|---|
modelsimIni | string | Optional path to a custom modelsim.ini file to be used for the compilation. |
vcomArguments | string[] | A list of additional command-line arguments to pass to the vcom VHDL compiler. |
vlogArguments | string[] | A list of additional command-line arguments to pass to the vlog Verilog/SystemVerilog compiler. |
sigasiRivieraCompile (Aldec Riviera-PRO)
| Property | Type | Description |
|---|---|---|
libraryCfg | string | Optional path to a custom library.cfg file to be used for the compilation. |
vcomArguments | string[] | A list of additional command-line arguments to pass to the vcom VHDL compiler. |
vlogArguments | string[] | A list of additional command-line arguments to pass to the vlog Verilog/SystemVerilog compiler. |
sigasiXSimCompile (AMD-Xilinx Vivado XSim)
| Property | Type | Description |
|---|---|---|
xvhdlArguments | string[] | A list of additional command-line arguments to pass to the xvhdl VHDL compiler. |
xvlogArguments | string[] | 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.
| Property | Type | Description |
|---|---|---|
nvcGlobalArguments | string[] | A list of additional global arguments to pass to the nvc compiler. |
nvcAnalysisArguments | string[] | A list of additional arguments to pass to the nvc analysis phase. |