Quick update, I've been trying out Maple as a potential replacement for Mathematica. BooleanSimplify chokes on even 8 bits, but doing simplify( (arithmetic expression mod 2, {a*a-a, b*b-b, c*c-c, ....}) does way better. Maple seems to evaluate these expressions an order of magnitude faster than mathematica, although the resulting equations aren't as compact. It also consumed a modest 300 megs of memory for 8 bits. Still learning the maple syntax so things might improve.
OK I think I see now.
I'll PM you a link to my C code for logic reduction in a few mins. You can compile C right? And know how to code? It should be quite a bit faster than Mathmatica or Maple.
It uses de Morgan's rules and some basic reduction rules to optimize the circuit.
- !(AB) = !A + !B,
- A = A + AB, and
- A + B = A + !AB
It takes about 4 hours to complete a single 32-bit addition. The API has all the basic operations you want (AND, OR, XOR, NOT, etc).