Closed
Description
A common pattern seems to be generating an RTL (in the "register-transfer level") pipeline of some depth, most recently brought up here: #585 (comment). This pattern appears in Handshake's lowering of memories for an analogous reason: to delay the control network to match the memory delay. Finally, ESI's buffers are lowered into pipeline stages implemented by an external module implemented in System Verilog.
It would be great if CIRCT could provide some sort of shared utility that these uses could all rely on.