דוגמא לאנליזה של מכונת מצבים ננסה להבין את פעולתה של מ כונת המצבים הבא

Transcription

דוגמא לאנליזה של מכונת מצבים ננסה להבין את פעולתה של מ כונת המצבים הבא
‫נספח לפרק ‪10‬‬
‫דוגמא לאנליזה של מכונת מצבים‬
‫ננסה להבין את פעולתה של מכונת המצבים הבאה ‪:‬‬
‫‪Z‬‬
‫‪output‬‬
‫‪q1‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪q0‬‬
‫‪Input X‬‬
‫‪Q‬‬
‫‪FF-1‬‬
‫’‪Q‬‬
‫‪D‬‬
‫‪FF-0‬‬
‫’‪Q‬‬
‫‪clk‬‬
‫‪424‬‬
‫מצב המכונה מוגדר על ידי יציאות רכיבי הזיכרון‪ .‬נסמן את המצב הנוכחי‬
‫על ידי ‪ q0 , q1‬ואת המצב הבא על ידי ‪ Q0 , Q1 .‬המכונה מבוססת על‬
‫הפליפ‪-‬פלופ הפשוט ‪ ( ETDFF ( Edge-Triggered D-FF‬שעבורו‬
‫המצב הבא ) כלומר יציאתו לאחר עליית השעון הבאה ( זהה לערך כניסתו‬
‫‪ D‬בזמן עליית השעון ‪ .‬כך נוכל לתאר את פעולת המכונה על ידי‬
‫המשוואות ‪:‬‬
‫’‪D0 = x • q1‬‬
‫⇐‬
‫‪D1 = q0‬‬
‫⇐‬
‫’‪q1‬‬
‫‪Q1 = q0‬‬
‫‪q1‬‬
‫‪425‬‬
‫• ‪Q0 = x‬‬
‫• ‪z = q0‬‬
‫חוקי מעבר אלו ניתנים לתיאור על ידי טבלת מעברי מצב ) ‪( state transition table‬‬
‫וגם על ידי דיאגרמת מעברי מצב ‪( state transition diagram ) :‬‬
‫‪0/0‬‬
‫‪A01‬‬
‫‪1/0‬‬
‫‪A11‬‬
‫‪426‬‬
‫‪1/0‬‬
‫‪0/0‬‬
‫‪0,1/1‬‬
‫‪A00‬‬
‫‪0,1/0‬‬
‫‪A10‬‬
‫‪Ouput‬‬
‫‪Next state‬‬
‫‪Input‬‬
‫‪z‬‬
‫‪Q1 Q0‬‬
‫‪x‬‬
‫‪q1 q0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪00‬‬
‫‪00‬‬
‫‪01‬‬
‫‪01‬‬
‫‪10‬‬
‫‪10‬‬
‫‪11‬‬
‫‪11‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪00‬‬
‫‪01‬‬
‫‪10‬‬
‫‪11‬‬
‫‪00‬‬
‫‪00‬‬
‫‪10‬‬
‫‪10‬‬
‫‪Current state‬‬
‫בכך הישגנו את מטרתנו וסיימנו לאפיין את המכונה הנתונה‪ .‬הבנה מלאה של‬
‫תפקיד המכונה הוא לעיתים קשה מאוד‪ ,‬ובדרך כלל יש להעזר לשם כך בסדרות‬
‫‪427‬‬
‫בוחן עבורן נבחן את התנהגות היציאות ‪.‬‬
‫מימוש אלטרנטיבי באמצעות ‪ROM‬‬
‫כפי שראינו מכונת המצבים מורכבת ממעגל צירופי ) מימוש פונקציות המעבר‬
‫והיציאה ( ומרכיבי זיכרון‪ .‬ניתן לממש את החלק הצירופי על ידי זיכרון‬
‫‪ ROM‬ישירות מטבלת מעברי המצב ‪ ,‬כמו זאת שבדוגמא למעלה‪ .‬אגף שמאל‬
‫בטבלה ) משמאל לקו המודגש ‪ ,‬כלומר הכניסות לפונקציות הצירופיות ( משמש‬
‫כתובת ‪ ,‬ואגף ימין בטבלה ) ערכי הפונקציות הצירופיות ( מהווה את תוכן‬
‫ה‪ ROM -‬ומתקבל ביציאותיו ‪:‬‬
‫‪Input X‬‬
‫‪Z‬‬
‫‪output‬‬
‫‪Q0‬‬
‫‪ROM‬‬
‫‪2 x SEL‬‬
‫)‪(2→1‬‬
‫‪Q1‬‬
‫‪D‬‬
‫‪428‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪Q‬‬
‫‪clk‬‬
‫‪select‬‬
‫‪q0‬‬
‫‪q1‬‬
‫בוחר בין כניסת‬
‫‪ Initial state‬או‬
‫יציאות הזיכרון‬
‫‪Initial‬‬
‫‪state‬‬
‫תכנון מערכת עקיבה סינכרונית )דוגמא(‬
‫נתונה סדרת קלט )‪ x(n‬כאשר ‪ n‬הוא מונה זמן בדיד ) ‪: …x(0), x(1),x(2‬‬
‫יש לחשב סדרת פלט מתאימה )‪ z(n‬כך ש‪ . z(n)=x(n)x(n-1) -‬נגדיר‬
‫“ תנאי שפה” ‪. z(0)=0‬‬
‫דוגמא ‪:‬‬
‫‪8‬‬
‫‪0‬‬
‫‪0‬‬
‫‪6 7‬‬
‫‪1 1‬‬
‫‪1 1‬‬
‫‪5‬‬
‫‪1‬‬
‫‪0‬‬
‫‪4‬‬
‫‪0‬‬
‫‪0‬‬
‫‪3‬‬
‫‪1‬‬
‫‪0‬‬
‫‪2‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫נצייר את דיאגרמת המצבים‪ .‬צריך לזכור רק את הערך האחרון של ‪: X‬‬
‫‪429‬‬
‫‪n‬‬
‫‪x‬‬
‫‪z‬‬
‫‪0/0‬‬
‫‪1/1‬‬
‫‪1/0‬‬
‫‪A‬‬
‫‪B‬‬
‫‪0/0‬‬
‫משמעות המצבים היא‪:‬‬
‫‪ -A‬הקלט הקודם היה ‪ ) 0‬מצב התחלתי ‪ ,‬כדי לקיים את תנאי השפה(‪.‬‬
‫‪ -B‬הקלט הקודם היה ‪. 1‬‬
‫מעברי המצבים בדוגמא לעייל הם ‪:‬‬
‫‪430‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫‪n‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪x‬‬
‫‪A‬‬
‫‪B‬‬
‫‪B‬‬
‫‪B‬‬
‫‪A‬‬
‫‪B‬‬
‫‪A‬‬
‫‪A‬‬
‫‪A B‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪z‬‬
‫‪0‬‬
‫המצב ההתחלתי )‪ (A‬מצוין בצד שמאל‪ .‬החיצים מדגימים מי תלוי במי וניתן‬
‫להמשיכם כלפי ימין לכל אורך הציור‪ .‬טבלת המצבים המתאימה היא ‪:‬‬
‫‪x=1‬‬
‫‪x=0‬‬
‫‪PS‬‬
‫‪B,0‬‬
‫‪A,0‬‬
‫‪A‬‬
‫‪B,1‬‬
‫‪A,0‬‬
‫‪B‬‬
‫בטבלה יש שורה לכל מצב בו יכולה המערכת להימצא‪ ,‬ועמודה לכל צירוף אפשרי‬
‫של הקלט‪ .‬זוג הערכים בטבלה מסמן את המצב הבא אליו תעבור המכונה ואת‬
‫המוצא הנוכחי אותו תייצר המכונה‪ .‬אם נשתמש במשתנה מצב בשם ‪ y‬ונקצה‬
‫‪ y=1 ⇐ A‬ו ‪ y=1 ⇐ B -‬נקבל ‪:‬‬
‫‪431‬‬
‫‪x=1‬‬
‫‪Y,z‬‬
‫‪x=0‬‬
‫‪Y,z‬‬
‫‪PS=y‬‬
‫‪1,0‬‬
‫‪1,1‬‬
‫‪0,0‬‬
‫‪0,0‬‬
‫‪0‬‬
‫‪1‬‬
‫נפצל את טבלת המעברים לשתי טבלות‪:‬טבלת מעברי מצב וטבלת היציאות בכדי‬
‫שיהיה קל לחשב כל פונקציה בנפרד )כאשר יש יותר ממשתנה מצב אחד‪ ,‬כדאי‬
‫לפרק את טבלת המעברים לכל משתנה מצב בנפרד(‪:‬‬
‫‪432‬‬
‫‪x‬‬
‫‪x‬‬
‫‪1‬‬
‫‪0‬‬
‫‪y‬‬
‫‪1‬‬
‫‪0‬‬
‫‪y‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫טבלת ‪z‬‬
‫כלומר‬
‫‪433‬‬
‫‪z= x •y‬‬
‫טבלת ‪Y‬‬
‫‪,‬‬
‫‪Y=x‬‬
‫והמימוש ) באמצעות ‪: ( ETDFF‬‬
‫‪x‬‬
‫‪z‬‬
‫‪y‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪FF-0‬‬
‫‪Y‬‬
‫’‪Q‬‬
‫קיבלנו מימוש של מכונת ‪ Mealy‬ללא סינכרון כניסה‪ .‬כיצד היא פועלת?‬
‫הבה נבחן מה קורה בכל רגע‪ ,‬על פי הדוגמא ‪:‬‬
‫‪434‬‬
‫‪z‬‬
‫‪1‬‬
‫‪0‬‬
‫‪x‬‬
‫‪0‬‬
‫‪y‬‬
‫‪1‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪FF-0‬‬
‫‪Y‬‬
‫’‪Q‬‬
‫מצב המערכת מייד לפני עליית שעון ‪0‬‬
‫‪z‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪y‬‬
‫‪x‬‬
‫‪0‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪FF-0‬‬
‫‪Y‬‬
‫’‪Q‬‬
‫‪435‬‬
‫מצב המערכת מייד לפני עליית שעון ‪1‬‬
‫‪z‬‬
‫‪0‬‬
‫‪0‬‬
‫‪x‬‬
‫‪0‬‬
‫‪y‬‬
‫‪0‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪FF-0‬‬
‫‪Y‬‬
‫’‪Q‬‬
‫מצב המערכת מייד לפני עליית שעון ‪2‬‬
‫‪z‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪y‬‬
‫‪x‬‬
‫‪1‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪FF-0‬‬
‫‪Y‬‬
‫’‪Q‬‬
‫‪436‬‬
‫מצב המערכת מייד לפני עליית שעון ‪3‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪n‬‬
‫‪clk‬‬
‫‪x‬‬
‫‪0‬‬
‫‪1‬‬
‫‪X(0)=1‬‬
‫‪y‬‬
‫מצב התחלתי ‪0‬‬
‫‪z‬‬
‫‪0‬‬
‫‪437‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫נניח לצורך הדיון שכל ההשהיות במעגל זניחות‪ .‬הקטעים המקווקים מסמנים פרקי‬
‫זמן בהם איננו יודעים מהי הכניסה ‪ x ,‬ובשל כך גם לא ניתן לקבוע במשך אותם‬
‫פרקי זמן מה תהיה היציאה ‪ z .‬את היציאה יש לבדוק מיד כאשר הכניסה מתייצבת‬
‫על ערכה החדש ‪ ,‬ולפני עליית השעון הבאה ‪ -‬לאחר עליית השעון עשוי משתנה‬
‫המצב ‪ y‬להשתנות‪ ,‬ובעקבותיו תשתנה מיידית גם היציאה‪ .‬ניתן להוסיף ‪FF‬‬
‫בכניסה על מנת לסנכרנה ‪:‬‬
‫‪x‬‬
‫‪z‬‬
‫‪Q‬‬
‫‪y‬‬
‫‪Q‬‬
‫’‪Q‬‬
‫‪438‬‬
‫‪D‬‬
‫’‪Q‬‬
‫‪Y‬‬
‫‪D‬‬
‫‪px‬‬
‫‪x‬‬
‫‪1‬‬
‫‪z‬‬
‫‪Q‬‬
‫‪1‬‬
‫‪0‬‬
‫‪y‬‬
‫‪D‬‬
‫‪Q‬‬
‫‪D‬‬
‫‪px‬‬
‫’‪Q‬‬
‫‪Y‬‬
‫’‪Q‬‬
‫מצב המערכת לאחר עליית שעון ‪0‬‬
‫‪z‬‬
‫‪x‬‬
‫‪0‬‬
‫‪0‬‬
‫‪Q‬‬
‫‪1‬‬
‫‪y‬‬
‫‪0‬‬
‫‪Q‬‬
‫‪D‬‬
‫‪Y‬‬
‫’‪Q‬‬
‫‪439‬‬
‫מצב המערכת לאחר עליית שעון ‪1‬‬
‫’‪Q‬‬
‫‪D‬‬
‫‪px‬‬
‫כעת המכונה תתנהג לפי הסכמה הבאה ‪:‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪0‬‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫↓‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪X(0)=1‬‬
‫‪n‬‬
‫‪clk‬‬
‫‪px‬‬
‫‪0‬‬
‫‪x‬‬
‫מעוכב מחזור שעון אחד‬
‫אחרי מערכת בלי סינכרון כניסה ‪.‬‬
‫‪y‬‬
‫‪z‬‬
‫)‪Z(7‬‬
‫)‪Z(6‬‬
‫)‪Z(5‬‬
‫)‪Z(4‬‬
‫)‪Z(3‬‬
‫)‪Z(2‬‬
‫)‪Z(1‬‬
‫)‪Z(0‬‬
‫‪440‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫כעת כמובן קל יותר לעקוב אחר היציאה‪ ,‬כי היא יציבה במשך מחזור שלם ולא‬
‫רק בפרק זמן קצר ‪.‬‬
‫נשים לב להשהייה של מחזור שעון אחד ‪.‬‬
‫‪441‬‬
‫דוגמא נוספת‪ :‬מונה בינארי מודולו ‪8‬‬
‫יציאת המונה ‪ z=1‬עם קבלת ה‪ ’1’-‬השמיני‪ ,‬השישה עשר ‪,‬‬
‫העשרים ורביעי ‪ … ,‬בקלט ‪x‬‬
‫‪0/0‬‬
‫דיאגרמת המצבים פשוטה למדי ‪:‬‬
‫‪0/0‬‬
‫‪1/0‬‬
‫‪0/0‬‬
‫‪S0‬‬
‫‪S1‬‬
‫‪1/0‬‬
‫‪0/0‬‬
‫‪1/1‬‬
‫‪S7‬‬
‫‪1/0‬‬
‫‪S2‬‬
‫‪0/0‬‬
‫‪S5‬‬
‫‪1/0‬‬
‫‪1/0‬‬
‫‪S3‬‬
‫‪S6‬‬
‫‪0/0‬‬
‫‪S4‬‬
‫‪1/0‬‬
‫‪442‬‬
‫‪0/0‬‬
‫‪0/0‬‬
‫‪1/0‬‬
‫נממש את המכונה‪ ,‬לשם שינוי‪ ,‬באמצעות רכיבי ‪ Trigger T-FF‬וכן ‪SR-FF‬‬
‫למימוש מכונה בת שמונה מצבים נזדקק לשלושה רכיבי זיכרון ‪ .‬טבלת המצבים‬
‫היא ‪:‬‬
‫‪NS , z‬‬
‫‪443‬‬
‫‪x=1‬‬
‫‪x=0‬‬
‫‪PS‬‬
‫‪S1, 0‬‬
‫‪S o, 0‬‬
‫‪S0‬‬
‫‪S2, 0‬‬
‫‪S3, 0‬‬
‫‪S4, 0‬‬
‫‪S5, 0‬‬
‫‪S6, 0‬‬
‫‪S7, 0‬‬
‫‪S0, 1‬‬
‫‪S1; 0,,‬‬
‫‪S2, 0‬‬
‫‪S3, 0‬‬
‫‪S4, 0‬‬
‫‪S5, 0‬‬
‫‪S6, 0‬‬
‫‪S7, 0‬‬
‫‪S1‬‬
‫‪S2‬‬
‫‪S3‬‬
‫‪S4‬‬
‫‪S5‬‬
‫‪S6‬‬
‫‪S7‬‬
‫נקצה משתני מצב לפי הקוד הבינארי ונפריד את טבלות המעברים והיציאה ‪:‬‬
‫‪Y3Y2Y1‬‬
‫‪Z‬‬
‫‪444‬‬
‫‪x=1‬‬
‫‪x=0‬‬
‫‪x=1‬‬
‫‪x=0‬‬
‫‪y3y2y1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪001‬‬
‫‪000‬‬
‫‪000‬‬
‫‪0‬‬
‫‪0‬‬
‫‪010‬‬
‫‪001‬‬
‫‪001‬‬
‫‪0‬‬
‫‪0‬‬
‫‪011‬‬
‫‪010‬‬
‫‪010‬‬
‫‪0‬‬
‫‪0‬‬
‫‪100‬‬
‫‪011‬‬
‫‪011‬‬
‫‪0‬‬
‫‪0‬‬
‫‪110‬‬
‫‪100‬‬
‫‪100‬‬
‫‪0‬‬
‫‪0‬‬
‫‪101‬‬
‫‪101‬‬
‫‪101‬‬
‫‪0‬‬
‫‪0‬‬
‫‪111‬‬
‫‪110‬‬
‫‪110‬‬
‫‪1‬‬
‫‪0‬‬
‫‪000‬‬
‫‪111‬‬
‫‪111‬‬
‫נממש באמצעות ‪ T-FF .‬פליפ‪-‬פלופ זה מוגדר על ידי טבלת המעברים הבאה‪:‬‬
‫) כאשר הכניסה ‪ T=1‬מחליף ה‪ FF -‬את ערכו‪ ,‬ולכן הוא קרוי ‪: ( Trigger FF‬‬
‫‪T=0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪T=1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪T=1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪T=0‬‬
‫‪1‬‬
‫‪1‬‬
‫ניתן לממש ‪ T-FF‬על ידי ‪: D-FF‬‬
‫‪S ET‬‬
‫‪Q‬‬
‫’‪Q‬‬
‫‪445‬‬
‫‪D‬‬
‫‪CLR‬‬
‫‪T‬‬
‫נפעיל את הגדרת ‪ T-FF‬על טבלת המעברים לעיל ונקבל את טבלת העירור‬
‫המציינת אילו כניסות צריך לייצר לשלושת ה ‪ FF -‬על מנת ליצור את‬
‫המעברים הדרושים ‪:‬‬
‫‪TTT‬‬
‫‪1 2 3‬‬
‫‪0000‬‬
‫‪446‬‬
‫‪x=1‬‬
‫‪x=0‬‬
‫‪y3y2y1‬‬
‫‪001‬‬
‫‪000‬‬
‫‪000‬‬
‫‪011‬‬
‫‪000‬‬
‫‪001‬‬
‫‪001‬‬
‫‪000‬‬
‫‪010‬‬
‫‪111‬‬
‫‪000‬‬
‫‪011‬‬
‫‪001‬‬
‫‪000‬‬
‫‪100‬‬
‫‪011‬‬
‫‪000‬‬
‫‪101‬‬
‫‪001‬‬
‫‪000‬‬
‫‪110‬‬
‫‪111‬‬
‫‪000‬‬
‫‪111‬‬
‫פונקצית העירור‪:‬‬
‫‪T1 = x‬‬
‫‪T2 = xy1‬‬
‫‪T3 = xy1y2‬‬
‫פונקצית היציאה ‪:‬‬
‫‪z = xy1y2y3‬‬
‫מימוש‪:‬‬
‫‪x‬‬
‫‪z‬‬
‫‪Q‬‬
‫‪447‬‬
‫‪y3‬‬
‫‪Q‬‬
‫‪T3‬‬
‫‪y2‬‬
‫‪Q‬‬
‫‪T2‬‬
‫‪y1‬‬
‫‪T1‬‬
‫המימוש מספק לא רק את היציאה ‪ z‬אלא גם את ערכי המונה בכל רגע ורגע‪,‬‬
‫שהם משתני המצב ) כפי שבחרנו בעת הקצאת המצבים ( ‪.‬‬
‫מימוש באמצעות‪SR-FF :‬‬
‫כעת הגדרת ה ‪ FF -‬שונה במקצת ‪:‬‬
‫‪448‬‬
‫‪R‬‬
‫‪S‬‬
‫‪φ‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪φ‬‬
‫‪1‬‬
‫‪1‬‬
: ‫טבלת העירור‬
y3y2y1
x=0
x=1
S3R3 S2R2 S1R1
000
001
010
011
100
101
110
111
0φ
0φ
0φ
0φ
φ0
φ0
φ0
φ0
0φ
0φ
φ0
φ0
0φ
0φ
φ0
φ0
0φ
φ0
0φ
φ0
0φ
φ0
0φ
φ0
S3R3
0φ
0φ
0φ
10
φ0
φ0
φ0
01
S2R2 S1R1
0φ
10
φ0
01
0φ
10
φ0
01
10
01
10
01
10
01
10
01
449
‫פונקציות העירור‬
S1 = xy1’
R1 = xy1
S2 = xy1y2’
R2 = xy1y2
S3 = xy1y2y3’
R3 = xy1y2y3
:‫המימוש‬
Y1’
x
y1
Y2’
Y3’
S1
Q’
S2
Q’
S3
Q’
R1
Q
R2
Q
R3
Q
y2
y3
z
450
xy3
y2y1
00
01
11
10
xy3
00 01 11 10
1 1
φ φ
φ φ
1 1
y2y1
00 01 11 10
00
1 1
01
11 φ φ
10 φ φ φ φ
S1 = xy1’
S2 = xy1y2’
xy3
y2y1
00
00
01
11
10
01
φ
φ
φ
φ
11 10
φ
φ
1
φ
S3 = xy1y2y3’
451
xy3
xy3
y2y1
00 01 11 10
00 φ φ
01
1 1
11
1 1
10 φ φ
y2y1
00 01 11 10
00 φ φ φ φ
01 φ φ
11
1 1
10
R1 = xy1
R2 = xy1y2
xy3
y2y1
00 01 11
00 φ
01 φ
1
11 φ
10 φ
10
φ
φ
φ
R3 = xy1y2y3
452