פרק - 8 יחידות זיכרון ) Flop Flip דלגלג ( עד כה עסקנו במערכות צירופיות בהן ערכי המוצא נקבעים לפי ערכי המבוא הנוכחיים בלבד. במערכות אלו אסורים מסלולים מעגליים. כעת נרחיב את הדיון למערכות עם מעגלים. למשל : Y X X = Y Y = X ניתוח לוגי של המערכת מראה ש X = 0, Y = 1 X = 1, Y = 0 למערכת זו שני פתרונות אפשריים : 220 אין כל סיבה להעדיף פתרון אחד מהשניים ולכן למערכת זו שני מצבים יציבים. כאשר היא תתייצב באחד מהם, היא תישאר בו. מערכת כזו נקראת דו-יציבה. ( bi-stable ) תכונות:.1 הרכיב זוכר ) '0' או '1' אבל: 2. לא ניתן לקבוע מצב. 3. לא ניתן לקרוא. 4. אין סנכרון, תיאום שעון נשארים תמיד (. - מתי נקבע הערך! 221 1
Y X ' 0' Z '1' דוגמא נוספת: X = Y Y = Z Z = X ' 0' הפעם צריך להתקיים : 222 למערכת אין פתרון יציב כי צריך להתקיים : X = Y = Z = X נתבונן בהתנהגות המערכת לאורך זמן. נניח שההשהיה של כל מהפך היא (NOT ) = τ t pd 223 2
Y 1 0 X Z 0 τ 2τ 3τ 4τ 5τ 6τ 7τ 8τ 9τ 10τ 11τ 224 המערכת רוטטת ) מתנדנדת ( בין ערכים לוגיים בלתי יציבים, עם מחזור באורך. 6τ ניתן להכליל ניתוח זה למעגלים בעלי n מהפכים : כאשר n זוגי המערכת היא דו-יציבה וכאשר n אי-זוגי המערכת אינה יציבה. נדגיש כי אם למערכת יש פתרון במישור הלוגי, כלומר למשוואות הלוגיות הנגזרות ממנו, עדיין לא מובטח שאכן אלו הערכים שנמצא במעגל הפיזי. לדוגמא, בטבעת עם שני המהפכים, אם נאלץ 0 בשתי הכניסות למהפכים, ובהנחה ש- t cd (NOT) = t pd (NOT) = τ אזי המערכת תתנדנד בין 0 ל- 1. התכונה היחידה שאמורה להיות מובטחת על ידי מעגל פיזי היא שעבור כניסות חוקיות, כל רכיב מייצר ערכי יציאה חוקיים. פתרון למשואות הלוגיות רק מראה שיש אפשרות לפתרון יציב. 225 3
Basic Set-Reset Latch (SR) or Set-Reset Latch or Reset-Set Latch אין דרך מעשית פשוטה לקבוע מה יהיה ערכו של זוג המהפכים הדו-יציב. במקום המעגל הקודם משתמשים במעגל להלן : S R '1' '0' '1' NOR '0' '1' קובע '1' set reset קובע '0' S R 226 כאשר R=S=0 זהו בדיוק מעגל שני המהפכים. כניסות S, R מאפשרות לשנות את מצבו של המעגל. טבלת מעברים: S R שומר מצב : מה שהיה ב- 0 0 q נשמר. למשל, מעבר 0 1 0 reset 1 0 1 set מ 01 ל 00 צירוף אסור? 1 1 10 ל 00 עם המצב הזה יש בעיה: נניח 0 = ועוברים ב- SR מ- '11' ל- '00'. עקרונית, צריך להישמר המצב, כלומר q= 0. 11 SR 10 = 1 01 = 0 סותר את ההגדרה כי לא נשמר מצב תלוי בהשהיית השערים. אסור לאפשר מעבר בו זמנית מ-' 11 ' ל- '00' 00 = 1 00 = 0 227 שער עליון מהיר שער תחתון מהיר 4
S=R= 0 ' =1 ו- =0 1. מצב התחלתי (set).2 העלאה של S ל- 1 גוררת =0 =1, 3. החזרה של S ל- 0 אינה משנה את. לכן, הכתיבה של 1 ל- נשמרת ולכן זהו רכיב זיכרון. (reset).4 העלאה של R ל- 1 גוררת =0 =1, 5. החזרה של R ל- 0 אינה משנה את היציאות ) זיכרון ). 6. העלאה שוב של S ל- 1 - כמו 2 לעיל. העלאה עוקבת של R ל- 1 מאפסת את שתי היציאות. 228 ( בדיאגרמת זמנים : תיאור הפעולה, ) כולל המקרה R=S=1 1 2 3 4 5 6 7 8 9 '0' '0' S R '1' '0' מתחילים שומר Reset שומר מצב Set ממצב Reset Set Reset מצב 229 5
אם R ו S ירדו ביחד מ 1 ל 0 ינסו שני השערים להעלות את המוצא שלהם לערך 1, ויווצר מירוץ ) race (. אם באחד מן השערים t pd קטן באופן משמעותי מאשר בשני - הוא ינצח, כלומר מוצא השער בשני יהיה 0'. אחרת, יש סיכוי שהמערכת תגיע למצב הקרוי על יציב ) מטה-סטבילי) שעלול להימשך זמן בלתי מוגדר, עד לכניסת המערכת לאחד משני המצבים היציבים (בלא יכולת לחזות מי משני המצבים ייבחר). רכיב OR לא מגיב ביציאה כל עוד יש לו כניסה חוקית ב 1 לוגי. אם S ו R שניהם מתחלפים מ 1 ל 0, שתי יציאות ו יכולות להתחיל לעלות לכיוון 1 לוגי ואז היציאות מתייצבות על ערך מתח לא חוקי v כי מצד אחד נכנס מתח v אל כל אחד מהשערים, ויוצא. v המערכת מתייצבת על ערך זה וזהו מצב. metastability מצד שני, אם רק S למשל יורד מ 1 ל 0, היציאה תמיד נשארת ב 0 ולכן יעבור ל '1'. נדון במצב על יציב בהמשך ובינתיים נזכור שיש להימנע משינוי בו זמנית של R ושל S מ 1 ל 0. 230 ניתן לבקר מתי הכניסות S, R תשפענה על ה Latch באמצעות המעגל הבא : S S R R הכניסה נקראת ate או שער. כאשר 1= ה Latch 'פתוח או שקוף. כאשר 0= ה latch נעול ויציאותיו אינן מושפעות משינויים בכניסות. 231 6
Transparent Latch על ידי שינוי קל ניתן להשתמש ב- latch לאחסון סיבית בודדת. S ata in ata out R ate 232 הרכיב נקרא Transparent מכיוון שהכניסה עוברת אל היציאה תיאור הפעולה בדיאגרמת זמנים ) ה - latch שומר על מצבו כאשר 0=, שקוף כאשר =1 ( : 1 4 8 10 11 13 2 3 5 6 7 9 12 14 יש חיסרון משמעותי לרכיבים שקופים : נניח שאנו מעונינים לבנות אוגר הזזה המורכב ממספר רכיבי זיכרון המחוברים בטור : 233 כאשר אוגר הזזה פועל נכון יש שליטה על מספר המקומות שכל סיבית זזה. כלומר, בכל פעם ש - עולה ל- 1 ויורד ל- 0 אנו רוצים שהסיביות באוגר יזוזו בדיוק מקום אחד ימינה. אבל, אם נשתמש ב- Transparent Latches מספר התאים דרכם יעבור הקלט תלוי באורך הזמן שבו בערך '1'. אפשר, אמנם, להקפיד ש יהיה בערך '1' בדיוק למשך הזמן הדרוש למעבר דרך Latch אחד, אבל אז המעגל יהיה רגיש לשינויי זמן אנלוגיים עליהם קשה לשלוט, וכן לשינויים רבים אחרים. תכנון כזה נחשב בדרך כלל לגרוע. יש צורך בפיתרון אחר. 7
Edge Triggered Flip Flop (FF or ETFF) Master-Slave -FF ata Master משתמשים בשני : latches X Slave Clock כאשר השעון clock=0 ה - master "פתוח" וכניסת ata עוברת לצומת הפנימית. X כאשר השעון עולה ל- 1 מתרחשים שני הדברים הבאים: - ה Master נסגר ומכאן ואילך הוא זוכר את ערכו האחרון של X - ה - Slave נפתח וערכו של X מועבר ליציאה. 234 מאוחר יותר יורד השעון שוב לאפס, ואז קורים שני הדברים הבאים: ה Slave נסגר ומכאן והלאה הוא זוכר את ערכו האחרון של ה Master נפתח ומאפשר לכניסה ata לקבוע את ערכו הבא של X יש לשים לב לשני כללים בנוגע לפליפ פלופ: 1. התזמון המדויק קריטי ולכן בדרך כלל תכנון הפליפ-פלופ נעשה על ידי מומחים בלבד ולא על ידי המהנדס המתכנן את שאר המערכת הספרתית. לדוגמא, יש לקחת בחשבון את זמן התפשטות הסיגנל של שער ה, NOT כדי להימנע ממצב שבו כאשר ה clock עובר מ 0 ל 1 שני ה latches פתוחים. 2. בזמן שהשעון עולה אנו מניחים ש X כבר התייצב ואיננו עובר שינוי בו זמנית. לכן מטילים מגבלה על זמני ההשתנות של כניסת : ata היא חייבת להיות יציבה זמן מסוים לפני עליית השעון כדי ש X יתעדכן וגם להישאר יציבה זמן מסוים לאחר עליית השעון כדי להבטיח שה latch השמאלי הופך לשקוף, ו x יישאר בערך שנקבע לו. יציב לאחר עליית השעון יציב לפני עליית השעון 235 8
עוקב אחרי ata בגלל ירידת השעון X Clock 1 2 4 3 5 6 ה Master פתוח היציאה עוקבת אחרי X Master פתוח 7 9 8 10 11 time בעליית השעון היציאה עוקבת אחרי : X הרכיב פעיל בעליית השעון! 236 סימון הפליפ-פלופ נראה כך : אם מופיע פירושו שהרכיב אקטיבי ) משנה ערך יציאה ( בירידת השעון clock מעבר אקטיבי של השעון : מעבר שגורם לשינוי ביציאה. 237 המשולש מסמן כניסת שעון מסוג. Edge-Triggered שימו לב שכניסת ה- ETFF מייצגת מאורעות ) נקודות זמן, המיוצגות על ידי עליות השעון), בעוד כניסת השער( ) ל- Transparent Latch מייצגת אינטרוולים ) קטעים בזמן (. בעזרת ETFF ניתן לבנות אוגר הזזה הפועל נכון : כל עליית שעון מקדמת את הסיביות במקום אחד בלבד. ניתן גם לתכנן פליפ-פלופ אחר מסוג, master-slave על ידי שימוש בשני Transpatrent latches המופעלים באמצעות שני אותות שעון שאינם חופפים. זהו תכנון המשמש סוג מסוים של רכיבי. VLSI 9
סוג אחר של ETFF מאפשר לחסום את הכניסה על ידי אות enable מבלי למתג את השעון : Enable CK SET En CK מיתוג שעון Enable CLC 238 רגיסטרים הרכיבים ממותגי השפה ) Triggered ( Edge משמשים לבניית אוגרים (רגיסטרים) המאפשרים כתיבה וקריאה בו זמנית. דוגמא למימוש רגיסטר בעל 4 סיביות : 1 2 3 4 SET SET SET SET Load 1 2 3 4 צעד אחד נוסף קדימה הוא זיכרון קריאה/כתיבה, Random Access memory. RAM מימוש אפשרי לזיכרון כזה, בעל 8 תאים ) 3 קווי כתובת) המאפשר קריאה וכתיבה בו זמניות, מתואר להלן : 239 10
load Input data SET השפה הפעילה היא ירידת השעון רק ה הנבחר קולט ata load = '1 ' אין קריאה פנימה כל עוד = 0 clock. SET Write address EC 1 1 SET SET SET SEL Output data SET SET SET 240 Read address * על ידי הוספת בורר נוסף ניתן יהיה לבצע פעולת כתיבה ושתי פעולות קריאה בו זמנית ) שלושה תאים אחד נכתב, 2 נקראים ( * על ידי שימוש ב- n עותקים של מעגל זה, ניתן לבנות זיכרון למילים בנות n סיביות ) למילה אותה כתובת ולכן כמה סיביות של אותה מילה אינן יכולות להיות אגורות ברכיב אחד כלעייל). * לצורך בניית זיכרונות גדולים משתמשים בדרך כלל בטכנולוגיות אחרות ) למשל במערכי קבלים של זיכרונות RAM שהמטען בהם מייצג סיביות של מידע). 241 11
תזמונים בפליפ-פלופים בדומה לפרמטרי ההשהיות ברכיבים צירופיים, מוגדרים פרמטרים דומים גם עבור רכיבים ממותגי שפה ) Edge-Triggered (. אלו מוגדרים בדרך כלל ביחס לזמן עליית השעון עבור רכיבים הפועלים עם עליית השעון. סימון : C- פירושו. Clock-to-ueue תזמון ערכי יציאות t pc- פרק הזמן המכסימלי מזמן עליית השעון ועד שמוצא הפליפ-פלופ מתייצב בערך החוקי. t cc- פרק הזמן המינימלי מזמן עליית השעון בו עדיין מובטח שמוצא הרכיב יישאר יציב ברמתו הלוגית הקודמת. תזמון ערכי כניסות t hold, t setup t s משך הזמן לפני עליית השעון בו הכניסה לפליפ-פלופ צריכה להיות יציבה. t h משך הזמן לאחר עליית השעון בו הכניסה לפליפ-פלופ צריכה להשאר יציבה. 242 בדרך כלל t h ו- t s קטנים בהרבה מן ההשהיות האחרות במערכת, ומניחים שהם. 0 גם t cc- הוא בדרך כלל קטן, אולם מניחים שאיננו 0 אלא מקיים. t cc- > th דרישה זו חיונית בכדי שאפשרי יהיה לחבר יציאת פליפ-פלופ אחת ישירות לכניסה של פליפ-פלופ אחר : t C- t h IN X CLOCK נניח שהשעון מגיע אל שני ה- -FF באותו הזמן: כאשר השעון עולה הכניסה ל- צריכה להישאר קבועה עדיין למשך t h יחידות זמן. לכן, היציאה צריכה עדיין להישאר בערכה הקודם. 243 12
ata t t h s t cc- > t h CLOCK t pc- 244 ההבדל שבין Latch לבין : Flip Flop ב- Latch שינויים ביציאה מתרחשים כאשר השעון ברמה כלשהיא ) '0' או '1' ( ב- Flip flop השינויים ביציאה מתרחשים רק כאשר השעון משנה ערך ) מ- '0' ל-' 1 ' או מ-' 1 ' ל-' 0 ' ). 245 13
4 סוגי : Flip flops -FF T-FF SR-FF JK-FF.1.2.3.4 -FF clk 0 0 1 1 q 0 0 0 0 1 1 1 0 0 1 1 1 246 T-FF : ( Trigger FF פליפ-פלופ זה מוגדר על ידי טבלת המעברים הבאה: ) כאשר הכניסה 1=T מחליף ה- FF את ערכו, ולכן הוא קרוי : -FF T 0 q 1 q שומר מצב ניתן לממש T-FF על ידי q T 0 0 0 0 1 1 1 0 1 1 1 0 T clk 247 14
SR-FF S R 0 0 q 1 0 1 0 1 0 1 1? שומר מצב clk S R SR q 00 01 11 10 0 1 0 0? 1 1 0? 1 q S R 0 0 0 φ 0 1 1 0 1 0 0 1 1 1 φ 0 248 שילוב של SR-FF, T-FF JK-FF J K 0 0 q 1 0 1 0 1 0 1 1 q שומר מצב clk J K JK q 0 1 00 01 11 10 0 0 1 1 1 0 0 1 q J K 0 0 0 φ 0 1 1 φ 1 0 φ 1 1 1 φ 0 249 15
שקף ריק 250 שקף ריק 251 16
שקף ריק 252 שקף ריק 253 17
שקף ריק 254 18