Transcript 3-Majority

‫תכן לוגי‬
234262
1 ‫תרגול‬
Yossi Kuperman 2011 ©
‫שערים לוגיים‬
‫(לחלק מהשערים יש סמלים מקובלים)‬
‫‪NOT‬‬
‫‪2-OR‬‬
‫‪3-AND‬‬
‫‪2 to 1 Mux‬‬
‫‪2-XOR‬‬
‫‪2-NOR‬‬
‫שערים לוגיים מחשבים פונקציות בוליאניות‪:‬‬
‫פונקציה מהצורה ‪.𝑓: 0,1 𝑘 → 0,1‬‬
‫‪2-NAND‬‬
‫פונקציות בוליאניות‬
‫פונקציה בוליאנית הינה פונקציה מהצורה הבאה‪:‬‬
‫‪𝑓: 0,1 𝑘 → 0,1‬‬
‫למשל‪ ,‬שער ‪ 2-AND‬מממש את הפונקציה הבוליאנית‬
‫הדו‪-‬מקומית (‪ )k=2‬המתוארת בטבלה הבאה‪:‬‬
‫)‪AND(a,b‬‬
‫‪a,b‬‬
‫‪0‬‬
‫‪0,0‬‬
‫‪0‬‬
‫‪0,1‬‬
‫‪0‬‬
‫‪1,0‬‬
‫‪1‬‬
‫‪1,1‬‬
‫טבלת אמת‬
‫פונקציות בוליאניות‬
‫(המשך‪)...‬‬
‫ניתן לתאר פונקציה בוליאנית במספר אופנים‪:‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫באופן מילולי‬
‫טבלת אמת‬
‫נוסחה אריתמטית‬
‫נוסחה לוגית‬
‫לדוגמא נציג שתי פונקציות ‪-3‬מקומיות שיקראו‪ 3-Prime :‬ו‪3-Majority -‬‬
‫פונקציות בוליאניות‬
‫(המשך‪)...‬‬
‫הגדרה מילולית‬
‫) 𝟎𝒙 ‪ = 3-Majority(𝒙𝟐 ,𝒙𝟏,‬הערך הבינארי המופיע ברוב המקומות‬
‫במילה ‪𝑥2 𝑥1 𝑥0‬‬
‫‪ 3-Prime(𝒙𝟐 ,𝒙𝟏, 𝒙𝟎 )=1‬אם ורק אם הערך המספרי של המילה‬
‫הבינארית ‪ 𝑥2 𝑥1 𝑥0‬הוא ראשוני‪.‬‬
‫פונקציות בוליאניות‬
‫(המשך‪)...‬‬
‫הגדרה על ידי טבלת אמת‬
‫)‪3-Majority(c,b,a‬‬
‫)‪3-Prime(c,b,a‬‬
‫‪c,b,a‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0,0,0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0,0,1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0,1,0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0,1,1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1,0,0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1,0,1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1,1,0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1,1,1‬‬
‫פונקציות בוליאניות‬
‫(המשך‪)...‬‬
‫הגדרה על ידי נוסחה אריתמטית‬
‫‪a  b  c 1‬‬
‫‪3  Majority ( c, b, a )  ‬‬
‫‪ ‬‬
‫‪3‬‬
‫‪2‬‬
‫‪‬‬
‫‪234262 – © Dima Elenbogen 2009 Technion - IIT‬‬
‫פונקציות בוליאניות (המשך‪)...‬‬
‫הגדרה על ידי נוסחה לוגית‬
‫)‪(aΛc‬‬
‫)‪(avc‬‬
‫‪v‬‬
‫‪Λ‬‬
‫)‪3-Prime(c,b,a) = (¬cΛb) v (aΛc‬‬
‫)‪= (av¬c) Λ (bvc‬‬
‫)‪3-Majority(c,b,a) = (aΛb) v (bΛc‬‬
‫)‪= (avb) Λ (bvc‬‬
‫הצורה הראשונה נקראת )‪ ,DNF (Disjunctive Normal Form‬בסלנג "סכום מכפלות"‪.‬‬
‫הצורה השנייה נקראת )‪ ,CNF(Conjunctive Normal Form‬בסלנג "מכפלת סכומים"‪.‬‬
‫כל פונקציה בוליאנית ניתנת להצגה בשתי הצורות הנ"ל‪.‬‬
‫פונקציות בוליאניות‬
‫מימוש על ידי לוגיקה צירופית‬
‫משפט‪ :‬ניתן לממש כל פונקציה בוליאנית בעזרת לוגיקה צירופית‬
‫המורכבת מהשערים הלוגיים הבאים‪ 2-AND, 2-OR, NOT :‬בלבד‪.‬‬
‫שאלה ‪ :1‬האם כל שלושת השערים הנ"ל נחוצים?‬
‫השער ‪ NOT‬הכרחי‪ .‬אפשר לוותר על אחד מהשערים ‪ 2-OR‬או ‪.2-AND‬‬
‫שאלה ‪ :2‬האם קיים שער יחיד שאפשר לממש בעזרתו כל פונקציה‬
‫בוליאנית?‬
‫כן‪ ,‬יש שני שערים כאלו ‪ 2-NOR‬ו – ‪.2-NAND‬‬
‫‪234262 – © Dima Elenbogen 2009‬‬
‫‪ Bus‬רב כיווני‬
‫מספר יחידות מחוברות לקו משותף‪.‬‬
‫כל היחידות מקשיבות לקו‪.‬‬
‫כולן יכולות לשדר עליו‪ ,‬אך לא בו‪-‬זמנית‪.‬‬
‫ההיתרון הגדול של מבנה כזה הוא חיסכון בחיווט‪.‬‬
‫‪ Bus‬רב כיווני‬
‫(המשך‪)...‬‬
‫שערים לוגיים משדרים תמיד על הפלט שלהם ולכן אי אפשר לחבר אותם ל ‪.Bus -‬‬
‫ישנם רכיבים מיוחדים שנקראים ‪.Bus Drivers‬‬
‫להבדיל משערים לוגים‪ ,‬רכיבים אלו לא תמיד משדרים על הפלט שלהם‪,‬‬
‫ולכן אפשר להשתמש בהם לשידור על קו משותף‪.‬‬
Bus Drivers
Tri-State Driver
Enable
0
1
1
Data in
‫לא משנה‬
0
1
Output Net
‫נתק‬
0
1
‫‪ Bus‬רב כיווני‬
‫(המשך‪)...‬‬
‫‪Bus‬‬
‫‪Bus Drivers‬‬
‫‪Wired AND‬‬
‫אופן העובדה של הרכיב‪:‬‬
‫’‪ :Input = ‘0‬משדר '‪ '0‬על מוצאו‪.‬‬
‫’‪ :Input = ‘1‬הרכיב מנותק מהמוצא‪ .‬הערך האנלוגי על הקו נקבע על ידי רכיבים אחרים‪.‬‬
‫‪Bus Drivers‬‬
‫‪Pull-Up‬‬
‫הרכיב משדר תמיד '‪.'1‬‬
‫אבל "עוצמת" השידור נמוכה יחסית ל – ‪.Wired AND Driver‬‬
‫‪Bus Drivers‬‬
‫‪Wired-AND Bus‬‬
‫היתרון של המבנה העליון הוא בחיווט‪.‬‬
‫בדרך כלל בקורס לא נתעניין בשיקולים אלו‪.‬‬
Bus Drivers
Wired-OR & Pull-Down
Wired-OR ‫התנהגות‬
Input Output
0
‫נתק‬
1
1
‫‪ROM‬‬
‫‪Read Only Memory‬‬
‫שיטה כללית למימוש כל פונ' בוליאניות )‪-(k,m‬מקומיות‬
‫דהיינו פונקציה מהצורה‪:‬‬
‫𝑚‬
‫‪→ 0,1‬‬
‫𝑘‬
‫‪𝑓: 0,1‬‬
‫לצורך העניין הפונקציה ‪ f‬מוגדרת על ידי טבלת אמת בת 𝑘‪ 2‬מילים‪,‬‬
‫כל אחת ברוחב ‪ m‬ביטים‪ ,‬לכל מילה יש כתובת בת ‪ k‬ביטים‪.‬‬
‫לכן ה ‪ ROM‬המתאים יקרא‪:‬‬
‫אופן העבודה של ה ‪ :ROM‬מקבל סדרה של ‪ k‬ביטים המפורשת‬
‫ככתובת‪ ,‬בוחר את המילה המתאימה בטבלה ומשדר אותה החוצה‬
ROM 23x2
AND-Plain
OR-Plain
Non-Programmable
Programmable
000
001
010
011
100
101
110
111
3-Prime 3-Majority
ROM 23x2
AND-Plain
OR-Plain
Non-Programmable
Programmable
c,b,a
3-Prime
3-Majority
000
001
0,0,0
0
0
0,0,1
0
0
010
0,1,0
1
0
011
100
0,1,1
1
1
1,0,0
0
0
101
1,0,1
1
1
110
111
1,1,0
0
1
1,1,1
1
1
3-Prime 3-Majority
PLA
Programmable Logic Array
.‫מקומית‬-(k,m) ‫ אבל אי אפשר לחשב בו כל פונקציה‬ROM – ‫ הוא יותר זול מ‬.‫ לעניים‬ROM ‫ הוא‬PLA
AND-Plain
OR-Plain
Programmable
Programmable
3-Prime 3-Majority
PLA
3-Prime(c,b,a) = (¬cΛb) v (aΛc)
3-Majority(c,b,a) = (aΛb) v (bΛc)
v
(aΛc)
AND-Plain
OR-Plain
Programmable
Programmable
¬cΛb
aΛc
cΛb
bΛa
3-Prime 3-Majority
‫תרגיל‬
‫ברשותך מספר לא מוגבל של רכיבי ‪ ROM‬בעלי ‪3‬‬
‫כניסות ויציאה אחת (‪.)ROM 23x1‬‬
‫כמה רכיבים כאלו מספיקים כדי לממש כל פונקציה‬
‫‪-4‬מקומית?‬
‫תרגיל (המשך‪)...‬‬
‫טענה‪ :‬לכל פונקציה בוליאנית ‪-n‬מקומית ‪ f‬וכל מילה בינארית ‪ x1, x2,…, xn‬מתקיים‪:‬‬
‫)‪ƒ)x1, x2,...,xn) = ¬x1∙ƒ)0, x2,...,xn) v x1∙ƒ)1, x2,...,xn‬‬
‫נגדיר שתי פונקציות )‪-(n-1‬מקומיות שיקראו‪ 𝑓𝑥1=0 :‬ו‪𝑓𝑥1=1 -‬‬
‫כדלקמן‪:‬‬
‫)‪ƒx1 =0 (x2,...,xn) =ƒ)0, x2,...,xn‬‬
‫)‪ƒx1 =1 (x2,...,xn) =ƒ)1, x2,...,xn‬‬
)...‫(המשך‬
‫תרגיל‬
X1
ROM
X2
X3
x4
ROM
ƒx1 =0
ƒx1 =1
Multiplexer
X2
X3
x4
)...‫(המשך‬
‫תרגיל‬
X1
X2
X3
x4
ROM
ƒx1 =0
ROM
Multiplexer (mux)
X2
X3
x4
ROM
ƒx1 =1