Skip to content

feat: improve VCS waveform, coverage, and modern Verdi support - #94

Merged
SFangYy merged 13 commits into
masterfrom
update/vcs-waveform-deps
Jul 7, 2026
Merged

feat: improve VCS waveform, coverage, and modern Verdi support#94
SFangYy merged 13 commits into
masterfrom
update/vcs-waveform-deps

Conversation

@SFangYy

@SFangYy SFangYy commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Description

This PR focuses on three main areas:

  1. VCS waveform and coverage support
  2. example output directory layout and per-example test entrypoints
  3. xspcomm path resolution and generated-project linking behavior

The goal is to make the VCS flow more usable in real runs, make the example/test flows more consistent, and remove hardcoded assumptions about where xspcomm is installed.

Main changes

1. VCS waveform and coverage support

  • add runtime control for VCS coverage save/reset flow
  • make VCS finish handling safer for host-side callers
  • stabilize waveform flushing and waveform filename rotation behavior
  • add --verdi-mode to select between legacy Verdi integration and modern -debug_access+all
  • only emit the Python-side libvcsnew.so visibility workaround for VCS when --verdi-mode modern is selected
  • pass the Verdi mode through Python template rendering so generated Python DUTs do not fail on missing template variables

2. Example directory structure and test entrypoints

  • unify generated example outputs under output/<ExampleName>
  • add per-example make targets and align example scripts with the same output-root convention
  • simplify local runs and CI flows by making example paths and entrypoints consistent

3. xspcomm path and linking fixes

  • remove the hardcoded /usr/local/lib assumption from generated mem_direct builds
  • resolve xspcomm paths through picker and use them in generated link/runtime settings
  • improve portability for source-tree builds, custom install prefixes, and CI

Motivation / context

Before this PR:

  • VCS waveform and coverage behavior was functional but fragile across different host/runtime setups
  • example outputs and entrypoints were not fully consistent
  • generated mem_direct projects assumed xspcomm lived in /usr/local/lib, which caused CI failures and made non-default installs unreliable
  • the Python VCS flow could also fail when Verdi-mode-aware template logic was generated without the corresponding render variable

After this PR:

  • VCS export flows are more explicit and robust
  • example outputs and test targets are more uniform
  • generated projects use detected xspcomm paths instead of a hardcoded system location

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Key validation performed for this change set:

  • verified generated VCS/Python template rendering after adding __VERDI_MODE__ to Python codegen data
  • reviewed the generated-project link path flow for mem_direct and confirmed it now uses picker-resolved xspcomm library paths instead of /usr/local/lib
  • checked the example/test target restructuring against the current repository Makefiles and scripts

Suggested reproduction commands:

make test_vcs_RandomGenerator EXAMPLE_LANG=python
make test_RandomGenerator EXAMPLE_LANG=python
make test_InternalSignals EXAMPLE_LANG=python
make test_CacheSignalCFG EXAMPLE_LANG=python

Checklist:

  • My code follows the style guidelines of this project
  • I have added the appropriate labels
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

Copilot AI review requested due to automatic review settings July 7, 2026 06:58

Copilot AI left a comment

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.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@SFangYy
SFangYy requested a review from Makiras July 7, 2026 07:22
@SFangYy
SFangYy merged commit 8d8e9be into master Jul 7, 2026
15 checks passed
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.

3 participants