PPT

advertisement
CS 278
Digital System Design
Course Preliminaries

Teaching Staff

Professor Dan Ernst



Office Hours:
 Weds. 9-11am, Fri. 1-3pm
 … or by appointment
Phillips 139
ernstdj@uwec.edu

Course web page access

Course notes are posted online at

http://www.cs.uwec.edu/~ernstdj/courses/cs278/

All assignments and labs will be posted there as well

Textbook:

Grading policies


Assignments/Quizzes ( 15% )
Three exams ( 15% each – 45% total )



Labs ( 25% )
Project ( 15% )


More info later
Attendance not directly counted towards grade


2 midterms + 1 final
There will be turn-ins during lab time
Lab room is P122!

Hardware Boards (1)

The Altera UP2 Development Board

Handle with care, and leave them in the lab!

Hardware Boards (2)

The IDL-800 Digital Logic Trainer with solderless
breadboard isn’t cheap either

These must stay in the lab, along with all of the supplies
Digital System Design
Digital Logic Design

Voltage levels not
saved/copied/transmitted
perfectly
2
1
0
Digitized version enables
near-perfect save/cpy/trn.



“Sample” voltage at
particular rate, save
sample using bit
encoding
Voltage levels still not
kept perfectly
But we can distinguish
0s from 1s
original signal
time
01 10 11 10 11
a2d
1 digitized signal
0
time
01 10 11 10 11
Volts
Let bit encoding be:Digitized signal not
perfect re-creation,
1 V: “01”
3
but
higher
sampling
2 V: “10”
rate and more bits per 2
3 V: “11”
encoding brings closer. 1
0
lengthy transmission
(e.g, cell phone)

3
lengthy transmission
(e.g, cell phone)
Analog signal (e.g., audio)
may lose quality
Volts

Volts
Example of Digitization Benefit
3
2
1 received signal
0
time
How fix -- higher, lower,
?
a
1
0
time
Can fix -- easily distinguish
0s and 1s, restore
d2a
time
Implementing Digital Systems:
Using mprocessors Vs. Designing Digital Circuits
Programmed
Desired motion-at-night detector microprocessor
Custom designed
digital circuit
Microprocessors a
common choice to
implement a digital
system



I0
I1
I2
I3
I4
I5
I6
I7
microprocessor
P0
P1
P2
P3
P4
P5
P6
P7
Easy to program
Cheap (as low
as < $1)
Available now
void main()
1
a
{
0
while (1) {
1
b
P0 = I0 && !I1; 0
// F = a and !b,
1
F
}
0
}
6:00
7:057:06
9:009:01
time
Digital Design:
When mprocessors Aren’t Good Enough

With microprocessors so easy,
cheap, and available, why
design a digital circuit?


Image Sensor
(a)
Microprocessor may be too
slow
Or too big, power hungry, or
costly
Memory
Image Sensor
Microprocessor
Q: How long for each
implementation option?
(Read,
Compress,
and Store)
Read
circuit
5+8+1
=14 sec
Compress
circuit
(b)
Sample digital camera task execution times (in
seconds) on a microprocessor versus a digital
circuit:
Task
Microprocessor
Read
5
0.1
Compress
8
0.5
Store
1
0.8
Store
circuit
Memory
Image Sensor
Custom
Digital Circuit
(c)
Memory
.1+.5+.8
=1.4 sec
Read
circuit
Compress
circuit
Microprocessor
(Store)
a
.1+.5+1
=1.6 sec
Good
compromise
Introduction


Let’s learn to design digital circuits
We’ll start with a simple form of circuit:
 Combinational circuit
 A digital circuit whose outputs
depend solely on the present
combination of the circuit inputs’
values
Digital circuit
1
a
b
Combinational
0
1
F
digital circuit
1
a
b
Sequential
0
digital circuit
?
F
Switches

Switches are the basis of binary
digital circuits
 Electrical terminology

Voltage: Difference in electric
potential between two points




Analogous to water flow
Resistance: Tendency of wire
to resist current flow

4.5 A
9V
4.5 A
+
2 ohms
Analogous to water pressure
Current: Flow of charged
particles

–
Analogous to water pipe diameter
V = I * R (Ohm’s Law)
9V
0V
4.5 A
Switches
control
input

A switch has three parts

Source input, and output


source
input
Current wants to flow from source
input to output
Control input


“off”
Voltage that controls whether that
current can flow




Initially just a few transistors on IC
Then tens, hundreds, thousands...
control
input
“on”
output
(b)
1930s: Relays
1940s: Vacuum tubes
1950s: Discrete transistor
1960s: Integrated circuits (ICs)

a
source
input
The amazing shrinking switch

output
relay
discrete
transistor
vacuum tube
IC
quarter
(to see the relative size)
Moore’s Law
The Power of Miniaturization
EDSAC 1 (1949)
~ 500 OPs
Pentium 4 (2002)
~ 12 GFLOPs
24,000,000 times faster
The CMOS Transistor

CMOS transistor

Basic switch in modern ICs
a
nMOS
gate
1
0
conducts
does not
conduct
1
0
pMOS
gate
Silicon -- not quite a conductor or insulator:
Semiconductor
does not
conduct
conducts
Boolean Logic Gates
Building Blocks for Digital Circuits
(Because Switches are Hard to Work With)

“Logic gates” are better digital circuit building blocks than switches (transistors)


Why?...
Abstraction
Boolean Algebra and Digital Circuits



To understand the benefits of “logic gates” vs.
switches, we should first understand Boolean algebra
a b AND
“Traditional” algebra
0 0 0
0 1 0
1 0 0
 Variable represent real numbers
1 1 1
 Operators operate on variables, return real numbers
a b OR
0 0 0
Boolean Algebra
0 1 1
1 0 1
1 1 1
 Variables represent 0 or 1 only
 Operators return 0 or 1 only
a NOT
0 1
1 0
 Basic operators



AND: a AND b returns 1 only when both a=1 and b=1
OR: a OR b returns 1 if either (or both) a=1 or b=1
NOT: NOT a returns the opposite of a (1 if a=0, 0 if a=1)
Boolean Algebra and Digital Circuits

Developed mid-1800’s by George Boole to formalize human thought

Ex: “I’ll go to lunch if Mary goes OR John goes, AND Sally does not go.”




Let F represent my going to lunch (1 means I go, 0 I don’t go)
Likewise, m for Mary going, j for John, and s for Sally
Then F = (m OR j) AND NOT(s)
Nice features

b
0
1
0
1
AND
0
0
0
1
a
0
0
1
1
b
0
1
0
1
OR
0
1
1
1
Formally evaluate


a
0
0
1
1
m=1, j=0, s=1 --> F = (1 OR 0) AND NOT(1) = 1 AND 0 = 0
Formally transform

F = (m and NOT(s)) OR (j and NOT(s))

Looks different, but same function

We’ll show transformation techniques soon
a
0
1
NOT
1
0
Evaluating Boolean Equations
a

Evaluate the Boolean equation
F = (a AND b) OR (c AND d)
for the given values of variables a, b, c, and d:
 Q1: a=1, b=1, c=1, d=0.


Q2: a=0, b=1, c=0, d=1.


Answer: F = (1 AND 1) OR (1 AND 0) = 1 OR 0
= 1.
Answer: F = (0 AND 1) OR (0 AND 1) = 0 OR 0
= 0.
Q3: a=1, b=1, c=1, d=1.

Answer: F = (1 AND 1) OR (1 AND 1) = 1 OR 1
= 1.
a
0
0
1
1
b
0
1
0
1
AND
0
0
0
1
a
0
0
1
1
b
0
1
0
1
OR
0
1
1
1
a
0
1
NOT
1
0
Converting to Boolean Equations
a

Convert the following English
statements to a Boolean
equation

Q1. a is 1 and b is 1.


Q2. either of a or b is 1.


Answer: F = a AND b
Answer: F = a OR b
Q3. both a and b are not 0.

Answer:



(a) Option 1: F = NOT(a) AND NOT(b)
(b) Option 2: F = a OR b
Q4. a is 1 and b is 0.

Answer: F = a AND NOT(b)
Converting to Boolean Equations
a

Q1. A fire sprinkler system should spray water if high heat
is sensed and the system is set to enabled.


Answer: Let Boolean variable h represent “high heat is sensed,” e
represent “enabled,” and F represent “spraying water.” Then an
equation is: F = h AND e.
Q2. A car alarm should sound if the alarm is enabled, and
either the car is shaken or the door is opened.


Answer: Let a represent “alarm is enabled,” s represent “car is
shaken,” d represent “door is opened,” and F represent “alarm
sounds.” Then an equation is: F = a AND (s OR d).
(a) Alternatively, assuming that our door sensor d represents
“door is closed” instead of open (meaning d=1 when the door is
closed, 0 when open), we obtain the following equation:
F = a AND (s OR NOT(d)).
Building Circuits with Gates
Relating Boolean Algebra to Digital Design
Boolean
algebra
(mid-1800s)
Boole’s intent: formalize
human thought
For telephone
Switches
(1930s) switching and other
NOT
Symbol
Truth table
OR
x
x
F
x
0
1
Shannon (1938)
Digital design
x
F
y
F
1
0
x
0
0
1
1
electronic uses
Showed application
of Boolean algebra
to design of switchbased circuits
AND
y
0
1
0
1
F
0
1
1
1

F
0
0
0
1
0
y
x
Transistor
x
circuit
x
F
F
F
y
y
x
x
0
Implement Boolean operators using transistors

y
0
1
0
1
y
1

x
0
0
1
1
0
1
F
y
Call those implementations logic gates.
Let’s us build circuits by doing math -- powerful concept
1
NOT/OR/AND Logic Gate Timing Diagrams
1
1
1
x
x
0
1
x
0
y
y
1
0
1
F
0
0
1
F
time
0
1
F
0
0
time
time
Building Circuits Using Gates

Recall previous motion-in-dark example



Turn on lamp (F=1) when motion sensed (a=1) and no
light (b=0)
F = a AND NOT(b)
Build using logic gates, AND and NOT, as shown
Example: Converting a Boolean
Equation to a Circuit of Logic Gates

Q: Convert the following equation to logic
gates:
F = a AND NOT( b OR NOT(c) )
a
F
(a)
a
a
b
F
c
(b)
Example: Seat Belt Warning Light System


Design circuit for warning light
Sensors




Capture Boolean equation



s=1: seat belt fastened
k=1: key inserted
p=1: person in seat
person in seat, and seat belt not
fastened, and key inserted
Convert equation to circuit
Notice

w = p AND NOT(s) AND k
Boolean algebra enables easy
capture as equation and conversion
to circuit


How design with switches?
Of course, logic gates are built from
switches, but we think at level of
logic gates, not switches
k
p
s
BeltWarn
w
Some Circuit Drawing Conventions
no
x
yes
F
y
no
yes
ok
not ok
Boolean Algebra
Boolean Algebra

By defining logic gates based on Boolean algebra, we can use algebraic
methods to manipulate circuits


So let’s learn some Boolean algebraic methods
Start with notation: Writing a AND b, a OR b, and NOT(a) is
cumbersome

Use symbols: a * b, a + b, and a’ (in fact, a * b can be just ab).


Original: w = (p AND NOT(s) AND k) OR t
New: w = ps’k + t
Spoken as “w equals p and s prime and k, or t”
Or even just “w equals p s prime k, or t”
s’ known as “complement of s”




While symbols come from regular algebra, don’t say “times” or “plus”
Boolean algebra precedence, highest precedence first.
Symbol
Name
Description
()
Parentheses Evaluate expressions nested in parentheses first
’
NOT
Evaluate from left to right
*
AND
Evaluate from left to right
+
OR
Evaluate from left to right
Operator Precedence

Evaluate the following Boolean equations: a=1, b=1, c=0, d=1.

Q1. F = a * b + c.


Q2. F = ab + c.

a

Answer: we first evaluate b’ because NOT has precedence over AND, resulting
in F = 1 * (1’) = 1 * (0) = 1 * 0 = 0.
Q4. F = (ac)’.


Answer: the problem is identical to the previous problem, using the shorthand
notation for *.
Q3. F = ab’.


Answer: * has precedence over +, so we evaluate the equation as F = (1 *1) + 0
= (1) + 0 = 1 + 0 = 1.
Answer: we first evaluate what is inside the parentheses, then we NOT the
result, yielding (1*0)’ = (0)’ = 0’ = 1.
Q5. F = (a + b’) * c + d’.

Answer: Inside left parentheses: (1 + (1’)) = (1 + (0)) = (1 + 0) = 1. Next, * has
precedence over +, yielding (1 * 0) + 1’ = (0) + 1’. The NOT has precedence over
the OR, giving (0) + (1’) = (0) + (0) = 0 + 0 = 0.
Boolean Algebra Terminology


Example equation:
Variable




Appearance of a variable, in true or complemented form
Nine literals: a’, b, c, a, b, c’, a, b, and c
Product term



Represents a value (0 or 1)
Three variables: a, b, and c
Literal


F(a,b,c) = a’bc + abc’ + ab + c
Product of literals
Four product terms: a’bc, abc’, ab, c
Sum-of-products


Equation written as OR of product terms only
Above equation is in sum-of-products form. “F = (a+b)c + d” is
not.
Boolean Algebra Properties
Textbook pg 30-31
Example uses of the properties:

Commutative



a+b=b+a
a*b=b*a

a * (b + c) = a * b + a * c
a + (b * c) = (a + b) * (a + c)






0+a=a+0=a
1*a=a*1=a

a + a’ = 1
a * a’ = 0
To prove, just evaluate all
possibilities
Use first distributive property



abc + abc’ = ab(c+c’).
Complement property

Replace c+c’ by 1: ab(c+c’) = ab(1).
Identity property


a*b*c’ = a*c’*b = c’*a*b = c’*b*a = c’ba.
Show abc + abc’ = ab.

(a + b) + c = a + (b + c)
(a * b) * c = a * (b * c)
Complement



(this one is tricky!)
Identity
Use commutative property:

Associative

Show abc’ equivalent to c’ba.

Distributive



ab(1) = ab*1 = ab.
Show x + x’z equivalent to x + z.

Second distributive property


Complement property


Replace x+x’z by (x+x’)*(x+z).
Replace (x+x’) by 1,
Identity property

replace 1*(x+z) by x+z.
Examples Using Properties

Want automatic door opener
circuit (e.g., for grocery store)


Output: f=1 opens door
Inputs:




p=1: person detected
h=1: switch forcing hold open
c=1: key forcing closed
Want open door when




h=1 and c=0, or
h=0 and p=1 and c=0
Equation: f = hc’ + h’pc’
h
c
p
DoorOpener
f
Found inexpensive chip that
computes:


Can we use it?


f = c’hp + c’hp’ + c’h’p
Is it the same as f = hc’ + h’pc’?
Use Boolean algebra:
f = c’hp + c’hp’ + c’h’p
f = c’h(p + p’) + c’h’p (by the distributive property)
f = c’h(1) + c’h’p
(by the complement property)
f = c’h + c’h’p
(by the identity property)
f = hc’ + h’pc’
(by the commutative property)
Same!
Additional Properties





•
(a’)’ = a
•


•
To prove, just
evaluate all
possibilities
•
S = a’ + b’ + c’
Alternative: Instead of
lighting “Available,”
light “Occupied”
– Opposite of
“Available” function S
= a’ + b’ + c’
– So S’ = (a’ + b’ + c’)’
• S’ = (a’)’ * (b’)’ * (c’)’
(by DeMorgan’s
Law)
• S’ = a * b * c (by
Involution Law)
Transform
•
(a + b)’ = a’b’
(ab)’ = a’ + b’
Very useful!
Three lavatories, each with
sensor (a, b, c), equals 1 if
door locked
Light “Available” sign (S) if
any lavatory available
Equation and circuit
•
DeMorgan’s
Law


•
a+a=a
a*a=a
•
Behavior
•
Involution Law


•
a+1=1
a*0=0
Idempotent Law


Aircraft lavatory sign example
Null elements
(abc)’ = a’+b’+c’ (by
DeMorgan’s Law)
S = (abc)’
New equation and circuit
– Makes intuitive sense
• Occupied if all doors
are locked
Circuit
Circuit
a
b
c
S
a
b
c
S
Boolean Function Representations
English 1: F outputs 1 when a is 0 and b is 0, or when a is 0 and b is 1.
English 2: F outputs 1 when a is 0, regardless of b’s value
(a)
a
b
Equation 1: F(a,b) = a’b’ + a’b
F
Equation 2: F(a,b) = a’
(c)
(b)
Circuit 1
a
b
F
0
0
1
0
1
1
1
0
0
1
1
0
Truth table
a
F
(d)
Circuit 2
The function F

A function can be represented in different ways

Above shows seven representations of the same functions F(a,b), using
four different methods: English, Equation, Circuit, and Truth Table
Truth Table Representation






a
0
0
1
1
Define value of F for
each possible
combination of input
values
F
(a)
2-input function: 4 rows
3-input function: 8 rows
4-input function: 16 rows
n-input function: 2n rows
Q: Use truth table to
define function F(a,b,c)
that is 1 when abc is 5
or greater in binary
b
0
1
0
1
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
(b)
a
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
F
0
0
0
0
0
1
1
1
F
a
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
b
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
c
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
(c)
d
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
F
Converting among Representations


Can convert from any representation to
any other
Common conversions


Equation to circuit (we did this earlier)
Truth table to equation (which we can
convert to circuit)


Easy -- just OR each input term that
should output 1
Equation to truth table


Easy -- just evaluate equation for each
input combination (row)
Creating intermediate columns helps
Q: Convert to truth table: F = a’b’ + a’b
Inputs
a
a
0
0
1
1
b
0
1
0
1
Output
a' b'
1
0
0
0
a' b
0
1
0
0
F
1
1
0
0
Inputs
Outputs
Term
a
0
0
1
1
F
1
1
0
0
F = sum of
a’b’
a’b
b
0
1
0
1
F = a’b’ + a’b
Q: Convert to equation
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
F
0
0
0
0
0
1
1
1
ab’c
abc’
abc
F = ab’c + abc’ + abc
a
Representation: Truth Table
f = c’hp + c’hp’ + c’h’

How can we determine if two
functions are the same?

f = c’h(1) + c’h’p
Recall automatic door example




f = c’h(p + p’) + c’h’p
f = c’h + c’h’p
Same as f = hc’ + h’pc’?
Used algebraic methods
But if we failed, does that
prove not equal?
(what if we stopped here?)
f = hc’ + h’pc’
Solution: Convert to truth tables Q: Determine if F=ab+a’ is same

Only ONE truth table
representation of a given
function

Truth tables are a standard
representation -- for given
function, only one version in
standard form exists
function as F=a’b’+a’b+ab, by converting
each to truth table first
F = a’b’ +
a’b + ab
F = ab + 'a
a
0
0
1
1
b
0
1
0
1
F
1
1
0
1
a
0
0
1
1
b
0
1
0
1
F
1
1
0
1
a
Canonical Form -- Sum of Minterms


Truth tables too big for numerous inputs
Use standard form of equation instead


Known as canonical form
Regular algebra: group terms of polynomial by power


ax2 + bx + c
(3x2 + 4x + 2x2 + 3 + 1 --> 5x2 + 4x + 4)
Boolean algebra: create sum of minterms



Minterm: product term with every function literal appearing
exactly once, in true or complemented form
Just multiply-out equation until sum of product terms
Then expand each term until all terms are minterms
a
Canonical S-O-P Example
Q: Determine if F(a,b)=ab+a’ is same function as F(a,b)=a’b’+a’b+ab, by
converting first equation to canonical form (second already in canonical
form)
F = ab+a’ (already sum of products)
F = ab + a’(b+b’) (expanding term)
F = ab + a’b + a’b’ (SAME -- same three terms as other equation)
Multiple-Output Circuits



Many circuits have more than one output
Can give each a separate circuit, or can
share gates
Ex: F = ab + c’, G = ab + bc
a
a
b
F
c
b
F
c
G
G
(a)
Option 1: Separate circuits
(b)
Option 2: Shared gates
Multiple-Output Example:
BCD to 7-Segment Converter
a
f
b
g
e
c
d
abcdefg =
(a)
1111110
0110000
1101101
(b)
a = w’x’y’z’ + w’x’yz’ + w’x’yz + w’xy’z +
w’xyz’ + w’xyz + wx’y’z’ + wx’y’z
b = w’x’y’z’ + w’x’y’z + w’x’yz’ + w’x’yz +
w’xy’z’ + w’xyz + wx’y’z’ + wx’y’z
Combinational Logic Design Process
Step
Description
Step 1 Capture the
function
Create a truth table or equations, whichever is
most natural for the given problem, to describe
the desired behavior of the combinational logic.
Step 2 Convert to
equations
This step is only necessary if you captured the
function using a truth table instead of equations.
Create an equation for each output by ORing all the
minterms for that output. Simplify the equations if
desired.
Step 3 Implement
as a gatebased
circuit
For each output, create a circuit corresponding
to the output’s equation. (Sharing gates among
multiple outputs is OK optionally.)
Download