Lowering memref and load/store from Handshake to FIRRTL

It seems that load/store operations are currently not supported by the lowering step from Handshake to FIRRTL. With this in mind, I have a couple questions:

  1. Are load/store operations well defined in handshake? There is a hack (https://github.com/llvm/circt/issues/68) to have the simulation work, but that seems to indicate the actual operations are not well defined.
  2. What would be the semantics of lowering a handshake memref to FIRRTL with/without the FIRRTL notion of memories?
    Thanks beforehand!

I don’t have the answers, but I would love to see support for lowering Handshake load/store. @hanchenye I believe you mentioned you would look into this, so please let me know if I can help collaborate.

I don’t think the issue you mentioned is specifically caused by the definition of load/store operation. Therefore, we should be able to first implement the lowering of load/store operation to solve the issue you proposed here. Please correct me if my understanding is wrong, though. @stephenneuendorffer Do you have any thinking on this?

I don’t have a clear answer as well. I’m creating an issue in the repository and we can collaborate there. @mikeurbach Right, but I haven’t got a chance to look into this yet. Basically, my plan is to start from MemoryOp and then LoadOp/StoreOp. Please let me know if you have any thoughts :D.

1 Like

Great! Thankyou @hanchenye. I will follow the issue!