Support header entries in RTL filelists - #95
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates picker export filelist processing so SystemVerilog/Verilog header entries (.svh, .vh) are handled as include directories rather than compilable sources, and stabilizes top-level CI builds by explicitly setting the Makefile default target.
Changes:
- Extend filelist parsing to recognize
.svh/.vhand convert those entries into include directories (excluding them from the generated compilable file list). - Add a regression test covering header-only filelist entries and their include-dir behavior.
- Set
.DEFAULT_GOAL := allin the top-levelMakefileto avoid accidental target selection when running plainmake.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
test/test_codegen_filelist.cpp |
Adds a regression scenario asserting .vh/.svh entries are excluded from ofilelist and contribute include dirs. |
src/codegen/lib.cpp |
Updates gen_filelist to treat .vh/.svh as headers: add their parent directories to incdirs and omit them from ofilelist. |
Makefile |
Sets the default goal to all to make make behavior deterministic in CI/container contexts. |
example/MultiFileRTL/top.sv |
Adds a new example top module that uses included headers for parameterization. |
example/MultiFileRTL/release-vcs.sh |
Adds a VCS export script for the new MultiFileRTL example. |
example/MultiFileRTL/leaf.v |
Adds a leaf RTL module for the MultiFileRTL example. |
example/MultiFileRTL/inc/outer.svh |
Adds a header that composes definitions via include and defines a derived width. |
example/MultiFileRTL/inc/defs.vh |
Adds a base header define used by the example. |
example/MultiFileRTL/example.py |
Adds a simple Python usage example for the exported DUT. |
example/MultiFileRTL/design.f |
Adds a multi-file RTL filelist including +incdir+ and explicit header entries to exercise the new behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Makiras
approved these changes
Jul 8, 2026
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.
Description
This PR improves export filelist handling for header-only RTL entries and makes the top-level build more stable in CI.
Changes included:
.vhand.svhentries in RTL filelists duringpicker exportfilelist.flimited to compilable RTL sources such as.vand.svMakefiledefault goal explicitly toallso plainmakedoes not accidentally select example targets in CI or container buildsThis is a non-breaking change intended to make multi-file RTL filelists behave more like common HDL project layouts.
Fixes # (issue)
Type of change
How Has This Been Tested?
.vh/.svhentries in filelists.v/.sventries and exclude header-only entriesmakebehavior to ensure the default goal is explicitlyallTest Configuration:
Checklist: