פליפ פלופ – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אשמדאי (שיחה | תרומות)
שחזור לגרסה 22048722 מאת בקרה וייעוץ
הסרת קישורים עודפים
שורה 1:
[[קובץ:Basic Measuring Instruments - Math Processor 83002190 - Motorola MC74ACT74N-3930.jpg|שמאל|250x250 פיקסלים|פליפ פלופ מסוג D]]
ב[[אלקטרוניקה]] ו[[מעגל אלקטרוני|מעגלים אלקטרוניים]], '''פליפ פלופ''' (בעברית: '''דלגלג''') הוא מעגל דו-יציבדו־יציב שמסוגל לזכור [[סיבית|סיבית (ביט)]] אחת.
 
בעבר נבנו מעגלי פליפ פלופ סביב שתי [[שפופרת ריק|שפופרות]] ריק מסוג [[טריודה]]. מצב יציב ראשון היה כאשר שפופרת אחת הוליכה [[זרם חשמלי]] והשפופרת השנייה לא הוליכה זרם. המצב היציב השני היה הפוך. במחשב הראשוני [[אניאק]] השתמשו בשפופרת [[טריודה]] כפולה מדגם 6SN7 למעגל פליפ פלופ אחד לשם [[זיכרון]] של ביט אחד. עם המצאת ה[[טרנזיסטור]] ב[[שנות ה-50|שנות ה־50]] של [[המאה ה-20|המאה ה־20]], נבנו המעגלים סביב שני טרנזיסטורים שהחליפו את הטריודות. עם פיתוחם של המעגלים המשולבים ב[[שנות ה-60|שנות ה־60]] של [[המאה ה-20]]ה־20, יוצרו [[שבב]]ים המכילים פליפ פלופים רבים.
 
הפליפ הפלופ האלקטרוני הראשון הומצא בשנת [[1919]] על ידי ויליאם אקלס ופ. ו. ג'ורדן. תחילה הוא נקרא מעגל מעורר אקלס-גאקלס־ג'ורדן.
 
הפליפ פלופ הקלאסי מסוג S-R מקבל 2 אותות: "עבור למצב אחד" (Set), "עבור למצב אפס" (Reset) ומוציא 2 אותות: המצב (Q) והיפוך המצב.
 
במערכות סינכרוניות הפליפ פלופ מקבל גם [[אות שעון]]. במערכות אלה נפוצות 4 גרסאות: T פליפ פלופ, S-R פליפ פלופ, J-K פליפ פלופ ו-Dו־D פליפ פלופ. מצב הפליפ פלופ נקבע בכל מחזור שעון מחדש על פי משוואת המצב שלו. משוואה זו מגדירה תוצאת <math>Q_{next}</math> על פי ערכי הכניסות ו/או ערך המוצא הנוכחי <math>Q</math>.
 
הערה: כל סוגי הפליפ פלופים משנים את המוצא רק בעליית או בירידת [[אות שעון|אות השעון]] (לפי החלטת היצרן). מעבר של השעון מ-0מ־0 לוגי ל-1ל־1 לוגי או להפך נקרא מעבר אקטיבי של השעון, או שפה דוגמת של השעון.
 
==סוגי פליפ פלופים==
===T פליפ פלופ===
[[קובץ:T-Type Flip-flop.svg|שמאל|ממוזער|250px|סימון של הT פליפ פלופ. < היא כניסת השעון, T כניסת הנתונים ו-Qו־Q מוצא הפליפ פלופ שמוציא את המידע השמור]]
[[קובץ:Transistor Bistable interactive animated EN.svg|ממוזער|''R1, R2'' = 1 k&Omega;, ''R3, R4'' = 10 kΩ]]
אם כניסת T בפליפ פלופ גבוהה, הפליפ פלופ הופך את המוצא. אם כניסת ה-Tה־T נמוכה הוא שומר על הערך הקודם של היציאה. דלגלג זה מתנהג כשער לוגי XOR. ההתנהגות הזאת מתוארת על פי המשוואה הבאה:
 
<math>Q_{next}=T \oplus Q</math>
שורה 37:
 
===S-R פליפ פלופ===
[[קובץ:SR (Clocked) Flip-flop.svg|שמאל|ממוזער|250px|סימון חשמלי של פליפ פלופ S-R. < היא כניסת השעון, S היא כניסת Set, כניסת R היא Reset, היציאה Q מוציאה את הסיבית שנשמרה ו-ו־'Q את ההיפוך שלה]]
[[קובץ:SR FF timing diagram.png|ממוזער|225px|דיאגרמת מעברים של פליפ פלופ S-R]]
[[קובץ:R-S mk2.gif|ממוזער|230px|מימוש פליפ פלופ S-R בעזרת שערי [[NOR לוגי|NOR]]]]
פליפ פלופ Set/Reset מוציא ערך לוגי גבוה אם כניסת Set שלו גבוהה וכניסת Reset נמוכה בשפה הדוגמת של השעון. הפליפ פלופ מוציא ערך לוגי נמוך אם כניסת Reset שלו גבוהה וכניסת Set נמוכה בשפה הדוגמת של השעון. אם שתי הכניסות Set ו-Resetו־Reset נמוכות הפליפ פלופ שומר על ערכו הנוכחי והמוצא לא משתנה בשפה הדוגמת של השעון (הפליפ פלופ זוכר את המוצא הקודם). אולם, אם שתי הכניסות Set ו-Resetו־Reset גבוהות בשפה הדוגמת של השעון, המוצא לא מובטח.
זאת טבלת האמת של פליפ פלופ S-R:
 
שורה 56:
||1||0||X||'''1'''
|-
||1||1||X||'''לא-יציבלא־יציב'''
|-
|}
שורה 67:
===J-K פליפ פלופ===
[[קובץ:flipflopjk.svg|שמאל|ממוזער|250px|סימול חשמלי של פליפ פלופ J-K. < היא כניסת השעון,
J ו-Kו־K הן כניסות המידע, Q היא מוצא הפליפ פלופ שמוציא את הסיבית שנשמרה ו-ו־'Q היא ההופכי של Q]]
[[קובץ:JK FF impulse diagram.png|ממוזער|225px|דיאגרמת גלים של פליפ פלופ J-K]]
פליפ פלופ J-K דומה לפליפ פלופ S-R, אך ההבדל ביניהם הוא במצב שבו שתי הכניסות שוות ל-1ל־1. פליפ פלופ J-K מפרש מצב זה בתור היפוך הכניסה. בפירוט, הצירוף J=1, K=0 קובע את מוצא הפליפ פלופ ב-1ב־1 לוגי, הצירוף J=0, K=1 מאפס את מוצא הפליפ פלופ, והצירוף J=K=1 הופך את מוצא הפליפ פלופ (קובע את המוצא החדש בתור ההופכי של המוצא הישן. אם קובעים שתמיד J=K הפליפ פלופ הופך להיות T פליפ פלופ.
 
המשוואה האופיינית של פליפ פלופ J-K היא:
שורה 97:
{{-}}
===D פליפ פלופ===
[[קובץ:D Flip-flop (Simple) Symbol.svg|שמאל|ממוזער|250px|סימול חשמלי של פליפ פלופ D. < היא כניסת השעון, D היא כניסת הנתונים ו-Qו־Q היא מוצא המידע השמור]]
פליפ פלופ מסוג D (קיצור ל-Dataל־Data או ל-Delayל־Delay) הוא בעל כניסה אחת שמועברת למוצא בשפה הדוגמת של השעון, ללא תלות במוצא הנוכחי. אם D=1, בשפה הדוגמת של השעון המוצא יהיה 1 ואם D=0 בשפה הדוגמת של השעון המוצא יהיה 0. התנהגות הפליפ יכולה להתפרש כהשהיה, כי המידע עובר דרך הפליפ פלופ בהשהיה של מחזור שעון מאז שהגיע לכניסתו.
 
המשוואה המאפיינת את הפליפ פלופ היא:
שורה 114:
{{-}}
==שימושים==
הפליפ פלופ יכול לשמור סיבית אחת של מידע. לפיכך ניתן לממש [[אוטומט סופי]] (מכונת מצבים) באמצעות מספר פליפ פלופים לזכירת המצב הנוכחי של המכונה. באמצעות [[לוגיקה_בוליאנית|לוגיקה צירופית]] יחושב המוצא והמצב הבא כפונקציה של הכניסות והמצב הנוכחי על מנת לבצע את פעולת האוטומט כפי שתוכננה.
 
ב[[מחשב]] נהוג לקבץ מספר פליפ פלופים לפי גודל [[מילה (מחשב)|מילת]] ה[[מעבד]] לכדי [[אוגר (מחשבים)|אוגרים]]. האוגרים משמשים לשמירת מצב ה[[מעבד]]המעבד ולאכסון מיידי של האופרנדים לפעולותיו, בין שאלה ערכים מספריים, [[מונה (מיתוג)|מונים]], תווים [[ASCII]] או נתונים מסוגים רבים נוספים. אוגרים בודדים יכולים להיות ממומשים גם שלא כחלק ממעבד מחשב. למשל [[אוגר הזזה]] הוא אוטומט סופי בעל שימושים רבים ב[[הנדסת חשמל]] לרבות אפליקציות ב[[תורת הקודים]] וב[[קריפטוגרפיה]].
 
פליפ פלופ D מייצג סיבית אחת במספר בינארי כחלק מן האוגר.
 
פליפ פלופ T שימושי לספירה. בשפה הדוגמת של השעון הפליפ פלופ הופך את המוצא אם כניסתו T היא 1. המוצא מפליפ פלופ אחד יכול להתחבר לכניסת השעון של פליפ פלופ אחר וכן הלאה. אם נתבונן על המוצא הסופי של המעגל כרצף של סיביות שהן מוצאי הפליפ פלופים, הוא מספר בינארי שמייצג את מספר מחזורי השעון שעברו. המספר המקסימלי הוא 2<sup>n</sup> -1 כאשר n הוא מספר הפליפ פלופים בהם משתמשים.
שורה 129:
פליפ פלופ סינכרוני מועד לבעיה שנקראת [[מטה סטביליות]] שמתרחשת כשכניסת הנתונים משתנה בזמן השפה הדוגמת של השעון. התוצאה היא שהפליפ פלופ עלול להתנהג בצורה לא צפויה. עלול לקחת זמן רב יותר עד שהיא תעבור לערך לוגי חוקי כלשהו, אך ערך זה עלול להיות לא נכון. במערכות מחשב מצב זה עלול לגרום לקריסת תוכנה והשחתת מידע.
 
מטה סטביליות ניתן למנוע אם מוודאים שכניסות המידע תקפות בפרק זמן כלשהו לפני ואחרי השפה הדוגמת, שנקראים זמן setup (מסומן t<sub>su</sub>) וזמן hold (מסומן t<sub>h</sub>) בהתאמה. זמנים אלה ניתנים בדפי המידע שמספק היצרן, והם בדרך כלל בין כמה ננו-שניותננו־שניות לכמה מאות ננו-שניותננו־שניות ברכיבים מודרניים. כל הזמנים במעגל סינכרוני נמדדים ביחס לשפה הדוגמת של השעון.
 
אולם לא תמיד ניתן לעמוד בתנאי setup ו-holdו־hold כי כניסת הפליפ פלופ יכול להתחבר לאות שעלול להשתנות בזמן שלא בשליטת המתכנן. במצב כזה, הדבר הטוב ביותר שהמתכנן יכול לעשות הוא להפחית את הסיכוי לתקלה עד מידה מסוימת, שתלויה בדרישות האמינות של המעגל. שיטה אחת למנוע מטה סטביליות היא לחבר כמה פליפ פלופים בשרשרת, כך שהמוצא של פליפ פלופ אחד מזין את המבוא של הפליפ פלופ הבא ולכולם שעון משותף. בשיטה זו הסיכוי למטה סטביליות יורד לערך זניח, אבל אף פעם לא לאפס.
 
קיימים פליפ פלופים עמידים במיוחד בפני מטה סטביליות. בהם זמני setup ו-holdו־hold הם קצרים מאוד, אבל גם הם לא פותרים את הבעיה לחלוטין. זה מפני שמטה סטביליות היא לא רק עניין של תכנון המעגל. כששינויי השעון והמידע סמוכים זה לזה, מתרחש מרוץ מידע והפליפ פלופ מוכרח להכריע מה התרחש קודם. גם אם הפליפ פלופ יהיה מהיר מאוד, אם שינוי המידע והשעון יהיו סמוכים מאוד קיים סיכוי שהפליפ פלופ לא יכריע מי התרחש קודם ויכנס למצב מטה סטבילי. לכן לא ניתן לבנות פליפ פלופ חסין בפני מטה סטביליות.
 
זמן חשוב אחר נקרא זמן השיהוי מהשעון למוצא (שמסומן t<sub>p</sub>C-Q) שהוא הזמן שלוקח לפליפ פלופ לשנות את המוצא אחרי השפה הדוגמת. לעתים זמן שינוי המוצא מערך נמוך לגבוה (t<sub>p</sub>lh) שונה מזמן שינוי המוצא מערך גבוה לנמוך (t<sub>p</sub>hl).