Conversation
Replace ambiguous bi-connect ("<>") with mono-connect (":=") for internal Pipe wiring.
ducky64
left a comment
There was a problem hiding this comment.
Pipe fix looks good.
I'm a bit confused about the test though, what is it checking for? It's not using the Pipe apply code that was changed, and it appears to be checking for behavior that is no longer in the codebase?
|
It reproduces the original failure reported by SpaceCowboyMax. It will fail if the mono-connections are replaced with the original bulk/bi connections. |
ducky64
left a comment
There was a problem hiding this comment.
Ok, I see. Looks fine.
Side note: strange that the companion object is what actually builds the hardware, and that the class itself calls the companion object, instead of the companion object being a constructor for the class.
|
@ucbjrl We learned a few years ago that a common case of Pipe (register retiming) depends on the registers being in the same module as the unit being retimed, which is why the companion object instantiates them directly. The Module named Pipe only exists for backwards compatibility, to support old code that writes |
|
Agree, we should document the rationale as well as deprecate the class (if possible) / move it into compatibility. Might be a separate PR though. |
Replace ambiguous bi-connect ("<>") with mono-connect (":=") for internal Pipe wiring.