You are on page 1of 63

Lecture 3.

Boolean
Algebra, Logic
2x Gates

Prof. Sin-Min Lee


Department of Computer
Science
Boolean Algebra

•Boolean algebra provides the operations and the rules for


working with the set {0, 1}.

•These are the rules that underlie electronic circuits, and the
methods we will discuss are fundamental to VLSI design.

•We are going to focus on three operations:

• Boolean complementation,

• Boolean sum, and

• Boolean product

4–2
Boolean Operations
•The complement is denoted by a bar (on the slides, we will
use a minus sign). It is defined by
•-0 = 1 and -1 = 0.

•The Boolean sum, denoted by + or by OR, has the following


values:
•1 + 1 = 1, 1 + 0 = 1, 0 + 1 = 1, 0+0=0

•The Boolean product, denoted by  or by AND, has the


following values:
•1  1 = 1, 1  0 = 0, 0  1 = 0, 00=0

4–3
Boolean Functions and Expressions

•Definition: Let B = {0, 1}. The variable x is called a Boolean


variable if it assumes values only from B.

•A function from Bn, the set {(x1, x2, …, xn) |xiB,


1  i  n}, to B is called a Boolean function of degree n.

•Boolean functions can be represented using expressions


made up from the variables and Boolean operations.

4–4
Boolean Functions and Expressions

•The Boolean expressions in the variables x1, x2, …, xn are


defined recursively as follows:

• 0, 1, x1, x2, …, xn are Boolean expressions.

• If E1 and E2 are Boolean expressions, then (-E1),


(E1E2), and (E1 + E2) are Boolean expressions.

•Each Boolean expression represents a Boolean function. The


values of this function are obtained by substituting 0 and 1 for
the variables in the expression.

4–5
Boolean Functions and Expressions

•For example, we can create Boolean expression in the


variables x, y, and z using the “building blocks”
0, 1, x, y, and z, and the construction rules:

•Since x and y are Boolean expressions, so is xy.

•Since z is a Boolean expression, so is (-z).

•Since xy and (-z) are expressions, so is xy + (-z).

•… and so on…

4–6
Boolean Functions and Expressions

•Example: Give a Boolean expression for the Boolean function


F(x, y) as defined by the following table:

x y F(x, y)
0 0 0
0 1 1
1 0 0
1 1 0

•Possible solution: F(x, y) = (-x)y

4–7
Boolean Functions and Expressions
•Another Example: •Possible solution I:
•x •y •z •F(x, y, z) •F(x, y, z) = -(xz + y)
•0 •0 •0 •1
•0 •0 •1 •1
•Possible solution II:
•0 •1 •0 •0
•F(x, y, z) = (-(xz))(-y)
•0 •1 •1 •0
•1 •0 •0 •1
•1 •0 •1 •0
•1 •1 •0 •0
•1 •1 •1 •0

4–8
Boolean Functions and Expressions
•There is a simple method for deriving a Boolean expression
for a function that is defined by a table. This method is based
on minterms.

•Definition: A literal is a Boolean variable or its complement. A


minterm of the Boolean variables x1, x2, …, xn is a Boolean
product y1y2…yn, where yi = xi or yi = -xi.

•Hence, a minterm is a product of n literals, with one literal for


each variable.

4–9
Boolean Functions and Expressions
•Consider F(x,y,z) again: •F(x, y, z) = 1 if and only if:
•x •y •z •F(x, y, z) •x = y = z = 0 or
•0 •0 •0 •1
•x = y = 0, z = 1 or
•0 •0 •1 •1
•x = 1, y = z = 0
•0 •1 •0 •0
•0 •1 •1 •0 •Therefore,

•1 •0 •0 •1 •F(x, y, z) =
(-x)(-y)(-z) +
•1 •0 •1 •0
(-x)(-y)z +
•1 •1 •0 •0 x(-y)(-z)
•1 •1 •1 •0

4–10
4–11
4–12
Computers

• There are three different, but equally


powerful, notational methods
for describing the behavior of gates
and circuits
– Boolean expressions
– logic diagrams
– truth tables

4–13
Boolean algebra

• Boolean algebra: expressions in this


algebraic notation are an elegant and
powerful way to demonstrate the activity of
electrical circuits

4–14
4–15
Truth Table

• Logic diagram: a graphical


representation of a circuit
– Each type of gate is represented by a specific
graphical symbol

• Truth table: defines the function of a gate


by listing all possible input combinations
that the gate could encounter, and the
corresponding output

4–16
Gates

• Let’s examine the processing of the


following
six types of gates
– NOT
– AND
– OR
– XOR
– NAND
– NOR

4–17
4–18
4–19
NOT Gate

• A NOT gate accepts one input value


and produces one output value

Figure 4.1 Various representations of a NOT gate

4–20
NOT Gate

• By definition, if the input value for a NOT


gate is 0, the output value is 1, and if the
input value is 1, the output is 0
• A NOT gate is sometimes referred to as an
inverter because it inverts the input value

4–21
AND Gate

• An AND gate accepts two input signals


• If the two input values for an AND gate are
both 1, the output is 1; otherwise, the
output is 0

Figure 4.2 Various representations of an AND gate 4–22


Boolean Functions and Expressions

•Question: How many different Boolean functions of degree 1


are there?

•Solution: There are four of them, F1, F2, F3, and F4:

x F1 F2 F3 F4

0 0 0 1 1

1 0 1 0 1

4–23
Boolean Functions and Expressions

•Question: How many different Boolean functions of degree 2


are there?

•Solution: There are 16 of them, F1, F2, …, F16:

•x •y •F •F •F •F •F •F •F •F •F •F1 •F1 •F1 •F1 •F1 •F1 •F1


2 3 5 6 8 9
1 4 7 0 1 2 3 4 5 6

•0 •0 •0 •0 •0 •0 •0 •0 •0 •0 •1 •1 •1 •1 •1 •1 •1 •1
•0 •1 •0 •0 •0 •0 •1 •1 •1 •1 •0 •0 •0 •0 •1 •1 •1 •1
•1 •0 •0 •0 •1 •1 •0 •0 •1 •1 •0 •0 •1 •1 •0 •0 •1 •1
•1 •1 •0 •1 •0 •1 •0 •1 •0 •1 •0 •1 •0 •1 •0 •1 •0 •1

4–24
Boolean Functions and Expressions

•Question: How many different Boolean functions of degree n


are there?

•Solution:

•There are 2n different n-tuples of 0s and 1s.

•A Boolean function is an assignment of 0 or 1 to each of these


2n different n-tuples.
n
•Therefore, there are 22 different Boolean functions.

4–25
Duality
•There are useful identities of Boolean expressions that can
help us to transform an expression A into an equivalent
expression B

•We can derive additional identities with the help of the dual of
a Boolean expression.

•The dual of a Boolean expression is obtained by


interchanging Boolean sums and Boolean products and
interchanging 0s and 1s.

4–26
Duality
•Examples:

•The dual of x(y + z) is •x + yz.

•The dual of -x1 + (-y + z) is •(-x + 0)((-y)z).

•The dual of a Boolean function F represented by a Boolean


expression is the function represented by the dual of this
expression.

•This dual function, denoted by Fd, does not depend on the


particular Boolean expression used to represent F.

4–27
Duality
•Therefore, an identity between functions represented by
Boolean expressions remains valid when the duals of both
sides of the identity are taken.
•We can use this fact, called the duality principle, to derive
new identities.
•For example, consider the absorption law
x(x + y) = x.
•By taking the duals of both sides of this identity, we obtain the
equation x + xy = x, which is also an identity (and also called
an absorption law).

4–28
4–29
4–30
OR Gate

• If the two input values are both 0, the


output value is 0; otherwise, the output is 1

Figure 4.3 Various representations of a OR gate


4–31
4–32
Logic Gates
•Example: How can we build a circuit that computes the
function xy + (-x)y ?

x xy
y
xy + (-x)y

x -x
(-x)y
y

4–33
4–34
4–35
XOR Gate

• XOR, or exclusive OR, gate


– An XOR gate produces 0 if its two inputs are
the same, and a 1 otherwise
– Note the difference between the XOR gate
and the OR gate; they differ only in one
input situation
– When both input signals are 1, the OR gate
produces a 1 and the XOR produces a 0

4–36
XOR Gate

Figure 4.4 Various representations of an XOR gate

4–37
NAND and NOR Gates

• The NAND and NOR gates are essentially the


opposite of the AND and OR gates, respectively

Figure 4.5 Various representations


of a NAND gate

Figure 4.6 Various representations


of a NOR gate
4–39
4–40
4–41
Gates with More Inputs

• Gates can be designed to accept three or more


input values
• A three-input AND gate, for example, produces
an output of 1 only if all input values are 1

Figure 4.7 Various representations of a three-input AND gate 4–42


3-Input And gate
A B C Y
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0 Y=A. B. C
1 1 0 0
1 1 1 1

4–43
Constructing Gates

• A transistor is a device that acts, depending on


the voltage level of an input signal, either as a
wire that conducts electricity or as a resistor that
blocks the flow of electricity
– A transistor has no moving parts, yet acts like
a switch
– It is made of a semiconductor material, which is
neither a particularly good conductor of electricity,
such as copper, nor a particularly good insulator, such
as rubber

4–44
Circuits

• Two general categories


– In a combinational circuit, the input values explicitly
determine the output
– In a sequential circuit, the output is a function of the
input values as well as the existing state of the circuit

• As with gates, we can describe the operations


of entire circuits using three notations
– Boolean expressions
– logic diagrams
– truth tables
4–45
Combinational Circuits

• Gates are combined into circuits by using the


output of one gate as the input for another

AND

OR

AND

Page 99 4–46
Combinational Circuits

Page 100

• Because there are three inputs to this circuit, eight rows


are required to describe all possible input combinations
• This same circuit using Boolean algebra:
(AB + AC) 4–47
Now let’s go the other way; let’s take a
Boolean expression and draw

• Consider the following Boolean expression: A(B + C)

Page 100

Page 101

• Now compare the final result column in this truth table to


the truth table for the previous example
• They are identical
4–48
Simple design problem

• A calculation has been done and its results


• are stored in a 3-bit number
• Check that the result is negative by anding
• the result with the binary mask 100
• Hint: a “mask” is a value that is anded with
• a value and leaves only the important bit

4–49
Now let’s go the other way; let’s take a
Boolean expression and draw

• We have therefore just demonstrated circuit


equivalence
– That is, both circuits produce the exact same output
for each input value combination

• Boolean algebra allows us to apply provable


mathematical principles to help us design
logical circuits

4–50
Adders

• At the digital logic level, addition is


performed in binary
• Addition operations are carried out
by special circuits called, appropriately,
adders

4–51
Adders

• The result of adding two


binary digits could (XOR) (AND)
produce a carry value
• Recall that 1 + 1 = 10
in base two
• A circuit that computes
the sum of two bits
and produces the
correct carry bit is
called a half adder
• Notice the Sum & Carry
are NEVER both 1.

4–52
Adders

• Circuit diagram
representing
a half adder
• Two Boolean
expressions:

sum = A  B
carry = AB
Page 103

4–53
Adders

• A circuit called a full adder takes the


carry-in value into account

Figure 4.10 A full adder 4–54


Adding Many Bits

• To add 2 8-bit values, we can duplicate a


full-adder circuit 8 times. The carry-out
from one place value is used as the carry
in for the next place value. The value of
the carry-in for the rightmost position is
assumed to be zero, and the carry-out of
the leftmost bit position is discarded
(potentially creating an overflow error).

4–55
4–56
NAND and NOR
as Universal Logic Gates

• Any logic circuit


can be built using
only NAND gates,
or only NOR
gates. They are
the only logic
gate needed.
• Here are the
NAND
equivalents:

4–57
NAND and NOR as Universal Logic Gates
(cont)

• Here are the


NOR
equivalents:
• NAND and
NOR can be
used to reduce
the number of
required gates
in a circuit.
4–58
4–59
4–60
Practice Assignment (check
the result)

4–61
Boolean Functions and Expressions

•Definition: The Boolean functions F and G of n variables are


equal if and only if F(b1, b2, …, bn) = G(b1, b2, …, bn) whenever
b1, b2, …, bn belong to B.

•Two different Boolean expressions that represent the same


function are called equivalent.

•For example, the Boolean expressions xy, xy + 0, and xy1 are


equivalent.

4–62
Boolean Functions and Expressions

•The complement of the Boolean function F is the function –F,


where –F(b1, b2, …, bn) =
-(F(b1, b2, …, bn)).

•Let F and G be Boolean functions of degree n. The Boolean


sum F+G and Boolean product FG are then defined by

•(F + G)(b1, b2, …, bn) = F(b1, b2, …, bn) + G(b1, b2, …, bn)

•(FG)(b1, b2, …, bn) = F(b1, b2, …, bn) G(b1, b2, …, bn)

4–63

You might also like