You are on page 1of 33

‫שיעור ‪ : 8‬שיטות מינימיזציה‬

‫מפות קרנו‬

‫מפת קרנו היא שיטה גרפית להצגת טבלת האמת של פונקציה בוליאנית ‪ .‬כאשר‬
‫השימוש במפה זו נעשה בד"כ עבור מכסימום של שישה משתנים ‪.‬עבור ‪ n‬משתנים‬
‫יש למפת קרנו ‪ 2n‬תאים‪ .‬הרעיון העומד מאחורי מפה זו הוא שאיברים קרובים‬
‫אלגברית נראים בצורה כזו כך שניתן לבצע מינמיזציה ע"י גילוי תבניות מסוימות ‪.‬‬
‫לכל תא במפת קרנו מוצמד מספר עם ‪ n‬ביטים המתאים לאיבר מינמלי עם ‪n‬‬
‫ליטרלים ‪ .‬שני תאים הם " קרובים " במפה אם המספרים הבינארים שלהם שונים‬
‫בביט אחד בלבד ‪ .‬אם נתונה פונקציה ‪ F‬ב‪ SOP -‬קנוני אזי אנחנו משלימים את‬
‫מפת קרנו ע"י סימון ‪ 1‬באותם תאים שהקואורדינאטות שלהם מתאימות לאיברים‬
‫מינימליים המופיעות בצורה הקנונית הנ"ל ‪.‬והשלמת ‪ 0‬בשאר התאים ‪ .‬במקרה של‬
‫‪ POS‬קנוני ‪ 0‬בתאים המתאימים ו ‪ 1‬בשאר ‪ .‬כאשר המצאות של אחדים בשני‬
‫תאים סמוכים מעידה מיד על אפשרות לצמצום‪ .‬ארבעה אחדים סמוכים מעידים על‬
‫אפשרות של צמצום של שני משתנים ‪.‬‬

‫מפה משתנה אחד‬

‫‪1‬‬ ‫‪0‬‬
‫‪m1‬‬ ‫‪m0‬‬

‫‪X’+X=1‬‬
‫פונקציה קבועה ‪.‬‬
‫שני משתנים ‪.‬‬

‫‪X1‬‬
‫‪X2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪m2‬‬ ‫‪m0‬‬ ‫‪0‬‬

‫‪m3‬‬ ‫‪m1‬‬ ‫‪1‬‬

‫‪F=(2,3)=X1‬‬

‫יש לחשוב על המפה כצילינדר הצד הרחוק הימני קרוב לצד השמאלי ‪.‬‬
‫כל איבר במפה קרוב לשני איברים ‪ .‬עבור שלושה משתנים נראה שכל איבר קרוב‬
‫לשלושה איברים ‪ ,‬וכן הלאה‪ .‬בהכללה כל תא במפת קרנו ל ‪ n‬משתנים קרוב ל ‪n‬‬
‫תאים אחרים ‪.‬‬

‫שלושה משתנים‬

‫‪X2X3‬‬
‫‪10‬‬ ‫‪11‬‬ ‫‪01‬‬ ‫‪00‬‬ ‫‪X1‬‬
‫‪m2‬‬ ‫‪m3‬‬ ‫‪m1‬‬ ‫‪m0‬‬ ‫‪0‬‬

‫‪m6‬‬ ‫‪m7‬‬ ‫‪m5‬‬ ‫‪m4‬‬ ‫‪1‬‬

‫)‪F=(0,3,5,7‬‬ ‫דוגמא‬

‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬


‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪X1’X2’X3’+X2X3+X1X3=F‬‬

‫ארבעה משתנים‬

‫‪X3 X4‬‬ ‫‪X1X2‬‬


‫‪10‬‬ ‫‪11‬‬ ‫‪01‬‬ ‫‪00‬‬

‫‪m2‬‬ ‫‪m3‬‬ ‫‪m1‬‬ ‫‪m0‬‬ ‫‪00‬‬

‫‪m6‬‬ ‫‪m7‬‬ ‫‪m5‬‬ ‫‪m4‬‬ ‫‪01‬‬

‫‪m 14‬‬ ‫‪m 15‬‬ ‫‪m 13‬‬ ‫‪m 12‬‬ ‫‪11‬‬

‫‪m 10‬‬ ‫‪m 11‬‬ ‫‪m9‬‬ ‫‪m8‬‬ ‫‪10‬‬

‫שם לב שהצד הימני ביותר והשמאלי ביותר נחשבים קרובים כך גם הצד העליון‬
‫ביותר והתחתון ביותר ‪.‬‬
‫דוגמא ‪:‬‬

‫‪X3 X4‬‬ ‫‪X1X2‬‬


‫‪10‬‬ ‫‪11‬‬ ‫‪01‬‬ ‫‪00‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪00‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪01‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪11‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪10‬‬

‫)‪F(X1,X2,X3,X4)= (1,6,7,9,12,15‬‬
‫מינימיזציה בעזרת מפות קרנו‬

‫שרטט את הערכים של ‪F‬‬ ‫‪.1‬‬


‫הקף את האיברים הגדולים של ‪ 2n‬במפה תאים ביותר במעגל‬ ‫‪.2‬‬
‫חשב את האיברים המתאימים‬ .3

: ‫דוגמא‬
F(X1,X2,X3) =(2,3,4,5) .1

x2x3
10 11 01 00 X1
1 1 0 0 0
0 0 1 1 1

’F=X1’X2+X1X2

: ‫הסבר‬
m2 + m3=X1’X2X3’+X1’X2X3=X1’X2(X3+X3’)=X1’X2
’m4 + m5=X1X2’X3’+X1X2’X3=X1X2

F=(0,2,4,5,6) .2

X2X3
10 11 01 00 X1
1 0 0 1 0
1 0 1 1 1
‫‪’F=X3’+X1X2‬‬

‫‪F=‬‬ ‫‪)1,3,8,10,12,13,14,15(.3‬‬

‫‪X1’X2’X4‬‬

‫‪X3X4‬‬
‫‪10‬‬ ‫‪11‬‬ ‫‪01‬‬ ‫‪X1X2‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪00‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪01‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫’‪X1X4‬‬ ‫‪11‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪10‬‬

‫‪X1X2‬‬

‫‪’F=X1’X2’X4+X1X2+X1X4‬‬

‫הערה ‪ :‬רצוי לבחור את הקומבינציה שנותנת את הביטוי הקצר ביותר ‪.‬‬


‫מפות של ‪ 5‬ו ‪ 6‬משתנים‬
‫דוגמא ‪ :‬פשט את הפונקציה עבור מפה של ‪ 6‬משתנים ‪F=(0,1,4,5,16,17,20,21 .‬‬
‫)‪,37,42,43,46,47,53,58,59,62,63‬‬
‫הדרך היא תחילה ליצור צבירים ברמות בודדות ואח"כ לנסות לאחד בין הרמות ‪.‬‬

‫‪ AB‬קרובים ‪ CD ,‬קרובים ‪ ) E,H,G,I( ,‬קרובים ‪.‬‬


‫‪F=X1’X3’X5’+X1X3X5+X3’ X4X5’X6‬‬
‫פונקציות שאינן מוגדרות בשלמות‬

‫כאשר הערך של הפונקציה ידוע לכל אחת מ ‪ 2n‬קומבינציות של קלט של ‪n‬‬


‫משתנים ‪ ,‬אזי הפונקציה מוגדרת בשלמות ‪ .‬לעיתים ישנם מצבי כניסה אשר מסיבה‬
‫זו אחרת לא קורות או לא יכולות לקרות כמו למשל בדוגמא של ( ‪SSD- seven‬‬
‫‪ . ) sigment display‬במקרים אלו יש לנו אפשרויות שנקראות בשם " ‪DON’T‬‬
‫‪ " CARE‬והפונקציה אשר יש לה בכניסה‬
‫" ‪ " don't care‬נקראת פונקציה אינה מושלמת ‪ .‬אפשר לעשות שימוש במקרים‬
‫האלו על מנת לפשט בהרבה את הפונקציה ‪ .‬סימונים מקובלים הם ‪ . x,0,Ф‬ה ‪-x‬ים‬
‫מקבלים ‪ 0‬או ‪ 1‬בהתאם לנוחיות המתכנן ‪.‬‬

‫דוגמא ‪:‬‬
‫)‪F(X1,X2,X3,X4)= (1,3,7,8,9,10,12,13,14,15)+ d(4,5,11‬‬

‫‪X3X4‬‬
‫‪10‬‬ ‫‪11‬‬ ‫‪01‬‬ ‫‪x1x2‬‬ ‫‪X1X2‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪00‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫‪01‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪X‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪10‬‬

‫‪F= X1+X4‬‬
‫פישוט של מכפלה של גורמים (‪)POS‬‬

‫מחפשים ‪ POS‬עם מינימום איברים ומינימום ליטרלים ‪.‬במקרה זה מחפשים במפת‬


‫קרנו את ה‪ 0 -‬ולא את ה‪ . 1 -‬אפשר גם למצוא את הסכום המינמלי לפונקציה‬
‫המשלימה ‪’F‬‬
‫ואז להשתמש במשפט דה מורגן לקבל את המכפלה המינמלית של ‪. F‬‬

‫דוגמא ‪:‬‬
‫)‪F(X1,X2,X3,X4)= (5,6,7,9,10,11,13,14,15‬‬

‫‪X‬‬
‫‪3‬‬‫‪X4‬‬
‫‪10‬‬ ‫‪11‬‬ ‫‪01‬‬ ‫‪00‬‬ ‫‪X1X2‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪00‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪01‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪11‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪10‬‬

‫‪SOP‬‬ ‫ל ‪: F =X2X4+X2X3+X1X4+X1X3‬‬
‫ל )‪POS : F =(X1+X2)(X3+X4‬‬

‫‪’F’ =X1’X2’+X3’X4‬‬ ‫כאשר‬


‫בד"כ יש לבחון את שני היישומים ‪ SOP,POS‬ולראות איזה מהם יותר פשוט ‪.‬‬

‫סיכונים במעגלים קומבינטורים ‪:‬‬


‫כאשר יש שינוי בקלט למעגל קומבינטורי יש תגובה זמנית ביציאה שלא תמיד‬
‫מתאימה למצב היציב ‪ .‬הסיבה היא שלאותות יש זמני השהיה שונים במסלולים‬
‫שונים בתוך המעגל ‪.‬‬
‫דוגמא ‪ :‬ננתח את המעגל הבא‬

‫‪F=X1X2+X2’X3‬‬
‫כאשר כל הכניסות הם ‪ : 1‬היציאה של שער ‪ 1‬היא ‪1 :‬‬
‫היציאה של שער ‪ 2‬היא ‪0 :‬‬
‫היציאה של שער ‪ 3‬היא ‪1 :‬‬
‫ו‪ X2 -‬משתנה מ ‪ 1-‬ל‪ 0 -‬יציאה של שער ‪ 3‬צריכה‬ ‫מעבר לזה אם ‪X1=X3=1‬‬
‫להישאר במצב קבוע ‪ . 1‬אבל יציאת המעגל יכולה להשתנות זמנית ל‪ 0 -‬אם זמן‬
‫השהיה של שער ‪ 1‬קטן מזמני השהיה של המהפך ושער ‪. 2‬‬
‫במקרה זה אם ‪ X2‬משתנה ל‪ 0 -‬היציאה של שער ‪ 1‬תשתנה ל‪ , 0-‬בזמן ששער ‪ 2‬לא‬
‫יראה שינוי עד לזמן מאוחר יותר ‪.‬לכן יציאת שער ‪ 2‬תישאר ‪ , 0‬זמנית‪ ,‬ויציאת שער‬
‫‪ 3‬תהיה ‪ 0‬למשך זמן זה ‪.‬לאחר השהיה‪ ,‬יציאת שער ‪ 2‬תשתנה ל‪ 1 -‬ותגרום ליציאת‬
‫שער ‪ 3‬להשתנות חזרה ל‪. 1 -‬‬
‫במקרה הכללי ‪:‬‬
‫" סיכון ‪ 1‬סטטי" – קורה כאשר המעגל נותן ‪ 0‬זמנית כאשר היה צריך לתת ‪ 1‬קבוע‪.‬‬
‫" סיכון ‪ 0‬סטטי " ‪ -‬קורה כאשר המעגל נותן ‪ 1‬זמנית כאשר היה צריך לתת ‪ 0‬קבוע‬

‫סוג נוסף הוא הסיכון הדינמי‪ :‬קורה כאשר הפלט אמור להשתנות מ ‪ 1‬ל‪ ( 0 -‬או מ‬
‫‪ 0‬ל‪ )1 -‬אך למעשה משתנה שלוש או יותר פעמים ‪:‬‬

‫סיכון דינמי ‪:‬‬

‫ניתן לזהות מצב מסוכן בעזרת במפת קרנו ‪:‬‬

‫‪X‬‬
‫‪2‬‬‫‪X3‬‬
‫‪10‬‬ ‫‪11‬‬ ‫‪01‬‬ ‫‪00‬‬ ‫‪X1‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬

‫הקו המקווקו מראה על מצב של סיכון ‪ 1‬סטטי‬

‫אם שני תאים סמוכים מכוסים ע"י אותו צובר ‪ cluster -‬שינוי כניסה למעגל בין‬
‫שני מצבי תגובה אינה יכולה לגרום ל"סיכון" ‪.‬‬
‫לדוגמא שינוי מצב הכניסה מ‪ 001 -‬ל‪ 101 -‬אינה יכולה לגרום לסיכון ‪ 1‬סטטי מכיוון‬
‫שכיסינו את ה‪ 1-‬במפה ע"י הביטוי ‪ X2’X3‬לכן כאשר ‪ X1‬ישתנה ‪ .‬הביטוי ‪X2’X3‬‬
‫ישאר קבוע ‪ 1‬והיציאה לא תשתנה ‪.‬‬
‫לעומת זאת אם שני תאים סמוכים של ‪ 1‬לא יכוסו ע"י אותו "צבר " יקרה מצב של‬
‫סיכון סטטי ‪. 1‬למשל המעבר מ‪ 101 -‬ל‪. 111 -‬‬
‫ניתן למנוע את ה"סיכון " הזה ע"י הוספת הביטוי ‪X1X3‬‬

‫התשובה המתקבלת ללא סיכון תהיה ‪.‬‬


‫‪F=X1X2+X2’X3+X1X3‬‬
‫הוספת ‪ X1X3‬נראית לכאורה מיותרת אך למעשה הופך את המעגל לאמין יותר ‪.‬‬
‫כאשר באים לתכנן מעגל יש לכאורה ניגוד בין אמינות לפשטות ‪.‬‬
‫‪.‬‬ ‫בהצגת ‪ POS‬יהיה " סיכון ‪ 0‬סטטי " )’‪F=(X2+X3)(X1+X3‬‬
‫שאותו אפשר למנוע ע"י הוספת איבר ‪F=(X2+X3)(X1+X2’)(X1+X3) :‬‬
‫‪ 9.5‬שיטת הטבולציה של קווין – מקולסקי ‪.‬‬
‫שיטת הצמצום במפת קרנו הנה בעלת שתי חולשות עיקריות‪:‬‬
‫הצמצום תלוי בזיהוי צורות גיאומטריות‬ ‫‪.1‬‬
‫מוגבלת למעשה לשישה משתנים‬ ‫‪.2‬‬
‫שיטת קווין – מקולסקי באה לפתור חולשות אלה ‪.‬‬
‫בשיטה זו ‪ 0‬או ‪ 1‬באינדקס קובע אם הפרמטר ראשוני או משני ‪.‬‬
‫קו מרוסק ( ‪ ) -‬מראה מחיקת מיקום האיבר‪.‬‬

‫דוגמא ‪:‬‬
‫)‪F(X1,X2,X3,X4)= (0,1,2,3,5,6,8,11‬‬
‫שלבי פתרון ‪:‬‬
‫‪ . 1‬הופכים את כל האינדקסים של האיברים המינמלים להצגה הבינארית שלהם ‪.‬‬
‫מחלקים‬
‫את הקבוצות למחלקות עפ"י מספר האחדים בכל הצגה ‪.‬‬
‫ויוצרים את הטבלה הבאה ‪:‬‬

‫‪ .2‬יחסי קרבות יכולים להיות רק בין קומבינציות שמספר ה"‪ " 1‬ים בהם שונה‬
‫באחד בלבד‬
‫( הסימן √ מציין שניתן שללב בין שניים קרובים )‬
‫חוזרים על התהליך רק אם יש שוני בין איברים בביט אחד וה"‪ " -‬חופפים ‪.‬‬ ‫‪.3‬‬
‫התהליך מסתיים כאשר אין אפשרות לשלב יותר ‪.‬‬
‫מספר ה"‪– " 1‬ים‬ ‫הצגה אינדקס דצימלי‬
‫בינארית‬

‫‪0‬‬ ‫‪0,1,2,3‬‬ ‫‪- - 00‬‬


‫‪( 0,2,1,3‬כפול)‬ ‫‪- - 00‬‬

‫נקראים " גוררים‬ ‫כאשר מסיימים את התהליך האיברים שלא סומנו ב‪√-‬‬
‫ראשונים " או קלסטרים במפת קרנו ‪ .‬הסיבה לשם גוררים הוא שנכונות הביטויים‬
‫גוררת " נכונות " הפונקציה ‪.‬‬
‫בשלב זה ניתן לרשום את כל האיברים הראשונים (הבלתי מסומנים) בטבלאות‬
‫הקודמות בטבלה חדשה ‪:‬‬
‫אינדקס דצימלי‬ ‫הצגה בינארית‬ ‫ביטוי ראשוני‬
‫‪0,1,2,3‬‬ ‫‪00--‬‬ ‫’‪X2’X1‬‬
‫‪0,8‬‬ ‫‪-000‬‬ ‫’‪X4’X3’X2‬‬
‫‪1,5‬‬ ‫‪01-0‬‬ ‫‪X4 ’X3’X1‬‬
‫‪2,6‬‬ ‫‪10-0‬‬ ‫’‪X3 X4’X1‬‬
‫‪3,11‬‬ ‫‪-011‬‬ ‫‪X3 X4 ’X2‬‬

‫בצורה דומה יכולנו לקבל את התוצאה ע"י מפת קרנו ‪ ,‬היות וישנם ‪ 4‬משתנים ‪.‬‬
‫רואים שביטוי אחד כבר מכוסה ע"י ביטוים קודמים ‪ :‬כיצד ניתן לפתור את‬
‫הבעיה ?‬
‫בשיטת קווין – מקולסקי פוטרים את הבעיה ע"י יצירת הטבלה הבאה ‪:‬‬

‫איברים מינמלים‬ ‫ייצוג בינארי‬ ‫גוררים ראשונים‬


‫‪11‬‬ ‫‪8‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪X X X X‬‬ ‫‪00--‬‬ ‫‪0,1,2,3‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪-000‬‬ ‫‪*0,8‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪01-0‬‬ ‫‪*1,5‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪10-0‬‬ ‫‪*2,6‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪-011‬‬ ‫‪*3,11‬‬

‫את הטבלה מתחילים בגורר הראשוני שמכיל את הכמות הגדולה ביותר של איברים‬
‫מינימלים ‪ .‬גוררים ראשונים " הכרחים " אפשר למצוא בטבלה ע"י מציאת‬
‫העמודות עם ‪ x‬אחד בלבד ‪.‬העמודות אלו מתאימות לאיבר מינימלי המכוסה ע"י‬
‫גורר ראשוני אחד בלבד ! מסמנים את הגורר הראשוני ע"י כוכבית (*) המעידה על‬
‫היותו "הכרחי "‬
‫כעת אנו יכולים למחוק את כל העמודות המכוסות ע"י גוררים הכרחים ‪ .‬וכן את כל‬
‫השורות של אותם גוררים הכרחים ומה שנשאר לנו במקרה הנוכחי ‪:‬‬
‫‪F= X2’X3’X4’+X1’X3’X4+X1’X3X4’+ X2’X3X4‬‬
‫קיימות שתי דרכים נוספות לצמצמם את טבלת הגורמים הראשונים ‪ .‬מצצום‬
‫שורות נשלטות וצמצום של עמודים שולטים ‪.‬‬

‫צמצום שורות נשלטות‬


‫שורה ( גורר ראשוני ) ‪ Pi‬שולטת בשורה ‪ Pj‬אם ‪ Pi‬מכסה את כל האיברים‬
‫המינמלים שאותם מכסה ‪ Pj‬ובנוסף אם מספר הליטרלים ב‪ Pi -‬נמוך או שווה‬
‫למספר הליטרילים‬
‫ב ‪ . Pj‬במקרה זה אפשר למחוק את שורת ‪ Pj‬מהטבלה ‪.‬‬

‫דוגמא ‪:‬‬
‫)‪F(X1,X2,X3,X4,X5)= Σ(1,3,4,5,6,7,10,11,12,13,14,15,18,19,20,21,22,23,25,26,27‬‬

‫מסמנים את הגוררים הראשונים ההכרחים בעזרת כוכבית (*) ואת האיברים‬


‫המינמלים החשובים בעזרת עיגול ‪.‬‬

‫הטבלה המצומצמת מתקבלת ע"י מחיקת השורות ההכרחיות והעמודות המכוסות‬


‫ע"י גוררים ראשונים הכרחים ‪.‬‬

‫‪Minterms‬‬
‫‪26‬‬ ‫‪19‬‬ ‫‪18‬‬ ‫‪11‬‬ ‫‪10‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫(‪X1 X3’ X4 )3‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪X1 X2’ X4 )4‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫(‪X2 X3’ X4 )5‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪X1’ X2 X4 )6‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪X3’ X4 X5 )7‬‬
‫‪X‬‬ ‫(‪X2 X2’ X4 X5 )8‬‬
‫‪X‬‬ ‫(‪X1’ X4 X5 )9‬‬

‫כמה מהשורות בטבלה זו שולטות בשורות אחרות‬


‫למשל ‪:‬‬
‫בשורה (‪ X3’ X4 X5 )7‬ישנו ‪ X‬עבור ‪ m11 ,m19‬ובשורה (‪ X2 X2’ X4 X5 )8‬ישנו סימן ‪ X‬רק‬
‫עבור ‪ m19‬לכן שורה (‪ )7‬שולטת בשורה ( ‪ ) 8‬וניתן להסיר את שורה (‪.) 8‬‬
‫באותו אופן שורה ( ‪ ) 7‬שולטת בשורה ( ‪ ) 9‬ולכן נסיר את שורה ( ‪) 9‬‬
‫שורה ( ‪ ) 3‬שולטת בשורה ( ‪ ) 4‬ולכן נסיר את שורה ( ‪) 4‬‬
‫שורה ( ‪ ) 5‬שולטת בשורה ( ‪ ) 6‬ולכן נסיר את שורה ( ‪) 6‬‬

‫לאחר הצמצום מתקבלת הטבלה הבאה ‪:‬‬

‫‪Minterms‬‬
‫‪26‬‬ ‫‪19‬‬ ‫‪18‬‬ ‫‪11‬‬ ‫‪10‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫**(‪X1 X3’ X4 )3‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫**(‪X2 X3’ X4 )5‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪X3’ X4 X5 )7‬‬
‫בטבלה זו שני עמודות "חשובות " ולכן שורה (‪ )3‬ו ( ‪ )5‬הן ( הכרחיות ) הם נקראות שורות‬
‫הכרחיות משניות ‪ (.‬הערה ‪ :‬אין הכרח שבכל סכום מינמלי יהיו גוררים ראשונים משניים) ‪.‬‬
‫לאחר צמצום העמודות החשובות והשורות הכרחיות מקבלים טבלה ריקה והתהליך נגמר ‪.‬‬
‫‪ F‬מינמלי הוא סכום של השורות ההכרחיות הראשיות ‪ + 1,2,10,11‬השורות ההכרחיות‬
‫המשניות ‪: 3,5‬‬
‫‪F= X2’ X3 + X1’ X3+ X1’ X2’ X5 + X1 X2 X3’ X5 + X1 X3’X4 + X2 X3’X4‬‬

‫ראשוניים‬ ‫משניים‬

‫מחיקת עמודות דומיננטיות‬


‫אפשר לצמצם טבלאות ע"י מחיקת עמודות מסוימות ‪ .‬עמודה ‪ Ci‬שולטת בעמודה ‪ Cj‬אם‬
‫לעמודה ‪ Ci‬יש ‪ X‬בכל מקום שלעמודה ‪ Cj‬יש ‪ . X‬במקרה זה ניתן להסיר את ‪ Ci‬מהטבלה‬
‫בלי לפגוע בחיפוש הסכום המינמלי‪.‬‬
‫הערה ‪ :‬בשורות מוחקים שורות נשלטות ובעמודות דווקא עמודות שולטות ‪.‬‬
‫הסיבה לכך היא שבמקרה כזה הטיפול של האיברים המינמלים המחוסרים מטופל כבר ע"י‬
‫גורמים ראשונים מתאימים ‪.‬‬

‫טבלאות גוררים ראשוניים ציקליים‬

‫התהליך של מחיקת שורות הכרחיות ‪ ,‬שורות נשלטות ‪ ,‬עמודים שולטים מפשט את החיפוש‬
‫אחר סיכון מינמלי ‪ ,‬אך אינו נותן את כל הסכומים המינמלים ולא מוליך לבחירה חד משמעית‬
‫של גוררים ראשונים לסכום מינמלי ‪.‬‬
‫טבלאת גוררים ראשונים ציקליים – זוהי טבלת גוררים ראשונים מסוימת ‪,‬כך שבכל עמודה יש‬
‫לפחות שני ‪ – X‬ים ‪,‬בצורה כזאת שאין גורם ראשוני הכרחי‪.‬‬
‫בוחרים שורה עם מספר ליטרלים נמוך ביותר על מנת להכלילה בתוך סכום מינמלי ‪ ,‬מוחקים‬
‫את אותה שורה מהטבלה ואז מפעילים את טכניקת ה"מחיקות" לטבלה הנשארת ‪.‬‬
‫יש צורך לחזור על התהליך לכל שורה שיכולה להחליף את השורה שנבחרה ‪ .‬יש לבחור את‬
‫הסכום המינמלי ביותר נבחר בסוף כל התהליכים של המחיקות ‪.‬‬

‫דוגמא ‪:‬‬
‫)‪F(X1, X2,X3,X4)= Σ(0,2,5,6,7,8,9,12,13,15‬‬
‫שלב‪: )a( 1‬‬
‫מחרוזת‬ ‫תווית עשרונית‬ ‫מספר ה"‪-"1‬ים‬
‫√‬ ‫‪0000‬‬ ‫‪0‬‬ ‫‪0‬‬
‫√‬ ‫‪0010‬‬ ‫‪2‬‬
‫‪1‬‬
‫√‬ ‫‪1000‬‬ ‫‪8‬‬
‫√‬ ‫‪0101‬‬ ‫‪5‬‬
‫√‬
‫√‬ ‫‪0110‬‬ ‫‪6‬‬
‫√‬
‫‪2‬‬
‫‪1001‬‬ ‫‪9‬‬
‫‪1100‬‬ ‫‪12‬‬
‫√‬ ‫‪0111‬‬ ‫‪7‬‬
‫‪3‬‬
‫√‬ ‫‪1101‬‬ ‫‪13‬‬
‫‪1111‬‬ ‫‪15‬‬ ‫‪4‬‬

‫שלב ‪: )b( 2‬‬


‫מחרוזת‬ ‫תוית עשרונית‬ ‫מספר ה"‪-"1‬ים‬
‫‪0-00‬‬ ‫‪0,2‬‬ ‫‪0‬‬
‫‪-000‬‬ ‫‪0,8‬‬
‫‪10-0‬‬ ‫‪2,6‬‬ ‫‪1‬‬
‫√‬ ‫‪100-‬‬ ‫‪8,9‬‬
‫√‬ ‫‪00-1‬‬ ‫‪8,12‬‬
‫√‬ ‫‪1-01‬‬ ‫‪5,7‬‬ ‫‪2‬‬
‫√‬ ‫‪-101‬‬ ‫‪5,13‬‬
‫‪011-‬‬ ‫‪6,7‬‬
‫√‬ ‫‪01-1‬‬ ‫‪9,13‬‬
‫√‬ ‫‪110-‬‬ ‫‪12,13‬‬
‫√‬ ‫‪-111‬‬ ‫‪7,15‬‬ ‫‪3‬‬
‫√‬ ‫‪1-11‬‬ ‫‪13,15‬‬

‫שלב ‪: ) c ( 3‬‬
‫מחרוזת‬ ‫תוית עשרונית‬ ‫מספר ה"‪-"1‬ים‬
‫‪0-1-‬‬ ‫‪8,9,12,13‬‬ ‫‪1‬‬
‫‪-1-1‬‬ ‫‪5,7,13,15‬‬ ‫‪2‬‬

‫שלב ‪: )d( 4‬‬

‫‪Minterms‬‬ ‫מחרוזת‬ ‫תווית עשרונית‬


‫‪15‬‬ ‫‪13‬‬ ‫‪12‬‬ ‫‪9‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪2‬‬ ‫‪0‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫‪0-1-‬‬ ‫‪8,9,12,13‬‬ ‫*(‪)1‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫‪X‬‬ ‫‪-1-1‬‬ ‫‪5,7,13,15‬‬ ‫*(‪)2‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪0-00‬‬ ‫‪0,2‬‬ ‫(‪)3‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪-000‬‬ ‫‪0,8‬‬ ‫(‪)4‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪10-0‬‬ ‫‪2,6‬‬ ‫(‪)5‬‬
‫‪X‬‬ ‫‪X‬‬ ‫‪011-‬‬ ‫‪6,7‬‬ ‫(‪)6‬‬

‫שלב ‪: )e( 5‬‬


‫‪Minterms‬‬
‫‪6‬‬ ‫‪2‬‬ ‫‪0‬‬ ‫מחרוזת‬
‫‪X‬‬ ‫‪x‬‬ ‫(‪00-0 )3‬‬
‫‪x‬‬ ‫(‪000- )4‬‬
‫‪x‬‬ ‫‪X‬‬ ‫(‪0-10 )5‬‬
‫‪X‬‬ ‫(‪-011 )6‬‬

‫הטבלה שבשלב ( ‪ ) 5‬שיטת השורה השולטת נותנת סכום מינמלי אחד ‪ ,‬אך שני סכומים‬
‫מינמלים יכולים להתקבל גם בשיטות אחרות ‪.‬‬
‫על כל פנים יש משהו שניתן לבצע על מנת לקבל סכום מינמלי‪ .‬מכיוון שכל השורות אותו מספר‬
‫ליטרלים ‪ ,‬ניתן למחוק שורה כלשהי בצורה אקראית מכיוון שכל איבר מינמלי חייב להיות‬
‫מכוסה ע"י גורם ראשוני ‪.‬‬
‫אם נבחר אחת מהשורות ( ‪ ) 3‬ו‪ ) 3 (, ) 5 ( -‬ו‪ , ) 6 ( -‬או ( ‪ ) 3‬ו‪ ) 6 ( -‬אז כל העמודות‬
‫( איברים מינמלים ) מכוסות ‪ .‬יותר מזה כל הבחירות הללו מעורב בהם אותו מספר ליטרלים ‪.‬‬
‫העמודות מכוסות ‪ .‬בכל מקרה בחרנו אותו מספר של ליטרלים ולכן בחירה אחת אינה יותר‬
‫טובה מבחירה אחרת ‪.‬‬
‫לכן ‪ ,‬ע"י הוספת בחירות אלו לגוררים ראשונים מובילים בהתאם לשלושה סכומים מינמלים ‪:‬‬

‫‪’X1’ X2’ X4’+ X1’X3 X4‬‬


‫או‬
‫‪+X1’ X2’ X4’+ X1’ X2 X3‬‬ ‫‪F= X1 X3’+ X2 X4‬‬
‫או‬
‫‪’X2’ X3’ X4’+ X1’ X3 X4‬‬

‫כאלטרנטיבה ניתן להשתמש בשיטת הענפים כדי לטפל בטבלת טבלת גוררים ראשוניים‬
‫ציקליים‪ .‬בשיטת הענפים זו לוקחים עמודה עם מספר מינמלי של ‪ - X‬ים ‪ .‬מכיוון שבטבלה‬
‫בשלב ‪ . )e( 5‬יש שני ‪ X‬בכל עמודה ‪ .‬ניתן לבחור כל עמודה ‪ ,‬נבחר למשל ב‪ . m6 -‬כדי להבטיח‬
‫ש‪ m6 -‬יהיה‬
‫מכוסה ע"י גורם ראשוני יש לבחור את שורה ‪ 5‬או שורה ‪ . 6‬ולכן מתקבלות הטבלאות הבאות‬
‫המתארות את שיטת הענפים ‪:‬‬
‫בוחרים שורה ‪ 6‬ומוחקים אותה וכל עמודה שיש לה ‪ X‬בשורה זאת ‪:‬‬ ‫א‪.‬‬

‫אותו דבר כמו בסעיף א' רק עבור שורה ‪: 5‬‬ ‫ב‪.‬‬


‫הטבלה בסעיף ( א ) גם היא ציקלית וניתן להשתמש בשיטת הענפים פעם נוספת אך‬
‫במקרה פשוט זה ברור ששורה ‪ 3‬תיתן סכום מינמלי ‪ .‬בטבלה בסעיף (ב) ניתן לבחור‬
‫את שורה ( ‪ ) 3‬או שורה ( ‪ . ) 4‬אפשרויות אלו נותנות את אותם שלושת סכומים‬
‫מינמלים שקיבלנו בדוגמא מעל ‪.‬‬
‫לסיכום שיטת ‪ Quine-McCluskey‬דורשת את הצעדים הבאים ‪:‬‬
‫קבע את הגוררים הראשונים‬ ‫‪.1‬‬
‫הכן טבלת גוררים ראשונים‬ ‫‪.2‬‬
‫קבע את הגוררים הראשונים ההכרחיים והכלל אותם בסכום המינמלי ‪ .‬מחק את‬ ‫‪.3‬‬
‫השורות ההכרחיות והעמודות המתאימות מתוך הטבלה ‪.‬‬
‫אם כל העמודות מכוסות עצור ‪ .‬אם לא ‪ ,‬מחק את השורות הנשלטות והעמודות‬ ‫‪.4‬‬
‫השולטות ומצא את הגוררים הראשונים המשניים ‪.‬‬
‫חזור על צעדים ‪ 3,4‬עד כמה שניתן ‪.‬‬ ‫‪.5‬‬
‫במקרה של טבלה ציקלית השתמש בשיטות ההפחתה של טבלה ציקלית וחזור על‬ ‫‪.6‬‬
‫סעיף ‪. 3‬‬

‫תנאי ‪DON’T CARE‬‬


‫פונקציה עם תנאי ‪ DON’T CARE‬ניתנת לפישוט בשיטת ‪ Quine-McCluskey‬אחרי‬
‫שינוי קטן ‪ .‬האיברים המינמלים של ‪ DON’T CARE‬נכללים ברשימת האיברים‬
‫המינמלים של הפונקציה כאשר קובעים את הגוררים הראשונים ‪ .‬בצורה כזאת‬
‫מקבלים גוררים ראשונים עם המספר הנמוך ביותר של ליטרלים ‪ ,‬אך דבר זה גם‬
‫מגביר את האפשרות של עליה במספר הגוררים הראשונים ‪ .‬מצד שני כאשר מכינים‬
‫את טבלת הגוררים הראשונים האיברים המינמלים של ה‪ DON’T CARE -‬אינם‬
‫נכללים ברשימת האיברים המינמלים ‪ ,‬מכיוון שאין חובה לכסות אותם ‪.‬‬
‫אם היינו מכלילים אותם היה הדבר שקול לבחור את כל ערכיה של ‪DON’T CARE‬‬
‫ל ‪ , 1-‬שמסתבר שאינה תמיד הבחירה הטובה ביותר ‪.‬‬
‫דוגמא ‪ :‬פשט את הפונקציה עם תנאי ‪DON’T CARE‬‬

‫)‪F(X1,X2,X3,X4)= Σ(2,6,7,8,13)+ Σd(0,5,9,12,15‬‬


‫כאשר הגוררים הראשוניים של ‪G(X1,X2,X3,X4) = Σ(0,2,5,6,7,8,9,12,13,15) :‬‬
‫הם ‪’X2 X4, X1 X3’, X1’ X2 X3, X1’ X3 X4’, X2’ X3’ X4’, X1’ X2’ X4 :‬‬

‫טבלת גוררים ראשונים ‪:‬‬


‫‪Minterms‬‬ ‫תווית‬
‫‪13‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪2‬‬ ‫עשרונית‬

‫‪X‬‬ ‫‪X‬‬ ‫‪X2 X4‬‬ ‫(‪5,7,13,15 )1‬‬


‫‪X‬‬ ‫‪X‬‬ ‫‪’X1 X3‬‬ ‫(‪8,9,12,13 )2‬‬

‫‪X‬‬ ‫‪X‬‬ ‫‪X1’ X2 X3‬‬ ‫(‪6,7 )3‬‬


‫‪X‬‬ ‫‪X‬‬ ‫‪’X1’ X3 X4‬‬ ‫(‪2,6 )4‬‬

‫‪X‬‬ ‫‪’X2’ X3’ X4‬‬ ‫(‪0,8 )5‬‬

‫‪X‬‬ ‫‪’X1’ X2’ X4‬‬ ‫(‪0,2 )6‬‬

‫נשים לב ששורה( ‪ ) 2‬שולטת בשורה ( ‪ .) 5‬ע"י מחיקת שורה( ‪ ) 5‬מקבלים את הטבלה הבאה ‪:‬‬

‫‪Minterms‬‬
‫‪13‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪2‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪X2 X4 )1‬‬
‫‪X‬‬ ‫‪X‬‬ ‫**(‪’X1 X3 )2‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪X1’ X2 X3 )3‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪’X1’ X3 X4 )4‬‬
‫‪X‬‬ ‫(‪’X1’ X2’ X4 )5‬‬
‫שורה( ‪ ) 2‬בטבלה זו היא הכרחית משנית מכיוון ששורה ( ‪ ) 8‬בעלת ‪ X‬אחד ‪.‬אם נמחק את‬
‫שורה ( ‪ ) 2‬ועמודות ( ‪ ) 8 ( , ) 13‬נקבל את טבלת גוררים ראשונים ציקלית ‪.‬‬
‫‪Minterms‬‬
‫‪7‬‬ ‫‪6‬‬ ‫‪2‬‬
‫‪X‬‬ ‫(‪X2 X4 )1‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪X1’ X2 X3 )3‬‬
‫‪X‬‬ ‫‪X‬‬ ‫(‪’X1’ X3 X4 )4‬‬
‫‪X‬‬ ‫(‪’X1’ X2’ X4 )6‬‬

‫ניתן לבצע את שיטת הענפים עבור הטבלה האחרונה ‪ ,‬אך ניתן לראות ששורה‬
‫ראשונה ושלישית נותנות את הסכום המינמלי היחיד ‪:‬‬
‫‪’F= X1 X3’+ X2X4+ X1’ X3X4‬‬

‫מימושים של מעגלים קומיבנטורים‬


‫לאחר שעסקנו במינימזציה נעסוק במימוש של מעגלים קומבינטורים במקרה של‬
‫שתי רמות ויותר ‪ .‬ובנוסף ביישום צ'יפים במעגלים‪.‬‬

‫מימוש בעזרת שערי ‪( NAND , NOR‬שערים שלמים פונקציונלית )‬

‫מעגלי ‪ AND-OR‬בעלי שתי רמות מומרים בקלות למעגל מורכב של שערי ‪ NAND‬או‬
‫‪ , NOR‬נשתמש בעובדה ’ (’ ‪ =F ) F‬עבור כל פונקציה ‪ , F‬ובזהויות דה מורגן‬
‫(‪)8.1‬‬ ‫(‪’F1’ F2’…Fn=’)F1+F2+…+Fn‬‬

‫(‪)8.2‬‬ ‫( ‪)’F1’+ F2’+…+Fn (=’) F1· F2·…·Fn‬‬

‫מעגלי ‪NAND‬‬
‫מעגל המממש את הפונקציה בהצגת ‪: SOP‬‬
‫(‪)8.3‬‬ ‫‪F= L1 + L2 +…+Lm+ P1 + P2 +…+Pk‬‬

‫כאשר ‪ Pk‬הם מכפלות ו ‪ Lm‬ליטרלים‬


‫(‪)8.4‬‬ ‫)’‪’F=( L1’ L2’…Lm’ P1’ P2’…Pk‬‬

‫השלבים של המימוש של ‪ SOP‬בשערי ‪ NAND‬מתוארים באיור הבא‪.‬‬


‫מעגלי ‪NOR‬‬
‫משמשים למימוש פונקציות בהצגת ‪: POS‬‬
‫(‪)8.5‬‬ ‫)’‪’F= (L1 L2…Lm)(S1S2…Sk) = (L1’+ L2’+…+Lm’+S1’+S2’+…+Sk‬‬

‫השלבים למימוש ‪ POS‬בשערי ‪ NOR‬מתוארים באיור הבא ‪.‬‬


‫מימוש של שערים בעלי רמות רבות‬
‫מכיוון שלכל שער במעגל יש השהיה בזמן ביצוע ‪ .‬סך השהית הזמן בין שינוי בכניסה‬
‫לבין שינוי במוצא יהיה פרופורציונלי למספר רמות של שערים במעגל ‪.‬‬
‫לכן מעגל בעל שתי רמות יהיה בעל זמן השהיה הכי נמוך ‪ .‬אבל ‪ ,‬תכנון מעגל בעל‬
‫שתי רמות אינו תמיד מעשי ‪.‬מסיבה אחת ‪ ,‬מספר המכסימלי של כניסות לשער (‬
‫‪ ) fun- in‬מוגבל‪.‬‬
‫נראה כיצד ניתן לממש ישום בעל מספר רמות בדוגמא הבאה ‪.‬‬
‫דוגמא ‪:‬‬
‫)‪F(X1, X2, X3,X4)=Σ(7,8,9,12,13,14,15‬‬
‫אחרי פישוט נקבל שהביטוי ל ‪ SOP‬מינמלי יהיה ‪:‬‬
‫‪F= X1 X2+ X1 X3’+ X2 X3X4‬‬
‫ביטוי זה דורש שער עם ‪ 3‬כניסות ‪ .‬אבל אם ‪ fan-in‬מוגבל ל‪ 2-‬נצטרך למצוא ביטוי‬
‫מינמלי‬
‫במקרה זה אפשר לרשום ש‪F= X1 (X2+ X3’)+ X2 X3X4 :‬‬
‫או‬
‫‪’F= X2 (X1+ X3X4)+ X1 X3‬‬
‫הביטוי הראשון דורש שער עם ‪ 3‬כניסות ‪.‬‬
‫הביטוי השני אינו דורש שער יותר מ‪ 2-‬כניסות ‪.‬‬
‫נשים לב שהאיבר הבעייתי בביטוי הראשון הוא ‪ X2 X3 X4‬שאפשר להיפטר ממנו‬
‫ע"י כך שנוסיף לו את האיבר ‪. X3’ X3 X4=0‬‬
‫‪F= X1 X2+ X1 X3’+ X2 X3 X4= X1 (X2+ X3’)+ X2 X3 X4+ X3 X3’ X4‬‬
‫=)’‪X1 (X2+ X3’)+ X3 X4 (X2+ X3’)=( X1+ X3 X4)( X2+ X3‬‬
‫הציור עבור הביטוי יהיה ‪( :‬יישום של ‪ 3‬רמות עם ‪)fan-in=2‬‬
‫תכנון מעגלי ‪ NAND , NOR‬בעלי שלבים מרובים ‪.‬‬

‫תכנון מעגלי ‪NAND‬‬


‫קבלת ביטוי ‪ SOP‬מינמלי לפונקציה שאותה רוצים ליישם‬ ‫‪.1‬‬
‫משנים את הסכום המינמלי כך שיתאים לדרישות ה‪Fan-in-‬‬ ‫‪.2‬‬
‫יישם את הביטוי כמעגל בעל שלבים מרובים עם שערי ‪ AND‬ו‪ OR -‬כך שכל רמה‬ ‫‪.3‬‬
‫תכיל רק שערי ‪ OR‬או רק שערי ‪.AND‬‬
‫מספר את הרמות אחורנית כלומר מהיציאה כך ששער הפלט ‪ OR‬יהיה מספר ‪1‬‬ ‫‪.4‬‬
‫החלף את כל השערים עם שערי ‪NAND‬‬ ‫‪.5‬‬
‫השאר את הכניסות לרמות הזוגיות ללא שינוי ‪ ,‬אך הפוך את כל הליטרלים‬ ‫‪.6‬‬
‫המופיעים כקלט לשלבים לא זוגים ‪.‬‬

‫דוגמא ‪:‬‬

‫‪F=[( X1+ X2’) X3+X4’+X5X6X7’]X8+X9 X10 X11’+X12‬‬


‫יישם בעזרת שערי ‪ NAND‬עם מכסימום כניסות ‪) Fan-in=3 ( 3‬‬
‫יישום סעיפים ‪3,4‬‬

‫יישום כתוצאה מסעיפים ‪5,6‬‬

You might also like