Boolean optimisation rewrites a logic network into a cheaper equivalent. Constant propagation, redundancy removal, sharing, factoring and don't-cares each shrink the network while keeping its function.
Rewrite | What it removes | Risk |
|---|---|---|
Constant propagation | Gates with a tied input and everything they imply | None: the function is unchanged on every input. |
Redundancy removal | Duplicate gates and dead logic | None: the function is unchanged on every input. |
Sharing and factoring | Repeated sub-expressions and excess literals | Depth can grow while area shrinks. |
Don't-care simplification | Minterms the environment never produces or never observes | Wrong care-set claims change the function. |
Lesson | What it covers |
|---|---|
Folding tied inputs through gates and across hierarchy. | |
Duplicate, dead and self-cancelling logic with a Yosys proof. | |
Literal counts and sub-expression reuse with a Python equivalence check. | |
And-Inverter Graphs and the depth-area trade-off. | |
Satisfiability and observability don't-cares in minimisation. |
The sharing and factoring row. The function must stay identical on every input combination.