boolean-logicsimplificationcombiners

Combine a set of boolean equations


I have a logic schematic and from the inputs to outputs there are many levels. I would like to find a simplified boolean equation for each output. To avoid mistakes and to make it efficient, I plan to break down the large schematic to one boolean equation per logic gate and find a tool that can simplify a set of boolean equations and output a single equation for the selected term that I designate as output.

Any mathematical program are OK, please help. Thanks!


Solution

  • For such cases, I recommend Logic Friday 1. You can enter your circuitry as gate diagram. [Logic Friday 1][1] will then transform your entry into a minimized sum-of-products form. It can also transform this two-level form back into a multi-level gate diagram.

    The simplification of a multi-level circuit is far from being trivial. In case of a high number of inputs, you may end up with a huge number of minterms (= sums-of-products). It might be easier to simplify the circuit in terms of local transformations, where you replace a given number of gates by a simpler sub-circuit which implements the same function. Example: AND(AND(x,y),z) is equivalent to AND(x,y,z). Also look for nodes in your circuit which realize the same function and can thus be eliminated.

    It might be, that you should not be looking for the smallest/simplest but for the fastest circuit. This is the circuit with the minimum delay between inputs and outputs. Delay minimization, again, is quite a subtle goal to achieve and depends on the delay properties of the gate types available.

    An alternative tool is bc2cnf. This commandline tool converts a gate netlist file into a product-of-sums CNF file. This CNF file can then be solved using a SAT solver.Every solution corresponds to one minterm of the sum-of-products form. Therefore, this does not directly show you a simplified multi-level form, but it can help to verify the function of your circuit.