( ד ג ג – ) יחידות זיכרון
Transcription
( ד ג ג – ) יחידות זיכרון
פרק - 8יחידות זיכרון ) – Flip Flopדלגלג ( עד כה עסקנו במערכות צירופיות בהן ערכי המוצא נקבעים לפי ערכי המבוא הנוכחיים בלבד .במערכות אלו אסורים מסלולים מעגליים .כעת נרחיב את הדיון למערכות עם מעגלים .למשל : Y X ניתוח לוגי של המערכת מראה ש ’X = Y ’Y = X למערכת זו שני פתרונות אפשריים : 220 X=0, Y=1 X=1, Y=0 אין כל סיבה להעדיף פתרון אחד מהשניים ולכן למערכת זו שני מצבים יציבים. כאשר היא תתייצב באחד מהם ,היא תישאר בו .מערכת כזו נקראת דו-יציבה ) . ( bi-stable תכונות: .1הרכיב זוכר ) ' '0או ' '1נשארים תמיד ( . אבל: .2לא ניתן לקבוע מצב. .3לא ניתן לקרוא. .4אין סנכרון ,תיאום שעון -מתי נקבע הערך ! 221 1 דוגמא נוספת: X '' 0 Z '' 1 Y ←''0 הפעם צריך להתקיים : ’X = Y ’Y = Z ’Z = X 222 למערכת אין פתרון יציב כי צריך להתקיים : ’X = Y’ = Z = X נתבונן בהתנהגות המערכת לאורך זמן .נניח שההשהיה של כל מהפך היא t pd (NOT ) = τ 223 2 Y 1 0 X Z 10τ 11τ 9τ 8τ 7τ 6τ 5τ 4τ 3τ 2τ τ 0 המערכת רוטטת ) מתנדנדת ( בין ערכים לוגיים בלתי יציבים ,עם מחזור באורך . 6τניתן להכליל ניתוח זה למעגלים בעלי nמהפכים :כאשר n זוגי המערכת היא דו-יציבה וכאשר nאי-זוגי המערכת אינה יציבה . 224 נדגיש כי אם למערכת יש פתרון במישור הלוגי ,כלומר למשוואות הלוגיות הנגזרות ממנו ,עדיין לא מובטח שאכן אלו הערכים שנמצא במעגל הפיזי . לדוגמא ,בטבעת עם שני המהפכים ,אם נאלץ ‘ ’0בשתי הכניסות למהפכים , ובהנחה ש tcd(NOT) = tpd(NOT) = τ -אזי המערכת תתנדנד בין ‘ ’0ל. ’1‘ - התכונה היחידה שאמורה להיות מובטחת על ידי מעגל פיזי היא שעבור כניסות חוקיות ,כל רכיב מייצר ערכי יציאה חוקיים .פתרון למשואות הלוגיות רק מראה שיש אפשרות לפתרון יציב . 225 3 )Basic Set-Reset Latch (SR or Set-Reset Latch or Reset-Set Latch אין דרך מעשית פשוטה לקבוע מה יהיה ערכו של זוג המהפכים הדו-יציב . במקום המעגל הקודם משתמשים במעגל להלן : ’Q Q קובע ''1 set S reset R קובע ''0 ’Q '' 0 NOR '' 1 S '' 1 Q '' 0 '' 1 R כאשר R=S=0זהו בדיוק מעגל שני המהפכים .כניסות S , Rמאפשרות לשנות את מצבו של המעגל . 226 טבלת מעברים: Q q 0 1 ? SR 0 0 0 1 1 0 1 1 שומר מצב :מה שהיה בQ - נשמר. reset למשל ,מעבר set מ 01ל 00 צירוף אסור 10ל 00 עם המצב הזה יש בעיה :נניח ’ Q=‘0ועוברים ב SR -מ '11' -ל . '00' -עקרונית ,צריך להישמר המצב ,כלומר ’. q=‘0 שער תחתון מהיר סותר את ההגדרה כי לא נשמר מצב – תלוי בהשהיית השערים .אסור לאפשר מעבר בו זמנית מ '11'-ל'00' - 227 4 00 ’Q=‘1 00 שער עליון מהיר ’Q=‘0 SR 10 ’Q=‘1 01 ’Q=‘0 11 .1מצב התחלתי ’S=R=‘0 Q=0וQ ' =1 - .2העלאה של Sל ’1‘ -גוררת (set) Q=1 , Q’=0 .3החזרה של Sל ’0‘ -אינה משנה את . Qלכן ,הכתיבה של ‘ ’1לQ - נשמרת ולכן זהו רכיב זיכרון. .4העלאה של Rל ’1‘ -גוררת Q’=1 , Q=0 )(reset .5החזרה של Rל ’0’-אינה משנה את היציאות ) זיכרון (. .6העלאה שוב של Sל - ’1’-כמו 2לעיל . העלאה עוקבת של Rל ’1’-מאפסת את שתי היציאות . 228 תיאור הפעולה ) ,כולל המקרה ( R=S=1בדיאגרמת זמנים : 7 8 9 6 5 4 2 3 1 ' 0' S ' 0' R ’'1' Q ' 0' Q Reset 229 5 שומר Setמצב Reset שומר מצב Set מתחילים ממצב Reset אם Rו Sירדו ביחד מ ’ ’1ל ’ ’0ינסו שני השערים להעלות את המוצא שלהם לערך ‘ , ’1ויווצר מירוץ ) . ( raceאם באחד מן השערים t pdקטן באופן משמעותי מאשר בשני -הוא ינצח ,כלומר מוצא השער בשני יהיה ‘. '0 אחרת ,יש סיכוי שהמערכת תגיע למצב הקרוי “על יציב” ) מטה-סטבילי( שעלול להימשך זמן בלתי מוגדר ,עד לכניסת המערכת לאחד משני המצבים היציבים )בלא יכולת לחזות מי משני המצבים ייבחר( . רכיב ORלא מגיב ביציאה כל עוד יש לו כניסה חוקית ב ’ ’1לוגי .אם Sו R שניהם מתחלפים מ ’ ’1ל ’ , ’0שתי יציאות Qו ’ Qיכולות להתחיל לעלות לכיוון ‘ ’1לוגי ואז היציאות מתייצבות על ערך מתח לא חוקי vכי מצד אחד נכנס מתח vאל כל אחד מהשערים ,ויוצא . vהמערכת מתייצבת על ערך זה וזהו מצב . metastabilityמצד שני ,אם רק Sלמשל יורד מ ’ ’1ל ’, ’0 היציאה Qתמיד נשארת ב ’ ’0ולכן ’ Qיעבור ל '. '1 נדון במצב על יציב בהמשך ובינתיים נזכור שיש להימנע משינוי בו זמנית של Rושל Sמ ’ ’1ל ’. ’0 230 ניתן לבקר מתי הכניסות S , Rתשפענה על ה Latchבאמצעות המעגל הבא : Q S ’Q R G S R הכניסה Gנקראת Gateאו שער .כאשר G=1ה ' Latchפתוח’ או ‘שקוף’ . כאשר G=0ה latchנעול ויציאותיו אינן מושפעות משינויים בכניסות . 231 6 Transparent Latch על ידי שינוי קל ניתן להשתמש ב latch -לאחסון סיבית בודדת . D Data out Q D Data in G Gate Q G D S R הרכיב נקרא Transparentמכיוון שהכניסה Dעוברת אל היציאה Q תיאור הפעולה בדיאגרמת זמנים ) ה latch -שומר על מצבו כאשר ,G=0 שקוף כאשר : ( G=1 1 4 8 10 11 13 D 14 12 7 9 6 5 2 3 G 232 Q יש חיסרון משמעותי לרכיבים “שקופים” :נניח שאנו מעונינים לבנות ‘אוגר הזזה ’ המורכב ממספר רכיבי זיכרון המחוברים בטור : Q Q D G Q D G Q D D G G כאשר אוגר הזזה פועל נכון יש שליטה על מספר המקומות שכל סיבית זזה . כלומר ,בכל פעם ש G -עולה ל ’1’-ויורד ל ’0’-אנו רוצים שהסיביות באוגר יזוזו בדיוק מקום אחד ימינה .אבל ,אם נשתמש ב- Transparent Latchesמספר התאים דרכם יעבור הקלט תלוי באורך הזמן שבו Gבערך ' .'1אפשר ,אמנם ,להקפיד ש – Gיהיה בערך ' '1בדיוק למשך הזמן הדרוש למעבר דרך Latchאחד ,אבל אז המעגל יהיה רגיש לשינויי זמן אנלוגיים עליהם קשה לשלוט ,וכן לשינויים רבים אחרים .תכנון כזה נחשב בדרך כלל לגרוע .יש צורך בפיתרון אחר. 233 7 )Edge Triggered D Flip Flop (DFF or ETDFF Master-Slave D-FF משתמשים בשני : latches X D Q Slave G Q Data D Master G Clock כאשר השעון clock=0ה " master -פתוח" וכניסת Dataעוברת לצומת הפנימית . Xכאשר השעון עולה ל ’1’-מתרחשים שני הדברים הבאים: ה – Masterנסגר ומכאן ואילך הוא “זוכר” את ערכו האחרון של X ה Slave -נפתח וערכו של Xמועבר ליציאה.234 מאוחר יותר יורד השעון שוב לאפס ,ואז קורים שני הדברים הבאים: ה Slaveנסגר ומכאן והלאה הוא “זוכר” את ערכו האחרון של Q ה Masterנפתח ומאפשר לכניסה Dataלקבוע את ערכו הבא של X יש לשים לב לשני כללים בנוגע לפליפ פלופ: .1התזמון המדויק קריטי ולכן בדרך כלל תכנון הפליפ-פלופ נעשה על ידי מומחים בלבד ולא על ידי המהנדס המתכנן את שאר המערכת הספרתית. לדוגמא ,יש לקחת בחשבון את זמן התפשטות הסיגנל של שער ה , NOT כדי להימנע ממצב שבו כאשר ה clockעובר מ ’ ’0ל ’ ’1שני ה latches פתוחים. .2בזמן שהשעון עולה אנו מניחים ש Xכבר התייצב ואיננו עובר שינוי בו זמנית .לכן מטילים מגבלה על זמני ההשתנות של כניסת : Dataהיא חייבת להיות יציבה זמן מסוים לפני עליית השעון כדי ש Xיתעדכן וגם להישאר יציבה זמן מסוים לאחר עליית השעון כדי להבטיח שה latchהשמאלי הופך לשקוף , ו xיישאר בערך שנקבע לו . 235 8 Dיציב לאחר Dיציב לפני עליית השעון עליית השעון 2 7 D 4 9 11 X עוקב אחרי Data בגלל ירידת השעון 6 Q 10 8 3 5 1 Clock Masterפתוח ה Masterפתוח היציאה Qעוקבת אחרי X time 236 בעליית השעון היציאה Qעוקבת אחרי : Xהרכיב פעיל בעליית השעון ! סימון הפליפ-פלופ נראה כך : Q ’Q D פירושו אם מופיע שהרכיב אקטיבי ) משנה ערך יציאה ( בירידת השעון clock מעבר אקטיבי של השעון :מעבר שגורם לשינוי ביציאה . המשולש מסמן כניסת שעון מסוג . Edge-Triggeredשימו לב שכניסת הETDFF - מייצגת מאורעות ) נקודות זמן ,המיוצגות על ידי עליות השעון( ,בעוד כניסת השער)(G ל Transparent Latch -מייצגת אינטרוולים ) קטעים בזמן ( . בעזרת ETDFFניתן לבנות אוגר הזזה הפועל נכון :כל עליית שעון מקדמת את הסיביות במקום אחד בלבד .ניתן גם לתכנן פליפ-פלופ אחר מסוג , master-slaveעל ידי שימוש בשני Transpatrent latchesהמופעלים באמצעות שני אותות שעון שאינם חופפים . תכנון המשמש סוג מסוים של רכיבי . VLSI זהו 237 9 סוג אחר של ETDFFמאפשר לחסום את הכניסה על ידי אות enableמבלי למתג את השעון : D En Q ’Q SET Q ’Q CK Enable D CLR D CK מיתוג שעון Enable CLC 238 רגיסטרים הרכיבים ממותגי השפה ) ( Edge Triggeredמשמשים לבניית אוגרים )רגיסטרים( המאפשרים כתיבה וקריאה בו זמנית .דוגמא למימוש רגיסטר בעל 4סיביות : D4 SET Q ’Q D3 SET Q D ’Q CLR D2 SET Q D ’Q CLR D1 SET Q D ’Q CLR D CLR Load Q4 Q3 Q2 Q1 צעד אחד נוסף קדימה הוא זיכרון קריאה/כתיבהRandom Access memory , . RAMמימוש אפשרי לזיכרון כזה ,בעל 8תאים ) 3קווי כתובת( המאפשר קריאה וכתיבה בו זמניות ,מתואר להלן : 239 10 אין קריאה פנימה כל עוד . clock = 0 SET Q השפה הפעילה היא ירידת השעון ’Q CLR SET Q ’Q Output data SEL 240 Read address D D DEC D D CLR SET Q ’Q 1 CLR SET Q ’Q 1 Write address CLR SET Q ’Q D CLR SET Q ’Q D CLR SET Q ’Q load רק ה Dהנבחר → ' load = '1 קולט Data CLR SET Q ’Q D Input data D CLR * על ידי הוספת בורר נוסף ניתן יהיה לבצע פעולת כתיבה ושתי פעולות קריאה בו זמנית ) שלושה תאים – אחד נכתב 2 ,נקראים ( * על ידי שימוש ב n -עותקים של מעגל זה ,ניתן לבנות זיכרון למילים בנות nסיביות ) למילה אותה כתובת ולכן כמה סיביות של אותה מילה אינן יכולות להיות אגורות ברכיב אחד כלעייל(. * לצורך בניית זיכרונות גדולים משתמשים בדרך כלל בטכנולוגיות אחרות ) למשל במערכי קבלים של זיכרונות DRAMשהמטען בהם מייצג סיביות של מידע( . 241 11 תזמונים בפליפ-פלופים בדומה לפרמטרי ההשהיות ברכיבים צירופיים ,מוגדרים פרמטרים דומים גם עבור רכיבים ממותגי שפה ) . ( Edge-Triggeredאלו מוגדרים בדרך כלל ביחס לזמן עליית השעון עבור רכיבים הפועלים עם עליית השעון. סימון C-Q :פירושו . Clock-to-Queue תזמון ערכי יציאות tpC-Q פרק הזמן המכסימלי מזמן עליית השעון ועד שמוצא הפליפ-פלופ מתייצב בערך החוקי. tcC-Q פרק הזמן המינימלי מזמן עליית השעון בו עדיין מובטח שמוצא הרכיב יישאר יציב ברמתו הלוגית הקודמת. תזמון ערכי כניסות thold , tsetup ts משך הזמן לפני עליית השעון בו הכניסה לפליפ-פלופ צריכה להיות יציבה. th משך הזמן לאחר עליית השעון בו הכניסה לפליפ-פלופ צריכה להשאר יציבה. 242 בדרך כלל thו ts -קטנים בהרבה מן ההשהיות האחרות במערכת ,ומניחים שהם . 0גם tcC-Qהוא בדרך כלל קטן ,אולם מניחים שאיננו 0אלא מקיים . tcC-Q > thדרישה זו חיונית בכדי שאפשרי יהיה לחבר יציאת פליפ-פלופ אחת ישירות לכניסה של פליפ-פלופ אחר : th D X tC-Q Q D IN CLOCK 243 12 נניח שהשעון מגיע אל שני ה D-FF -באותו הזמן: כאשר השעון עולה הכניסה ל D -צריכה להישאר קבועה עדיין למשך thיחידות זמן .לכן ,היציאה Qצריכה עדיין להישאר בערכה הקודם. th tcC-Q > t h ts Data Q CLOCK tpC-Q 244 ההבדל שבין Latchלבין : Flip Flop ב Latch -שינויים ביציאה מתרחשים כאשר השעון ברמה כלשהיא ) ' '0או '( '1 ב Flip flop -השינויים ביציאה מתרחשים רק כאשר השעון משנה ערך ) מ '0' -ל '1'-או מ '1'-ל.( '0'- 245 13 4סוגי : Flip flops .1 .2 .3 .4 D-FF T-FF SR-FF JK-FF D-FF D 0 1 0 1 → Q → 0 → 1 → 0 → 1 q 0 0 1 1 Q D Q 0 0 1 1 D ’Q clk 246 T-FF פליפ-פלופ זה מוגדר על ידי טבלת המעברים הבאה: ) כאשר הכניסה T=1מחליף ה FF -את ערכו ,ולכן הוא קרוי : ( Trigger FF T q→ Q 0 0→ 0 1 0→ 1 1 1→ 0 0 1→ 1 Q שומר מצב ניתן לממש T-FFעל ידי : D-FF D T ’Q 247 clk 14 Q q ’q T 0 1 SR-FF SR 0 0 1 0 0 1 1 1 SR q 00 0 0 1 1 Q q 1 0 ? שומר מצב S Q R Q’ clk q→ Q S R 01 11 10 0→ 0 0 φ 0 0 0→ 1 1 0 1→ 0 0 1 1→ 1 φ 0 ? ? 1 1 Q 248 JK-FF SR-FF , T-FF שילוב של J 0 1 0 1 K 0 0 1 1 Q q 1 0 q’ שומר מצב 0 1 Q K Q’ clk JK q J q→ Q J K 00 01 11 10 0→ 0 0 φ 0 1 0 0 0→ 1 1 φ 1→ 0 φ 1 1→ 1 φ 0 1 0 Q 1 1 249 15 שקף ריק 250 שקף ריק 251 16 שקף ריק 252 שקף ריק 253 17 שקף ריק 254 18