Skip to content

Conversation

seldridge
Copy link
Member

Add two flavors of APIs for working with ChiselSim. This provides both the "trait mix-in" pattern and the "wildcard object import" pattern.

Release Notes

  • Add ChiselSim APIs. This as the main entry points to ChiselSim and should be used in favor of the EphemeralSimulator.

@seldridge seldridge requested a review from jackkoenig February 13, 2025 03:06
@seldridge seldridge added the Feature New feature, will be included in release notes label Feb 13, 2025
Add two new traits:

  1. chisel3.simulator.ChiselSim
  2. chisel3.simulator.scalatest.ChiselSim

They provide the same set of APIs (`PeekPokeAPI` and `SimulatorAPI`), but
the latter is additionally specialized for better integration with
Scalatest (and also requires integration with Scalatest via a self type).

These are intended to be the main entrypoints for working with the
platonic ideal of "ChiselSim" and are not supposed to be anything other
than a collection of APIs.  (Please don't add anything more to these and
instead factor additional APIs into additions to their constituent
traits.)

Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
@seldridge seldridge force-pushed the dev/seldridge/ChiselSim-APIs branch from 88894e5 to 3087402 Compare February 13, 2025 21:57
@seldridge
Copy link
Member Author

After an offline discussion with @jackkoenig, I'm dropping this to only the trait-based APIs. We can add the object-based APIs later if desired.

@seldridge seldridge merged commit 74c5e76 into main Feb 13, 2025
15 checks passed
@seldridge seldridge deleted the dev/seldridge/ChiselSim-APIs branch February 13, 2025 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature, will be included in release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant