2. Bubble Pushing and K-Maps
In this section, we will consider two techniques to formulate equivalent circuits.
The bubble pushing method to transform circuits using NANDs or NORs into a a circuit that uses AND and OR gates to make it more readable.
Using K-Maps to build a smaller circuit that is equivalent to the original circuit but uses less gates.
Both algorithm are based on the simple basic logic equivalence like double inversion
(2.1)
or de Morgans law
(2.2)
(2.3)
2.1. Equivalence of Basic Circuits
In the first experiment, we will use truth tables computed by the Digital tool to validate the three equivalences stated in (2.1), (2.2), and (2.3).
Tasks
Use the Digital tool to draw each of the three original circuits Fig. 2.1.1
and the three corresponding transformed circuits in Fig. 2.1.2
representing the left- and right-hand sides of the equations (2.1), (2.2), and (2.3), respectively.
Hint
You need to add labeled inputs and outputs to the circuits.
Use the analyze option (F9, Analyse/Analyse) from the Digital tool to derive the truth table for each circuit.
Compare the resulting truth tables for each circuit pair and validate their equivalence, i.e., check that the original and transformed circuits produce the same outputs.
Save and submit the circuits (as
{NOT-NOT,NAND,NOR}_{orig,trans}.dig
e.g.,NOT-NOT_orig.dig
andNOT-NOT_trans.dig
) and the truth tables in corresponding csv-files (asNOT-NOT_orig.csv
andNOT-NOT_trans.csv
).
2.2. Bubble Pushing Algorithm I
The bubble pushing algorithm is a method to transform a combinational circuit that uses NAND, NOR, and NOT gates into an equivalent circuit that only uses AND, OR, and NOT gates.
The algorithm can be described by the following set of rules:
Begin at the output of the circuit and work toward the inputs
Push any bubbles on the final output back toward the inputs
Draw each gate so that bubbles cancel
Use the bubble pushing algorithm for the circuit shown in Fig. 2.2.1.
Tasks
Derive (by hand) an equivalent circuit for the circuit depicted in Fig. 2.2.1 that only uses AND, OR, and NOT gates.
Draw the original and transformed circuit in the Digital tool and derive their corresponding truth tables.
Use the truth tables to validate the equivalence of both circuits, i.e., check that the original and transformed circuit produce the same outputs.
Save and submit the equivalent boolean equation in SOP (as
bubble1.txt
) besides its circuit (asbubble1.dig
) and truth table (in csv-format asbubble1.csv
).
2.3. Bubble Pushing Algorithm 2
Use the bubble pushing algorithm to derive an equivalent equation in sum-of-product (SOP) form.
Tasks
Derive the equivalent boolean equation (in SOP) for the circuit in Fig. 2.3.1.
Draw the transformed circuit in the Digital tool and derive the corresponding truth tables.
Use the truth tables to validate the equivalence of both circuits.
Save and submit the equivalent boolean equation in SOP (as
bubble2.txt
) besides its circuit (asbubble2.dig
) and truth table (in csv-format asbubble2.csv
).
2.4. Bubble Pushing Algorithm 3
Use the bubble pushing algorithm to derive an equivalent equation in sum-of-product (SOP) form.
Tasks
Derive the equivalent boolean equation (in SOP) for the circuit in Fig. 2.4.1.
Draw the transformed circuit in the Digital tool and derive the corresponding truth tables.
Use the truth tables to validate the equivalence of both circuits.
Save and submit the equivalent boolean equation in SOP (as
bubble3.txt
) besides its circuit (asbubble3.dig
) and truth table (in csv-format asbubble3.csv
).
2.5. K-Maps 1
Simplify the following boolean equations using Boolean theorems. Check for correctness using a truth table or K-map.
Tasks
Simplify each of the given boolean equations.
Draw reasonably simple circuits for the simplified equations in the Digital tool.
Use truth tables to validate the correctness of the simplified circuits.
Save and submit the simplified circuits (as
kmap1-{1,2,3}.dig
) besides their truth tables (in csv-format askmap1-{1,2,3}.csv
).
2.6. K-Maps 2
Simplify the following boolean equations.
Tasks
Simplify each of the given boolean equations.
Draw reasonably simple circuits for the simplified equations in the Digital tool.
Use truth tables to validate the correctness of the simplified circuits.
Save and submit the simplified circuits (as
kmap2-{1,2,3}.dig
) besides their truth tables (in csv-format askmap2-{1,2,3}.csv
).
2.7. K-Maps 3
Simplify the following boolean equation using a K-map.
Tasks
Simplify the given boolean equation using a K-map.
Draw a reasonably simple circuit for the simplified equation in the Digital tool.
Use the truth table to validate the correctness of the simplified circuit.
Save and submit the simplified circuit (as
kmap3.dig
) besides its truth table (in csv-format askmap3.csv
).