Contact us Start a Trial

Importing Third-Party Projects

If you already have a third-party project for your design, you can easily start working with it in Sigasi by utilizing the import functionality that is available in the new Sigasi Project format.

In order to import a third-party project, you’ll need to add a scripted target to your project.sigasi file. You then configure the scripted target to use the built-in TCL interpreter and invoke one of the built-in TCL import procedures, specifying information about your project, e.g., the path to a project file. This allows Sigasi to extract and execute compilation scripts that are intended for simulators, intercept compiler invocations, and derive the project structure from them.

Importing Vivado projects

Importing a Vivado project can be done with the import_vivado procedure. It requires the path to the Vivado project file. Running this procedure will open the specified project in Vivado to generate and export simulation commands. Sigasi then runs these commands, intercepts compiler invocations (so no actual compilation is performed), and derives the project structure from these.

By default, the Vivado installation that is specified by the XILINX_VIVADO environment variable will be used. If there is no such environment variable, Sigasi will try to use the vivado binary from the system PATH. You can also explicitly specify the installation path of Vivado that you want to use in an argument to import_vivado procedure.

These are all the supported options of the import_vivado procedure:

OptionDescription
-vivado <path>Path to the installation directory of the Vivado (optional)
<project>Path to a Vivado project to import (required)

Caveats

  • Exporting the Vivado simulation commands can modify the Vivado project file, so disabling auto-refresh is necessary to avoid refresh loops.

Example

{
  "name": "vivado_project_example",
  "targets": {
    "rtl": {
      "interpreter": "tcl",
      "command": "import_vivado -vivado /tools/Xilinx/2025.1/Vivado {path/to/vivado project.xpr}",
      "autoRefresh": false
    }
  }
}

Notes

  • When you use the tcl command interpreter in a scripted target, you have to use TCL argument escaping, e.g., {} around paths that contain spaces.
  • You can still use environment variables in scripted target commands. Sigasi will substitute their values before passing the command to the TCL interpreter, e.g.: "command": "import_vivado -vivado $MY_VIVADO project.xpr". TCL escaping must be used if the environment variable values might contain spaces: "command": "import_vivado -vivado {$MY_VIVADO} project.xpr".

Importing VUnit projects

Importing a VUnit project can be done with the import_vunit procedure. It requires the path to the VUnit script (run.py). The procedure runs a full clean compilation as defined by the VUnit script. Sigasi intercepts the compiler invocations so no actual compilation is performed, and subsequently derives the project structure from them.

By default, the system Python is used to run the VUnit script. If you manage your Python dependencies and VUnit installation within a Python virtual environment , you also have to specify the path to the virtual environment with a -venv option. This works for standard environments created with venv and also for environments created with modern alternatives like uv . Alternatively, you can specify the Python binary to use directly by the -python option.

These are all the supported options of the import_vunit procedure:

OptionDescription
-venv <path>Path to the Python virtual environment to use (optional)
-python <path>Path to the Python binary to use (optional)
<run.py>Path to the VUnit script (optional), if not specified, run.py in the project root directory is used.

Example

{
  "name": "vunit_project_example",
  "targets": {
    "rtl": {
      "interpreter": "tcl",
      "command": "import_vunit -venv {$MY_VENV}"
    }
  }
}

You may also want to configure the VSCode VUnit Integration to see and manage your tests directly within the IDE.

More detailed information about the VUnit project configuration can be found in a separate tech article on Setting up VUnit with Sigasi Projects.

Importing other project definitions

If you need to import a project format that natively isn’t supported by Sigasi yet, you can add custom import functions to make them available in scripted target commands.