llvm / circt

Circuit IR Compilers and Tools
https://circt.org
Other
1.69k stars 303 forks source link

[CalyxToFSM] Add `par` FSM lowering #4606

Open mortbopet opened 1 year ago

mortbopet commented 1 year ago

CalyxToFSM is currently missing support for lowering the calyx.par control operation to an FSM construct. This is an important construct to support seeing as most SCFToCalyx designs contain it.

For inspiration, the native compilers' implementation of control compilation of the par construct.

rachitnigam commented 1 year ago

One workaround for this is using the new calyx-native pass (#5879) which can lower par and generate an MLIR representation for consumption in future CIRCT passes. Again, it would be nice to have this implemented within CIRCT but just documenting this workaround for now.

mortbopet commented 1 year ago

It would indeed be nice - I think par lowering is the last "big" missing feature before most (all?) Calyx programs can be compiled entirely in CIRCT.

rachitnigam commented 1 year ago

Right! Although there is always an ever-growing list of new feature in the native language being added as we build out the new HLS flow.