circt icon indicating copy to clipboard operation
circt copied to clipboard

[FIRRTL] Don't allow foreign types in wires or connects.

Open darthscsi opened this issue 1 year ago • 3 comments

This forces dialects to handle storing their own types in their own ops and not tie them to firrtl connect semantics. To make this a bit easier, a new connect-like operation exists only for setting the value of foreign-typed output ports and instance inputs.

With this, foreign types may appear ONLY as module port types and will not appear in any (except foreign_output) firrtl operation or type.

There's a fair amount of simplification this will allow in the various passes' logic.

darthscsi avatar Jul 02 '24 14:07 darthscsi

More tests comming.

darthscsi avatar Jul 02 '24 14:07 darthscsi

@prithayan How breaking to you is this?

darthscsi avatar Jul 02 '24 14:07 darthscsi

@prithayan How breaking to you is this?

Wire and connect is primarily being used with libdn.channel<> types, the wire serves a temporary, to use a value that is defined later . I can start working on eliminating their usage. Need to investigate a bit more on the ports usage.

prithayan avatar Jul 02 '24 16:07 prithayan