-
Greetings. I have been exploring the Calyx IL and came to know about the Calyx dialect via the documentation. AFAIK, a CIRCT dialect is to be used as an IR, lowering from the source language, transforming the dialect to Verilog. Since there is already support of converting the Calyx dialect to native Calyx representation, are there any pros of using the dialect over the IL, for example cleaner verilog? What use cases will prefer one over the other? I'm sorry if it seems like a basic question. I am just starting my journey into the world of compilers. Please do correct me if I'm wrong somewhere or made a mistake. Thank you. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Hi there! I think the main reason to use the Calyx MLIR dialect is if you have other reasons to be in the MLIR or CIRCT ecosystem. For example, if you are interested in lowering high-level programs (e.g., from |
Beta Was this translation helpful? Give feedback.
Hi there! I think the main reason to use the Calyx MLIR dialect is if you have other reasons to be in the MLIR or CIRCT ecosystem. For example, if you are interested in lowering high-level programs (e.g., from
linalg
oraffine
or whatever) to hardware, then it's convenient to stay within MLIR when translating to Calyx. Or if you want to handle CIRCT's low-level dialects (e.g.,hw
orsv
), that's cool too. But if all you want is to compile your own DSL to hardware, then it might be simpler to skip MLIR and use the Calyx library directly.