Skip to content

[HandshakeToHW] Tracking issue #3960

Open
@mortbopet

Description

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

  • Operators
    • Mux
    • Conditional branch
    • Instance
    • Buffer
      • Seq
      • Fifo: A fifo is most easily implemented when some memory abstraction can be targeted (ready/write pointers, transparency, ...). We currently have seq.hlmem but it would be nice to also have a seq.fifo operation (which could lower to a seq.hlmem implementation).
    • Constant
    • Fork
    • Join
    • LazyFork
    • Load
    • Store
    • Memory
    • External memory
    • Select
    • Sync
    • Pack
    • 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

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions