Welcome - williamt.com

Download Report

Transcript Welcome - williamt.com

Welcome
CSC 480/580 – Digital Logic &
Computer Design
Term: Winter 2002
Instructor: William T Krieger
The course
3 Common Goals
Details, schmetails
Learn  practice
2. Show it  good
grades
3. Have fun... Well,
try to have fun

1.
“I have a dream...”


Main page
Everything available
online (working on it)
Logistics
• 45 minute lecture;
break; 45 minute
lecture
• Wednesday night lab
CSC 480 Logic Design
The instructor
William T Krieger





BSCS UI 1983
MSCS UIC 1995
15+ years S/W
experience
Co-founder
Synopsys, Inc.
New to teaching…
well, pretty new
So...




Not a logic designer
Wrote software to
automate logic design
I’ll follow the book
pretty closely
End course with HDL
focus (hopefully!)
CSC 480 Logic Design
Why take this course?




Course is required... sort of
This is “core” knowledge
Overcome “hardware phobia” without much pain
HW versus SW... symbiotic interaction and
interesting contrast:
– Faster HW is making more complex SW possible
– Use of complex SW in HW design is now prevasive
“...replacement of the manual logic design process makes
the design of complex logic much more efficient”
- Mano, page 97
CSC 480 Logic Design
The last 20 years or so

The evolution of SW design
– Object-oriented paradigm, widespread usage of highlevel languages (C++, Ada, Java)
– Large systems, software engineering, testing and
maintenance
– Distributed computing, the net, graphical debugers/GUI
builders

REVOLUTION of HW design
– Simulation of designs before building them
– Synthesis (or compilation) of functional HW design into
lower-level forms (gates, transistors)
– Programs can now create logic that competes with that
created by the best human being!

SW design is now many times faster... HW design
is now many thousands time faster!
CSC 480 Logic Design
What we will learn

Logic Design
o Combinational design: Boolean algebra, logic minimization, logic
gates
o Complex combinational structures: muxes, decoder, encoder,
adder, etc.
o Sequential design: state machines, flipflops, registers, PLD’s
o HDL descriptions

Computer Design
 Basic structure
 Control versus datapath
 Components: register, counters, memory, programmable
devices, cpu
 Instruction set design, microprocessors
CSC 480 Logic Design
Digital Hardware
Everything built upon two primary (cool) abstractions
1’s and 0’s
• Boolean algebra allows formal expression, simplification,
manipulation, minimization (G. Boole, 18050’s)
• Niftily maps onto the physical world (usually voltage)
The switch
• Mechanism to implement boolean functions: assignment,
negation, and, or
• Maps onto the physical world as mechanical relay, transistor
(Shockley, et al 1940’s)
• This search continues... biological and atomic-level
transistors
For us, these inventions are the equivalent of fire,
and the wheel.
CSC 480 Logic Design
MOS transistor as a switch
Transistor revolutionizes “switch”...
efficient, reliable, cheap
 Many flavors, but CMOS is the most
popular semiconductor (chip) technology

– MOS = Metal-oxide semiconductor
– C = complementary, typically closed switches
and negative logic

Example:
CSC 480 Logic Design
Hardware design levels
Behavior
Register transfer
State machines
Logic gates
Boolean algebra
Switches (transistors)
Physical devices (Si)
We will focus on Register transfer level down to
boolean algebra
CSC 480 Logic Design
Hardware design today

The engineer’s mistress continues to be: size,
complexity, speed, cost, time to market
 Must work at higher and higher design levels
 Hierarchical methodology promotes design reuse (that’s
“object-oriented” for us CS majors)
 Software tools (CAD) are the only alternative now

Automation!
 Simulators used to verify designs
 Designs described at a higher level (HDL) and “compiled”
into lower level components
 Synthesis tools optimize designs to meet specified
criteria or “constraints

Analogy: Logic design & assembly language
programming
CSC 480 Logic Design
Logic design example

Binary multiplier
– Multiply A x B to get result C
• Input A is 3 bits: a2 a1 a0
• Input B is 4 bits: b3 b2 b1 b0
• Output C is 6 bits: c5 c4 c3 c2 c1 c0
– Do an example:
• What is 101 x 1011?
– Trick
• What is a one bit multiply?
• Need a couple of adders right?
• Cheat where we can
– Go.
CSC 480 Logic Design