A technical knowledge portal by eVision Systems GmbH

EDA Praxis / Application notes

Using Sigasi with AI agents: Analyze HDL in project context

A complete project-analysis workflow with Sigasi CLI, a bounded agent task and an original downloadable VHDL example.

Goal: Let an agent explain findings instead of guessing project context

An AI agent can replace an unknown VHDL identifier with a plausible name very quickly. Whether that name exists in the correct package, belongs to the intended library and is visible in the selected target must come from the project. This application note therefore connects one small, inspectable change to a repeatable analysis step. Sigasi supplies language and project information; the agent examines files and proposes a correction. A separately recorded tool run determines whether analysis completed without findings at the chosen severity threshold.

The exercise uses our own two-file project with an intentionally misspelled constant. It needs neither customer IP nor an FPGA board. Its value lies in the working method: establish the file set, read the diagnostic, locate an existing declaration, limit the change and check again. This provides a basis for larger tasks without confusing successful name resolution with correct hardware behavior.

Documentation scope, prerequisites and access routes

Sources were checked on 19 October 2026. Sigasi’s release directory lists the 2026.4 generation, including 2026.4.1. No Sigasi version was executed here. The earlier Sigasi AI Chat/SAL feature was removed in 2026.2 according to its manual; historical SAL setup instructions therefore do not describe this workflow. Sigasi release notes; Sigasi AI Chat: historical feature status.

For the embedded CLI, Sigasi documents use of the Enterprise licence inside the VS Code terminal. The standalone CLI requires Enterprise (CI); an ordinary Enterprise extension licence is insufficient for that route. Check the actual deployment model before running it. An agent account does not replace the required EDA tool entitlement. Sigasi CLI in Sigasi Visual HDL; Sigasi CLI.

  • A locally usable Sigasi Visual HDL installation with the appropriate licence and a fully loaded project.
  • Python 3 for the supplied wrapper; no additional Python packages are required.
  • An agent intentionally granted access to this example directory and the intended terminal.
  • An identifiable working state: a copy of the example or version control, without unrelated unsaved changes.

Codex CLI can edit local files and invoke installed programs. This note uses that shell route and does not assume a direct Sigasi-to-Codex MCP connection. Sigasi’s MCP manual names GitHub Copilot in VS Code and VS Code derivatives such as Cursor; that does not establish automatic compatibility with every agent. Codex CLI; Sigasi MCP server.

Step 1: Prepare the complete miniature project

Download the Sigasi agent miniature project and extract it into its own directory. Read requirements.md and AGENTS.md first. Both belong to the exercise: the former defines behavior, while the latter limits changes and demands real tool results. The reference file is available for comparison afterwards and is deliberately outside the analyzed RTL target.

ai-sigasi/
  project.sigasi
  requirements.md
  AGENTS.md
  rtl/design_config.vhd
  rtl/event_counter.vhd
  reference/event_counter.fixed.vhd
  run_analysis.py
  test_wrapper.py
  TEST_RESULTS.json
  README.md

The counter is four bits wide. On a rising clock edge, synchronous active-high reset has priority; otherwise, an asserted enable increases the value by the existing step constant. Without enable, the value is held. Overflow is intended to wrap modulo 16. These requirements belong to our example and make no statement about a vendor design. Correcting the identifier must not alter them.

The design_config package contains COUNT_WIDTH and INCREMENT_STEP. The counter already imports that package but uses INCREMENT_STPE in one expression. The agent should therefore locate the existing declaration first. Introducing an additional local constant would merely hide the spelling error and bypass the central configuration.

{
  "name": "eda_ai_sigasi",
  "targets": {
    "rtl": {
      "libraryMapping": {
        "rtl": "work"
      },
      "languageMapping": {
        "vhdlVersion": "vhdl-2008"
      }
    }
  }
}

The project description selects VHDL-2008 and maps only rtl into the work library. Sigasi documents these manual target mappings. After opening the project, verify that both RTL files actually belong to the target. A clean report covering the wrong files, or an empty file set, would be useless for this task. Sigasi modular project description.

Step 2: Make the tool and initial state observable

Open the terminal in which the agent will work. Check the version and help output of the executable actually resolved there. The documented entry point is sigasi-cli.bat on Windows and sigasi-cli on Linux. If the embedded CLI is unavailable after installation or an update, Sigasi describes relaunching the terminal. Do not invent an installation path. Sigasi CLI; Sigasi CLI in Sigasi Visual HDL.

sigasi-cli.bat --version
sigasi-cli.bat --help
python test_wrapper.py
python run_analysis.py

The first two commands show the Windows variant; omit .bat on Linux. Run every Python command from the extracted project directory. If necessary, pass the real full executable path to the wrapper with --cli. Record the version, target and existing changes before involving the agent. An agent must not turn a missing command into a statement that the analysis is probably clean.

The verify invocation uses JSON and --fail-on-warning: Sigasi documents exit 16 for reached finding thresholds and exit 7 for missing licence entitlement. Our wrapper translates these process values into its own result states. Sigasi CLI.

sigasi-cli.bat verify --target=rtl --json --fail-on-warning --out=diagnostics.json .

The direct command illustrates the underlying interface. Use the wrapper for the actual exercise: it creates a new subdirectory under build for each run. An old report therefore cannot accidentally stand in for a failed new execution. Standard output, standard error, command and process status remain associated with that run. Give the agent the current run’s evidence, rather than any file whose name happens to match.

One change, one fresh report, the same rules
  1. Target and sources

    rtl → work; VHDL-2008. Keep the analyzed file set identifiable.

  2. Sigasi CLI

    Run verify with a warning threshold; record the real process exit status.

  3. Fresh JSON report

    Check project, findings and run identity; do not reuse an old result file.

  4. Bounded agent change

    Find the declaration, correct only the permitted RTL section and show the diff.

Then return to 01: repeat the same analysis. Requirements, target and thresholds stay unchanged.

Stop path

Missing tool or licence, timeout, unreadable report: report a blocked run. No positive analysis result without an assessable current execution.

Workflow of the original CLI example. Sigasi integration is documentation-based; this does not depict a directly tested Codex MCP connection.

Step 3: Turn a diagnostic into a bounded agent task

A diagnostic about an unresolved name is expected from the deliberately faulty source. The exact Sigasi wording was not measured here. Require the agent to examine the actual message and imported packages. A useful explanation identifies the declaration it found, the containing file and its relationship to the affected expression. That is stronger evidence than the visual similarity of two words.

Read requirements.md, AGENTS.md and project.sigasi first.
Run python run_analysis.py and inspect this run's real diagnostics.
Find the existing declaration for the unresolved identifier.
Change only rtl/event_counter.vhd; preserve behavior and interfaces.
Do not edit requirements, thresholds, project mappings or reference files.
Run the same analysis again. Report the exact command, exit status,
changed lines and remaining findings. Stop if the tool or license is unavailable.
Do not claim simulation, synthesis or timing verification.

This original task instruction is deliberately narrower than “fix the project.” It cannot prevent every mistake, but it makes deviations visible. The agent should describe the existing state before editing; afterwards, compare the diff with its stated intent. Replacing one identifier is sufficient for this example. Changes to reset priority, data types, width or port names would be additional tasks requiring separate justification.

-- Before: deliberately incorrect identifier
value <= value + INCREMENT_STPE;
-- After: use the package constant already present in the project
value <= value + INCREMENT_STEP;

Repeat exactly the same analysis afterwards. Do not add a suppression for the original finding or lower the warning threshold. If the correction exposes further messages, preserve them in the result. The agent should explain their cause or finish with an outstanding finding; it should not keep altering the acceptance criteria until a green indicator appears.

Step 4: Interpret results unambiguously

Wrapper resultMeaning in this workflow
analysis_passed, exit 0A readable report for the expected project contains no errors or warnings.
findings, exit 1The selected threshold was reached or the report contains corresponding findings.
blocked_*, exit 2The tool, licence, runtime or report prevents a reliable analysis assessment.

The wrapper is our own conservative integration aid. It checks the project name, issue list and recognized severity values. An unrelated JSON document, a truncated report or an unexpected format causes a blocked result. These checks do not cover the complete vendor schema. Before adopting a new CLI version in automation, compare its real output with a small controlled run.

The built-in timeout is 120 seconds for the launched process. It is not general process-tree isolation and does not replace CI job boundaries. The actual Windows batch integration has not been executed without an installed Sigasi environment either. If a vendor subprocess remains running, the operating environment must handle its cleanup. Report that situation as a blocked run and preserve whatever diagnostic evidence is available.

MCP as another interface; data sharing as a separate decision

The documented Sigasi MCP tools include diagnostics, file context and symbol search. A configured, loaded project is required. In a supported editor, this can reduce manual report transfer. Still verify that the agent really called the tool and identify the project state behind its response. Visible tool registration alone does not prove that an analysis request succeeded. Sigasi MCP server.

Keep the local analysis process separate from the language model in your data-flow assessment. Locally generated findings may subsequently be sent to an external model provider together with source code. Decide which files and diagnostic excerpts may be shared before use. Our example, the affected line and the small package are enough for a first attempt. Libraries containing confidential IP, credentials and unrelated project directories are not automatically part of the context. A local editor alone does not demonstrate an entirely local AI workflow.

What was actually checked, and what remains

Vendor tool testing remains outstanding. Sigasi integration and agent MCP use are documentation-based. Separate checks on Windows with Python 3.12.14 covered thirteen synthetic wrapper cases, the missing-executable path and the JSON project structure. GHDL 6.0.0 rejected the deliberate identifier error with exit code 1 and analyzed the corrected reference with exit code 0. Complete results are in TEST_RESULTS.json. Its synthetic reports are explicitly not Sigasi output.

This download was not simulated, synthesized or checked on hardware. Successful GHDL analysis establishes only the name-resolution and analyzability point examined here. Behavior needs an independent testbench covering reset, enable, holding and overflow. The AI VHDL simulation application note covers that next verification area. The Sigasi-to-Riviera external compilation note addresses an existing simulator integration.

Only then transfer the workflow to a real target: a manageable file set, documented libraries, unchanged quality rules and a precise change package. To evaluate a suitable combination of editor, CLI and automated operation, request a Sigasi evaluation for your project.

Sources

Sigasi CLI · Sigasi CLI in Sigasi Visual HDL · Sigasi MCP server · Sigasi AI Chat: historical feature status · Sigasi modular project description · Sigasi release notes · Codex CLI

Would you like to apply this approach to your project?

Evaluate Sigasi for your project

EDA PRAXIS / NEWSLETTER

Fresh perspectives.
Straight to your inbox.

Practical knowledge about HDL, simulation and verification. New articles, application notes and insights into useful tools.