Setting up a Project

The extension will start once a .project file is detected in the root of the open folder.

The project settings and library mappings are compatible with SiStE . See the Setting Up a Project and Libraries manual pages for all details.

If you’re familiar with Eclipse Resource Filters, note that these are not supported by VS Code and will be ignored if there are any filters in the .project file extension.

For project configuration, open the Project View.

Creating a new, empty project

To create a new project, open the Command Pallet (View > Command Pallet…), execute the command Sigasi: Create New VHDL Project or Sigasi: Create New Verilog Project, choose the project location, then give your project a name.

If you need mixed language support, you can use the two following commands:

  • Sigasi: Add VHDL Support
  • Sigasi: Add Verilog/SystemVerilog Support

Library configuration

To change library mappings, you can use the right-click menu in the Project View and select Set Library as shown in the image below.

Then you can select an existing library or choose New Library… to type a new library name. Once you type a new library name, the file/folder you selected will be added to the library you created. If you want to add a file/folder to an existing library, you can choose one of the existing ones from the list (such as work).

If you want to exclude files/folders from a Sigasi project, select Exclude from Build. When you do this, that file or folder (along with its contents) will no longer be used in your project. Note that the excluded resource(s) will still be visible in the Project View and you can still add them (Set Library) to the project.

Creating new libraries, adding a file/folder to an existing library, or excluding files/folders from build will modify the .library_mapping.xml file in your project.

VHDL and Verilog Version

To change the VHDL or Verilog version, you can right-click on a project, folder, or file in the Sigasi Project View and click Set Language Version. Then select whether you want to set the VHDL or Verilog version. If you only see one of the two, you might need to add language support. Finally, select the version you want.

Language Support

To add or remove language support, you can right-click on a project from the Sigasi Project View, click Configure, and Add/Remove VHDL or Verilog/SystemVerilog Support. This will enable or disable language preferences among others.


To add a new project to your workspace, press File > Add Folder To Workspace. Make sure the project you’re adding has a valid .project file.

Linked Resources

Linked resources are a convenient way to link to a file/folder in the Sigasi eco-system. It works without having to create symlinks or copy the actual content.

To add a linked resource, you can right-click on the node where you want to add it, then click Add Linked File/Add Linked Folder. A file open dialog will pop-up and you can select the file(s)/folder(s) you want to link.

Environment Variables

Sigasi Studio supports environment variables in its project configuration. This helps to avoid absolute paths in the .project file.

To use environment variables, you have to prefix the environment variable with ENV-. For example: to refer to the home directory you can use ENV-HOME.

Custom Project Variables

Some variables are automatically defined.

  • PROJECT_LOC with the PATH of your project
  • PARENT-<COUNT>-<VARIABLE> which points to COUNT levels above the PATH of the VARIABLE

For example, if your project lives in /design/projects/project1, then PARENT-2-PROJECT_LOC/companylibrary points to /design/companylibrary.

You can also use custom project variables, e.g. VUNIT to point at your VUnit installation. You can configure these variables as follows:

  • Press Ctrl+Shift+P to open the Command Palette
  • Select Preferences: Open Settings (UI)
  • In the Setting tab, navigate to Extensions > Sigasi > General > Custom Project Variables
  • Add variables and their values as required

Note that custom project variables can be set on the User level, and also per Remote or for a specific Workspace.