Lab 6: Digital Logic
Introduction
In this lab you will
experiment with digital logic design using the Logisim simulator.
This lab should be done individually, although you
may certainly discuss your progress with your neighbors.
Logisim
Download Logisim
and lab.circ to your
computer (the lab machine or your laptop). The lab.circ
file has
some slightly nicer settings than Logisim would default to.
Start the logisim simulator, and open the lab.circ
file.
(Click on "Open.." under the "File" menu.)
- Add two input pins (the square objects with a green center) and
an AND gate to your circuit board. Wire (click on the + next to Base
and pick the Wiring option) the two input pins to the
AND gate, and wire the output of the gate to an
output pin (the round object with a green center). Once you have
this simple circuit set up, click on the finger icon and experiment
with changing the inputs to your AND gate(make sure that Simulation is
enabled under the Simulation menu). Make sure that the gate
does what you expect it to do. Repeat the experiment with the OR
gate and the NOT gate. There is nothing to turn in for this
exercise.
- Here is the truth table for the exclusive or function (xor):
A B | Out
------|----
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0
Write a Boolean expression that corresponds to this truth table, and
implement your expression using AND, OR, and NOT gates in Logisim.
Test your circuit to make sure that it generates the appropriate
output for all possible inputs. For this exercise you will hand in
your Boolean expression as well as a print-out or drawing of your
circuit.
- The exclusive or function can be generalized to any number of
inputs. No matter how many inputs there are, the output is true if and
only if exactly one of the inputs is true. Create a truth table for a
three input exclusive or function. Write a Boolean expression that
corresponds to that truth table, and implement your expression in
gates using AND, OR, and NOT gates in Logisim.
Hint: Your Boolean
expression will probably include AND clauses that include three
terms. For example: A'BC. You have two options for implementing
something like that in Logisim. You could use two 2-input AND
gates, taking advantage of the fact that A'BC = (A'B)C, or you could
use one 3-input AND gate. You can change the number of input pins
on a gate by selecting it using the arrow tool, and clicking on the
"Number Of Inputs" selector on the lower left hand side of the
Logisim window.
For this exercise you will hand in your truth table, your Boolean
expression, and a print-out or drawing of your circuit.
- (IF YOU HAVE TIME) During class we worked through the design
of a binary adder. The first step was to build a half adder, a
circuit that could add two bits together as long as there was no
carry-in from a previous add. For this exercise you will build a half
subtractor, a circuit that can subtract two bits as long as there is
no borrow from a previous pair of bits. Build and test a circuit that
implements the following truth tables:
INPUTS INPUTS
Subtraction of 2 bits: X Y Result X Y Borrow
---------------------- -------|------ -------|------
0 0 | 0 0 0 | 0 (F)
X 0 0 1 1 -------|------ -------|------
-Y -0 -1 -0 -1 0 1 | 1 0 1 | 1 (T)
-- -- -- -- -------|------ -------|------
Result: 0 1 1 0 1 0 | 1 1 0 | 0 (F)
Borrow? F T F F -------|------ -------|------
1 1 | 0 1 1 | 0 (F)
Submit your results
You may either:
- Hand in your solutions to the exercises above (if you wrote
them on paper).
Or
- Save your answers and circuits in a document to be submitted
to Kit.