circt icon indicating copy to clipboard operation
circt copied to clipboard

[HandshakeToHW] Tracking issue

Open mortbopet opened this issue 3 years ago • 0 comments

This is a tracking issue for the reimplementation of HandshakeToFIRRTL to a HW/ESI-based implementation:

  • Operators
    • [x] Mux
    • [ ] Conditional branch
    • [ ] Buffer
      • [x] Seq
      • [ ] Fifo: A fifo is most easily implemented when some memory abstraction can be targeted (ready/write pointers, transparency, ...). We don't yet have such abstraction to target - ideally, seq should support some notion of high-level memory which lowers down into something that synthesizes reasonably toan FPGA.
    • [ ] Constant
    • [x] Fork
    • [x] Join
    • [ ] LazyFork
    • [ ] Load
    • [ ] Store
    • [ ] Memory
    • [ ] External memory
    • [x] Select
    • [x] Sync
    • [x] Pack
    • [x] Unpack
  • [ ] Support pruning i0 logic
    • HandshakeToHW attempts to to keep special-case logic for handling none (soon to be i0)-typed values. This implies that any handshake SSA value which is i0 still carries ready/valid/data semantics, however the data part of the bundle is of zero width. Given this style of lowering, we need a pass that is able to prune the i0 logic post-conversion (or keep it around until emission and let the emitter decide what to do with it).
  • [ ] Figure out how to support memories
    • This will be ESI based, and should use an ESI service.
  • [ ] Move integration tests from FIRRTL to HW implementation
  • [ ] Remove HandshakeToFIRRTL

mortbopet avatar Sep 21 '22 12:09 mortbopet