Start for free Book a free session

Not every red test is a bug.
Find out which before you open the waveform

A missing factory registration, a library the project never mapped, a config_db key that does not match, a protected type the configured VHDL version rejects. None of these are design failures and all of them cost the same debug hours. Sigasi builds one model of your configured project, testbench included, and answers them as you are writing the testbench.

Sigasi Visual HDL analyzing a mixed-language project in VS Code, with project hierarchy, diagnostics and a UVM diagram

UVM · UVVM · OSVVM · VUnit · cocotb · SystemVerilog, Verilog, VHDL and mixed-language testbenches · Analyzed locally, on your own machine

What changes in your day

Triage.

Tell a design failure from an environment or configuration failure before you open a waveform.

Libraries.

UVM, UVVM, and OSVVM are included in Sigasi. Simply choose the correct version.

Topology.

The UVM component hierarchy and diagram help you keep an overview of your testbench.

Navigation.

Jump from a sequence to its item and from a port to its declaration, across SystemVerilog and VHDL.

Control.

Your coding agent gets the real environment and its answers are checked. You decide what moves downstream.

Most of what reaches you is not a design bug

The test failed. The design is fine.

SYSTEMVERILOG
class axi_driver extends uvm_driver #(axi_item);
	// `uvm_component_utils(axi_driver)

	function new(string name, uvm_component parent);
		super.new(name, parent);
	endfunction
endclass

The class compiles yet the factory has never heard of your axi_driver, so the override in your test does nothing. The failure shows up far from the root cause.

UVM-specific checks catch the registration while as the problem manifests, rather than leaving you in charge of finding the root cause of a symptom.

A missing library is not a code defect

VHDL
library uvvm_util;
context uvvm_util.uvvm_util_context;

library bitvis_vip_axistream;
use bitvis_vip_axistream.vvc_methods_pkg.all;

These lines are perfectly fine, unless the VIP simply is not mapped in the project you are compiling. The simulator will give up and leave you searching the logs to figure out this mistake. Sigasi connects libraries to source references, immediately surfacing misconfigurations.

The language version is a project setting

VHDL
library osvvm;
context osvvm.OsvvmContext;

architecture tb of axi_tb is
	shared variable Cov : CovPType;   -- protected type
begin

Whether that line is legal depends on the VHDL version the project is configured for. This isn’t visible in the file itself. OSVVM’s coverage and alert types are protected types, and a project still on an older revision is rejected by compilers and simulators. A tool that does not know your project settings cannot answer this. One that does will tell you which VHDL version supports the construct and help you migrate to it.

config_db is a string API

SYSTEMVERILOG
// env
uvm_config_db #(virtual axi_if)::set(this, "agent*", "vif", vif);

// driver
if (!uvm_config_db #(virtual axi_if)::get(this, "", "axi_vif", vif))
	`uvm_fatal("NOVIF", "virtual interface not set")

Two string literals that do not match, cause a fatal error at simulation time zero without a compilation error in sight.

  • ➊ The set and the get are in different files, often written by different people.
  • ➋ The only thing that connects them is a string, and nothing checks strings.

Across the boundary

SYSTEMVERILOG
// SystemVerilog testbench, VHDL design unit in library work
dut_core u_dut (
	.clk    (clk),
	.rst_n  (rst_n),
	.wr_en  (axi_vif.wr_en),
	.wdata  (axi_vif.wdata),
	.status (status)   // VHDL declares 12 bits
);

A UVM environment on top of a VHDL design isn’t some exotic use case. Yet support for mixed languages is lackluster. Sigasi’s mixed language project model blurs the separation so the port is checked against the VHDL declaration catching mistakes as they emerge.

What a coding agent is missing

An agent will write you a sequence, a scoreboard or a whole agent quickly. It does not know your library mappings, your compile order, which VIP this project actually uses, or the language revision you are on, because none of that is in the file it is reading.

Give it the project through MCP or the command line and what it proposes is checked against the real environment by the same engine you use, rather than graded by the model that wrote it. You still review it. Sigasi does not generate RTL or testbench code, and it does not decide.

Where your code goes

Analysis runs locally, on your machine or inside your own network. Project files are not sent to Sigasi servers for semantic analysis. Telemetry is optional on a commercial license and does not transmit source code.

What it does not do

It does not replace your simulator, formal tools, coverage analysis or sign-off, and it does not catch everything. Sigasi runs the most important checks before code ever reaches compilation or simulation.

Run it on your own environment

A demo says more than a thousand words. Ask for a trial and point Sigasi at a real testbench, with your VIP, your library mappings and your compile order. A field application engineer will be ready to set up with you at no charge during the trial.

Request a trial, or book a session on your own environment.

One project model across every stage and every role

Sigasi parses the full project, not the open file: hierarchy, types, scopes, dependencies, interfaces and references across SystemVerilog, Verilog and VHDL. That shared model is what lets an engineer, a reviewer, a coding agent and your CI ask the same question and get the same answer.

  • Project-aware diagnostics while a change is still cheap to make
  • Block and state machine diagrams generated from the code, so a block you did not write can be read, not just inherited
  • The same project model applied to testbenches and verification code
  • Command-line analysis in CI, with configurable failure thresholds your pipeline can act on
  • Shared coding rules applied consistently across teams
Explore all features

Run it on your own testbench

With your VIP, your library mappings, your compile order and the VHDL revision you are actually on. A field application engineer will set it up with you at no charge during the trial, and it is worth doing with the design engineers at the same time.

Sigasi Visual HDL analyzing a mixed-language project in VS Code