Flip Flop
Document Sample


Flip Flop
יהודה אפק, נתן אינטרטור
אוניברסיטת תל אביב
מבוסס על הרצאות של
יורם זינגר, האוניברסיטה העברית י"ם
מערכות זיכרון – Sequential Logic
Input Combinatorial Output
כניסות Circuit יציאות
מעגל צירופי Storage/Mem
יחידה זיכרון
• עד כה טיפלנו במערכות צירופיות שהינן חסרות "זיכרון" או מצב. שינוי
בערכי הכניסה גורר שינוי "מיידי" (לאחר השהייה) בערכי היציאה.
• כל מחשב וכן בקרים מתוכנתים ) (Controllersמכילים זיכרון המשמש
לשמירת נתונים ולביצוע תוכניות.
• פרט למבנים כמו SDRAM,ROMוזיכרון בועות ),(Bubble memory
"הזיכרון" מושג ע"י שימוש במשוב ) (feedbackשל יחידות לוגיות.
Synchronous Sequential Circuits
"יציב" פעולת המערכת מתבצעת ב"פיקודו" של שעון וערכי המערכת נקבעים
מערכי הכניסה בנקודות זמן מסוימות שהינן תלויות שעון מצב
המערכת תלוי בשעון.
Asynchronous Sequential Circuits
"מהיר" פעולות המערכת תלויות בסדר של שינוי הכניסות, מצב המערכת יכול
להשתנות בכל רגע.
Combinatorial
Circuit
Clock Memory
Pulses
זיכרון
1 Q
10
01
2 ’Q
זיכרון
קלט 1 פלט =
=
0
קלט 1 פלט
R 0
1 Q
10
01
S
0 2 ’Q
LAT C H
Reset O 1
R 1
0 1 Q
0
0
Set 1 2 0 Q’
S
SR–Latch
LAT C H
Reset 1
R 0 0
1 Q
0
0 1 1
S Set 0 0 2 Q’
SR–Latch
LAT C H מקודם
R
0 Reset )1( 1
1 )0( Q
)1( )0( 0
S 0 Set 2 ’Q
מקודם
SR–Latch
• נניח שניתנה פקודת Set
S=1, R=0 ועתה אנו "מורידים" את הכניסות )0=.(S=0, R
• ערכי היציאה " Q’, Qזוכרים" את פקודת ה-.Set
• באותו אופן יזכרו את ה - .Reset
LAT C H
Reset 1 0
R 0
1 Q
0 0
S Set 1 2 ’Q
SR–Latch
• 1=R=1, S
• כאשר הערכים יורדים ל – "0" )0= (S=0, Rהערך של Qו ’ Qתלוי
RACE Condition באיזה קו ישתנה ראשון
• המצב הבא נקרא לא מוגדר.
דיאגרמת זמנים:
"1"
Q "0"
"1"
S "0"
"1"
R "0"
טבלת אמת – מצבים:
S R Q ’Q
0 1 0 1
Reset State
0 0 0 1
1 0 1 0
0 0 1 0
Set State
1 1 0 0 (מצב אסור) Undefined
• Latchאיננו פונקציה בוליאנית.
• ערכי היציאה תלויים בפעולת Setאו Resetהאחרונה.
• עבור כניסות )0,0( ערך היציאה נשמר קבוע כל זמן שיש מתח.
SR Latch with NAND
R1 0
Q
0 1
S Q’
S R Q’ Q
0 1 1 0
Set State
1 1 1 0
1 0 0 1
1 1 0 1
Reset State
0 0 1 1 Undefined
1
Set Command 0
1
Reset Command 0
SR Latch with NAND
R1 0
Q
0 1
S Q’
S R Q’ Q
0 1 1 0
Set State
1 1 1 0
1 0 0 1
1 1 0 1
Reset State
0 0 1 1 Undefined
1
Set Command 0
1
Reset Command 0
: מבוקר שעוןSR Latch
R 0
R Q
1
Clock Pulse CP 1
0
S S Q’
0
S
R
CP
Q C S R Next Q
0 No change
1 1 0 Q=1
1 0 1 Q=0
1 1 1 Undef
1 0 0 No change
D (data) Latch
1 1
D 0 1
0 Q
1 CP
1
0 1 ’Q
0 'D
C D Next State of Q
0 No change
1 0 )Q = 0 (Reset
1 1 )Q = 1 (Set
• Latch Dהינו יחידה שאוגרת / "זוכרת" ביט יחיד.
• נמנעים ממצב לא מוגדר.
• אבן בניין בסיסית של אוגרים ).(Registers
D Latchאינו מספיק !!
Input Combinatorial Output
כניסות Circuit יציאות
מעגל צירופי D Q
C
P Q
’
מחזור שעון ארוך והמעגל יחליף את מצבו מספר פעמים !!!
Flip - Flops
• הזמן שלוקח עד שהמוצא של Latchמתייצב יכול ליצור בעיות
כאשר מחברים שתי יחידות זיכרון.
• המוצא אינו צריך להיות תלוי בתזמון וצריך להימנע "ממצבים
מתהפכים" ).(JK
• פתרון צריך לדאוג שהמוצא יהיה יציב לפרק זמן מובטח.
Flip-Flopפתרון מבוסס על :Latch
• שימוש בשני Latchבצורה שתבטיח שהפלט יהיה מבודד
מהכניסות המשתנות:
Master-Slave Flip-Flop
Master – Slave Flip - Flop
M S
Y
S S Q S Q Q
C Y’ C
R R Q’ R Q’ Q’
C
) אינו פעיל והינו זוכר את היציאות שלslave( S ( פעילmaster) M • כאשר
. היה סבילM – מהשלב שM
C
S
Y
Q
!אין השפעה
Master – Slave Flip - Flop
1
M נשאר 1 S
Y
S 10 Q
S Q S Q
C ’Y C
R R ’Q R ’Q ’Q
C
נעשה פעיל
0 01 10
• כאשר Mפעיל Sאינו פעיל והינו זוכר את היציאות של Mמהשלב ש – M
היה סביל.
C
S
Y
Q
אין השפעה!
!! מספיקMaster/Slave Flip Flop
Input Combinatorial
כניסות Circuit M S
S Y Q
S Q S Q
מעגל צירופיR C Y’ C
R Q R Q
C ’ ’
JK Latch
•"עידון" של :SR Latch
K 1 3 Q
CP
J 2 4 ’Q
• כאשר 0= CPאין שינוי מצב כמקודם.
• כאשר 1 = : K = 0 , J
א) המשוב מ – Qלתוך שער 1 לא משפיע היות ו – 0=.K
ב) כניסות לשער 3 הינם 0,0 .Q’=0 Q=1
• כאשר 0= K=1, Jנקבל 0=.Q’=1 Q
• כאשר 1=? K=1, J
Q=0 K=0 J=1 a
JK Latch
•"עידון" של :SR Latch
0 0 (חדש) ("חדש") 1
K 1 0 1 3 Q
1 (ישן)
CP 1 ("חדש") 0
J 1 2 1 4 ’Q
1 (ישן) 1
• כאשר 0= CPאין שינוי מצב כמקודם.
• כאשר 1 = : K = 0 , J
א) המשוב מ – Qלתוך שער 1 לא משפיע היות ו – 0=.K
ב) כניסות לשער 3 הינם 0,0 .Q’=0 Q=1
• כאשר 0= K=1, Jנקבל 0=.Q’=1 Q
• כאשר 1=? K=1, J
Q=0 K=1 J=0 b
המצב JK Latch
"נשמר"
או Reset •"עידון" של :SR Latch
("ישן") 0
1 0 0 0
K 1 3
1 ( Qישן) 0
CP 0 1
(ישן)1
J 0 2 0 4 ’Q
0 (ישן) 1
• כאשר 0= CPאין שינוי מצב כמקודם.
• כאשר 1 = : K = 0 , J
א) המשוב מ – Qלתוך שער 1 לא משפיע היות ו – 0=.K
ב) כניסות לשער 3 הינם 0,0 .Q’=0 Q=1
• כאשר 0= K=1, Jנקבל 0=.Q’=1 Q
• כאשר 1=? K=1, J
1=K=1 J c
JK Latch
•"עידון" של :SR Latch
1 0
K 1 3 0 Q
CP )1(
0
J 2 0 4 1 1 ’Q
)0(
• כאשר 0= CPאין שינוי מצב כמקודם.
• כאשר 1 = : K = 0 , J
א) המשוב מ – Qלתוך שער 1 לא משפיע היות ו – 0=.K
ב) כניסות לשער 3 הינם 0,0 .Q’=0 Q=1
• כאשר 0= K=1, Jנקבל 0=.Q’=1 Q
• כאשר 1=? K=1, J
מצב Qמתהפך.
אם 1=J=K=Cלאורך זמן מצב Qיתהפך עוד ועוד.
מעברים חוזרים ונשנים.
טבלת אמת עבור :JK
)Q(t J K )1+Q(t
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
דיאגרמת זמנים:
J
K
CP
Q
Qיתהפך בין 0 ל –1 הלוך ושוב כל זמן ש – 1=cp
T (trigger) Latch
• מתקבל ע"י חיבור J,Kב JK-Latchלמקור אחד:
0 = T = 0 J = Kאין שינוי במצב
1 = T = 1 J = Kהיפוך מצב
היפוך זה יחיד אם משך הזמן בו 1 = Tהינו "קצר"
Qt T 1+Qt Qt D 1+Qt
0 0 0 0 0 0
0 1 1 0 1 1
1 0 1 1 0 0
1 1 0 1 1 1
:JK Flip-Flop
01
Master Slave
01 1Y 0 1
1 J S
SR
Q D
D
Q )0( Q
1 C
Latch 0Y Latch
K 0 R C ’Q )1( ’Q
1 0
0
C
10 01
• כאשר 1 = J = Kהיציאה Qהינה קבועה.
• עם עליית השעון ה Masterיהפוך מצב ( Yהתהפך).
• Qישאר קבוע כל זמן שהשעון הינו "1" ו – Yישאר קבוע לאחר עליית
השעון.
• עם ירידת השעון הערך של Yיוכנס ל – D Latchו – Qישתנה.
T (trigger) Flip-Flop
Master Y Slave
S SR Q D D Q Q
T C Latch Latch
R C Q’ Q’
Q(t) T=1 Q’(t+1)
T=0
Q(t) Q(t)
D (data) Flip-Flop
Master Y Slave
D D
D
D
D
Q
Latch
C Latch C
Q(t+1) D(t)
:טבלאות המצבים
t t+1
Q(t) Q(t)
שינוי שינוי
של של
קלט פלט
JKFF SRFF
J K Q(t+1) S R Q(t+1)
0 0 Q(t) No Change 0 0 Q(t) No Change
0 1 0 Reset 0 1 0 Reset
1 0 1 Set 1 0 1 Set
1 1 Q’(t) Complement 1 1 ? Undef.
DFF TFF
D Q(t+1) T Q(t+1)
0 0 Reset 0 Q(t) No Change
1 1 Set 1 Q’(t) Complement
דלגלגים מדורבני קצה:
Edge Triggered Flip-Flops
•שינוי המצב מתבצע עם שינוי השעון ומתייצב אח"כ.
דופק ושעון חיובי
קצה חיובי קצה שלילי
דופק ושעון שלילי
קצה שלילי קצה חיובי
Ts-Setup Time
CP
D Ts Tn Th-Holdup Time
יציב Ts+Tn
כניסות ישירות:
Direct Inputs
• כאשר המתח במעגל ספרתי "עולה" המצב של Flip Flopsאיננו מוגדר לכן
יש לבצע אתחול.
• אתחול מבוצע ע"י כניסות ישירות אשר קובעות ישירות את המצב ).(Preset
preset / clear
J Q
CP
K ’Q
PreSet CP J K Q ’Q
0 0 1
1 0 0 no change
1 0 1 0 1
1 1 0 1 0
1 1 1 flip state
:תזמון
MSJFF :דוגמא
MSJFF
YA YB
J Q J Q Out
CP A Q’ CP
K
B Q’ Out(t)
K
D(t-2)
2JKFF
CP
YA
QA
YB
QB
Get documents about "