CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State...
-
Upload
victor-miller -
Category
Documents
-
view
212 -
download
0
Transcript of CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State...
![Page 1: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/1.jpg)
CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB
CS61C : Machine Structures
Lecture 4.1.2
State and FSMs
2004-07-13
Kurt Meinz
inst.eecs.berkeley.edu/~cs61c
![Page 2: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/2.jpg)
CS 61C L4.1.2 State (2) K. Meinz, Summer 2004 © UCB
Outline• CL Blocks
• Waveforms
• State
• Clocks
• FSMs
![Page 3: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/3.jpg)
CS 61C L4.1.2 State (3) K. Meinz, Summer 2004 © UCB
Review (1/3)• Use this table and techniques we learned to transform from 1 to another
![Page 4: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/4.jpg)
CS 61C L4.1.2 State (4) K. Meinz, Summer 2004 © UCB
(2/3): Circuit & Algebraic Simplification
![Page 5: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/5.jpg)
CS 61C L4.1.2 State (5) K. Meinz, Summer 2004 © UCB
(3/3):Laws of Boolean Algebra
![Page 6: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/6.jpg)
CS 61C L4.1.2 State (6) K. Meinz, Summer 2004 © UCB
CL Blocks• Let’s use our skills to build some CL blocks:•Multiplexer (mux)
•Adder
•ALU
![Page 7: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/7.jpg)
CS 61C L4.1.2 State (7) K. Meinz, Summer 2004 © UCB
Data Multiplexor (here 2-to-1, n-bit-wide)
“mux”
![Page 8: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/8.jpg)
CS 61C L4.1.2 State (8) K. Meinz, Summer 2004 © UCB
N instances of 1-bit-wide mux
![Page 9: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/9.jpg)
CS 61C L4.1.2 State (9) K. Meinz, Summer 2004 © UCB
How do we build a 1-bit-wide mux?
![Page 10: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/10.jpg)
CS 61C L4.1.2 State (10) K. Meinz, Summer 2004 © UCB
4-to-1 Multiplexor?
![Page 11: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/11.jpg)
CS 61C L4.1.2 State (11) K. Meinz, Summer 2004 © UCB
An Alternative Approach
Hierarchically!
![Page 12: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/12.jpg)
CS 61C L4.1.2 State (12) K. Meinz, Summer 2004 © UCB
Arithmetic and Logic Unit• Most processors contain a logic block called “Arithmetic/Logic Unit” (ALU)
• We’ll show you an easy one that does ADD, SUB, bitwise AND, bitwise OR
![Page 13: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/13.jpg)
CS 61C L4.1.2 State (13) K. Meinz, Summer 2004 © UCB
Our simple ALU
![Page 14: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/14.jpg)
CS 61C L4.1.2 State (14) K. Meinz, Summer 2004 © UCB
Adder/Subtracter Design -- how?• Truth-table, then
determine canonical form, then minimize and implement as we’ve seen before
• Look at breaking the problem down into smaller pieces that we can cascade or hierarchically layer
![Page 15: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/15.jpg)
CS 61C L4.1.2 State (15) K. Meinz, Summer 2004 © UCB
N 1-bit adders 1 N-bit adder
+ + +
b0
![Page 16: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/16.jpg)
CS 61C L4.1.2 State (16) K. Meinz, Summer 2004 © UCB
Adder/Subtracter – One-bit adder LSB…
![Page 17: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/17.jpg)
CS 61C L4.1.2 State (17) K. Meinz, Summer 2004 © UCB
Adder/Subtracter – One-bit adder (1/2)…
![Page 18: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/18.jpg)
CS 61C L4.1.2 State (18) K. Meinz, Summer 2004 © UCB
Adder/Subtracter – One-bit adder (2/2)…
![Page 19: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/19.jpg)
CS 61C L4.1.2 State (19) K. Meinz, Summer 2004 © UCB
Extremely Clever Subtractor
![Page 20: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/20.jpg)
CS 61C L4.1.2 State (20) K. Meinz, Summer 2004 © UCB
Signals and Waveforms (1/4)• Outputs of CL change over time•With what? Change in inputs
•Can graph changes with waveforms …
![Page 21: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/21.jpg)
CS 61C L4.1.2 State (21) K. Meinz, Summer 2004 © UCB
Signals and Waveforms (2/4): Adders
![Page 22: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/22.jpg)
CS 61C L4.1.2 State (22) K. Meinz, Summer 2004 © UCB
Signals and Waveforms (3/4): Grouping
![Page 23: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/23.jpg)
CS 61C L4.1.2 State (23) K. Meinz, Summer 2004 © UCB
Signals and Waveforms (4/4): Circuit Delay
![Page 24: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/24.jpg)
CS 61C L4.1.2 State (24) K. Meinz, Summer 2004 © UCB
State• With CL, output is always a function of CURRENT input•With some (variable) propagation delay
• Clearly, we need a way to introduce state into computation
![Page 25: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/25.jpg)
CS 61C L4.1.2 State (25) K. Meinz, Summer 2004 © UCB
Accumulator Example
Want: S=0; for i from 0 to n-1S = S + Xi
![Page 26: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/26.jpg)
CS 61C L4.1.2 State (26) K. Meinz, Summer 2004 © UCB
First try…Does this work?
Nope! Reason #1… What is there to control thenext iteration of the ‘for’ loop?Reason #2… How do we say: ‘S=0’?
Need a way to store partial sums! …
Feedback!
![Page 27: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/27.jpg)
CS 61C L4.1.2 State (27) K. Meinz, Summer 2004 © UCB
Circuits with STATE (e.g., register)
Need a Logic Block that will:1. store output (partial sum) for a while, 2. until we tell it to update with a new value.
![Page 28: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/28.jpg)
CS 61C L4.1.2 State (28) K. Meinz, Summer 2004 © UCB
Second try…How about this?
Roughtiming…
Yep!
![Page 29: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/29.jpg)
CS 61C L4.1.2 State (29) K. Meinz, Summer 2004 © UCB
State
• S=1, R=0 Sbar=0, Rbar=1 Q=1 Qbar = 0
• S=0, R=1 Sbar=1, Rbar=0 Qbar=1 Q = 0
• S=0, R=0 Sbar=1, Rbar=1 Qbar <= not Q
Q <= not Qbar
n3
n4
A B O0 0 10 1 11 0 11 1 1
![Page 30: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/30.jpg)
CS 61C L4.1.2 State (30) K. Meinz, Summer 2004 © UCB
State
• When CLK is low:• n1 and n2 = 1 no change
• When CLK is high:• S, R = 0 n1, n2 = 1 no change
• S=1, R=0 n1=0, n1=1 Q = 1, Qbar = 0
n1
n2
n3
n4
A B O0 0 10 1 11 0 11 1 1
![Page 31: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/31.jpg)
CS 61C L4.1.2 State (31) K. Meinz, Summer 2004 © UCB
State
• This is a “rising-edge D Flip-Flop”• When the CLK transitions from 0 to 1 (rising
edge) …- Q D; Qbar not D
• All other times: Q Q; Qbar Qbar
A B O0 0 10 1 11 0 11 1 1
![Page 32: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/32.jpg)
CS 61C L4.1.2 State (32) K. Meinz, Summer 2004 © UCB
D Flip Flop
• Called “edge-sensitive”
• RS latches: “level sensitive”
![Page 33: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/33.jpg)
CS 61C L4.1.2 State (33) K. Meinz, Summer 2004 © UCB
Storage Element’s Timing Model
• Setup Time: Input must be stable BEFORE trigger clock edge
• Hold Time: Input must REMAIN stable after trigger clock edge
• Clock-to-Q time:• Output cannot change instantaneously at the trigger clock edge
• Similar to delay in logic gates
D QD Don’t Care Don’t Care
Clk
UnknownQ
Setup Hold
Clock-to-Q
![Page 34: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/34.jpg)
CS 61C L4.1.2 State (34) K. Meinz, Summer 2004 © UCB
Bus a bunch of D FFs together …
• Register of size N:• n instances of D Flip-Flop
![Page 35: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/35.jpg)
CS 61C L4.1.2 State (35) K. Meinz, Summer 2004 © UCB
Second try…How about this?
Roughtiming…
Yep!
![Page 36: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/36.jpg)
CS 61C L4.1.2 State (36) K. Meinz, Summer 2004 © UCB
Accumulator Revisited (proper timing 1/2)
![Page 37: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/37.jpg)
CS 61C L4.1.2 State (37) K. Meinz, Summer 2004 © UCB
Accumulator Revisited (proper timing 2/2)
![Page 38: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/38.jpg)
CS 61C L4.1.2 State (38) K. Meinz, Summer 2004 © UCB
Clocks• Need a regular oscillator:
• Wire up three inverters in feedback?…•Not stable enough
• 1->0 and 0->1 transitions not symmetric.
• Solution: Base oscillation on a natural resonance. But of what?
![Page 39: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/39.jpg)
CS 61C L4.1.2 State (39) K. Meinz, Summer 2004 © UCB
Clocks
• Crystals and the Piezoelectric effect:•Voltage deformation voltage …
•Deformations have a resonant freq.- Function of crystal cut
![Page 40: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/40.jpg)
CS 61C L4.1.2 State (40) K. Meinz, Summer 2004 © UCB
Clocks
• Controller puts AC across crystal:•At anything but resonant freqs destructive interference
•Resonant freq CONSTRUCTIVE!
![Page 41: CS 61C L4.1.2 State (1) K. Meinz, Summer 2004 © UCB CS61C : Machine Structures Lecture 4.1.2 State and FSMs 2004-07-13 Kurt Meinz inst.eecs.berkeley.edu/~cs61c.](https://reader035.fdocuments.in/reader035/viewer/2022070414/5697c0071a28abf838cc5cb2/html5/thumbnails/41.jpg)
CS 61C L4.1.2 State (41) K. Meinz, Summer 2004 © UCB
Signals and Waveforms: Clocks