rdaly525 / coreir

BSD 3-Clause "New" or "Revised" License
101 stars 24 forks source link

Inline mantle wires from slice #924

Closed leonardt closed 4 years ago

leonardt commented 4 years ago

Fixes https://github.com/rdaly525/coreir/issues/899 Depends on https://github.com/leonardt/verilogAST-cpp/pull/53

While this avoids intermediate mantle wire instances, the mantle wire modules are still generated. I'll need to update the verilog code gen logic to figure this out, it's not necessarily easy since the module dependency graph is computed generically. We'd want to check that all instances of a module are inlined, then skip it. Not sure how blocking this is, so we can merge this with the extra unused modules code generated or wait for that improvement to be added.

leonardt commented 4 years ago

Turns out the mantle wire codegen issue was fairly trivial given instanceGraphNode.getInstanceList(), latest commit adds that feature.