1 / 68

Flip Flop

Flip Flop. יהודה אפק, יוסי מטיאס אוניברסיטת תל אביב. מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י"ם. Storage/Mem יחידה זיכרון. מערכות זיכרון – Sequential Logic. Input כניסות. Output יציאות. Combinatorial Circuit מעגל צירופי.

Download Presentation

Flip Flop

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Flip Flop יהודה אפק, יוסי מטיאס אוניברסיטת תל אביב מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י"ם

  2. Storage/Mem יחידה זיכרון מערכות זיכרון – Sequential Logic Input כניסות Output יציאות Combinatorial Circuit מעגל צירופי • עד כה טיפלנו במערכות צירופיות שהינן חסרות "זיכרון" או מצב. שינוי בערכי הכניסה גורר שינוי "מיידי" (לאחר השהייה)בערכי היציאה. • כל מחשב וכן בקרים מתוכנתים (Controllers) מכילים זיכרון המשמש לשמירת נתונים ולביצוע תוכניות. • פרט למבנים כמו SDRAM,ROM וזיכרון בועות (Bubble memory), "הזיכרון" מושג ע"י שימוש במשוב (feedback) של יחידות לוגיות.

  3. Synchronous Sequential Circuits פעולת המערכת מתבצעת ב"פיקודו" של שעון וערכי המערכת נקבעים מערכי הכניסה בנקודות זמן מסוימות שהינן תלויות שעון  מצב המערכת תלוי בשעון. Asynchronous Sequential Circuits פעולות המערכת תלויות בסדר של שינוי הכניסות, מצב המערכת יכול להשתנות בכל רגע. "יציב" "מהיר" Combinatorial Circuit Memory Clock Pulses

  4. 0 1 1 0 זכרון Q 1 2 Q’

  5. 0 1 1 0 זכרון = 0 = קלט פלט פלט 1 1 קלט 0 Q 1 2 Q’ 0

  6. L A T C H Reset O  1 R 1 Q 1 0 0 0 0 1  2 Q’ Set S S R – L a t c h

  7. L A T C H Reset 1 0 0 R Q 1 0 1 1 0 2 Q’ 0 0 Set S S R – L a t c h

  8. L A T C H מקודם Reset 0 1 (1) R (0) Q 1 0 (0) (1) 0 2 Q’ Set S מקודם S R – L a t c h • נניח שניתנה פקודת Set S=1, R=0 ועתה אנו "מורידים" את הכניסות (S=0, R=0). • ערכי היציאה Q’, Q "זוכרים" את פקודת ה-Set. • באותו אופן יזכרו את ה - Reset.

  9. L A T C H Reset 1 0 R 0 Q 1 0 0 1 2 Q’ Set S S R – L a t c h • R=1, S=1 • כאשר הערכים יורדים ל – "0" (S=0, R=0) הערך של Q ו Q’ תלוי באיזה קו ישתנה ראשון RACE Condition  • המצב הבא נקרא לא מוגדר.

  10. דיאגרמת זמנים: "1" Q "0" "1" S "0" "1" R "0" טבלת אמת – מצבים: Reset State Set State Undefined (מצב אסור) • Latch איננו פונקציה בוליאנית. • ערכי היציאה תלויים בפעולת Set או Reset האחרונה. • עבור כניסות (0,0) ערך היציאה נשמר קבוע כל זמן שיש מתח.

  11. 1 0 R Q 1 0 Q’ S 1 0 1 0 SR Latch with NAND Set State Reset State Undefined Set Command Reset Command

  12. 1 0 R Q 1 0 Q’ S 1 0 1 0 SR Latch with NAND Set State Reset State Undefined Set Command Reset Command

  13. R R 0 Q 1 1 0 CP Q’ S S 0 SR Latch מבוקר שעון: Clock Pulse S R CP Q

  14. 1 1 D 0 1 Q 0 1 CP 1 1 Q’ 0 0 C D Next State of Q 0  No change 1 0 Q = 0 (Reset) 1 1 Q = 1 (Set) D (data) Latch D' • Latch Dהינו יחידה שאוגרת / "זוכרת" ביט יחיד. • נמנעים ממצב לא מוגדר. • אבן בניין בסיסית של אוגרים (Registers).

  15. D Q CP Q’ D Latch אינו מספיק !! Input כניסות Output יציאות Combinatorial Circuit מעגל צירופי מחזור שעון ארוך והמעגל יחליף את מצבו מספר פעמים !!!!

  16. Flip - Flops • הזמן שלוקח עד שהמוצא של Latch מתייצב יכול ליצור בעיותכאשר מחברים שתי יחידות זיכרון. • המוצא אינו צריך להיות תלוי בתזמון וצריך להימנע "ממצבים מתהפכים" (JK). • פתרון צריך לדאוג שהמוצא יהיה יציב לפרק זמןמובטח. • Flip-Flop פתרון מבוסס על Latch: • שימוש בשני Latch בצורה שתבטיח שהפלט יהיה מבודד מהכניסות המשתנות: • Master-Slave Flip-Flop

  17. M S Y S Q S Q S Q C C ג ב ר ת ע ב ד Y’ R Q’ R Q’ R Q’ C Master – Slave Flip - Flop • כאשר (master) M פעיל S (slave) אינו פעיל והינו זוכר את היציאות של M מהשלב ש – M היה סביל. C S Y Q אין השפעה!

  18. 1 נשאר 1 M S Y 01 S Q S Q S Q C C ג ב ר ת ע ב ד Y’ R Q’ R Q’ R Q’ C נעשה פעיל 0 10 01 Master – Slave Flip - Flop • כאשר M פעיל S אינו פעיל והינו זוכר את היציאות של M מהשלב ש – M היה סביל. C S Y Q אין השפעה!

  19. S Q S Q ג ב ר ת ע ב ד C C R Q’ R Q’ D Flip Flop כן מספיק !! Input כניסות Combinatorial Circuit מעגל צירופי M S Y S Q Y’ R Q’ C

  20. K 1 Q 3 CP Q’ 4 2 J JK Latch • "עידון" של SR Latch: • כאשר CP=0 אין שינוי מצב כמקודם. • כאשר K = 0 , J = 1 : • א) המשוב מ – Q לתוך שער 1 לא משפיע היות ו – K=0. • ב) כניסות לשער 3 הינם 0,0 Q=1Q’=0. • כאשר K=1, J=0 נקבל Q’=1 Q=0. • כאשר K=1, J=1 ?

  21. Q=0 K=0 J=1 a ("חדש") 1 0 0 (חדש) K 1 Q 3 1 0 1 (ישן) CP ("חדש") 0 1 1 1 Q’ 4 2 J 1 (ישן) 1 JK Latch • "עידון" של SR Latch: • כאשר CP=0 אין שינוי מצב כמקודם. • כאשר K = 0 , J = 1 : • א) המשוב מ – Q לתוך שער 1 לא משפיע היות ו – K=0. • ב) כניסות לשער 3 הינם 0,0 Q=1Q’=0. • כאשר K=1, J=0 נקבל Q’=1 Q=0. • כאשר K=1, J=1 ?

  22. Q=0 K=1 J=0 b המצב "נשמר" או Reset ("ישן") 0 1 0 0 0 K 1 Q 3 1 0 (ישן) CP 0 1 (ישן) 1 0 0 Q’ 4 2 J 0 (ישן) 1 JK Latch • "עידון" של SR Latch: • כאשר CP=0 אין שינוי מצב כמקודם. • כאשר K = 0 , J = 1 : • א) המשוב מ – Q לתוך שער 1 לא משפיע היות ו – K=0. • ב) כניסות לשער 3 הינם 0,0 Q=1Q’=0. • כאשר K=1, J=0 נקבל Q’=1 Q=0. • כאשר K=1, J=1 ?

  23. K=1 J=1 c 1 0 0 K 1 Q 3 (1) CP 0 0 Q’ 4 2 J 1 1 (0) מצב Q מתהפך. אם 1=J=K=C לאורך זמן מצב Q יתהפך עוד ועוד.  מעברים חוזרים ונשנים. JK Latch • "עידון" של SR Latch: • כאשר CP=0 אין שינוי מצב כמקודם. • כאשר K = 0 , J = 1 : • א) המשוב מ – Q לתוך שער 1 לא משפיע היות ו – K=0. • ב) כניסות לשער 3 הינם 0,0 Q=1Q’=0. • כאשר K=1, J=0 נקבל Q’=1 Q=0. • כאשר K=1, J=1 ?

  24. טבלת אמת עבור JK: דיאגרמת זמנים: J K CP Q Q יתהפך בין 0 ל –1 הלוך ושוב כל זמן ש – cp=1

  25. T (trigger) Latch • מתקבל ע"י חיבור J,K ב JK-Latch למקור אחד: • T = 0  J = K = 0 אין שינוי במצב • T = 1  J = K = 1 היפוך מצב • היפוך זה יחיד אם משך הזמן בו T = 1הינו "קצר"

  26. 10 Master Slave 0 1 Y1 10 1 Q (0) Q J S Q D D Latch SR Latch Y0 C 1 0 K Q’ (1) Q’ R C 1 0 0 C 01 10 JK Flip-Flop: • כאשר J = K = 1 היציאה Qהינה קבועה. • עם עליית השעון ה Master יהפוך מצב (Y התהפך). • Qישאר קבוע כל זמן שהשעון הינו "1" ו – Yישאר קבוע לאחר עליית השעון. • עם ירידת השעון הערך של Y יוכנס ל – D Latch ו – Q ישתנה.

  27. Master Slave Y Q S Q D Q D Latch SR Latch T C Q’ Q’ R C T=1 Q(t) Q’(t+1) Q(t) Q(t) T=0 Master Slave Y Q D D D D Latch D Latch C C T (trigger) Flip-Flop D (data) Flip-Flop Q(t+1)  D(t)

  28. טבלאות המצבים: t Q(t) t+1 Q(t) שינוי של קלט שינוי של פלט JKFF SRFF DFF TFF

  29. 0 00/0 1 0 0 01/0 0 1 11/0 1 10/1 1 Finite State Machine (FSM) =Iקלט (כמקודם) =Oפלט • האוטומט פולט 1 אחרי ש"ראה" לפחות 3 1-ים מאז ה- 0 האחרון. • פלט מצוייר במצבים Moore FSM

  30. Finite State Machine (FSM) 0/0 קלט (כמקודם) 00 1/0 0/0 0/0 01 0/0 1/0 10 פלט 1/1 11 1/1 • האוטומט פולט 1 אחרי ש"ראה" לפחות 3 1-ים מאז ה- 0 האחרון. • פלט מצוייר על הקשתות Mealy FSM

  31. טבלת המצבים –Moore 0 00/0 1 0 01/0 1 0 11/0 1 0 10/1 1 הפלט תלוי ב – A & B

  32. טבלת המצבים - Mealy הפלט תלוי ב - X

  33. טבלת המצבים – Moore 0 00/0 1 0 01/0 1 11/0 1 0 10/1 1 0 AB AB I

  34. דוגמא - Moore O Bt+1= A*I O = A*B I D Q A Q’ D Q B Q’ At+1= A*I + B * I= I(A+B) • כניסה אחת ויציאה אחת • 2FF מסוג Data 4 מצבים.

  35. דוגמא – Mealy D Q A Q’ X Out D Q B Q’ • כניסה אחת ויציאה אחת • היציאה תלויה ב- QA, QBו- X. • 2FF מסוג Data 4 מצבים.

  36. Moore Vs. Mealy פלט: Moore – פונקציה של המצב לבד Mealy – פונקציה של המצב והקלט אוטומט: Moore – הפלט "רשום" על המצב Mealy – הפלט "רשום" על הקשת (מעבר) שיקולים: Moore – לא תלוי ב"יציבות" הקלט (מספיק שיהיה קבוע Ts + Th) אך ידרשו FFs נוספים אם דרושה תלות היציאה בקלט. Mealy – פשוט לממוש אם יש תלות של היציאה בקלט אך נדרשת יציבות. Moore שקול ל – Mealy (ולהפך)

  37. נוהל עיצוב • הגדר במילים את פעולת המעגל. • בנה את טבלת המצבים (אוטומט) • צמצם / מצא ייצוג קטן של אוטומט המצבים. • קבע משתנים אשר ייצגו את המצבים (בצורה וקטורית). קבע את מספר הדלגלגים והתאם אות לכל דלגלג. • בחר בסוג הדלגלג להשתמש בו. • קבל טבלאות העירור והיציאות של המעגל מטבלת המצבים. • חשב את פונקציות היציאה של המעגל ואת פונקציות הכניסה של FF (בעזרת מפות קרנו או כל שיטה אחרת) • צייר הדיאגרמה הלוגית. *

  38. דוגמת תכנון IRobot "תקין" "תקין" "שמאלה" "ימינה" מערב מרכז "ימינה" מזרח "שמאלה" "תקין" "תקין" "שמאלה" "ימינה" "תקוע" "תקוע"

  39. אוטומט המצבים – תיאור סמלי: מרכז תקין / שמאל תקין / ימין תקין / ימין תקוע / שמאל תקין / שמאל מזרח מערב תקוע / ימין

  40. אוטומט המצבים: תקין : 0תקוע : 1 "ימין" : 0"שמאל" : 1 A B 00 קלט 0/0 1/0 מרכז 1/1 10 01 0/0 1/0 פלט מזרח מערב 0/1 • 3 מצבים • נזדקק ל – 2FF • 2FF יכולים "לזכור" 4 מצבים. • מצב שלא משתמשים בו ("11")

  41. טבלת המצבים + מעברים:

  42. פונקציות יציאה + מצב הבא: מימוש עבורD-FF Bt A(t+1)= B’X’ = (B+X)’ At Xt Bt B(t+1) = A’X At Xt Bt Y(t) = AX’ + BX At Xt

  43. דיאגרמה לוגית: AX’ X D Q B’X’ A C Q’ y D Q A’X B BX C Q’ מימוש עבור DFF (שעון מושמט)

  44. Graphical Specification of FSM • How many state bits will we need?

  45. Finite State Machine for Control 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1

  46. state Control signals S3 S2 S1 S0 ALUSrcA PCWrite PCWriteCond 0 0 0 0 0 1 0 fetch decode 0 0 0 1 0 0 0 0 0 1 0 1 0 0 AdrCmp load 0 0 1 1 X 0 0 WB 0 0 0 1 0 0 X 0 1 0 1 X 0 0 store 0 1 1 0 ALU 1 0 0 WBR 0 1 1 1 X 0 0 1 0 branch 1 0 0 0 1 1 0 0 1 X 1 0 jump All other combinations X 0 0 The control signals decoder We just implement the table of slide 54: Let’s look at ALUSrcA: it is “0” in states 0 and 1 and it is “1” in states 2, 6 and 8. In all other states we don’t care. let’s look at PCWrite: it is “1” in states 0 and 9. In all other states it must be “0”. And so, we’ll fill the table below and build the decoder.

  47. opcode current state next state IR31 IR30 IR29 IR28 IR27 IR26 S3 S2 S1 S0 S3 S2 S1 S0 Fetch 0 X X X X X X 0 0 0 0 0 0 0 1 Decode 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 j lw+sw beq 1 X X X X X 0 0 0 1 0 0 1 0 R-type AdrCmp 2 Jump 9 Branch 8 X X 0 X X X 0 0 1 0 0 0 1 1 ALU 6 lw sw 0 0 1 0 0 1 0 1 X X 1 X X X Load 3 Store 5 WB 4 WBR 7 The state machine “next state calc.” logic R-type lw+sw lw sw R-type=000000, lw=100011, sw=101011, beq=000100, bne=000101, lui=001111, j=0000010, jal=000011, addi=001000

  48. Interrupt and exception Type of event From Where ? MIPS terminology Interrupt ExternalI/O device request ------------------------------------------------------------------------------------ Invoke Operation system Internal Exception From user program ------------------------------------------------------------------------------------- Arithmetic Overflow Internal Exception ------------------------------------------------------------------------------------- Using an undefined Instruction Internal Exception -------------------------------------------------------------------------------------- Hardware malfunctions Either Exception or interrupt

  49. Exceptions handling Exception type Exception vector address (in hex) Undefined instruction c0 00 00 00 Arithmetic Overflow c0 00 00 20 We have 2 ways to handle exceptions: Cause register or Vectored interrupts MIPS – Cause register

More Related