Mostly a code dump from DESSERT with a few changes:
Support target-transforms that add new target IO that should be bound to custom endpoints
These can be user provided (IE. you can register your fault injection pass and bind it to your fault injection endpoint without needing to touch MIDAS code).
See AddedTargetIoAnnotation
Using above, assert and print widgets are instantiated as endpoints
QoR will be worse as tokens are encoded only after passing through a token channel
Fix with smarter channel generation.
Other changes:
Promote BRAMQueue from FireSim to MIDAS with a bugfix.
TODOs:
[x] Bring up print endpoint
[x] Clean up address assignment for DMA-enabled widgets
Fix with final print synthesis bring up
[x] Clean up exclusions on assertions & prints -> move to firesim and select appropriately
[x] Split AssertPass into Print and Assertion passes.
Fix with final print synthesis bring up
[x] Remove dead dessert code
Fix with final print synthesis bring up
RFC:
Should print synthesis remove the existing unsynthesized print?(No, but enable with a flag?)
Punt to print bring up
Ditto, assertions. (Yes, but disable with a flag?)
Open an issue if current behavior (yes) is not what we want.
Mostly a code dump from DESSERT with a few changes:
Support target-transforms that add new target IO that should be bound to custom endpoints
Using above, assert and print widgets are instantiated as endpoints
Other changes:
TODOs:
RFC: