Repository navigation
Conversation
yavs is a VHDL-2008 and VHDL-2019 simulator. It is registered last, so it is only used when selected with VUNIT_SIMULATOR=yavs. Simulation arguments go through a response file, which keeps long generics such as runner_cfg clear of command line length and quoting limits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Closing: simulators are now added through packages instead of being built into VUnit, see #1250. (Comment written by Claude on behalf of ru551n.) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds experimental support for yavs, a VHDL-2008 and VHDL-2019 simulator. You select it with
VUNIT_SIMULATOR=yavs. It is registered last, so it is never picked automatically when another simulator is found.What it does
--work/--mappass the project's libraries, and every file is analyzed with its own--std. 2008 and 2019 files can be mixed; other standards are rejected at setup.yavs run, oryavs elabfor--elaborate, withlib.entity.archor a configuration as the top and-ggenerics. Everything after the subcommand goes through a response file, which keeps long generics such asrunner_cfgclear of command-line length and quoting limits.--exit-severityfollowsvhdl_assert_stop_level, and the simulator hooks' elab/run flags and environment are applied.--gui: runsyavs run --guiwith the arguments of the normal run, which opens it inyavs-gui.yavs.global_flags,yavs.a_flags,yavs.elab_flags,yavs.sim_flags, and ayavs_versionpackage marker.yavs --versionis checked at setup.Needs a change in vunit-osvvm
As for JanusHDL (#1248),
vunit_pkg.tomlin vunit-osvvm picks aCoverageVendorApiPkgvariant by simulator name, soyavsgets none, andrandomandverification_componentsfail to analyze. Addingsimulator == "yavs"to theCoverageVendorApiPkg_default.vhdcondition fixes it. I verified that locally.Testing (yavs 0.8.0 release, Linux x86-64)
vunit/vhdl/*/run.pysuites exceptpythonpass: 1338 of 1338 (check, com, data_types, dictionary, logging, path, random, run, string_ops, verification_components). Therandomandverification_componentsresults include the vunit-osvvm change above.tests/acceptance/test_artificial.py,test_dependencies.pyand the newtest_yavs_fake.py(against a fakeyavsscript) pass, with one exception:lib.tb_ieee_warning.passfails, because yavs 0.8.0 ignores--ieee-warnings=off(yavs#836). The interface passes the flag correctly.tests/unit/test_yavs_interface.py. The rest oftests/unitpasses. pylint, pycodestyle, black and the license test are clean on the new files.Left out for follow-ups
--batch-compileand--parallel-compile: yavs supports both, since it locks its libraries, but they depend on Add --batch-compile to compile files of a library in one call #1236 and Add -j to compile files in parallel #1235.--debugflag: it would run one test under the yavs debug adapter, but it needs a new hook for checking the test selection.🤖 Generated with Claude Code