חזור לתיקייה: שיעורי בית יבשים

גליון 2

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה
  • כללי

גליון 2

00440252

מערכות ספרתיות ומבנה המחשב

רשימות הרצאה לקריאה בשבת

גליון 2

הופק מתוך תקיית התואר של שקד

uni-folder.vercel.app

תרגיל (1)

מצא מעגל עם 444 כניסות שהוא מימוש מינימלי תחת הדרישות הבאות:

  • המעגל יוציא 111 עבור הקלטים 0,3,5,11,12,150,3,5,11,12,150,3,5,11,12,15
  • המעגל יוציא 000 עבור שאר המספרים אשר מחלקים את 234234234
  • המעגל יוצא ∅\varnothing∅ עבור שאר המספרים.

נבנה את הפונקציה שלנו:

f(x,y,z,w)=∑(0,3,5,11,12,15)+∑∅(4,7,8,10,14)f(x,y,z,w)=\sum(0,3,5,11,12,15)+\sum_{\varnothing}(4,7,8,10,14)f(x,y,z,w)=∑(0,3,5,11,12,15)+∅∑​(4,7,8,10,14)

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

zw╲xy00011110001∅1∅011111∅1110∅∅\begin{array}{c|c|c|c|c|} _{zw}\diagdown^{xy} & 00 & 01 & 11 & 10 \\ \hline 00 & 1 & \varnothing & 1 & \varnothing \\ \hline 01 & & 1 \\ \hline 11 & 1 & \varnothing & 1 & 1 \\ \hline 10 & & & \varnothing & \varnothing \\ \hline \end{array}zw​╲xy00011110​0011​01∅1∅​1111∅​10∅1∅​​

כעתף נוכל לצמצם ע"י בחירת 000 ו-111ים ב-∅\varnothing∅.
​גליון 2 2026-06-04 10.15.23.excalidraw.svg

f(x,y,z,w)=z‾   ⁣w‾+zw+x‾yw=z‾⊕w+x‾ywf(x,y,z,w)=\overline{z}\;\!\overline{w}+zw+\overline{x}yw= \overline{z} \oplus w+\overline{x}ywf(x,y,z,w)=zw+zw+xyw=z⊕w+xyw

וזה יהיה המעגל שלנו.
​digitalSystems-dryHW-2-q1.svg

תרגיל (2)

נתון המעגל הצירופי הבא:
​יבשים ספרתיות 2 -1.png
מצאו את המימוש המתאים עבור הפונקציה לאחר פישוטה
​יבשים ספרתיות 2 - 2.png
נסמן את התשובות מימן למעלה אאא, שמאל למעלה בבב, ימין למטה גגג ושמאל למטה דדד.

תחילה נמצא את המימוש של הפונקציה הנתונה:

f(a,b,c)=((ab)⊕(a+b‾))⊕((a+b‾)+(b+c‾))‾f(a,b,c)=\overline{((ab) \oplus (\overline{a+b})) \oplus ((\overline{a+b})+(\overline{b+c}))}f(a,b,c)=((ab)⊕(a+b​))⊕((a+b​)+(b+c​))​

כעת נתחיל לפשט אותה:

f(a,b,c)=((ab)⊕(a+b‾))⊕((a+b‾)+(b+c‾))‾=((ab)⊕(a‾b‾))⊕(a‾b‾+b‾c‾)‾=((ab)⊕(a‾b‾))⊕(b‾ac‾)‾\begin{align*} f(a,b,c)&=\overline{((ab) \oplus (\overline{a+b})) \oplus ((\overline{a+b})+(\overline{b+c}))}=\overline{((ab)\oplus (\overline{a}\overline{b}))\oplus (\overline{a}\overline{b}+\overline{b}\overline{c})} \\ &=\overline{((ab)\oplus (\overline{a}\overline{b}))\oplus(\overline{b}\overline{ac})} \end{align*}f(a,b,c)​=((ab)⊕(a+b​))⊕((a+b​)+(b+c​))​=((ab)⊕(ab))⊕(ab+bc)​=((ab)⊕(ab))⊕(bac)​​ aba‾b‾⊕00111100100110011001\begin{array}{|cc|cc|c|} \hline a & b & \overline{a} & \overline{b} & \oplus \\ \hline 0 & 0 & 1 & 1 & 1 \\ 1 & 0 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 & 0 \\ 1 & 1 & 0 & 0 & 1 \\ \hline \end{array}a0101​b0011​a1010​b1100​⊕1001​​

לכן מתקיים: (ab)⊕(a‾b‾)=a⊕b‾(ab)\oplus (\overline{a}\overline{b})=\overline{a \oplus b}(ab)⊕(ab)=a⊕b​.

f(a,b,c)=a⊕b‾⊕b‾(a‾+c‾)‾=(ab+a‾b‾)⊕b‾(a‾+c‾)‾=(ab+a‾b‾)b‾(a‾+c‾)+(ab+a‾b‾)b‾(a‾+c‾)‾f(a,b,c)=\overline{\overline{a \oplus b}\oplus \overline{b}(\overline{a}+\overline{c})}=\overline{(ab+\overline{a}\overline{b})\oplus \overline{b}(\overline{a}+\overline{c})}=(ab+\overline{a}\overline{b})\overline{b}(\overline{a}+\overline{c})+\overline{(ab+\overline{a}\overline{b})\overline{b}(\overline{a}+\overline{c})}f(a,b,c)=a⊕b​⊕b(a+c)​=(ab+ab)⊕b(a+c)​=(ab+ab)b(a+c)+(ab+ab)b(a+c)​ =(aba‾b‾+abc‾b‾+a‾b‾a‾b‾+a‾b‾c‾b‾)+(ab+a‾b‾)b‾(a‾+c‾)‾=(0+0+a‾b‾(1+c‾))+(ab+a‾b‾)b‾(a‾+c‾)‾=(ab\overline{a}\overline{b}+ab\overline{c}\overline{b}+\overline{a}\overline{b}\overline{a}\overline{b}+\overline{a}\overline{b}\overline{c}\overline{b})+\overline{(ab+\overline{a}\overline{b})\overline{b}(\overline{a}+\overline{c})}=(0+0+\overline{a}\overline{b}(1+\overline{c}))+\overline{(ab+\overline{a}\overline{b})\overline{b}(\overline{a}+\overline{c})}=(abab+abcb+abab+abcb)+(ab+ab)b(a+c)​=(0+0+ab(1+c))+(ab+ab)b(a+c)​ f(a,b,c)=a‾b‾+(ab‾+a‾b)(b+ac)=a‾b‾+acb‾+a‾b=a‾(b‾+b)+ab‾c=a‾+ab‾c=a‾+b‾cf(a,b,c)=\overline{a}\overline{b}+(a\overline{b}+\overline{a}b)(b+ac)=\overline{a}\overline{b}+ac\overline{b}+\overline{a}b=\overline{a}(\overline{b}+b)+a\overline{b}c=\overline{a}+a\overline{b}c=\overline{a}+\overline{b}cf(a,b,c)=ab+(ab+ab)(b+ac)=ab+acb+ab=a(b+b)+abc=a+abc=a+bc

וזוהי הפונקציה הסופית שלנו.
התשובה הנכונה הינה א שכן: f(a,b,c)=a‾+b‾c=a‾+b+c‾‾f(a,b,c)=\overline{a}+\overline{b}c=\overline{a}+\overline{b+\overline{c}}f(a,b,c)=a+bc=a+b+c​ לפי דה מורגן.

תרגיל (3)

נתון המעגל הצירופי הבא:
​יבשים ספרתיות 2 - 3.png
וכן טבלת התזמונים הבאה:

NANDNOTORAND861210tpd\begin{array}{|c|c|c|c|c|} \hline \text{NAND} & \text{NOT} & \text{OR} & \text{AND} \\ \hline 8 & 6 & 12 & 10 & t_{pd} \\ \hline \end{array}NAND8​NOT6​OR12​AND10​tpd​​​

חשבו את tpdt_{pd}tpd​ מכל כניסה ליציאה.

נתחיל מהכניסה xxx. עבורה יש שני מצבים tpdLHt_{pdLH}tpdLH​ ו-tpdHLt_{pdHL}tpdHL​. מכיוון שלא נתונים לנו הזמנים האלו פשוט נניח שקיבלנו את המקסימום ונשתמש בו.
tpdt_{pd}tpd​ מחושב על ידי המסלול הארוך ביותר. ל-xxx יש שלושה מסלולים בהם הוא הולך. נחשב אם כן את כולם:

tpd(x→out)1=tpd(NAND)+tpd(AND)+tpd(OR)=8+10+12=30t_{pd}(x\to out)_{1}=t_{pd}(NAND)+t_{pd}(AND)+t_{pd}(OR)=8+10+12=30tpd​(x→out)1​=tpd​(NAND)+tpd​(AND)+tpd​(OR)=8+10+12=30 tpd(x→out)2=tpd(NAND)+tpd(AND)+tpd(OR)=30t_{pd}(x\to out)_{2}=t_{pd}(NAND)+t_{pd}(AND)+t_{pd}(OR)=30tpd​(x→out)2​=tpd​(NAND)+tpd​(AND)+tpd​(OR)=30 tpd(x→out)3=tpd(NAND)+tpd(NAND)+tpd(OR)=8+8+12=28t_{pd}(x\to out)_{3}=t_{pd}(NAND)+t_{pd}(NAND)+t_{pd}(OR)=8+8+12=28tpd​(x→out)3​=tpd​(NAND)+tpd​(NAND)+tpd​(OR)=8+8+12=28

לכן, tpd(x→out)=30t_{pd}(x\to out)=30tpd​(x→out)=30.
עבור yyy יש שני מסלולים גם כן.

tpd(y→out)1=tpd(NAND)+tpd(AND)+tpd(OR)=30t_{pd}(y\to out)_{1}=t_{pd}(NAND)+t_{pd}(AND)+t_{pd}(OR)=30tpd​(y→out)1​=tpd​(NAND)+tpd​(AND)+tpd​(OR)=30 tpd(y→out)2=tpd(NOT)+tpd(NAND)+tpd(OR)=6+8+12=26t_{pd}(y\to out)_{2}=t_{pd}(NOT)+t_{pd}(NAND)+t_{pd}(OR)=6+8+12=26tpd​(y→out)2​=tpd​(NOT)+tpd​(NAND)+tpd​(OR)=6+8+12=26

לכן, tpd(y→out)=30t_{pd}(y\to out)=30tpd​(y→out)=30.
עבור zzz גם כן יש שני מסלולים:

tpd(z→out)1=tpd(NOT)+tpd(NAND)+tpd(AND)+tpd(OR)=6+8+10+12=36t_{pd}(z\to out)_{1}=t_{pd}(NOT)+t_{pd}(NAND)+t_{pd}(AND)+t_{pd}(OR)=6+8+10+12=36tpd​(z→out)1​=tpd​(NOT)+tpd​(NAND)+tpd​(AND)+tpd​(OR)=6+8+10+12=36 tpd(z→out)2=tpd(NOT)+tpd(NAND)+tpd(NAND)+tpd(OR)=6+8+8+12=34t_{pd}(z\to out)_{2}=t_{pd}(NOT)+t_{pd}(NAND)+t_{pd}(NAND)+t_{pd}(OR)=6+8+8+12=34tpd​(z→out)2​=tpd​(NOT)+tpd​(NAND)+tpd​(NAND)+tpd​(OR)=6+8+8+12=34

לכן, tpd(z→out)=36t_{pd}(z\to out)=36tpd​(z→out)=36.

תרגיל (4)

נתון המעגל הצירופי הבא
​יבשים ספרתיות 2 - 3.png
וכן טבלת התזמונים הבאה:

NANDNOTORAND561210tpdLH84129tpdHL\begin{array}{|c|c|c|c|c|} \hline \text{NAND} & \text{NOT} & \text{OR} & \text{AND} \\ \hline 5 & 6 & 12 & 10 & t_{pdLH} \\ \hline 8 & 4 & 12 & 9 & t_{pdHL} \\ \hline \end{array}NAND58​NOT64​OR1212​AND109​tpdLH​tpdHL​​​

חשבו את tpdHLt_{pdHL}tpdHL​ עבור כל כניסה.

נתחיל מ-xxx ונבדוק איפה המסלול הארוך ביותר.
⇐ המסלול הראשון כדי שהיציאה עבור מ-HHH ל-LLL נדרש ששער ה-OROROR לא יקבל שום קלט HHH. לכן, נדרש שהמעגל התחתון יהיה LLL. לכך, נדרש לקבל y=0y=0y=0 ו-z=1z=1z=1. ישנה רק אופציה אחת עבור הקלטים האחרים ולכן זה מאוד נחמד.
עבור המסלול העליון, נדרש ששער ה-ANDANDAND יהפוך מ-111 ל-000 ולכן, נדרש שה-NANDNANDNAND יהפוך מ-111 ל-000. כלומר, ששתי הכניסות אליו יהיו 111.

נשים לב כי היציאה תמיד תהיה 111 ולכן, אין משמעות לחישוב.

תרגיל (5)

בשאלה הבאה הניחו ש-tpdt_{pd}tpd​ של כל השערים זהה וגם ש-tpdt_{pd}tpd​ של כל רכיב שווה ל-tcdt_{cd}tcd​.
נתון המעגל:
​יבשים ספרתיות 2 - 4.png
בחר את הטענה הנכונה עבור המעגל הנתון. יש לבחור תשובה אחת בלבד:

  1. במעבר xyz:  000→001xyz:\;000\to 001xyz:000→001 קורה HAZARD
  2. במעבר xyz:  111→110xyz:\; 111\to110xyz:111→110 קורה HAZARD
  3. במעבר xyz:  010→011xyz:\;010\to 011xyz:010→011 קורה HAZARD
  4. במעבר xyz:  101→001xyz:\;101\to 001xyz:101→001 קורה HAZARD
  5. אף תשובה אינה נכונה

נבנה פונקציה על מנת לשים אותה במפת קרנו:

f(x,y,z)=(yx+y‾)(y⊕z)‾=(x+y‾)(y⊕z)‾f(x,y,z)=(yx+\overline{y})\overline{(y\oplus z)}=(x+\overline{y})\overline{(y \oplus z)}f(x,y,z)=(yx+y​)(y⊕z)​=(x+y​)(y⊕z)​

נחשב את טבלת האמת שלה:

xyzf00011001010000101100101001101111\begin{array}{|ccc|c|} \hline x & y & z & f \\ \hline 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 1 & 1 & 0 & 0 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 \\ 1 & 1 & 1 & 1 \\ \hline \end{array}x01001101​y00101011​z00010111​f11000001​​

לכן נקבל:

f(x,y,z)=x‾   ⁣y‾   ⁣z‾+xy‾   ⁣z‾+xyz=∑(0,4,7)f(x,y,z)=\overline{x}\;\!\overline{y}\;\!\overline{z}+x\overline{y}\;\!\overline{z}+xyz=\sum(0,4,7)f(x,y,z)=xy​z+xy​z+xyz=∑(0,4,7)

נצייר מפת קרנו:
​גליון 2 2026-06-05 14.02.47.excalidraw.svg
נשים לב כי לא יכול להיות מצב שבו יהיה HAZARDHAZARDHAZARD. לכן, התשובה הנכונה היא ה.

תרגיל (6)

להלן נתון מימוש של רכיב מסויים המקבל כקלט 2 כניסות בינאריות.
​יבשים ספרתיות 2 - 5.png
נתונה טבלת זמני השהיה של השערים המופיעם במימוש:

ORNOTAND1247tpdLH856tpdHL\begin{array}{|c|c|c|c|} \hline OR & NOT & AND \\ \hline 12 & 4 & 7 & t_{pdLH} \\ \hline 8 & 5 & 6 & t_{pdHL} \\ \hline \end{array}OR128​NOT45​AND76​tpdLH​tpdHL​​​

עבור הרכיב כולו, מהו משך הזמן המקסימלי מרגע ביצוע שינוי באחת הכניסות ועד להתייצבות המוצא?

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

תרגיל (7)

נתונה המערכת הבאה:
​ספרתיות יבש 2 - שאלה 7.png
עבור הקלט a=a3a2a1a0,b=b3b2b1b0a=a_{3}a_{2}a_{1}a_{0},b=b_{3}b_{2}b_{1}b_{0}a=a3​a2​a1​a0​,b=b3​b2​b1​b0​ כאשר a3,b3a_{3},b_{3}a3​,b3​ הם ה-MSBMSBMSB כך ש-a>ba>ba>b. מה יהיה הפלט sss?
א. S=b−aS=b-aS=b−a
ב. S=a−b−aS=a-b-aS=a−b−a
ג. S=a−bS=a-bS=a−b
ד. S=a−b+1S=a-b+1S=a−b+1
ה. S=a+b−1S=a+b-1S=a+b−1

נשים לב כי המעגל עושה:

S=a+b‾S=a+\overline{b}S=a+b

לפי שיטת המשלים ל-2 נקבל −b=b‾+1-b=\overline{b}+1−b=b+1 ולכן:

S=a−b−1S=a-b-1S=a−b−1

וזוהי בדיוק התשובה.

תרגיל (8)

נתונה המערכת הבאה
​ספרתיות יבש 2 שאלה 8.png
עבור הקלט a=a2a1a0,b=b2b1b0a=a_{2}a_{1}a_{0},b=b_{2}b_{1}b_{0}a=a2​a1​a0​,b=b2​b1​b0​ כך ש-a>ba>ba>b.
מה יהיה הפלט sss?
רמז: חלוקת מספר בינארי ב-2 שקולה להזזת המספר ימינה תוך התעלמות מהביט הקטן ביותר וריפוד משמאל באפסים. למשל: 1012=010\frac{101}{2}=0102101​=010.
מודולו 2 הוא הביט הקטן ביותר במספר. למשל 001(mod  2)=1001(mod\; 2)=1001(mod2)=1. באופן דומה 001(div  2)=00001(div\; 2)=00001(div2)=00.

א. S=b(div  2)+[a−a(mod  2)]⋅2+3S=b(div\; 2)+[a-a(mod\; 2)]\cdot 2+3S=b(div2)+[a−a(mod2)]⋅2+3
ב. S=b−b(mod  2)+a−(a(div  2)(mod  2)⋅2)+4S=b-b(mod\; 2)+a-(a(div\; 2)(mod\; 2)\cdot 2)+4S=b−b(mod2)+a−(a(div2)(mod2)⋅2)+4
ג. S=b(div  2)+a−(a(div  2)(mod  2))+3S=b(div\; 2)+a-(a(div\; 2)(mod\; 2))+3S=b(div2)+a−(a(div2)(mod2))+3
ד. S=b−b(mod  2)+(a−a(mod  2))⋅2+3S=b-b(mod\; 2)+(a-a(mod\; 2))\cdot 2 +3S=b−b(mod2)+(a−a(mod2))⋅2+3
ה. תשובות א'-ד' לא נכונות.

נסתכל על פעולת כל F.A.F.A.F.A. כרגע:

S0=a0+1+1=a0+1S_{0}=a_{0}+1+1=a_{0}+1S0​=a0​+1+1=a0​+1 S1=b1+1+Cout0S_{1}=b_{1}+1+C_{out_{0}}S1​=b1​+1+Cout0​​ S2=b2+a2+Cout1S_{2}=b_{2}+a_{2}+C_{out_{1}}S2​=b2​+a2​+Cout1​​ S=4S2+2S1+S0=4b2+4a2+2b1+2+a0+1=4b2+2b1+4a2+a0+3S=4S_{2}+2S_{1}+S_{0}=4b_{2}+4a_{2}+2b_{1}+2+a_{0}+1=4b_{2}+2b_{1}+4a_{2}+a_{0}+3S=4S2​+2S1​+S0​=4b2​+4a2​+2b1​+2+a0​+1=4b2​+2b1​+4a2​+a0​+3

נשים לב כי יש לנו פה את bbb ללא הביט b0b_{0}b0​ מה שיוצר לנו b−b(mod  2)b-b(mod\; 2)b−b(mod2).
בנוסף נשים לב כי aaa פה הוא בלי הביט האמצעי ולכן הוא לא a−a(mod  2)a-a(mod\; 2)a−a(mod2).
לכן, האופציה היחידה האפשרית עם התנאים הללו היא ב.

תרגיל (9)

מצאו מימוש באמצעות בורר 8→18\to 18→1 למערכת שתקבל מספר בינארי בן 444 ספרות d=d3d2d1d0d=d_{3}d_{2}d_{1}d_{0}d=d3​d2​d1​d0​ ותחזיר ערך 111 אם המספר מחלק את 210210210 ללא שארית וערך 000 אחרת.
ניתן להניח שהמערכת אינה מקבלת בקלט את המספר 000 (כלומר הקלט 000000000000 אינו אפשרי) וכי מותר להשתמש בקבועים.

נבנה טבלת אמת של האם המספר מחלק את 210210210 או לא.

d(10)d0d1d2d3210÷d11000✓20100✓31100✓40010X51010✓60110✓71110✓80001X91001X100101✓111101X120011X131011X140111✓151111✓\begin{array}{|c|cccc|c|} \hline d_{(10)} & d_{0} & d_{1} & d_{2} & d_{3} & 210 \div d \\ \hline 1 & 1 & 0 & 0 & 0 & \checkmark \\ 2 & 0 & 1 & 0 & 0 & \checkmark \\ 3 & 1 & 1 & 0 & 0 & \checkmark \\ 4 & 0 & 0 & 1 & 0 & X \\ 5 & 1 & 0 & 1 & 0 & \checkmark \\ 6 & 0 & 1 & 1 & 0 & \checkmark \\ 7 & 1 & 1 & 1 & 0 & \checkmark \\ 8 & 0 & 0 & 0 & 1 & X \\ 9 & 1 & 0 & 0 & 1 & X \\ 10 & 0 & 1 & 0 & 1 & \checkmark \\ 11 & 1 & 1 & 0 & 1 & X \\ 12 & 0 & 0 & 1 & 1 & X \\ 13 & 1 & 0 & 1 & 1 & X \\ 14 & 0 & 1 & 1 & 1 & \checkmark \\ 15 & 1 & 1 & 1 & 1 & \checkmark \\ \hline \end{array}d(10)​123456789101112131415​d0​101010101010101​d1​011001100110011​d2​000111100001111​d3​000000011111111​210÷d✓✓✓X✓✓✓XX✓XXX✓✓​​

נדרש להשתמש באחת מכניסות ה-ddd לא כניסת selselsel שכן יש לנו רק 3 כניסות selselsel.
נבחר את d0d_{0}d0​ כמה שנכניס תחת הכניסות datadatadata ונראה מה יש לנו שם.

d1d2d3d0=0d0=1000∅✓100✓✓010X✓110✓✓001XX101✓X011XX111✓✓\begin{array}{|ccc|cc|} \hline d_{1} & d_{2} & d_{3} & d_{0}=0 & d_{0}=1 \\ \hline 0 & 0 & 0 & \varnothing & \checkmark \\ 1 & 0 & 0 & \checkmark & \checkmark \\ 0 & 1 & 0 & X & \checkmark \\ 1 & 1 & 0 & \checkmark & \checkmark \\ 0 & 0 & 1 & X & X \\ 1 & 0 & 1 & \checkmark & X \\ 0 & 1 & 1 & X & X \\ 1 & 1 & 1 & \checkmark & \checkmark \\ \hline \end{array}d1​01010101​d2​00110011​d3​00001111​d0​=0∅✓X✓X✓X✓​d0​=1✓✓✓✓XXX✓​​

ישן שתי אי התאמות ובהן נשים את d0d_{0}d0​. נבחר גם את d0=0d_{0}=0d0​=0 של 000000000 כ-✓\checkmark✓ כדי לעשות לנו חיים קלים ואז:
​גליון 2 2026-06-11 06.54.48.excalidraw.svg
דרך אחרת לממש את זה תהיה לקחת did_{i}di​ אחר ולנסות לראות אם יש מצב בו אנו לא צריכים שער NOTNOTNOT.

תרגיל (10)

נתון קוד YargYargYarg בעל 333 ביטים y2,y1,y0y_{2},y_{1},y_{0}y2​,y1​,y0​ לייצוג המספרים 0−70-70−7.

Numbery2y1y001011111211031004011500060107001\begin{array}{|c|ccc|} \hline \text{Number} & y_{2} & y_{1} & y_{0} \\ \hline 0 & 1 & 0 & 1 \\ 1 & 1 & 1 & 1 \\ 2 & 1 & 1 & 0 \\ 3 & 1 & 0 & 0 \\ 4 & 0 & 1 & 1 \\ 5 & 0 & 0 & 0 \\ 6 & 0 & 1 & 0 \\ 7 & 0 & 0 & 1 \\ \hline \end{array}Number01234567​y2​11110000​y1​01101010​y0​11001001​​

מצאו את המימוש עבור הרכיב B2YB2YB2Y בעל שלוש כניסות x0,x1,x2x_{0},x_{1},x_{2}x0​,x1​,x2​ ושלוש יציאות y0,y1,y2y_{0},y_{1},y_{2}y0​,y1​,y2​.
הרכיב מקבל כקלט מספר מהתחום 0−70-70−7 המיוצג בקוד בינארי רגיל ומוציא כפלט את ייצוגו של המספר בקוד YargYargYarg.
יש לבחור תשובה אחת:
​גליון 2 2026-06-11 07.06.18.excalidraw.svg

נסתכל על טבלה בה אנו משווים בין הספרות הבינאריות לקוד:

x2x1x0Numy2y1y000001010011111010211001131001004011101500011060101117001\begin{array}{|ccc|c|ccc|} \hline x_{2} & x_{1} & x_{0} & \text{Num} & y_{2} & y_{1} & y_{0} \\ \hline 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 & 1 & 1 & 1 \\ 0 & 1 & 0 & 2 & 1 & 1 & 0 \\ 0 & 1 & 1 & 3 & 1 & 0 & 0 \\ 1 & 0 & 0 & 4 & 0 & 1 & 1 \\ 1 & 0 & 1 & 5 & 0 & 0 & 0 \\ 1 & 1 & 0 & 6 & 0 & 1 & 0 \\ 1 & 1 & 1 & 7 & 0 & 0 & 1 \\ \hline \end{array}x2​00001111​x1​00110011​x0​01010101​Num01234567​y2​11110000​y1​01101010​y0​11001001​​

נשים לב כי בכל שורה מתקיים y2=x2‾y_{2}=\overline{x_{2}}y2​=x2​​ ולכן זה יהיה המעבר הנכון. (תשובה B,AB,AB,A נפסלת)
כעת נדרש להחליט בין הבוררים השונים. נשים לב כי בתשובה CCC הבורר ל-y1y_{1}y1​ תמיד נותן x0‾\overline{x_{0}}x0​​ - נבדוק האם זה נכון: זה לא נכון עבור 0,10,10,1 וכדומה.
לכן, התשובה הנכונה היא DDD.

תרגיל (11)

עומדת לרשותך כמות גדולה של מפענחים 2→42\to 42→4 (ללא כניסת EnableEnableEnable) "מקולקלים".
בשרטוט הבא מתואר המצב בו המפענחים המקולקלים מוציאים תמיד 000 ביציאות O1,O2O_{1},O_{2}O1​,O2​ שלהם.
למעט התקלה הזו, המפענחים עובדים כרגיל.
​ספרתיות 2 המשך 2.png
עליך לממש מפענח 2→42\to 42→4 תקין (ללא כניסת EnableEnableEnable) באמצעות המפענחים המקולקלים ללא שימוש בשערים נוספים.
מהו המספר המינימלי של מפענחים מקולקלים הנדרש למימוש המפענח התקין?

מפענח מיצא את הדברים הבאים:

Y0=S0‾⋅S1‾Y1=S1‾⋅S0Y2=S1⋅S0‾Y3=S1⋅S0Y_{0}=\overline{S_{0}}\cdot \overline{S_{1}} \qquad Y_{1}=\overline{S_{1}}\cdot S_{0} \qquad Y_{2}=S_{1}\cdot \overline{S_{0}} \qquad Y_{3}=S_{1}\cdot S_{0}Y0​=S0​​⋅S1​​Y1​=S1​​⋅S0​Y2​=S1​⋅S0​​Y3​=S1​⋅S0​

לכל מפענח הערך של S0S_{0}S0​ לא באמת עוזר לנו והוא צריך להיות זהה ל-S1S_{1}S1​ כדי שנקבל איזשהו פלט משמעותי.
נקח שלושה מפענחים מקולקלים כאלו ונחבר את S0,S1S_{0},S_{1}S0​,S1​ של השניים הראשונים לכניסות. זה יתן לנו את Y0,Y3Y_{0},Y_{3}Y0​,Y3​.
כעת נדרש למצוא איך אנו יוצרים את Y1,Y2Y_{1},Y_{2}Y1​,Y2​. אם פשוט נכניס את S0,S1S_{0},S_{1}S0​,S1​ לבורר שני אנו נקבל בדיוק את Y0,Y3Y_{0},Y_{3}Y0​,Y3​ - מה שאנו לא רוצים.
אם נחבר את S1S_{1}S1​ ו-S0‾\overline{S_{0}}S0​​ נקבל:

O0=S1‾⋅S0‾‾=S1‾⋅S0=Y1O_{0}=\overline{S_{1}}\cdot \overline{\overline{ S_{0}}}=\overline{S_{1}}\cdot S_{0}=Y_{1}O0​=S1​​⋅S0​​​=S1​​⋅S0​=Y1​ O3=S1⋅S0‾=Y2O_{3}=S_{1}\cdot \overline{S_{0}}=Y_{2}O3​=S1​⋅S0​​=Y2​

זה נותן לנו בדיוק את מה שאנחנו צריכים. אבל רגע, אין לנו את S0‾\overline{S_{0}}S0​​ ולכן אנו צריכים ליצור אותו באמצעות המפענח האחרון שלנו:

O0=S0‾⋅S0‾=S0‾O_{0}=\overline{S_{0}}\cdot \overline{S_{0}}=\overline{S_{0}}O0​=S0​​⋅S0​​=S0​​

ולכן נדרש למינימום שלושה מפענחים.

תרגיל (12)

נתון המעגל הבא בעל DFFDFFDFF המתעדכן בעליית שעון
​ספרתיות יבשים 2 המשך 3.png
הכניסה XXX מתעדכנת 3ns3ns3ns לפני ירידת השעון. מחזור השעון נראה כלהלן:
​ספרתיות יבשים 2 המשך 4.png
נתונים הזמנים הבאים:

Tsetup=5ns,Thold=10ns,Tcd(C→Q)=7ns,Tpd(C→Q)=12ns,Tcd(OR)=4ns,Tpd(OR) ⁣= ⁣7nsT_{setup}=5ns, T_{hold}=10ns,T_{cd}(C\to Q)=7ns, T_{pd}(C\to Q)=12ns, T_{cd}(OR)=4ns, T_{pd}(OR)\!=\!7nsTsetup​=5ns,Thold​=10ns,Tcd​(C→Q)=7ns,Tpd​(C→Q)=12ns,Tcd​(OR)=4ns,Tpd​(OR)=7ns

מהו הזמן העובר במערכת מהתעדכנות XXX ועד להתעדכנות היציאה ZZZ?

אנו מכניסים את XXX 3 ננו שניות לפני ירידת שעון. עד שה-XXX מגיע ל-DDD לוקח tpd(OR)=7nst_{pd}(OR)=7nstpd​(OR)=7ns. לכן, אנחנו 444 ננו-שניות לאחר ירידת השעון.
כדי ש-QQQ יתעדכן אנו נדרשים לחכות לעליית השעון הבאה ואז את הזמן tpd(C→Q)t_{pd}(C\to Q)tpd​(C→Q).
אך נדרש לשים לב כי יש מספיק זמן ל-setupsetupsetup. האות מגיע משער ה-OROROR כ-12−4=812-4=812−4=8 ננו-שניות לפני עליית השעון. זמן ה-setupsetupsetup הנתון הוא 5ns5ns5ns ולכן, התנאי מתקיים ואנו יכולים להמשיך בעבודה.
לכן, הזמן שיקח ל-XXX להגיע ל-ZZZ הינה 7+8+12=27ns7+8+12=27ns7+8+12=27ns בדיוק.

תרגיל (13)

נתון המעגל הבא:
​ספרתיות יבשים 2 המשך 5.png
ה-D−FFD-FFD−FF מתעדכן בעליית שעון. הכניסה XXX מתעדכנת 10ns10ns10ns לאחר ירידת השעון.
מחזור השעון הינו 50ns50ns50ns כאשר חצי ממחזור השעון הוא נמצא בערך 000 וחצי בערך 111.
כמו כן נתונים הזמנים הבאים:

Tpd(OR)=7nsTcd(OR)=4nsTpd(XOR)=6nsTpd(Clk→Q)=20nsTcd(Clk→Q)=5nsTsetup=4nsThold=10ns\begin{matrix} T_{pd}(OR)=7ns & T_{cd}(OR)=4ns \\ T_{pd}(XOR)=6ns \\ T_{pd}(Clk\to Q)=20ns & T_{cd}(Clk\to Q)=5ns \\ T_{setup}=4ns & T_{hold}=10ns \end{matrix}Tpd​(OR)=7nsTpd​(XOR)=6nsTpd​(Clk→Q)=20nsTsetup​=4ns​Tcd​(OR)=4nsTcd​(Clk→Q)=5nsThold​=10ns​

מצא מהו Tcd(XOR)T_{cd}(XOR)Tcd​(XOR).

ה-FFFFFF דורש זמן holdholdhold בו הערכים בכניסה DDD לא ישתנו על מנת שנקבלם בזכרון.
ה-OROROR אשר מגיע ל-DDD תלוי ב-XORXORXOR מהסוף. לכן, אנו נרצה שערך של XORXORXOR לא ישתנה או יתעדכן מספיק זמן כדי שה-FFFFFF יתעדכן.
ברגע ש-QQQ מתחיל להשתנות אזי גם XORXORXOR יתחיל להשתנות ואז ה-OROROR. לכן, נדרש ש:

tcd(XOR)+5+4=tcd(Clk→Q)+tcd(XOR)+tcd(OR)≥thold=10nst_{cd}(XOR)+5+4=t_{cd}(Clk\to Q)+t_{cd}(XOR)+t_{cd}(OR) \geq t_{hold}=10nstcd​(XOR)+5+4=tcd​(Clk→Q)+tcd​(XOR)+tcd​(OR)≥thold​=10ns tcd(XOR)=1nst_{cd}(XOR)=1nstcd​(XOR)=1ns

בעיה - זו לא התשובה הרשמית.
נשים לב כי על מנת שהמעגל יעבוד אנו נדרשים ל-4ns4ns4ns של setupsetupsetup, כלומר 4ns4ns4ns שבו המידע יציב.
האות של xxx משתנה כ-10ns10ns10ns לאחר ירידת השעון. כלומר, נותרו עוד 151515 שניות עד לעליית השעון.

tpd(XOR)+tpd(OR)=6+7=13nst_{pd}(XOR)+t_{pd}(OR)=6+7=13nstpd​(XOR)+tpd​(OR)=6+7=13ns

כלומר, לוקח 13ns13ns13ns לאות להתעדכן בכניסה DDD.
אזי, עד לעליית השעון נותרו 222 שניות אבל זה פחות מהזמן setupsetupsetup ולכן המעגל לא יהיה יציב ולכן לא ניתן לדעת מה יקרה כלל וכלל וזו התשובה האמיתית.

תרגיל (14)

ניסית לבנות מחלק תדר כפי שראינו בתרגול שאמור לקבל בכניסתו שעון בעל מחזור באורך 100ns100ns100ns.
השתמשת בפליפ-פלופ בעל אילוצי הזמן הבאים:

tsetup=25nsthold=22nstcd=18nstpd=40nst_{setup}=25ns \qquad t_{hold}=22ns \qquad t_{cd}=18ns \qquad t_{pd}=40nstsetup​=25nsthold​=22nstcd​=18nstpd​=40ns

כשאחד המתרגלים בקורס ראה את המעגל חשכו עיניו. המתרגל הציע לתקן את המעגל מיד בטרם יראה אותו המרצה וציונך בקורס ייפגע.
התיקון שהציע המתרגל היה להוסיף מהפכים בעלי השהייה של 10ns10ns10ns והשהיית זיהום של 5ns5ns5ns במשוב המערכת:
​ספרתיות יבש 2 המשך 6.png
אבל, כדרך המתרגלים, סירב אותו מתרגל לומר לך כמה מהפכים יש להוסיף.
כמה מהפכים יש להוסיף?

נדרש שזמן ה-holdholdhold שנדרש אליו יהיה קטן יותר מסך הזמנים של ה-notnotnot-ים ולכן:

k⋅5+18=k⋅tcd(NOT)+tcd≥thold=22nsk\cdot 5+18=k\cdot t_{cd}(NOT)+t_{cd}\geq t_{hold}=22nsk⋅5+18=k⋅tcd​(NOT)+tcd​≥thold​=22ns k≥⌈45⌉=⌈0.8⌉=1k\geq \left\lceil \frac{4}{5} \right\rceil =\lceil 0.8\rceil =1k≥⌈54​⌉=⌈0.8⌉=1

לכן נדרש ללפחות שער NOTNOTNOT אחד.
נבדוק אם שאר התנאים מתקיימים על מנת שהמעגל יפעל(כי ספרתיות הזויים ולפעמים עושים שאלות מכשילות)
נדרש פה כי המסלול הארוך ביותר יהיה קצר יותר מזמן מזור השעון פחות ה-setupsetupsetup כדי שהמערכת תספיק להשתנות ולכן:

40+10k=tpd+k⋅tpd(NOT)≤tclock−tsetup=100−25=7540+10k=t_{pd}+k\cdot t_{pd}(NOT)\leq t_{clock}-t_{setup}=100-25=7540+10k=tpd​+k⋅tpd​(NOT)≤tclock​−tsetup​=100−25=75 10k≤35  ⟹  k≤3510=3.510k\leq 35 \implies k\leq \frac{35}{10}=3.510k≤35⟹k≤1035​=3.5

לכן, יש לכל היותר 333 מהפכים.

נשים לב שאם מספר ה-NOTNOTNOT ים יהיה אי זוגי, אנו נקבל בכל פעם את אותו התדר(כי יש גם NOTNOTNOT ב-FFFFFF) ולכן נרצה מספר זוגי של NOTNOTNOT-ים כדי שהמעגל יתפקד.
לכן, מספר השערים שנדרש אליו הוא k=2k=2k=2.

תרגיל (15)

נתון המעגל הבא:
​ספרתיות יבש 2 המשך 8.png
נתונים זמני הרכיבים הבאים:

tsetup=7nsthold=2nstpd(C→Q)=15nstpd(AND)=6nstpd(OR)=5tcd(AND)=2nstcd(OR)=2ns\begin{matrix} t_{setup}=7ns & t_{hold}=2ns & t_{pd}(C\to Q)=15ns \\ t_{pd}(AND)=6ns & t_{pd}(OR)=5 \\ t_{cd}(AND)=2ns & t_{cd}(OR)=2ns \end{matrix}tsetup​=7nstpd​(AND)=6nstcd​(AND)=2ns​thold​=2nstpd​(OR)=5tcd​(OR)=2ns​tpd​(C→Q)=15ns

ידוע כי הזמן בין עליית השעון לירידת השעון חייב להיות לפחות 13ns13ns13ns.
עדכון הכניסה xxx נעשה בירידת השעון וה-FFFFFF-ים פעילים בעליית השעון.
מהו זמן המחזור המינימלי של השעון שמבטיח פעולה תקינה של המעגל?

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

נסמן את הזמן מעליית השעון לירידתו ב-thight_{high}thigh​. נתון כי thigh≥13t_{high}\geq 13thigh​≥13.
נסתכל על המסלול מ-XXX ל-D1D_{1}D1​ שהיא הכניסה לפליפ פלופ הראשון במעגל.
ה-xxx משתנה בירידת השעון ונדגם בעליית השעון הבאה. לכן, נדרש שזמן ההגעה שלו, שבמקרה הזה יהיה tpd(AND)t_{pd}(AND)tpd​(AND) יהיה קטן מזמן שבו השעון למטה פחות זמן ה-setupsetupsetup.

tlow−tsetup≥tpd(AND)  ⟹  tlow≥6+7=13t_{low}-t_{setup}\geq t_{pd}(AND) \implies t_{low}\geq 6+7=13tlow​−tsetup​≥tpd​(AND)⟹tlow​≥6+7=13

לכן מתקיים tlow≥13t_{low}\geq 13tlow​≥13 גם כן.
כעת נסתכל על המסלול מ-Q1Q_{1}Q1​ ל-D1D_{1}D1​ שהיא הכניסה לפליפ פלופ הראשון במעגל.
ה-Q1Q_{1}Q1​ משתנה בעליית השעון וה-DDD נדגם בעליית השעון הבאה. סה"כ אנו עוברים מחזור שלם.
הזמן של המחזור פחות זמן סטאפס צריך להיות גדול מהזמן של ANDANDAND + הזמן שלוקח ל-FFFFFF להשתנות.

tcycle−tsetup≥tpd(AND)+tpd(C→Q)  ⟹  tcycle≥6+15+7=28t_{cycle}-t_{setup}\geq t_{pd}(AND)+t_{pd}(C\to Q)\implies t_{cycle}\geq 6+15+7=28tcycle​−tsetup​≥tpd​(AND)+tpd​(C→Q)⟹tcycle​≥6+15+7=28

נשים לב כי 13+13=2613+13=2613+13=26 ולכן, בהכרח זמן המחזור המינימלי הינו tcycle=28nst_{cycle}=28nstcycle​=28ns.

תרגיל (16)

נתון המעגל הבא המורכב משני פליפ-פלופים ושער NANDNANDNAND:
​ספרתיות יבש 2 המשך 7.png
נתוני התזמון של הרכיבים הם:

tpd(NAND)8nstpd(C→Q)7nstcd(NAND)2nstcd(C→Q)5nstsetup5nsthold4ns\begin{array}{|c:c|c:c|} \hline t_{pd}(NAND) & 8ns & t_{pd}(C\to Q) & 7ns \\ \hline t_{cd}(NAND) & 2ns & t_{cd}(C\to Q) & 5ns \\ \hline & & t_{setup} & 5ns \\ \hline & & t_{hold} & 4ns \\ \hline \end{array}tpd​(NAND)tcd​(NAND)​8ns2ns​tpd​(C→Q)tcd​(C→Q)tsetup​thold​​7ns5ns5ns4ns​​

מזינים שעון יחיד בו זמנית לשני הפליפ-לופים אך בגלל מגבלות פיזיקליות, השעון מגיע אליהם בהפרש זמן.
נגדיר tskewt_{skew}tskew​ כהפרש בין הזמן בו מגיע האות CLK2CLK_{2}CLK2​ ל-FFFFFF השני לבין הזמן שבו מגיע האות CLK1CLK_{1}CLK1​ ל-FFFFFF הראשון.
נתון כי זמן המחזור של השעון הינו tcycle=25nst_{cycle}=25nstcycle​=25ns.
במעגל לעיל מהו התחום המותר עבור tskewt_{skew}tskew​?

כדי שהמעגל לא ישבר אנו נדרש שהזמן שלוקח ל-Q1Q_{1}Q1​ להגיע ל-D2D_{2}D2​ יהיה קטן ממחזור שעון שלם כדי שנוכל לקבל קלט.
לכן:

tcycle+tskew≥tsetup+tpd(NAND)  ⟹  tskew≥5+8−25=−12t_{cycle}+t_{skew}\geq t_{setup}+t_{pd}(NAND)\implies t_{skew}\geq 5+8-25=- 12tcycle​+tskew​≥tsetup​+tpd​(NAND)⟹tskew​≥5+8−25=−12

לכן בהכרח tskew≥−12t_{skew}\geq -12tskew​≥−12.
כעת נחסום את tskewt_{skew}tskew​ מלמעלה. לשם כך נראה כי הזמן holdholdhold צריך להיות קטן מהזמן שבו הכל נשאר יציב ובכך:

4+tskew=thold+tskew≤tcd(NAND)+tcd(C→Q)=5+24+t_{skew}=t_{hold}+t_{skew}\leq t_{cd}(NAND)+t_{cd}(C\to Q)=5+24+tskew​=thold​+tskew​≤tcd​(NAND)+tcd​(C→Q)=5+2 tskew≤3t_{skew}\leq 3tskew​≤3

ולכן, מתקיים:

−12≤tskew≤3-12\leq t_{skew}\leq 3−12≤tskew​≤3

(בדפים רשום שהתשובה היא −5ns≤tskew≤3ns-5ns\leq t_{skew}\leq 3ns−5ns≤tskew​≤3ns וזו גם שאלה אמריקאית אז ככה ידעתי שזו באמת התשובה הנכונה)