Skip to content

feat: add NVC#852

Open
rinagm wants to merge 9 commits into
TerosTechnology:devfrom
rinagm:nvc-integration
Open

feat: add NVC#852
rinagm wants to merge 9 commits into
TerosTechnology:devfrom
rinagm:nvc-integration

Conversation

@rinagm

@rinagm rinagm commented Apr 28, 2026

Copy link
Copy Markdown

This Pull Request adds NVC support to TerosHDL as both a VHDL linter and standalone simulator, following the existing architecture used for the GHDL integration wherever possible.

  • Added support for NVC as a VHDL linter (src/colibri/linter/nvc.ts).
  • Added support for NVC as a standalone VHDL simulator.
  • Implemented the NVC backend (executor, commandBuilder, tasks, taskRunners, and utils) following the same design pattern used by the existing GHDL implementation.
  • Added support for the NVC task workflow (Analyze, Elaborate, Simulate, and Run All).
  • Integrated NVC into the graphical interface and configuration system.
  • Added NVC as an available VHDL linter option in the settings.
  • Added the required configuration files and types for NVC.
  • Updated the task tree to expose the NVC simulation workflow.
  • Added automated tests for both the linter and simulator integrations: tests/nvc/nvc_linter.spec.ts, tests/nvc/nvc_simu.spec.ts
  • Added the corresponding configuration UI generation for the Tools and Linter sections (src/colibri/config/config_web.ts).

@rinagm

rinagm commented Apr 28, 2026

Copy link
Copy Markdown
Author

feat: add NVC integration

  • Add NVC support as simulator and linter
  • Update project_manager and related modules
  • Fix configuration and test issues

Tested locally and working correctly.

Comment thread src/colibri/config/config_declaration.ts Outdated
Comment thread src/colibri/linter/nvc.ts Outdated
Comment thread src/colibri/project_manager/tool/utils.ts Outdated
Comment thread src/colibri/project_manager/project_manager.ts Outdated
Comment thread src/colibri/yosys/yosys.ts Outdated
Comment thread src/colibri/yosys/yosys.ts Outdated
Comment thread src/teroshdl/features/configChecker/externalTools.ts
Comment thread tests/yosys/yosys.spec.ts
Comment thread venv/Scripts/activate Outdated
Comment thread .gitignore Outdated
Comment thread src/colibri/project_manager/tool/nvc/executor.ts Outdated
Comment thread src/colibri/project_manager/tool/nvc/executor.ts Outdated
Comment thread src/teroshdl/features/linter.ts Outdated
Comment thread src/colibri/formatter/bin/s3sv/__pycache__/verilogutil.cpython-314.pyc Outdated
Comment thread src/colibri/project_manager/tool/nvc/tasks.ts Outdated
Comment thread src/colibri/project_manager/tool/nvc/tasks.ts Outdated
Comment thread src/colibri/project_manager/tool/nvc/utils.ts Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add more tests. like building nvc commands

'vhdl19': '2019'
};
// Mapping and adding a default value if the configured standard is not recognized
baseArgs.push(`--std=${config.vhdl_standard && standardMap[config.vhdl_standard]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

auto value in yaml mapg to --std=2008. better omit the flag.

@qarlosalberto

Copy link
Copy Markdown
Contributor

Create the documentation for the new tool, NVC here: https://github.com/TerosTechnology/terosHDLdoc

  1. Create a new file here https://github.com/TerosTechnology/terosHDLdoc/tree/main/docs/11-external_tools called "06-nvc.md"
  2. Follow the same apporach as https://github.com/TerosTechnology/terosHDLdoc/blob/main/docs/11-external_tools/05-yosys.md
  3. Include a similar structure with screenshots
  4. Do a PR in that repository

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants