Hi there,
I’m thinking of putting my logic synthesis and optimization knowledge to good use by integrating some techniques in CIRCT. I believe that adding such capabilities are very much in scope with the project—giving the willingness to use ABC as a library to map and optimize the comb
dialect.
I see two possible paths to get this project going:
-
Using mockturtle as a library, implement a translations between CIRCT
comb
dialect and mockturtle’s logic network, in-memory, format. (I’m extremely biased to use mockturtle instead of ABC because I was deeply involved with the development—but I have done my share of contributions to ABC as well) -
Implement the techniques to work directly with CIRCT IR. (I’m quite curious to see how these would compare against using the libraries, which have highly specialized data structures)
Either way, I think that the first step requires the ability to isolate the combinational parts in a hw.module
and bit blasting them. Then we can either pass it to a library or apply the techniques directly.
So, I wanted to know if there are people already working on something in these directions. If yes, I can help. Otherwise, I can kickstart this, in which case, I would like to know if there is someone who is willing to guide me a bit. (Basically, I would need someone to help me aligning my design decisions with how things are done in CIRCT and point me to right directions wrt the codebase)