You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is more of a "intend to contribute" than a feature request, however I'm posting this issue first in case I completely missed an easier existing way to do this in CIRCT.
The motivation is that we are trying to place the elaborated RTL onto multiple FPGAs connected by Tilelink running on top of Aurora. Right now we have made that the portion of logic running on each FPGA is an tile within the diplomacy framework, so now we only have to separate the logic for each FPGA. The hard part is removing the tiles from the hierarchy and convert the IOs of these tiles into ports in the top-level module.
We propose to add two passes expunge-module and shake-tree :
--expunge-module-pass --expunge-modules=ModA,ModB,ModC would process ModA, ModB and ModC one by one, removing all instances of them from all other modules, and have their IO recursively exposed up in the hierarchy
--shake-tree-pass --shake-keep=ModD,ModE would do a tree-shake pass in the entire mlir::module, only keeping ModD, ModE and their (transitive) included modules.
The text was updated successfully, but these errors were encountered:
This is more of a "intend to contribute" than a feature request, however I'm posting this issue first in case I completely missed an easier existing way to do this in CIRCT.
The motivation is that we are trying to place the elaborated RTL onto multiple FPGAs connected by Tilelink running on top of Aurora. Right now we have made that the portion of logic running on each FPGA is an tile within the diplomacy framework, so now we only have to separate the logic for each FPGA. The hard part is removing the tiles from the hierarchy and convert the IOs of these tiles into ports in the top-level module.
We propose to add two passes
expunge-module
andshake-tree
:--expunge-module-pass --expunge-modules=ModA,ModB,ModC
would process ModA, ModB and ModC one by one, removing all instances of them from all other modules, and have their IO recursively exposed up in the hierarchy--shake-tree-pass --shake-keep=ModD,ModE
would do a tree-shake pass in the entire mlir::module, only keeping ModD, ModE and their (transitive) included modules.The text was updated successfully, but these errors were encountered: