Sigasi HDT supports a number of ways to integrate external tools, with varying degrees of automation. The simplest case is to add a menu item to start an external tool from within Sigasi HDT. This is done by creating an external tool configuration. You can also arrange for an external tool to be run automatically when a Sigasi HDT project is rebuilt. This is done by creating a builder. Finally, Sigasi HDT supports automatic Makefile generation for completely automating the integration.
Select Run ‣ External tools ‣ External Tools Configurations to get started,
or use the
-icon.
To create a new configuration, first select
Program, then click
.
Enter all necessary information to start your external tool:
You can test your tool configuration with the Run button.
The following example screenshot shows how to set up configuration to run a simulate.sh script from within HDT.
The following example screenshot shows how to set up a configuration to run make clean on a Linux machine.
To run the external tool just select the configuration from the
dropdown menu (black triangle) on the
-icon. You can
rerun the last configuration by simply clicking
.
An external tool configuration as described in the previous section makes it easy to run an external tool, but you still have to do so explicitly. For some programs, such as the make utility, it makes sense instead to do this automatically upon a change in your project. This functionality can be accomplished by a builder. We will show how to create a builder for a Modelsim Makefile as an example.
To create a builder, right-click your project and select Properties ‣ Builders.
Click New... and the builder configuration window will pop up:
You will be asked to select a configuration type:
select
Program.
Next, configure the builder in a configuration window pop up window:
With the default settings the ModelSim Makefile will only be run during a manual build or after a “Clean”. To make sure Sigasi HDT runs make every time you save a change to a file, click the Build Options tab and check the During auto builds checkbox.
After configuration, the new builder will appear in the builder list.
When you close the builder configuration dialog windows, the new builder will automatically be run. In our example of a Modelsim Makefile, Modelsim’s messages will appear in the console view.
For the specific case of Modelsim, warnings and error messages in the console are made clickable. When you click a message, the corresponding location will automatically be opened in the Editor view.
You can add as many extra builders as you want. This can be useful for additional linting tools or code generators.
With a builder as described in the previous section, a program such as make can run automatically whenever your project changes. However, when you make a significant change to your project, the makefile itself may become obsolete and require nontrivial changes. To solve this problem, Sigasi HDT can automatically create and update a makefile for you.
Sigasi HDT can generate makefiles for a number of targets, including Modelsim vsim, Xilinx Isim, and ghdl.
For example, to set up makefile generation for ModelSim, first verify that the ModelSim commands vcom and vlib are on your system path. Right-click on your project in the Project Explorer and select Properties. Makefile generation can be configured in the Makefiles category. Enable Mentor Modelsim (vsim) and confirm with Apply.
The makefile is generated when you perform a full rebuild of your project. Click Project ‣ Rebuild project to force this build. The Makefile.vsim should appear in the Project Explorer now.
In addition to the concrete targets, Sigasi HDT supports a generic csv target. This generates a file with a list of comma-separated design file information in the correct compile order. The file is automatically updated every time you perform a full build. You can use this file to write custom interface programs that extract the information and drive other EDA tools. With the csv target, you can optionally choose to include the files from external libraries.