ראשי > כללי > הדילמה של יצחק, חלק ב' (מימוש) – כמה מילים על רכיבי זיכרון במערכות סדרתיות

הדילמה של יצחק, חלק ב' (מימוש) – כמה מילים על רכיבי זיכרון במערכות סדרתיות

ברשימה הקודמת הצגתי את יצחק, ע. רועה צאן, שגמר אומר לתכנן מעגל חשמלי שבוחן כבשים עוברות בסך ומתריע כאשר ארבע שחורות עוברות ברצף. יצחק הבין שלשם כך יש צורך בשימוש בזיכרון. הצגתי את רכיב הזיכרון הפשוט ביותר שנקרא SR-Latch שיכול לזכור סיבית בודדת ושיש לו שתי ידיות, set ו-reset שבאמצעותן אנחנו יכולים לקבוע את פעולתו. סיימתי את הרשימה באפיון הרכיב על ידי טבלת אפיון וטבלת ערור. הראשונה אומרת מה יזכור הרכיב בסיבוב הבא אם ידוע מה הוא זוכר כעת ומה מצב הידיות. הטבלה השניה מסכמת עבורנו מה צריך ללחוץ אם אנחנו יודעים מה הסיבית השמורה כעת ומה הסיבית שאנחנו רוצים שתהיה שמורה בסיבוב הבא.

המשימה הפעם היא להסביר כיצד ניתן להשתמש ברכיב ה- SR-Latch כדי לתכנן את המעגל הדרוש ליצחק.

דיסקליימר – הרשימה הפעם היא מתכון טכני מאוד לפתרון בעיות מסוג מסוים. ראו הוזהרתם!

זהירות רשימה טכנית זהירות: רשימה טכנית!

***

הדבר הראשון שיש לעשות הוא לשרטט דיאגרמת מצבים שמתארת את מה שהמכונה צריכה לעשות וכיצד היא מגיבה לקלט. למכונה שתפתור את הבעיה שלנו נדרשים ארבעה מצבים שקשורים לכמה 1-דים (כבשים שחורות) כבר נצפו ברצף:

A – הקלט הקודם היה 0

B – הקלט הקודם היה 1

C – השניים הקודמים היו 1

D – השלושה הקודמים היו 1

כל מצב נוסף הוא מיותר ונכלל כבר במצבים A-D.

בדיאגרמת המצבים נשרטט שני חצים היוצאים מכל מצב עבור שני סוגי הקלט האפשריים, 0 או 1. כל חץ יוביל למצב שבו תהיה המערכת לאחר כניסת הקלט החדש. על החץ נסמן קלט משמאל ופלט מימין. להלן הדיאגרמה המתאימה לבעיה שלנו:

דיאגרמת מצבים
איור 1: דיאגרמת מצבים. המספר השמאלי על כל חץ הוא הקלט והימני הוא הפלט.

נשים לב שכל קלט של 0 מחזיר אותנו למצב A ולמעשה מאפס את הספירה. כל כניסה של 1 מקדמת אותנו למצב הבא בטור. כניסה של 1 במצב D משאירה את המצב ב-D וגם משנה את הפלט ל-1. כל עוד הקלט ממשיך להיות 1, המצב נשאר D והפלט נשאר 1 כי המכונה עדיין מזהה רצף של ארבעה 1-דים. כניסה של 0, כאמור, תשלח את המכונה למצב A,  תאפס את הספירה ותשנה את הפלט ל-0.

השלב הבא הוא לתרגם את דיאגרמת המצבים לטבלת מצבים. הטור השמאלי בטבלה מציין את המצב הנוכחי. שני הטורים הימניים מציינים את המצב הבא, אחד עבור כל אפשרות של קלט. בטורים הימניים של המצב הבא יופיע שם המצב ולידו הפלט באותו סיבוב.

טבלת מצבים

כעת נקודד את שמות המצבים לצורה בינארית. מכיוון שאנחנו נדרשים לארבעה מצבים שתי סיביות יספיקו כדי לקודד את כולם. שתי סיביות אלה הן בעצם הזיכרון שלו אנחנו נדרשים. כלומר, מספר המצבים הדרושים לפתרון הבעיה הוא זה שקובע כמה זיכרון אנחנו צריכים להקצות. נסמן סיביות אלה באותיות y1y2.

להלן הטבלה לאחר קידוד:

טבלת מצבים לאחר קידוד

השלב הבא הוא להשתמש בטבלת העירור של SR-Latch כדי לדעת מה יש להזין לכל רכיב זיכרון על מנת לעבור מ- y1y2 של המצב הנוכחי לזה של המצב הבא. לדוגמה המצב הראשון y1y2 (בשורה הראשונה) הוא 00 ולפי טבלת המצבים המקודדת עבור כניסת קלט x=0 המצב הבא הוא 00. טבלת העירור של SR-Latch (ראו רשימה קודמת) מנחה אותנו שכדי לעבור מ-0 ל-0 יש ללחוץ S=0 ואז לא משנה מה לוחצים ב-R. אם כן, גם רכיב זיכרון 1 וגם 2 צריכים לקבל כניסות של S=0 , R=d כפי שניתן לראות בשורה הראשונה של טבלת המימוש. ה-d מסמל don't care.

טבלת מימוש זיכרון

השלב האחרון לפני מימוש הוא למצוא את הפונקציה הבוליאנית המתאימה עבור כל הכניסות והיציאות של המעגל, כלומר עבור: S1, R1, S2, R2 ו-Z הפלט. כל המידע הדרוש כבר קיים בטבלאות שבנינו. נותר רק למצוא את הפתרון המינימלי.

נשתמש בשיטה הנקראת מפת קרנו. נסביר את השיטה תוך פתרון עבור S1. נרכז את הידע שלנו על S1 בטבלה כך שהשורות מוגדרות לפי y1y2 והטורים לפי X הקלט. התוכן של תאי הטבלה הוא הערכים המתאימים של S1. למשל בשורה y1y2=01 עבור x=0 דרוש S1=0 ועבור x=1 דרוש S1=1. להלן הטבלה המלאה:

מפת קרנו 1

כדי לקבל פתרון מינימלי יש לסמן ברצף את כל ה-1-דים בטבלה, בודדים, זוגות, רביעיות, שמיניות וכו'. ה-1 היחיד בטבלה של S1 ממוקם בתא שמשמעותו הבוליאנית היא בעצם x·y1'·y2  כלומר נקבל 1 אם  x ו-y2 שווים 1 ו-y1 שווה 0 (הגרש מסמן מעבר במהפך). נשים לב שמתחת ל-1 יש d, כלומר לא אכפת לי. יש לנו חופש לבחור אותו כ-1 ואז לסמן גם אותו. כעת הטבלה מראה לנו ש-y1 יכול להיות 0 או 1 ולכן S1 בעצם לא תלוי בו. אם כן נוכל לרשום את הפונקציה הבוליאנית המינימלית הבאה: S1=x·y2.

נתבונן במפת קרנו עבור R1:

מפת קרנו 2

ניתן לסמן את שני ה-1-דים ולקבל פתרון דומה לקודם שמצריך שער 'וגם' אחד. נשים לב שאם נבחר את שני ה-d מעל ה-1-דים כ-1 ונסמן גם אותם נקבל שהפתרון המינימלי הוא פשוט 'x, ללא תלות ב- y1yולכן נבחר פתרון זה, 'R1=x.

לסיכום הפונקציות הבוליאניות עבור הכניסות והיציאות הן:

S1=x·y2

'R1=x

'S2=x·y1

R2=x'+ y1

'z=x· y1·y2

נשרטט את המעגל הנדרש באמצעות סימנים מוסכמים של שערים.

מעגל פתרון

השאר כבר על יצחק.

סוף.

  1. עדיין אין תגובות.
  1. No trackbacks yet.

כתיבת תגובה