pyeda.boolalg.minimization — Logic Minimization¶
The pyeda.boolalg.minimization module contains interface functions for two-level logic minimization.
Interface Functions:
Interface Functions¶
- pyeda.boolalg.minimization.espresso_exprs(*exprs)[source]¶
Return a tuple of expressions optimized using Espresso.
The variadic exprs argument is a sequence of expressions.
For example:
>>> from pyeda.boolalg.expr import exprvar >>> a, b, c = map(exprvar, 'abc') >>> f1 = ~a & ~b & ~c | ~a & ~b & c | a & ~b & c | a & b & c | a & b & ~c >>> f2 = f2 = ~a & ~b & c | a & ~b & c >>> f1m, f2m = espresso_exprs(f1, f2) >>> f1m Or(And(~a, ~b), And(a, b), And(~b, c)) >>> f2m And(~b, c)
- pyeda.boolalg.minimization.espresso_tts(*tts)[source]¶
Return a tuple of expressions optimized using Espresso.
The variadic tts argument is a sequence of truth tables.
For example:
>>> from pyeda.boolalg.bfarray import ttvars >>> from pyeda.boolalg.table import truthtable >>> X = ttvars('x', 4) >>> f1 = truthtable(X, "0000011111------") >>> f2 = truthtable(X, "0001111100------") >>> f1m, f2m = espresso_tts(f1, f2) >>> f1m Or(x[3], And(x[0], x[2]), And(x[1], x[2])) >>> f2m Or(x[2], And(x[0], x[1]))