@johnregehr I just watched your 2014 talk on Souper at UW on YouTube. Fascinating how similar it is (was at the time) to "freduce" in Yosys.
-
-
Replying to @johnregehr
The code is not very good.. :) It was more of an experiment than something that one should use in practice. (Also: It's pretty slow.)
1 reply 0 retweets 0 likes -
Replying to @oe1cxw @johnregehr
Because in hardware you can wire any bit anywhere it must compare bits, not words, and there are n^2/2 pairs..
1 reply 0 retweets 1 like -
Replying to @oe1cxw @johnregehr
I wrote it in 2013, so I don't have a very fresh memory from writing it, but the basic idea is this: 1/ (oh I wish I already had 280 :)
1 reply 0 retweets 1 like -
Replying to @oe1cxw @johnregehr
I do not consider things from previous cycles, so flip-flops are essentially my "stop condition".
1 reply 0 retweets 1 like -
Replying to @oe1cxw @johnregehr
So I have a couple of DAGs. I throw random inputs at them and see which behave the same. Then I mark then as potentially the same node.
1 reply 0 retweets 2 likes -
Replying to @oe1cxw @johnregehr
Then I create SAT instances to see if they actually are the same. If not I use the counter example as additional simulation input to..
1 reply 0 retweets 1 like -
Replying to @oe1cxw @johnregehr
.. break other pairs that are still marked as candidates, then I create a SAT instance for the next candidate pair, and so on.
1 reply 0 retweets 0 likes -
Replying to @oe1cxw @johnregehr
There is some additional handling for when to signals are the exact opposite, then I replace one with the inverse of the other.
1 reply 0 retweets 0 likes
There is also some special handling for constant zero and constant one.
-
-
Replying to @oe1cxw @johnregehr
And there are some heuristics to re-use SAT instances by picking pairs that introduce a low number of new nodes to the last problem.
1 reply 0 retweets 0 likes -
Replying to @oe1cxw @johnregehr
I think stuff like this for gate level circuits is as least as old as SAT solvers. Probably older, since BDDs can be used for that also.
1 reply 0 retweets 0 likes - Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.