chipsalliance / chipsalliance/chisel

Please make some classes in simulator package public for simulator customization.

Open
#4,240 6 comments 2 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.