-
Notifications
You must be signed in to change notification settings - Fork 9
Add backend simulator GSIM support #50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for GSIM (a FIRRTL-based simulator) to the backend simulation framework, expanding beyond the existing Verilator and VCS support.
- Adds GSIM as a new simulator option alongside existing Verilator/VCS support
- Implements FIRRTL parsing capabilities for extracting module ports and signal information
- Adds memory direct access support for GSIM with native signal addressing
- Updates build system and templates to handle GSIM-specific compilation requirements
Reviewed Changes
Copilot reviewed 40 out of 42 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/picker.cpp | Adds GSIM as supported simulator option and implements GSIM-specific parsing logic |
| src/parser/firrtl.cpp | New FIRRTL parser for extracting circuit and port information from .fir files |
| src/parser/gsim_root.cpp | New parser for GSIM-generated C++ header files to extract variable declarations |
| template/lib/dut_base.hpp | Adds DutGSimBase class with GSIM-specific DUT interface |
| template/lib/dut_base.cpp | Implements GSIM DUT functionality including step simulation and pin management |
| template/lib/cmake/gsim.cmake | New CMake configuration for GSIM builds with GMP library linking |
| template/python/cmake/gsim.cmake | Python binding CMake configuration for GSIM |
| template/mem_direct/ | Updates memory direct access templates to support both Verilator and GSIM |
| example/GSim/NutShell/ | Adds example GSIM usage with NutShell processor |
Comments suppressed due to low confidence (1)
src/parser/gsim_root.cpp:36
- Grammar error: 'type size not find' should be 'type size not found'.
cpp_variableInfo var_info;
This regex pattern is extremely complex and hard to maintain. Consider breaking it down into smaller, more readable components or adding detailed comments explaining each part. Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM if test passed
Description
Support GSIM basic features
How Has This Been Tested?
Test NutShell Pass
Checklist: