Skip to content

[HandshakeToHW] Tracking issue #3960

Open
@mortbopet

Description

@mortbopet

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

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