View
216
Download
1
Tags:
Embed Size (px)
Citation preview
• The logic and arithmetic circuits we’ve seen so far have no memory. They just transform input to output.
• Can we make circuits that remember?
Memory
• Matt really likes Sue, but he doesn’t like changing his mind… So:
• Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go.
The Stubborn Guy
• Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go.
• Two inputs to Matt’s decision: Sue, and his own state
OR
SueMatt
FeedbackWire
He Needs Feedback (from Himself)
• Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go.
• If Sue decides to go...
OR
SueMatt
1
The Stubborn Guy: Feedback
• Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go.
• If Sue decides to go, Matt will go.
OR
SueMatt
11
1
The Stubborn Guy: Feedback
• Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go.
• If Sue changes her mind…
OR
SueMatt
01
1
The Stubborn Guy: Feedback
• Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go.
• If Sue changes her mind, Matt will still go!• Once he decides to go, we can’t get him to change his mind
OR
SueMatt
01
1
The Stubborn Guy: Feedback
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
Feedback Wire
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
0
0
0
0
1
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
1
0
0
0
0
1
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
1
0
1
1
1
1
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
0
1
1
1
1
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0 – nothing changes: Sue can make Matt go, but cannot make him not go
0
1
1
1
1
Enter Rita
• Matt doesn’t like Rita (maybe together they can make him not go)
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
1
1
1
1
1
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
1
1
1
1
0
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
1
1
1
0
0
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
1
0
1
0
0
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
1
0
0
0
0
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
0
0
0
0
0
Enter Rita
• Matt doesn’t like Rita
• Matt decides to go to the party if Sue decides to go OR:
• If he (Matt) had already planned to go AND Rita decides NOT to go.
OR
AND
Sue
Rita
Matt
0
0
0
0
0
1
Enter Rita
- no change
What Sue and Rita Can Do
• Sue can make Matt go, but cannot make him not go
• Rita can make Matt not go, but cannot make him go
OR
AND
Set
Reset
M
• M becomes 1 if Set is turned on
• M becomes 0 if Reset is turned on
• Otherwise (if both are 0), M just remembers its value
The (SR) Flip-Flop
• M becomes 1 if Set is turned on
• M becomes 0 if Reset is turned on
• Otherwise (if both are 0), M just remembers its value
S
R
M
The Flip-Flop
D
W
M
What We Really Want
• Nothing happens unless Write = 1
• If Write = 1, then M becomes set to D
• Once Write = 0 again, M just keeps its value. (It ignores D.)
• So, to set M to a value and store it as long as desired, set D to that value, then set W to 1 and then back to 0
AND
AND
• Nothing happens unless Write = 1
• If Write = 1, then M becomes set to D
• Once Write = 0 again, M just keeps its value. (It ignores D.)
S
R
MD Write
The Data Flip-Flop
AND
AND
• Initially, Write = 0. Let’s say M = 1.
• First, set D to desired value, say 0.
S
R
MD Write 0
0
0
10
1
Using a Data Flip-Flop
AND
AND
• Initially, Write = 0. Let’s say M = 1.
• First, set D to desired value, say 0.
• Then, set Write to 1.
S
R
MD Write 1
0
1
10
1
Using a Data Flip-Flop
AND
AND
• Initially, Write = 0. Let’s say M = 1.
• First, set D to desired value, say 0.
• Then, set Write to 1.
• This causes M to be reset to 0.
• Note use of abstraction with regard to SR flip-flop
S
R
MD Write 1
0
1
00
1
Using a Data Flip-Flop
AND
AND
• Initially, Write = 0. Let’s say M = 1.
• First, set D to desired value, say 0.
• Then, set Write to 1.
• This causes M to be reset to 0.
• Finally set Write back to 0. Now D is irrelevant.
S
R
MD Write 0
0
0
0?
1
Using a Data Flip-Flop
• If Write = 0, M just keeps its value. (It ignores D.)
• If Write = 1, then M becomes set to D
D
Write
M
The Data Flip-Flop
• When Write = 1, then M = D.
• If we have some feedback between M and D,then circuit could go haywire.
D
Write
M ??
A Subtle Problem
• For example, suppose a NOT gate connects M and D.
• When Write = 1, M and D keep changing. We have no control.
D
Write
M NOT
1
?
?
A Subtle Problem
• We want to control the feedback, so that each time we set Write to 1 and then back to 0, M stores only the last value of D
• (In this case, M should invert itself once each time we set Write to 1 and back to 0)
D
Write
M NOT
1
?
?
A Subtle Problem
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• Two-Stage System to prevent D ever passing through directly to M (W0,W1 connected by NOT, so never 1 at the same time)
D M
The “Airlock” Flip-Flop
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• We start with Write = 0.
• Let’s say D is always NOT M; i.e. connected by NOT gate.Start with D = 0, M = 1.
D M
The “Airlock” Flip-Flop
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• We start with Write = 0.
• Let’s say D is always NOT M; i.e. connected by NOT gateStart with D = 0, M = 1.
D M
0
0
1
1 1
The “Airlock” Flip-Flop
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• Want to store D in memory.
• Set Write to 1
D M
1
0
0
1 1
The “Airlock” Flip-Flop
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• Want to store D in memory.
• Set Write to 1
• “Outer” flip-flop sets M0 = D0 = 0
• “Inner” flip-flop ignores D1 since W1 = 0
D M
1
0
0
0 1
The “Airlock” Flip-Flop
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• Now, set Write back to 0
D M
0
0
1
0 1
The “Airlock” Flip-Flop
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• Now, set Write back to 0
• Now “Inner” flip-flop sets M = D1 = 0
D M
0
0
1
0 0
The “Airlock” Flip-Flop
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• Because of feedback, D might change to (NOT M) , which is 1
• But Write = 0, so “Outer” flip-flop ignores D, so M0 stays 0.
D M
0
1
1
0 0
The “Airlock” Flip-Flop
D1
W1
M1D0
W0
M0
“Outer door” “Inner door”
Write
• So memory does not change until we “toggle” Write.
• (“toggle” means change from 0 to 1 or vice versa)
D M
0
1
1
0 0
The “Airlock” Flip-Flop