Title: Logic Circuits and Computer Architecture
1Logic Circuits and Computer Architecture
- Appendix A
- Digital Logic Circuits
- Part 1 Combinational Circuits
- and Minimization
2Structured organization
- Problem-oriented language level
- Assembly language level
- Operating system machine level
- Instruction set architecture level
- Microarchitecture level
- Digital logic level
Abstraction lelvel
3Digital Logic level
- Digital circuits
- Only two logical levels present (i.e., binary)
- low/high voltage
- Basic gates
- AND, OR, NOT
- Basic circuits
- Combinational (without memory, stateless)
- Sequential (with memory, state dependent
behaviour)
4Boolean Algebra
- Variables A, B,
- Domain of variables 2 values
- 1 or 0 Y or N true or false
- Fundamental Operations
- AND, OR, NOT
- Intended meaning (for humans - Laws of Thought)
- AND both inputs are true
- OR at least one input is true
- NOT negate the input
- Named from George Boole
5George Boole (1815-1864)
An Investigation of the Laws of Thought, on
Which are founded the Mathematical Theories of
Logic and Probabilities (1854)
6Claude Shannon (1916-2001)
A Symbolic Analysis of Relay and Switching
Circuits (1938)
ENIAC (Electronic Numerical Integrator And
Calculator) (1946)
7Formal definition of functions (1)
- By means of truth tables
- Explicit representation of the output for all
possible inputs
A B OR
0 0 0
0 1 1
1 0 1
1 1 1
A B AND
0 0 0
0 1 0
1 0 0
1 1 1
A NOT
0 1
1 0
8truth table for a 3-variable function
- f(A,B,C) 1 if and only if at least 2 variables
are equal to 1
A B C f(A,B,C)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
9Formal definition of functions (2)
- By means of boolean equation
- boolean equation consists of
- variables
- constants 0 and 1
- boolean operations (AND, OR, NOT)
- parentheses
- M OR( AND(NOT(A),NOT(B)), AND(A,B) )
-
10Boolean functions
- Conventions
- NOT (negation) NOT(A) A A
- AND (conjunction) AND(A,B) AB A.B
- OR (disjunction) OR(A,B) AB
M OR( AND(NOT(A),NOT(B)), AND(A,B) ) M
(((A)(B)) (AB))
11Boolean Operator Precedence
- The order of evaluation in boolean expression is
- Parentheses
- NOT
- AND
- OR
- Consequence parantheses appear around OR
expressions - Example FA(BC)(CD)
M (((A)(B)) (AB)) M AB AB
12NOT gate - the simplest one
- NOT gate - inverts the signal
- If A is 0, X is 1
- If A is 1, X is 0
- A NOT gate is also called an inverter
13AND gate
- Output is 1 if all inputs are 1
- In general, if the AND gate has N inputs, both
input 1 AND input 2 AND AND input N must be 1
for the output to be 1 - 2-input AND gate
14OR gate
- Output is 1 if at least one input is 1
- In general, if the OR gate has N inputs, input 1
OR input 2 OR OR input N must be 1 for the
output to be 1 - 2-input OR gate
15A more complex example
- 2-input equivalence circuit
- The output is 1 if the inputs are the same
- (i.e., both 0 or both 1)
- Truth table
- Boolean function
- M AB AB
A B M
0 0 1
0 1 0
1 0 0
1 1 1
16Formal definition of functions (3)
- By means of logic circuits
- Combination of logic gates joined by wires
17Conventions for logic circuits
18Exercise (1)
- Write the truth table and the logic circuit for
- F X YZ
19Truth table
X Y Z F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
20Logic Circuit
21Exercise (2)
- Write the boolean function and its truth table
for the following logic circuit
22Function and Truth Table
X Y Z F
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
23Exercise (3)
- Write the boolean function and its truth table
for the following logic circuit
24Function and Truth Table
25Conversion between represent.
- Circuit -gt
- -gt Boolean formula (left-to-right inspection)
- -gt Truth table (explicit case-by-case
computation) - Boolean formula -gt
- -gt Circuit (bottom-up construction)
- -gt Truth table (explicit case-by-case evaluation)
- Truth table -gt
- -gt Circuit (through boolean formula)
- -gt Boolean formula (through canonical form see
later)
26Boolean Identities
duality principle any algebraic equality remains
true when the operators OR and AND, and the
elements 0 and 1 are interchanged
- 1A A 0A A Identity
- 0A 0 1A 1 Null
- AA A AA A Idempotent
- AA 0 AA 1 Inverse
- AB BA AB BA Commutative
- (AB)C A(BC) (AB)C A(BC) Associative
- ABC (AB)(AC) A(BC) ABAC Distributive
- A(AB) A AAB A Absorption
- (AB) AB (AB) AB De Morgan
27Truth tables to verify De Morgans theorem
28Remark Each equality remains true if you
sobstitute any variable with any expression
Examples
(AB)(ACD) A BCD
(distributive)
((ABC)(DA)) (ABC) (DA)
(De Morgan) A
(BC) DA (De Morgan)
A(BC) DA
29 algebraic manipulation
F XYZ XYZ XZ (distributive)
XY(Z Z) XZ (inverse) XY 1
XZ (identity) XY XZ
30Boolean Algebra Vs Switching Algebra (1)
A Boolean Algebra is a structure A ltA, , ,
, 0, 1gt where
- A is a set
- and are binary operations
- is a unary operation
- 0, 1 ? A
satisfying the following axioms
(i) and are commutative
(ii) 0 and 1 satisfy a1a and a0a, ? a
?A
(iii) and distribute over each other
(iv) for each element a ?A, there exists an
element a ?A such that a
a 1 and aa0
31Boolean Algebra Vs Switching algebra (2)
Switching Algebra is the following boolean algebra
A lt0,1, , , , 0, 1gt
32Observation Axioms (i)-(iv) can be used to prove
all the other identities
An example Idempotent X X X
X X (X X)1 (ii)
(X X)(X X) (iv)
X (XX) (iii)
X 0
(iv) X
(ii)
33De Morgan circuit equivalents
- AND/OR can be interchanged if you invert the
inputs and outputs
bubble means inversion
34NAND gate - the negation of AND
- The opposite of the AND gate is the NAND gate
(output is 0 if all inputs are 1) - Truth table
- Logic diagram
A B NAND
0 0 1
0 1 1
1 0 1
1 1 0
35NOR gate - the negation of OR
- The opposite of the OR gate is the NOR gate
(output is 0 if any input is 1) - Truth table
- Logic diagram
A B NOR
0 0 1
0 1 0
1 0 0
1 1 0
36Exercise
- Write the truth table for
- a 3 input NAND gate
- a 3 input NOR gate
37XOR gate - the exclusive OR
- For a 2-input gate
- Output is 1 if exactly one of the inputs is 1
- Truth table
- Logic diagram
- For gt 2 inputs output is 1 if
- an odd number of inputs is 1
A B XOR
0 0 0
0 1 1
1 0 1
1 1 0
38Universal Gates
- How many logical functions there are with n
input? - With n inputs there are 2(2n ) possible logical
functions
A B 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
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
39Universal Gates (2)
- AND, OR, NOT can generate all possible boolean
functions (see later) - Is it possible to use fewer basic operations?
- Universal gate a gate type that can implement
any Boolean function
40Universal Gates (3)
- AND, NOT are enough !
- OR, NOT are enough !
- Even NAND alone or NOR alone are enough !
41How NAND simulates AND, OR
42Alternative NAND representations
43How NOR simulates AND, OR
44Alternative NOR representations
45Gate equivalence
- Any AND, OR, NOT gate can be obtained using just
NAND gates or just NOR gates - Consequence any circuit can be constructed using
just NAND gates or just NOR gates (easier to
build)
46Equivalence modifications (1)
47Equivalence modifications (2)
- Substitute equivalent gates
48Transforming OR, AND to NAND
- Transform the following circuit
49Solution
50Exercise
- Write a NAND only logic circuit for
- F XY XY Z
51Solution
52Exercise
- Write a NAND only logic circuit for the exclusive
OR function (XOR) -
- XOR(A,B) AB AB
53Solution (1)
- Truth table initial circuit
A B XOR
0 0 0
0 1 1
1 0 1
1 1 0
54Solution (2) equivalence transform.
A B A B
A B A B
55Exercise
- Write a NOR only logic circuit for
- F (AD)(CD)E
56Solution
57SOP and POS rapresentations
- It is useful to specify boolean function in a
particular form - sum of products (SOP) rapresentation
- it is an OR of AND combinations of its inputs
- F1AB BC it is a SOP rapresentation
- F2 AB (BC) it is not a SOP rapresentation
- product of sums (POS) rapresentation
- it is an AND of OR combiations of its inputs
- F1A(B C)(BA) it is a POS rapresentation
- F2AB BC it is not a POS rapresentation
58Exercise
- Express Z(A(BC(AB))) as sum of products
59Solution
- Z(A(BC(AB)))
- A (BC(AB))
- A B(C(AB))
- A B(C(AB))
- A B(CAB)
- A BC ABB
- A BC A0
- A BC 0 A BC
60Canonical Form for boolean functions
- It is a standard way of expressing SOP or POS
- It is
- a sum of minterms, for SOP
- a product of maxterms for POS
- A minterm is a product containing all variables,
either in the positive form or in the negative
form - A maxterm is a sum containing all variables,
either in the positive or in the negative form. - Examples
- F (ABC) (BC) is not in a POS canonical
form - M AB ABC is not in a SOP canonical form
61Minterms
- Given that each variable may appear normal (e.g.
X) or complemented (e.g. X), there are 2n
minterms for n variables - Example Two variables (X and Y) produce 4
combinations - XY
- XY
- XY
- XY
- Thus there are 4 minterms of 2 variables
62Maxterms
- Given that each variable may appear normal (e.g.
X) or complemented (e.g. X), there are 2n
maxterms for n variables - Example Two variables (X and Y) produce 4
combinations - XY
- XY
- XY
- XY
- Thus there are 4 maxterms of 2 variables
63Maxterms and Minterms
- Examples 2 variable minterms and maxterms
- The index above is important for describing which
variables in the terms are true and which are
complemented
Index Minterm Maxterm
0 XY XY
1 XY XY
2 XY XY
3 XY XY
64Number Systems Representation
- Positive radix, positional number systems
- A number with radix r is represented by a string
of digits An - 1An - 2 A1A0 . A- 1 A- 2
A- m 1 A- m in which 0 Ai lt r and . is the
radix point. - The string of digits represents the power series
(
)
(
)
65Number Systems Examples
General Decimal Binary
Radix (Base) r 10 2
Digits 0 gt r - 1 0 gt 9 0 gt 1
0 1 2 3 4 5 -1 -2 -3 -4 -5 r0 r1 r2 r3 r4 r5 r -1 r -2 r -3 r -4 r -5 1 10 100 1000 10,000 100,000 0.1 0.01 0.001 0.0001 0.00001 1 2 4 8 16 32 0.5 0.25 0.125 0.0625 0.03125
powers of radix
66Standard Order
- Minterms and Maxterms are designated with
subscript - The subscript is a numer, corresponding to a
binary pattern - The bits in the pattern represent the
complemented or normal state of each variable
listed in a standard order - All the variables will be present in a minterm or
maxterm and will be listed in the same order
(usually alphabetically) - Example For variables A, B, C
- Maxterms (A B C), (A B C)
- Terms (B A C), ACB, and (C B A) are
NOT in standard order - Minterms ABC, ABC, ABC
- Terms (AC), BC, and (AB) do not contain
all variables
67Purpose of the Index
- The index for the minterm or maxterm, expressed
as a binary number, is used to determine whether
the variable is shown in the true form or
complemented form. - For Minterms
- 1 means the variable is Not Complemented and
- 0 means the variable is Complemented
- For Maxterms
- 0 means the variable is Not Complemented and
- 1 means the variable is Complemented
68X Y Z Minterm Symbol m0 m1 m2 m3 m4 m5 m6 m7
0 0 0 XYZ m0 1 0 0 0 0 0 0 0
0 0 1 XYZ m1 0 1 0 0 0 0 0 0
0 1 0 XYZ m2 0 0 1 0 0 0 0 0
0 1 1 XYZ m3 0 0 0 1 0 0 0 0
1 0 0 XYZ m4 0 0 0 0 1 0 0 0
1 0 1 XYZ m5 0 0 0 0 0 1 0 0
1 1 0 XYZ m6 0 0 0 0 0 0 1 0
1 1 1 XYZ m7 0 0 0 0 0 0 0 1
69X Y Z Maxterm Symbol M0 M1 M2 M3 M4 M5 M6 M7
0 0 0 XYZ M0 0 1 1 1 1 1 1 1
0 0 1 XYZ M1 1 0 1 1 1 1 1 1
0 1 0 XYZ M2 1 1 0 1 1 1 1 1
0 1 1 XYZ M3 1 1 1 0 1 1 1 1
1 0 0 XYZ M4 1 1 1 1 0 1 1 1
1 0 1 XYZ M5 1 1 1 1 1 0 1 1
1 1 0 XYZ M6 1 1 1 1 1 1 0 1
1 1 1 XYZ M7 1 1 1 1 1 1 1 0
70Minterm and Maxterm Relationship
y
x
y
x
y
x
y
x
- DeMorgan's Theorem
- Two-variable example
- Thus M2 is the complement of m2 and vice-versa.
- Since DeMorgan's Theorem holds for n variables,
the above holds for terms of n variables - giving
-
- Thus Mi is the complement of mi.
y
x
m
y
x
M
2
2
71Boolean function implementation
- Any function can be implemented as the OR of the
AND combinations of its inputs - canonical SOP
- Start from the truth table
- For each 1 in the output
- Write its inputs in AND
- Write these in OR
- MABCABCABCABC
- m3m5m6m7
A B C M
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
72Equivalent Logic Circuit
73Boolean function implem. (2)
- Any function can be implemented as the AND of the
OR combinations of its inputs - canonical POS
- Start from the truth table
- For each 0 in the output
- Write its inputs in AND
- Write these negated in AND
- Obtain F Z0 . Z1 . Z2 ...
- Finally, apply De Morgan to F
- It is an AND combination of maxterms
A B C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
74Boolean function implem. (3)
- De Morgan (general) (ABC)ABC
- F(ABC).(ABC).(ABC).(ABC).(ABC)
- (ABC).(ABC).(ABC).
- .(ABC).(ABC)
- (ABC).(ABC).(ABC).
- .(ABC).(ABC)
- M0M1M4M5M7
75Boolean function implem. (4)
- Alternative procedure for POS form (use only if
you know what you are doing!) - Complement the table by substituting everywhere a
0 with a 1 and a 1 with a 0 - Write a SOP form for the complemented table
- Complement the formula by substituting everywhere
and AND with an OR and an OR with an AND - Why does it work ???
76Example canonical SOP
X Y Z F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
m1 m3 m6 m7
0 0 0 0
1 0 0 0
0 0 0 0
0 1 0 0
0 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
canonical SOP
F m1 m3 m6 m7 XYZ XYZ XYZ
XYZ
77Example canonical POS
X Y Z F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
M0 M2 M4 M5
0 1 1 1
1 1 1 1
1 0 1 1
1 1 1 1
1 1 0 1
1 1 1 0
1 1 1 1
1 1 1 1
canonical POS
F M0 M2 M4 M5 (XYZ) (XYZ)
(XYZ) (XYZ)
78 algebraic manipulation
F XYZ XYZ XZ XY(Z Z) XZ
XY 1 XZ XY XZ
a simpler SOP representation leads to a
simpler circuit
79Circuit Optimization
- Goal To obtain the simplest implementation for a
given function - Optimization is a more formal approach to
simplification that is performed using a specific
procedure or algorithm - Optimization requires a cost criterion to measure
the simplicity of a circuit - Optimization for two-level (SOP and POS)
circuits - minimal SOP
- minimum number of pruduct terms
- minimum number of literals for each product term
- similarly for POS
80Minimization procedures
- Karnaughs maps (by hand)
- Used to minimize boolean functions of up to 4
input variables - For more variables use the method of
Quine-McKluskey (programmable)
81Karnaughs Maps (KM)
- Grid-like representation for boolean functions
- Each cell represents a minterm
- The K-map can be viewed as a reorganized version
of the truth table - Minterms with just one variable different
occupies adjacent cells - Alternative algebraic expressions for the same
function are derived by recognizing patterns of
squares - Consider only 1s in the representation (focusing
on a SOP representation) - IDEA if 2 adjacent cells have a 1 the function
can be simplified
82A KM for 2-variable functions
- The generic KM
- Function F XY Function F X Y
83A KM for 3-variable functions
84example
X Y Z FZ
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
1
1
1
1
85X Y Z FZ
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
1
1
1
1
86X Y Z FYZ
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
1
1
87An example
XY(ZZ) XY(ZZ) XY XY
X Y Z F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 0
- Idea
- we want to cover all 1s by using rectangles of
adjacent cells - each rectangle of 2k adjacent cells (for some k)
represents a literal - product term
- bigger rectangles correspond to simpler product
terms
88Combining Squares
- By combining squares, we reduce number of
literals in a product term - On a 3-variable K-Map
- One square represents a minterm with three
variables - Two adjacent squares represent a product term
with two variables - Four adjacent terms represent a product term
with one variable - Eight adjacent terms is the function of all
ones (no variables) 1.
89Circular adjacencies for 3 variables
labels are useful to get the expression correspond
ing to a given rectangle
90Three-Variable Maps
- Example Shapes of 2-cell Rectangles
y
XY
XZ
YZ
91Three-Variable Maps
- Example Shapes of 4-cell Rectangles
y
92Four 1 adjacents
F XYZ XYZ XYZ XYZ YZ(XX)
YZ (XX) YZ YZ Z(YY) Z
93Exercise (1)
- Which is the minimal SOP expression for function
F1m3m4m6m7?
94Solution
95Exercise (2)
- Which is the minimal SOP expression for function
F2m0m2m4m5m6?
96Solution
97k-cube of 1s
- Is a set of 2k adjacent cells
- 0-cube, 1 cell, a minterm
- 1-cube, 2 adjacent cells
- 2-cube, 4 adjacent cells
- 3-cube, 8 adjacent cells
- .
98Prime implicants
- F P1 P2 P3 ...
- The term corresponding to a k-cube is called an
implicant - Infact, it is a term Pn which implies the
function F, - i.e. if Pn is true then F is true
- An implicant is said to be a prime implicant for
F if it does not imply any other implicant of F - A prime implicant can be chosen by selecting a
maximal k-cube, i.e. a k-cube in the KM which is
not contained in any larger h-cube (hgtk)
99Minimal representation
- F P1 P2 P3 ...
- has a minimal SOP representation if
- 1. Each Pi is a prime implicant
- 2. There is a minimum number of them
100Minimality procedure
- Find maximal k-cubes (prime implicants)
- If a 1 is covered by only one maximal k-cube this
has to be chosen (essential prime implicants) - Select a minimum number of the remaining k-cube
so to cover all 1s not covered by essential prime
implicants
101Exercise (3)
- Find the minimal SOP expression for
- Fm1m3m4m5m6
1
1
1
1
1
FXZXZXY
102Exercise (3)
- Find the minimal SOP expression for
- Fm1m2m3m5m7
1
1
1
1
1
FZXY
103A KM for 4-variable functions
104Circular adjacenciesfor 4 variables
105Four Variable Terms
- Four variable maps can have rectangles
corresponding to - A single 1 4 variables, (i.e. Minterm)
- Two 1s 3 variables,
- Four 1s 2 variables
- Eight 1s 1 variable,
- Sixteen 1s zero variables (i.e. Constant "1")
106Four-Variable Maps
- Example Shapes of Rectangles
XZ
YW
XZ
107Four-Variable Maps
- Example Shapes of Rectangles
Y
X
W
Z
108Example
- Simplify F(A, B, C, D) given on the K-map.
minimal SOP ABACDACDBCD
109One more example
minimal SOP BDBDCDAB
ESSENTIAL Prime Implicants
C
110Five Variable or More K-Maps
- For five variable problems, we use two adjacent
K-maps. It becomes harder to visualize adjacent
minterms for selecting k-cubes. - You can extend the problem to six variables by
using four K-Maps.
111The KM method for POS
- Which is the POS expression of function F
represented by this KM? - Use the same method used for build POS canonical
form from truth tables - Find the minimal SOP for F
- apply DeMorgan
112Example
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
- F (CDBDAB) (CD) . (BD) . (AB)
- (CD) . (BD) . (A B)
- (CD) . (BD) . (A B)
113Don't Cares in K-Maps
- Sometimes a function table or map contains
entries for which it is known - the input values for the minterm will never
occur, or - the output value for the minterm is not used
- In these cases, the output value need not be
defined - Instead, the output value is defined as a don't
care - By placing don't cares ( an x entry) in the
function table or map, the cost of the logic
circuit may be lowered.
114Example 1
A B C D f(A,B,C,D)
0 0 0 0 f(0,0,0,0)
0 0 0 1 f(0,0,0,1)
0 0 1 0 f(0,0,1,0)
0 0 1 1 f(0,0,1,1)
0 1 0 0 f(0,1,0,0)
0 1 0 1 f(0,1,0,1)
0 1 1 0 f(0,1,1,0)
0 1 1 1 f(0,1,1,1)
1 0 0 0 f(1,0,0,0)
1 0 0 1 f(1,0,0,1)
1 0 1 0 x
1 0 1 1 x
1 1 0 0 x
1 1 0 1 x
1 1 1 0 x
1 1 1 1 x
- A logic function having the binary codes for the
BCD digits as its inputs. - Only the codes for 0 through 9 are used.
- The six codes, 1010 through 1111 never occur, so
the output values for these codes are x to
represent dont cares.
115Example 2
- Consider the following function f(A,B)
- f(A,B)1 if AB0
- f(A,B)0 if A ? B
Truth table on the left may be substitued by
anyone on the right
A B f
0 0 1
0 1 0
1 0 0
1 1 x
A B f
0 0 1
0 1 0
1 0 0
1 1 0
A B f
0 0 1
0 1 0
1 0 0
1 1 1
116Example 3
- Consider the following function f(A,B)
- f(A,B)1 if AB0
- f(A,B)0 if A ? B
- f(A,B) is used just as input for another function
g(f,A,B)(AB) f(A,B)
A B f
0 0 1
0 1 0
1 0 x
1 1 x
Notice that for A1 and B0 g(f,A,B) (10)
f(A,B) 0
117Example
f(W,X,Y,Z) YZ XW
X
X
1
1
Simplify the choice, since each X can be
considered a 0 or a 1
X
1
1
1
118Example
f(W,X,Y,Z) YZ ZW
X
X
1
1
a different choise is possible
X
1
1
1