|
This circuit can programming any truth table for 2 bits input.
Canonical normal form:
Any Boolean function can be expressed in the canonical disjunctive normal form, minterm canonical form, or Sum of Products (SoP or SOP) as a disjunction (OR) of minterms.
2 inputs can generate a 4 bit number representing the Truth Table for theses inputs. You can sum this number to get another expression.
A number of n bits can generate 2^(2^n) Boolean functions.
This circuit can make every sum of products for 2 bits generating any Boolean function.
You need to set the inputs from each cell individually and close the switch that allows the sum of the cells
Exemple:
The half adder truth table for the s output can be represented with the following miniterms:
(a*!b) + (!a*b)
a b s
0 0 0
0 1 1
1 0 1
1 1 0
For cout we have:
(a*b)
a b cout
0 0 0
0 1 0
1 0 0
1 1 1
If we wants to representing a truth table that put 1 on the first and the last rows, we could do:
(!a*!b) + (a*b)
It's like we are saying "put 1 on the rows 00 and 11".
So, !a*!b is the row 00, !a*b 01, a*!b 10...
To make a half adder truth table for s output in this circuit, close the first two switches to activate the cells and set respectively 10 and 01 in each cell.
See more on:
https://en.m.wikipedia.org/wiki/Canonical_normal_form
|