EECE 353/379 - Digital Systems Design: Instructor: Tor Aamodt Office: Phone: Email: TA's
EECE 353/379 - Digital Systems Design: Instructor: Tor Aamodt Office: Phone: Email: TA's
TA’s:
Tariq Al-Khasib [email protected]
Arash Takshi [email protected]
Textbook (“B&V”):
Fundamentals of Digital Logic with VHDL Design, 2nd edition,
by Stephen Brown and Zvonko Vranesic, McGraw Hill, 2004.
Course Outline
• Boolean Alg., Combinational Logic (“Review”)
• Multiplexers, Decoders, Encoders (“Review”)
• VHDL for combinational logic
• Arithmetic Circuits: Fast adders, fast multipliers
• Flip Flops, Registers, Counters
• VHDL for sequential circuits
• State Machine Design, Minimization, Analysis
• ASM chart
• Detailed Design Examples: Sequential
Multiplier/Divider
• Example/Lab: Simple Microprocessor Design
• Example/Lab: Pipelined Microprocessor Design
• Transistor Level Digital Circuit Design Basics
• Asynchronous Digital Circuits
x =0 x=1
(a) Two states of a switch
S
x
(b) Symbol for a switch
S
Battery x Light
Buffer L(x) =x
AND gate L(x1,x2) = x1 • x2 = x1x2
OR gate L (x1,x2) = x1 + x2
NOT gate L(x) = x’ = !x = ~x =x
x1
x1 x2
x2 x 1 •x2 x 1 •x2• … • xn
xn
(a) AND gates
x1
x1 x2
x 1 +x2 x 1 +x2+ … + xn
x2
xn
(b) OR gates
• Truth Tables
x x
x’ (c) Variable x x’ (d) x’
x y (e) x•y
x y (f) x+y
x y (h) z+x•y
x y (g) x•y’
B&V: Figure 2.11. Proof of z
DeMorgan’s theorem in 15a.
z z
x•y x•y
x y x y
z z
x’•z x’•z
x y x y
z z
x y
Combinational
N inputs … … M outputs Outputs depend ONLY upon inputs
circuit
W Combinational Combinational
Flip-flops circuit Z
circuit Q
Clock
x1
x2
Sum-of-Products/Product-of-Sums
Example
f(x1,x2,x3) = ∑m(1,4,5,6)
=> f’(x1,x2,x3)= ∑m(0,2,3,7)
=> f = (m0+m2+m3+m7)’
=> f = m0’•m2’•m3’•m7’
=> f = M0•M2•M3•M7
Example cont’d…
x2
x3 f
x1
(a) A minimal sum-of-products realization
x1
x3
f
x2
x1 x1 x1 x1
x2 x2 x2 x2
x3 x3 x3 x3
x4 x4 x4 x4
x5 x5 x5 x5
x1 x1
x2 x2
x3 x3
x4 x4
x5 x5
B&V: Figure 2.22. Using NAND gates to B&V: Figure 2.23. Using NOR gates to
implement a sum-of-products. implement a product-of sums.
01 0 0 1 1 01 0 0 1 1
11 1 0 0 1 11 1 1 1 1
10 1 0 0 1 10 1 1 1 1
f 1 = x2x3 + x1x3x4 f2 = x3 + x1 x
4
x1 x2 x1 x2
x3x4 x3x4
00 01 11 10 00 01 11 10
00 1 0 0 1 00 1 1 1 0
01 0 0 0 0 01 1 1 1 0
11 1 1 1 0 11 0 0 1 1
10 1 1 0 1 10 0 0 1 1
x1 x2
f 3 = x2x4 + x1 x3 + x2x3x4 f4 = x1 x3 + x1 x3 + or
x2x 3
Functional simulation
Step 3: Only then, write VHDL
No
Design correct?
Yes
Hardware Description Languages
Physical design
CHALLENGE: If you do step 3
Timing simulation without or before the other two,
No you are (very likely) going to end up
Timing requirements met? with a poor quality circuit. This
Chip configuration
isn’t a programming course!
*this VHDL does not print “hello world”… most programming books traditionally begin with an
example that shows how to print “hello world”. VHDL is for designing hardware, so to emphasize
that point (again), this example does NOT print out anything since it just describes a handful of
gates.