This PR removes the Chisel-type driven endpoint generation system in favor of a BlackBox-based one. Instead of providing an endpoint map, the user must bind endpoint BlackBoxes to all I/O in their system, to create a closed Chisel system that describes the target. This more cleanly separates it from the target from the host-level transformations MIDAS preforms.
This will enable the following:
Serialization of the target's FIRRTL before MIDAS consumes it, making it easier to deploy FireSim as a library
endpoint configuration can partially determined at target-elaboration time, and partially during platform mapping, creating better seperation of target and host configuration (TARGET_CONFIG vs PLATFORM_CONFIG)
The ability to embed endpoints in the target's module hierarchy.
the user does not need to use a wiring transform to bind an endpoint to an interface deep in the module hierarchy.
example use case: can write and integrate a SW RoCC model by connecting an Endpoint BlackBox to the interface
Make it easier to instantiate a variety of different endpoints of the same Module class with different parameterizations
This PR removes the Chisel-type driven endpoint generation system in favor of a BlackBox-based one. Instead of providing an endpoint map, the user must bind endpoint BlackBoxes to all I/O in their system, to create a closed Chisel system that describes the target. This more cleanly separates it from the target from the host-level transformations MIDAS preforms.
This will enable the following: