The point of using boolean algebra to represent logic circuits is to allow the circuits to be simplified. It can be difficult to see how to reduce a circuit to something that is functionally equivalent just by looking at a circuit schematic, but boolean algebra abstracts away the non-essentials.
Here are some sample Boolean equations. Each of these equations can be simplified.
\[x + xy\]\[xz + yz\]\[x + 1 + y + z\]
Recall that AND is a more restrictive operator than OR - it yields a 1 only if all inputs are high, whereas OR yields a 1 if one or more inputs are high. Looking at the first equation, \(x + xy\), the second term (x AND y) will go high only if both x and y are high. However, the whole equation will yield a high value if x goes high, because the first x term lets the outermost OR gate go high regardless of the xy term. This makes the y input functionally useless - it appears only in a non-essential term. The first equation becomes:
\[x + xy \Longrightarrow x\]
In the second equation, \(xz + yz\), notice that the final output will always be low if z is low. A low z will cause the two AND gates to both go low. If z is high, at least one of the other inputs needs to be high before the final output goes high. Combining these two observations, we get:
\[xz + yz \Longrightarrow z(x + y)\]
Finally, the third equation has a trivial solution. Notice that one of the terms in the OR chain is a 1 - this will force the entire equation high, regardless of any other input.
\[x + 1 + y + z \Longrightarrow 1\]
Boolean equations often follow one of two forms (NOTE: These examples are not equivalent equations):
Here are some sample Boolean equations. Each of these equations can be simplified.
\[x + xy\]\[xz + yz\]\[x + 1 + y + z\]
Recall that AND is a more restrictive operator than OR - it yields a 1 only if all inputs are high, whereas OR yields a 1 if one or more inputs are high. Looking at the first equation, \(x + xy\), the second term (x AND y) will go high only if both x and y are high. However, the whole equation will yield a high value if x goes high, because the first x term lets the outermost OR gate go high regardless of the xy term. This makes the y input functionally useless - it appears only in a non-essential term. The first equation becomes:
\[x + xy \Longrightarrow x\]
In the second equation, \(xz + yz\), notice that the final output will always be low if z is low. A low z will cause the two AND gates to both go low. If z is high, at least one of the other inputs needs to be high before the final output goes high. Combining these two observations, we get:
\[xz + yz \Longrightarrow z(x + y)\]
Finally, the third equation has a trivial solution. Notice that one of the terms in the OR chain is a 1 - this will force the entire equation high, regardless of any other input.
\[x + 1 + y + z \Longrightarrow 1\]
Boolean equations often follow one of two forms (NOTE: These examples are not equivalent equations):
- Sum-of-products (ex: \(f(x_1, x_2, x_3) = x_1 x_3 + x_2 \bar{x_3}\))
- Product-of-sums (ex: \(f(x_1, x_2, x_3) = (x_1 + x_3)(x_2 + \bar{x_3})\))