Chapter 3 Boolean Algebra Digital Logic
Chapter 3 Boolean Algebra Digital Logic
Boolean Algebra
and Digital Logic
Chapter 3 Objectives
2
3.1 Introduction
• In the latter part of the nineteenth century, George
Boole incensed philosophers and mathematicians
alike when he suggested that logical thought could
be represented through mathematical equations.
– How dare anyone suggest that human thought could be
encapsulated and manipulated like an algebraic formula?
• Computers, as we know them today, are
implementations of Boole’s Laws of Thought.
– John Atanasoff and Claude Shannon were among the first
to see this connection.
3
3.1 Introduction
4
3.2 Boolean Algebra
• Boolean algebra is a mathematical system for
the manipulation of variables that can have
one of two values.
– In formal logic, these values are “true” and “false.”
– In digital systems, these values are “on” and “off,” 1
and 0, or “high” and “low.”
• Boolean expressions are created by
performing operations on Boolean variables.
– Common Boolean operators include AND, OR, and
NOT.
5
3.2 Boolean Expressions
6
3.2 Boolean Expressions
7
3.2 Boolean Expressions
8
3.2 Boolean Expressions
9
3.2 Boolean Expressions
• The truth table for the
Boolean function:
10
3.2 Boolean Identities
• Digital computers contain circuits that implement
Boolean functions.
• The simpler that we can make a Boolean function,
the smaller the circuit that will result.
– Simpler circuits are cheaper to build, consume less
power, and run faster than complex circuits.
• With this in mind, we always want to reduce our
Boolean functions to their simplest form.
• There are a number of Boolean identities that help
us to do this.
11
3.2 Boolean Identities
• Most Boolean identities have an AND (product) form
as well as an OR (sum) form. We give our identities
using both forms. Our first group is rather intuitive:
12
3.2 Boolean Identities
13
3.2 Boolean Identities
• Our last group of Boolean identities are perhaps the
most useful.
• If you have studied set theory or formal logic, these
laws are also familiar to you.
14
3.2 Boolean Identities
• We can use Boolean identities to simplify:
F(x,y,z) = xy + x′z + yz
15
3.2 Boolean Complements
16
3.2 Boolean Complements
• DeMorgan’s law can be extended to any number of
variables.
• Replace each variable by its complement and
change all ANDs to ORs and all ORs to ANDs.
• Thus, we find the the complement of:
is:
17
3.2 Representing Boolean Functions
18
3.2 Representing Boolean Functions
19
3.2 Representing Boolean Functions
20
3.2 Representing Boolean Functions
21
3.3 Logic Gates
• We have looked at Boolean functions in abstract
terms.
• In this section, we see that Boolean functions are
implemented in digital computer circuits called gates.
• A gate is an electronic device that produces a result
based on two or more input values.
– In reality, gates consist of one to six transistors, but digital
designers think of them as a single unit.
– Integrated circuits contain collections of gates suited to a
particular purpose.
22
3.3 Symbols for Logic Gates
• The three simplest gates are the AND, OR, and NOT
gates.
23
3.3 Symbols for Logic Gates
24
3.3 Universal Gates
• NAND and NOR
are two very
important gates.
Their symbols
and truth tables
are shown at
the right.
25
3.3 Universal Gates
• NAND and NOR are
known as universal
gates because they
are inexpensive to
manufacture and
any Boolean
function can be
constructed using
only NAND or only
NOR gates.
26
3.3 Multiple Input Gates
• Gates can have multiple inputs and more than
one output.
– A second output can be provided for the complement
of the operation.
– We’ll see more of this later.
27
3.4 Digital Components
• Upon opening a computer and looking
inside, one would realize that there is a lot to
know about all of the digital components
that make up the system.
• Every computer is built using collections of
gates that are all connected by way of wires
acting as signal gateways.
28
3.4 Digital Components
29
3.4 Digital Circuits and Their Relationship to Boolean
Algebra
31
3.4 Digital Components
• The Boolean circuit:
32
3.4 Digital Components
• So we can wire the pre-
packaged circuit to
implement our function:
33
3.4 Digital Components
34
3.4 Digital Components
• Suppose we are to design a logic circuit to
determine the best time to plant a garden.
• We consider three factors (inputs):
• (1) time, where 0 represents day and 1 represents
evening;
• (2) moon phase, where 0 represents not full and 1
represents full; and
• (3) temperature, where 0 represents 45°F and
below, and 1 represents over 45°F.
• We determine that the best time to plant a garden
is during the evening with a full moon.
35
3.4 Digital Components
• This results in the following truth table:
36
3.4 Digital Components
• From the truth
table, we
derive the
circuit:
37
3.5 Combinational Circuits
• We have designed a circuit that implements the
Boolean function:
38
3.5 Combinational Circuits
• Combinational logic circuits
give us many useful devices.
• One of the simplest is the
half adder, which finds the
sum of two bits.
• We can gain some insight as
to the construction of a half
adder by looking at its truth
table, shown at the right.
39
3.5 Combinational Circuits
• As we see, the sum can be
found using the XOR
operation and the carry using
the AND operation.
40
3.5 Combinational Circuits
• We can change our half
adder into to a full adder
by including gates for
processing the carry bit.
• The truth table for a full
adder is shown at the
right.
41
3.5 Combinational Circuits
• How can we change the
half adder shown below to
make it a full adder?
42
3.5 Combinational Circuits
43
3.5 Combinational Circuits
• Just as we combined half adders to make a full
adder, full adders can connected in series.
• The carry bit “ripples” from one adder to the next;
hence, this configuration is called a ripple-carry
adder.
44
3.5 Combinational Circuits
• Decoders are another important type of
combinational circuit.
• Among other things, they are useful in selecting a
memory location according a binary value placed on
the address lines of a memory bus.
• Address decoders with n inputs can select any of 2n
locations.
This is a block
diagram for a
decoder.
45
3.5 Combinational Circuits
If x = 0 and y = 1,
which output line
is enabled?
46
3.5 Combinational Circuits
• A multiplexer does just the
opposite of a decoder.
• It selects a single output from
several inputs.
• The particular input chosen
for output is determined by
the value of the multiplexer’s
control lines.
• To be able to select among n
inputs, log2n control lines are This is a block
needed. diagram for a
multiplexer.
47
3.5 Combinational Circuits
• This is what a 4-to-1 multiplexer looks like on the
inside.
If S0 = 1 and S1 = 0,
which input is
transferred to the
output?
48
3.5 Combinational Circuits
• This shifter
moves the bits
of a nibble
one position to
the left or
right.
If S = 0, in which
direction do the
input bits shift?
49
3.6 Sequential Circuits
• Combinational logic circuits are perfect for situations
when we require the immediate application of a
Boolean function to a set of inputs.
• There are other times, however, when we need a
circuit to change its value with consideration to its
current state as well as its inputs.
– These circuits have to “remember” their current state.
• Sequential logic circuits provide this functionality for
us.
50
3.6 Sequential Circuits
• As the name implies, sequential logic circuits require
a means by which events can be sequenced.
• State changes are controlled by clocks.
– A “clock” is a special circuit that sends electrical pulses
through a circuit.
• Clocks produce electrical waveforms such as the one
shown below.
51
3.6 Sequential Circuits
• State changes occur in sequential circuits only
when the clock ticks.
• Circuits can change state on the rising edge, falling
edge, or when the clock pulse reaches its highest
voltage.
52
3.6 Sequential Circuits
• Circuits that change state on the rising edge, or
falling edge of the clock pulse are called edge-
triggered.
• Level-triggered circuits change state when the
clock voltage reaches its highest or lowest level.
53
3.6 Sequential Circuits
• To retain their state values, sequential circuits rely
on feedback.
• Feedback in digital circuits occurs when an output
is looped back to the input.
• A simple example of this concept is shown below.
– If Q is 0 it will always be 0, if it is 1, it will always be 1.
Why?
54
3.6 Sequential Circuits
• You can see how feedback works by examining
the most basic sequential logic components, the
SR flip-flop.
– The “SR” stands for set/reset.
• The internals of an SR flip-flop are shown below,
along with its block diagram.
55
3.6 Sequential Circuits
• The behavior of an SR flip-flop is described by
a characteristic table.
• Q(t) means the value of the output at time t.
Q(t+1) is the value of Q after the next clock
pulse.
56
3.6 Sequential Circuits
• The SR flip-flop actually
has three inputs: S, R,
and its current output, Q.
• Thus, we can construct a
truth table for this circuit,
as shown at the right.
• Notice the two undefined
values. When both S
and R are 1, the SR flip-
flop is unstable.
57
3.6 Sequential Circuits
• If we can be sure that the inputs to an SR flip-flop
will never both be 1, we will never have an
unstable circuit. This may not always be the case.
• The SR flip-flop can be modified to provide a stable
state when both inputs are 1.
58
3.6 Sequential Circuits
59
3.6 Sequential Circuits
• Another modification of the SR flip-flop is the D
flip-flop, shown below with its characteristic table.
• You will notice that the output of the flip-flop
remains the same during subsequent clock
pulses. The output changes only when the value
of D changes.
60
3.6 Sequential Circuits
61
3.6 Sequential Circuits
• The behavior of sequential circuits can be expressed
using characteristic tables or finite state machines
(FSMs).
– FSMs consist of a set of nodes that hold the states of the
machine and a set of arcs that connect the states.
• Moore and Mealy machines are two types of FSMs
that are equivalent.
– They differ only in how they express the outputs of the
machine.
• Moore machines place outputs on each node, while
Mealy machines present their outputs on the
transitions.
62
3.6 Sequential Circuits
63
3.6 Sequential Circuits
• Although the behavior of Moore and Mealy
machines is identical, their implementations differ.
This is our Moore
machine.
64
3.6 Sequential Circuits
• Although the behavior of Moore and Mealy
machines is identical, their implementations differ.
This is our Mealy
machine.
65
3.6 Sequential Circuits
• It is difficult to express the complexities of actual
implementations using only Moore and Mealy
machines.
– For one thing, they do not address the intricacies of timing
very well.
– Secondly, it is often the case that an interaction of
numerous signals is required to advance a machine from
one state to the next.
• For these reasons, Christopher Clare invented the
algorithmic state machine (ASM).
66
3.6 Sequential Circuits
67
3.6 Sequential Circuits
• This is an ASM for a microwave oven.
68
3.6 Sequential Circuits
69
3.6 Sequential Circuits
• This illustration shows a 4-
bit register consisting of D
flip-flops. You will usually
see its block diagram
(below) instead.
70
3.6 Sequential Circuits
71
3.6 Sequential Circuits
• A binary counter is
another example of a
sequential circuit.
• The low-order bit is
complemented at each
clock pulse.
• Whenever it changes
from 0 to 1, the next bit
is complemented, and
so on through the other
flip-flops.
72
3.6 Sequential Circuits
73
3.6 Sequential Circuits
74
3.6 Sequential Circuits
This is the Mealy
machine for our encoder.
75
3.6 Sequential Circuits
76
3.6 Sequential Circuits
77
3.6 Sequential Circuits
78
3.6 Sequential Circuits
• Suppose we receive
the erroneous string: 10
10 11 11.
• Here we have plotted
the accumulated errors
based on the allowable
transitions.
• The path of least error
outputs 1001, thus
1001 is the string of
maximum likelihood.
79
3.7 Designing Circuits
• We have seen digital circuits from two points of
view: digital analysis and digital synthesis.
– Digital analysis explores the relationship between a circuits
inputs and its outputs.
– Digital synthesis creates logic diagrams using the values
specified in a truth table.
• Digital systems designers must also be mindful of
the physical behaviors of circuits to include minute
propagation delays that occur between the time
when a circuit’s inputs are energized and when the
output is accurate and stable.
80
3.7 Designing Circuits
81
3.7 Designing Circuits
82
Chapter 3 Conclusion
• Computers are implementations of Boolean logic.
• Boolean functions are completely described by
truth tables.
• Logic gates are small circuits that implement
Boolean operators.
• The basic gates are AND, OR, and NOT.
– The XOR gate is very useful in parity checkers and
adders.
• The “universal gates” are NOR, and NAND.
83
Chapter 3 Conclusion
• Computer circuits consist of combinational logic
circuits and sequential logic circuits.
• Combinational circuits produce outputs (almost)
immediately when their inputs change.
• Sequential circuits require clocks to control their
changes of state.
• The basic sequential circuit unit is the flip-flop:
The behaviors of the SR, JK, and D flip-flops are
the most important to know.
84
Chapter 3 Conclusion
85
End of Chapter 3
86