chipsalliance / chipsalliance/chisel
Please make some classes in simulator package public for simulator customization.
- Dominant language
- Scala
- Stars
- 4.8k
- Forks
- 658
- Avg merge
- 18h 59m
- Merged PRs (30d)
- 14
Description
**Type of issue**: Feature Request
**Is your feature request related to a problem? Please describe.**
I want to customize the simulation process with svsim. But some important classes in [chisel3/simulator/package] are `private`, such as:
- `class SimulatedModule` has a private constructor. It should be public, or I cannot create one during simulation.
- `object AnySimulatedModule` is private. please make it public. Or users cannot use its methods `withValue` and `current`.
- `class AnySimulatedModule` is sealed (cannot be extended) and has many private/protect methods.
I am writing some new things like [`PeekPokeAPI`](https://github.com/chipsalliance/chisel/blob/main/src/main/scala/chisel3/simulator/PeekPokeAPI.scala) and [`EphemeralSimulator`](https://github.com/chipsalliance/chisel/blob/main/src/main/scala/chisel3/simulator/EphemeralSimulator.scala). And the above APIs are private so that I cannot access them (unless I fork a whole chisel).
**Describe the solution you'd like**
make the above simulator's APIs public.
**Describe alternatives you've considered**
N/A.
**Additional context**
N/A.
**What is the use case for implementing this feature?**
Contributor guide
Research direction
Start by reading the simulator package definitions and the linked PeekPokeAPI.scala and EphemeralSimulator.scala files. Identify the access restrictions on SimulatedModule and AnySimulatedModule, then determine the public API needed for simulator customization. Done means those APIs can be used without maintaining a fork, with the resulting visibility and extension behavior documented by the project’s checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100