Contact us Start a Trial

Creating Modular Projects

To create a new, empty, Modular Project, use the Create or Open Project… button in the Projects View.

A file browser opens, in which you can create an empty directory and select it, or select a folder containing an existing code base to import into Sigasi.

Regardless of the contents of the selected folder, Sigasi will create a project.sigasi in the folder and open it for you. It should contain JSON contents similar to these:

JSON
{
  "name": "MyProject",
  "targets": {
    "hdl": {
      "libraryMapping": {
        "": []
      }
    }
  }
}

The project name is taken from the name of the chosen directory, and can be changed here. After that, you’ll find the definition of the hdl target. A target comprises a self-contained set of files that are compiled together—you can read more on them in the next section.

This particular target isn’t doing much. It only contains a library mapping, which details how HDL files are assigned to libraries. Library mapping contains a detailed explanation. For now, you might simply want to map your whole project to the work library by replacing "": [] with "": "work" or, if you have a very large project, map everything in a single folder using "path/to/folder": "work" instead. Alternatively, right-click on folders and files in the Projects view to Change Library.

Migration guide

You have aNext step
Classic (Eclipse) projectKeep using it, or manually convert it to Manual targets
Vivado projectUse the built-in Vivado import
VUnit projectUse the built-in VUnit import
VCS projectCheck out Scripted targets
Questa projectCheck out Scripted targets
XCelium projectCheck out Scripted targets
New designStart a Modular project with a single Manual target

Modular projects in version control systems

When using a version control system such as git , you likely want to inform the version control system which project configuration files need to be tracked.

You definitely want to add the project.sigasi file, because that describes to others (even when not using Sigasi) how to build your project. When you’re changing e.g. linting rule configuration, we’ll store those in the .sigasi directory in your project directory, so tracking those will help your colleagues use the same styling rules, etc.

You don’t want to track .sigasi/generated though: this directory contains log files and other debug information on Scripted targets which could contain timestamps etc. The files and directories here change often and contain machine-specific details.