DemaConsulting.VHDLTest
1.6.0
Prefix Reserved
dotnet tool install --global DemaConsulting.VHDLTest --version 1.6.0
dotnet new tool-manifest
dotnet tool install --local DemaConsulting.VHDLTest --version 1.6.0
#tool dotnet:?package=DemaConsulting.VHDLTest&version=1.6.0
nuke :add-package DemaConsulting.VHDLTest --version 1.6.0
VHDLTest Tool
This tool runs VHDL test benches and generates standard test results files.
Installation
The following will add VHDLTest to a Dotnet tool manifest file:
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local DEMAConsulting.VHDLTest
The tool can then be executed by:
dotnet vhdltest <arguments>
Options
Usage: VHDLTest [options] [tests]
Options:
-h, --help Display help
-v, --version Display version
--silent Silence console output
--verbose Verbose output
--validate Perform self-validation
-c, --config <config.yaml> Specify configuration
-r, --results <out.trx> Specify test results file
-s, --simulator <name> Specify simulator
-0, --exit-0 Exit with code 0 if test fail
-- End of options
Supported Simulators
The current list of supported simulators are:
Configuration
VHDLTest needs a YAML configuration file specifying the VHDL files and test benches.
# List of VHDL source files
files:
- full_adder.vhd
- full_adder_pass_tb.vhd
- full_adder_fail_tb.vhd
- half_adder.vhd
- half_adder_pass_tb.vhd
- half_adder_fail_tb.vhd
# List of test benches to execute
tests:
- full_adder_pass_tb
- full_adder_fail_tb
- half_adder_pass_tb
- half_adder_fail_tb
Running Tests
Before running the tests, it may be necessary to configure where the simulators are installed. This can be done through environment variables:
- VHDLTEST_GHDL_PATH = path to GHDL folder
- VHDLTEST_MODELSIM_PATH = path to ModelSim folder
- VHDLTEST_VIVADO_PATH = path to Vivado folder
- VHDLTEST_ACTIVEHDL_PATH = path to ActiveHDL folder
- VHDLTEST_NVC_PATH = path to NVC folder
To run the tests, execute VHDLTest with the name of the configuration file.
dotnet VHDLTest --config test_suite.yaml
A test results file can be generated when working in CI environments.
dotnet VHDLTest --config test_suite.yaml --results test_results.trx
Self Validation
Running self-validation produces a report containing the following information:
# DEMAConsulting.VHDLTest
| Information | Value |
| :------------------ | :------------------------------------------------- |
| VHDLTest Version | <version> |
| Machine Name | <machine-name> |
| OS Version | <os-version> |
| DotNet Runtime | <dotnet-runtime-version> |
| Time Stamp | <timestamp> |
Tests:
- TestPasses: Passed
- TestFails: Passed
Validation Passed
On validation failure the tool will exit with a non-zero exit code.
This report may be useful in regulated industries requiring evidence of tool validation.
Code Quality
This project maintains high code quality standards through:
- Static Analysis: Microsoft.CodeAnalysis.NetAnalyzers provides comprehensive code analysis
- Code Coverage: Coverlet tracks test coverage during builds
- SonarCloud: Continuous code quality and security analysis
- EditorConfig: Consistent code formatting across all editors
- Spell Checking: cspell configuration for documentation quality
- Markdown Linting: markdownlint for consistent documentation formatting
- Automated Checks: Quality checks workflow with spell checking and markdown linting
- Dependency Management: Dependabot for weekly dependency updates
For Contributors
The project includes:
.editorconfig- Formatting rules for all editors.cspell.json- Spell checking configuration.markdownlint.json- Markdown linting rules
Build with dotnet build to see code quality feedback.
Contributing
We welcome contributions! Please see our Contributing Guidelines for details on how to submit pull requests, report issues, and contribute to the project.
Code of Conduct
This project adheres to a Code of Conduct to ensure a welcoming environment for all contributors.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.6.0 | 38 | 12/15/2025 |
| 1.5.0 | 181 | 12/4/2025 |
| 1.4.1 | 195 | 6/19/2025 |
| 1.4.0 | 158 | 12/25/2024 |
| 1.3.1 | 155 | 12/24/2024 |
| 1.3.0 | 174 | 12/2/2024 |
| 1.2.0 | 202 | 8/10/2024 |
| 1.1.1 | 197 | 7/24/2024 |
| 1.1.0 | 157 | 7/22/2024 |
| 1.0.0 | 171 | 7/1/2024 |
| 0.1.0-beta.4 | 105 | 5/20/2024 |
| 0.1.0-beta.3 | 244 | 11/17/2023 |
| 0.1.0-beta.2 | 103 | 11/17/2023 |
| 0.1.0-beta.1 | 99 | 11/16/2023 |