מכונת מצבים

Download Report

Transcript מכונת מצבים

‫מכונת מצבים סופית‬
‫תרגול מס' ‪4‬‬
‫‪1‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫מכונת מצבים סופית‬
‫)‪Finite State Machine (FSM‬‬
‫מודל למערכת ספרתית‬
‫מכונת מצבים סופית‪:‬‬
‫קלט‪ :‬סדרה אינסופית של אותיות ‪I1 , I 2 , I3 ,...‬‬
‫בא"ב ‪input‬‬
‫פלט‪ :‬סדרה אינסופית של אותיות ‪ O1 , O2 , O3 ,...‬בא"ב‬
‫‪out‬‬
‫במחזור ה‪ ,i-‬מתקבלת אות הקלט ‪ Ii‬ומשודרת אות הפלט ‪Oi‬‬
‫במכונה מסוג מור (‪ O ,)Moore‬נקבע ע"י ‪I1 , I 2 ,..., Ii 1‬‬
‫‪i‬‬
‫במכונה מסוג מילי (‪ Oi ,)Meally‬נקבע ע"י‬
‫‪I1 , I 2 ,..., Ii‬‬
‫מכונת מצבים מוגדרת ע"י דיאגרמת מצבים‪:‬‬
‫גרף מכוון‪ ,‬עם סימון על הקשתות והצמתים‪.‬‬
‫‪2‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫דוגמה ל‪FSM-‬‬
‫א"ב קלט‪{A,B,C,D} :‬‬
‫א"ב פלט }‪{X,Y,Z‬‬
‫‪A‬‬
‫‪B‬‬
‫‪C‬‬
‫= ‪Out‬‬
‫?)‪(IN == B‬‬
‫‪X:Z‬‬
‫‪Out = X‬‬
‫‪Out = Y‬‬
‫‪A‬‬
‫‪A‬‬
‫‪B,C,D‬‬
‫‪A‬‬
‫‪B,D‬‬
‫‪C,D‬‬
‫מצב התחלתי יסומן כך‪:‬‬
‫מכונה היא מסוג מילי אם‬
‫ורק אם יש בה מצב אחד‬
‫או יותר עם פלט מותנה‬
‫‪Out = X‬‬
‫‪3‬‬
‫‪B,C,D‬‬
‫מכונה מצומצמת‬
‫• שתי מכונות מצבים סופיות ִת ֵ‬
‫קראנה שקולות אם‬
‫עבור כל סדרת קלט הן מוציאות את אותה סדרת‬
‫פלט‬
‫• מכונת מצבים סופית תקרא מצומצמת אם יש לה‬
‫מספר מינימלי של מצבים מבין כל המכונות‬
‫השקולות לה‪.‬‬
‫• משפט‪ :‬עבור כל מכונה ‪ ,M‬קיימת בדיוק מכונה‬
‫מצומצמת אחת השקולה ל‪.M-‬‬
‫‪4‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫דוגמה למכונה מצומצמת‬
‫‪1‬‬
‫‪0‬‬
‫= ‪Out‬‬
‫‪1-IN‬‬
‫‪0‬‬
‫‪Out = 0‬‬
‫‪1‬‬
‫המכונה הבאה שקולה למכונה הנ"ל‪ ,‬ומכילה מספר גדול יותר של מצבים‪:‬‬
‫‪1‬‬
‫‪0‬‬
‫= ‪Out‬‬
‫‪1-N‬‬
‫‪0‬‬
‫= ‪Out‬‬
‫‪1-IN‬‬
‫‪0‬‬
‫‪Out = 0‬‬
‫‪1‬‬
‫‪5‬‬
‫‪1‬‬
‫דוגמא ‪ 1‬לבניית מכונת מצבים ‪ABC -‬‬
‫• א"ב קלט‪{A,B,C,D} :‬‬
‫• א"ב פלט‪{X,Y,Z} :‬‬
‫– הפלט הוא ‪ Z‬אם "המילה האחרונה" שהתקבלה היא ‪ABC‬‬
‫– הפלט הוא ‪ Y‬אם "המילה האחרונה" שהתקבלה היא ‪AB‬‬
‫– הפלט הוא ‪ X‬בכל מקרה אחר‬
‫• למשימה שתי גרסאות‪:‬‬
‫– בגרסת מור‪ ,‬המילה האחרונה לא כוללת את אות הקלט‬
‫הנוכחית‪.‬‬
‫– בגרסת מילי‪ ,‬המילה האחרונה כוללת את אות הקלט הנוכחית‪.‬‬
‫• אנו נפתור את גרסת מור‪.‬‬
‫‪6‬‬
‫• בדרך כלל למשימה חישובית יש שתי גרסאות‪.‬‬
‫• בהמשך נראה שיטה כללית לעבור מפתרון אחד‬
‫למשנהו‪.‬‬
‫‪7‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫דיאגרמת המצבים‬
Moshe Malka & Ben lee Volk
8
‫שלבי יישום מערכת ספרתית‬
‫מדיאגרמת המצבים‬
‫‪ .1‬קידוד א"ב של הקלט כמילים בינאריות ברוחב אחיד‬
‫‪ .2‬קידוד א"ב של הפלט כמילים בינאריות ברוחב אחיד‬
‫‪ .3‬קידוד המצבים כמילים בינאריות ברוחב אחיד‪.‬‬
‫•‬
‫אופן פעולת המערכת‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫המערכת תפעל במשטר התזמון הבו‪-‬זמני‬
‫המצב הנוכחי יאוחסן ברגיסטר לא‪-‬מותנה אשר נקרא רגיסטר מצב‪.‬‬
‫אין רגיסטרים נוספים‪.‬‬
‫לוגיקות צירופיות יחשבו את הפלט ואת המצב הבא‪.‬‬
‫‪ .4‬תיאור פונקצית המעברים ופונקצית הפלט כטבלאות‬
‫אמת‪.‬‬
‫‪ .5‬בניית לוגיקות צירופיות (או ‪ )ROM‬לחישוב הפונקציות‪.‬‬
‫‪9‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫ ע"י מערכת ספרתית‬FSM ‫יישום סטנדרטי של‬
‫• מכונת מור – הפלט תלוי רק במצב‬
In
State
Register
N.S
Comb.
Logic
Output
Comb.
Logic
Out
‫• מכונת מילי – הפלט תלוי במצב ובקלט‬
In
N.S + Output
Comb.
Logic
Out
State
Register
Moshe Malka & Ben lee Volk
10
‫תזכורת‪ :‬דיאגרמת המצבים של דוגמא ‪1‬‬
‫‪11‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫קידוד המכונה‬
‫קידוד הקלט‪:‬‬
‫א"ב קלט‬
‫קידוד‬
‫‪A‬‬
‫‪00‬‬
‫‪B‬‬
‫‪01‬‬
‫‪C‬‬
‫‪10‬‬
‫‪D‬‬
‫‪11‬‬
‫קידוד הפלט‪:‬‬
‫‪12‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫א"ב פלט‬
‫קידוד‬
‫‪X‬‬
‫‪00‬‬
‫‪Y‬‬
‫‪01‬‬
‫‪Z‬‬
‫‪10‬‬
‫תיאור פונקציית המעברים ופונקציית הפלט‬
‫כטבלת אמת‬
‫פונקציית הפלט‪:‬‬
‫פונקציית מעבר בין מצבים‪:‬‬
‫‪13‬‬
‫מצב נוכחי‬
‫קלט‬
‫מצב הבא‬
‫מצב‬
‫‪output‬‬
‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫‪00‬‬
‫)‪00 (X‬‬
‫‪00‬‬
‫‪01‬‬
‫‪01‬‬
‫‪01‬‬
‫)‪01(Y‬‬
‫‪00‬‬
‫‪10‬‬
‫‪11‬‬
‫‪10‬‬
‫)‪10(Z‬‬
‫‪11‬‬
‫)‪00(X‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪14‬‬
‫כל מערכת ספרתית במשטר התזמון הבו‪-‬זמני‬
‫אפשר לפרש כ‪.FSM-‬‬
‫מספר ה‪-FF-‬ים במערכת חוסם את מספר המצבים‬
‫במכונה‪:‬‬
‫• במערכת עם ‪-FF n‬ים‪ ,‬מספר המצבים קטן מ‪2n-‬‬
‫אם אין במערכת מסלול צירופי מהכניסה ליציאה‬
‫אזי ה‪ FSM-‬הוא מסוג מור‪.‬‬
‫אם קיים מסלול צירופי כזה‪ ,‬ה‪ FSM-‬עשוי להיות‬
‫מסוג מור או מילי‪.‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫שיטה לתרגום בין פתרונות מור ומילי של "אותה" משימה‬
‫עבור שתי מכונות ’‪ M‬ו‪( M’’-‬מסוגים כלשהם)‪ ,‬נאמר ש‪M’-‬‬
‫מקדימה את ’’‪ ,M‬ו‪ M’’-‬מפגרת אחר ’‪ M‬אם‪:‬‬
‫‪ .1‬ל‪ M’-‬ו‪ M’’-‬יש אותו א"ב קלט ואותו א"ב פלט‪.‬‬
‫‪ .2‬לכל סדרת קלט‪ ,‬סדרת הפלט של ’‪ M‬מקדימה את זו של ’’‪M‬‬
‫במחזור אחד‪ ,‬ופרט לכך הן זהות‪.‬‬
‫טענה ‪ :1‬לכל מכונה ’‪( M‬מכל סוג) יש מכונת מור ’’‪ M‬שמפגרת‬
‫אחריה‪.‬‬
‫טענה ‪ :2‬לכל מכונה ’‪ M‬מסוג מור יש מכונה ’’‪ M‬שמקדימה‬
‫אותה‪.‬‬
‫’’‪ M‬לפעמים מסוג מור ולפעמים מסוג מילי‪ .‬הסוג נקבע ע"י ’‪.M‬‬
‫•‬
‫•‬
‫•‬
‫‪15‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
:M’ ‫ מפגרת אחר‬M’’ ‫המכונה‬
In
Out
In
Out
Moshe Malka & Ben lee Volk
M’
M’’
16
:M’’ ‫ מקדימה את‬M’ ‫המכונה‬
M’’
Output
Comb.
Logic
Out
State
Register
N.S
Comb.
Logic
State
Register
In
Output
Comb.
Logic
Out
M’
In
N.S
Comb.
Logic
Moshe Malka & Ben lee Volk
17
‫מכונות מילי ומור‬
‫• מכונת מור – הפלט תלוי רק במצב‪ ,‬בוודאות אין‬
‫מסלול צירופי מהכניסה ליציאה‬
‫• מכונת מילי – הפלט תלוי‬
‫במצב ובקלט‪ .‬יתכן מסלול‬
‫צירופי‬
‫‪Moshe Malka‬‬
?‫מילי או מור‬
Moshe Malka
?‫מילי או מור‬
Moshe Malka
‫אותה מכונה בגרסת מילי‬
‫‪Moshe Malka‬‬
‫דוגמא ‪ – 2‬מחלק ב‪3-‬‬
‫• המשימה‪ :‬המערכת מקבלת מספר טבעי ‪,x‬‬
‫ומשדרת מספר טבעי ‪ ,y‬כך ש‪y   x  -‬‬
‫‪ 3‬‬
‫• הקלט והפלט בינאריים‪ .‬בכל מחזור נקלט ונפלט‬
‫ביט אחד‪ ,‬החל מה‪MSB-‬‬
‫• למשימה שתי גרסאות‬
‫– בגרסת מילי‪ ,‬ה‪ LSB-‬של ‪ y‬משודרת באותו מחזור שעון‬
‫שבו נקלטת ה‪ LSB-‬של ‪x‬‬
‫– בגרסת מור‪ ,‬ה‪ LSB-‬של ‪ y‬משודרת מחזור אחד לאחר‬
‫מחזור השעון שבו נקלטת ה‪ LSB-‬של ‪x‬‬
‫• נפתור את גרסת מילי‪.‬‬
‫‪22‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
‫דוגמא ‪ – 2‬מחלק ב‪3-‬‬
‫• סימונים‪:‬‬
‫– ‪ : Ii‬ביט הקלט הנוכחי (במחזור ה‪)i-‬‬
‫– ‪ : Oi‬ביט הפלט הנוכחי‬
‫– ‪ : xi‬ערכו של המספר שנקלט עד (וכולל) המחזור ה‪i-‬‬
‫– ‪ : yi‬ערכו של המספר ששודר עד (וכולל) המחזור ה‪i-‬‬
‫• מתברר שהמערכת צריכה לזכור רק את‬
‫‪def‬‬
‫‪ri  xi mod 3‬‬
‫• נובע מעובדה שנוכיח בהמשך‪:‬‬
‫מ‪ ri-‬ו‪ Ii-‬בלבד ניתן לחשב את ‪ Oi‬ו‪.ri+1-‬‬
‫• יש שלושה ערכים אפשריים ל‪ ,ri-‬ולכן ל‪ FSM-‬יהיו‬
‫‪ 3‬מצבים‪.‬‬
‫‪23‬‬
‫‪Moshe Malka & Ben lee Volk‬‬
:‫הוכחת הטענה‬
.ri+1-‫ ו‬Oi ‫ בלבד ניתן לחשב את‬Ii-‫ ו‬ri-‫מ‬
:‫ לכן‬. xi  3 yi  ri ,‫מההגדרה‬
•
xi 1  2 xi  I i 1  6 yi  2ri  I i 1
ri 1   2ri  I i 1  mod 3
 2ri  I i 1 
Oi 1  

3


Moshe Malka & Ben lee Volk
24
‫דיאגרמת המצבים‬
‫שלושה מצבים בהתאם לערך של ‪r‬‬
‫‪r=2‬‬
‫‪r=1‬‬
‫‪0‬‬
‫‪r =0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪Out = 1‬‬
‫‪Out = 0‬‬
‫‪Out = In‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪25‬‬
‫‪Moshe Malka‬‬