חזור לתיקייה: גליון 1

חלק יבש

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה
  • חלק יבש
  • 2.1 - מימוש לבורר 2\to 1
  • 2.2 - בורר 4\to 1
  • 2.3 - מחבר ומחסר(Full Adder/Subtractor)
  • 2.4 - יחידה אריתמתית לוגית לסיבית אחת
  • 2.5 - יחידה אריתמתית לוגית ל-64 סיביות
  • הרצות הסימולציות

חלק יבש

00440252

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

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

חלק יבש

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

uni-folder.vercel.app

חלק יבש

2.1 - מימוש לבורר 2→12\to 12→1

בחרנו לממש את הבורר שלנו כך:

z=mux(d0,d1,sel)=(sel⋅d1‾⋅sel⋅d1‾‾)+(sel⋅sel‾⋅d0‾⋅sel⋅sel‾⋅d0‾‾)z=mux(d_{0},d_{1},sel)=\left(\overline{\overline{sel\cdot d_{1}}\cdot \overline{sel \cdot d_{1}}}\right)+\left( \overline{\overline{\overline{sel \cdot sel} \cdot d_{0}} \cdot \overline{\overline{sel \cdot sel} \cdot d_{0}}} \right)z=mux(d0​,d1​,sel)=(sel⋅d1​​⋅sel⋅d1​​​)+(sel⋅sel⋅d0​​⋅sel⋅sel⋅d0​​​)

נצמצם אותה באמצעות זהויות מיתוג:

mux(d0,d1,sel)=(sel⋅d1)+(sel⋅d1)‾‾+(sel⋅sel‾⋅d0)+(sel⋅sel‾⋅d0)‾‾=d1sel+d1sel+(d0sel⋅sel‾)+(d0sel⋅sel‾)=d1sel+d0sel⋅sel‾=d1sel+d0(sel‾+sel‾)=d1sel+d0sel‾\begin{align*} mux(d_{0},d_{1},sel)&=\overline{\overline{(sel\cdot d_{1})+(sel\cdot d_{1})}}+\overline{\overline{(\overline{sel \cdot sel}\cdot d_{0})+(\overline{sel\cdot sel}\cdot d_{0})}} \\ &=d_{1}sel+d_{1}sel+(d_{0}\overline{sel\cdot sel})+(d_{0}\overline{sel\cdot sel}) \\ &=d_{1}sel+d_{0}\overline{sel\cdot sel}=d_{1}sel+d_{0}(\overline{sel}+\overline{sel}) \\ &=d_{1}sel+d_{0}\overline{sel} \end{align*}mux(d0​,d1​,sel)​=(sel⋅d1​)+(sel⋅d1​)​​+(sel⋅sel⋅d0​)+(sel⋅sel⋅d0​)​​=d1​sel+d1​sel+(d0​sel⋅sel)+(d0​sel⋅sel)=d1​sel+d0​sel⋅sel=d1​sel+d0​(sel+sel)=d1​sel+d0​sel​

זוהי טבלת האמת שלנו:

d0d1selz00000010100101001010011111011111\begin{array}{|ccc|c|} \hline d_{0} & d_{1} & sel & z \\ \hline 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 0 \\ 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 1 \\ 1 & 1 & 0 & 1 \\ 1 & 1 & 1 & 1 \\ \hline \end{array}d0​00101011​d1​00010111​sel01001101​z00100111​​

כעת, נשרטט את המעגל:
​digitalSystems-Simulation1-mux2to1.svg

ערכי ה-tpdt_{pd}tpd​ שלנו הינם:

tpdLHtpdHLNAND219OR2610XNOR251\begin{array}{|c|c|c|} \hline & t_{pdLH} & t_{pdHL} \\ \hline \text{NAND2} & 1 & 9 \\ \hline \text{OR2} & 6 & 10 \\ \hline \text{XNOR2} & 5 & 1 \\ \hline \end{array}NAND2OR2XNOR2​tpdLH​165​tpdHL​9101​​

כעת, נוכל לבדוק את ההשהיות של כל המסלולים מכל הכניסות:

Pathd0d1seltpdמסלולים זהיםd1→g2→g3→g600→11162d1→g2→g3→g601→01202d0→g4→g5→g60→100162d0→g4→g5→g61→000202sel→g2→g3→g6010→1161sel→g1→g4→g5→g6100→1291sel→g2→g3→g6011→0201sel→g1→g4→g5→g6101→0171\begin{array}{|c|c|c|c|c|c|} \hline Path & d_{0} & d_{1} & sel & t_{pd} & \R{\text{מסלולים זהים}} \\ \hline d_{1}\to g_{2}\to g_{3}\to g_{6} & 0 & 0\to 1 & 1 & 16 & 2 \\ \hline d_{1}\to g_{2}\to g_{3}\to g_{6} & 0 & 1\to0 & 1 & 20 & 2 \\ \hline d_{0}\to g_{4}\to g_{5}\to g_{6} & 0\to 1 & 0 & 0 & 16 & 2 \\ \hline d_{0}\to g_{4}\to g_{5}\to g_{6} & 1\to0 & 0 & 0 & 20 & 2 \\ \hline sel\to g_{2}\to g_{3}\to g_{6} & 0 & 1 & 0\to 1 & 16 & 1 \\ \hline sel\to g_{1}\to g_{4}\to g_{5}\to g_{6} & 1 & 0 & 0\to 1 & 29 & 1 \\ \hline sel\to g_{2}\to g_{3}\to g_{6} & 0 & 1 & 1\to 0 & 20 & 1 \\ \hline sel\to g_{1}\to g_{4}\to g_{5}\to g_{6} & 1 & 0 & 1\to 0 & 17 & 1 \\ \hline \end{array}Pathd1​→g2​→g3​→g6​d1​→g2​→g3​→g6​d0​→g4​→g5​→g6​d0​→g4​→g5​→g6​sel→g2​→g3​→g6​sel→g1​→g4​→g5​→g6​sel→g2​→g3​→g6​sel→g1​→g4​→g5​→g6​​d0​000→11→00101​d1​0→11→0001010​sel11000→10→11→01→0​tpd​1620162016292017​מסלולים זהים22221111​​

מספר המסלולים הכולל הינו 161616.
מספר המסלולים שאינם גורמים לשינוי יציב 444.

2.2 - בורר 4→14\to 14→1

טבלת השהיות שלנו הינה:

tpdLHtpdHLNAND277OR244XNOR299\begin{array}{|c|c|c|} \hline & t_{pdLH} & t_{pdHL} \\ \hline \text{NAND2} & 7 & 7 \\ \hline \text{OR2} & 4 & 4 \\ \hline \text{XNOR2} & 9 & 9 \\ \hline \end{array}NAND2OR2XNOR2​tpdLH​749​tpdHL​749​​

נממש את הבורר שלנו כך:

z=mux(d0,d1,d2,d3,sel[1:0])=MUX2(MUX2(d0,d1,sel[0]),MUX2(d2,d3,sel[0]),sel[1])z=mux(d_{0},d_{1},d_{2},d_{3},sel[1:0])=MUX2(MUX2(d_{0},d_{1},sel[0]),MUX2(d_{2},d_{3},sel[0]), sel[1])z=mux(d0​,d1​,d2​,d3​,sel[1:0])=MUX2(MUX2(d0​,d1​,sel[0]),MUX2(d2​,d3​,sel[0]),sel[1])

​digitalSystems-sim2-mux4to1.svg
נחשב את השהיה המקסימלית עבור השינוי d3:0→1d_{3}:0\to 1d3​:0→1 כאשר sel[1:0]=11sel[1:0]=11sel[1:0]=11 ו-d0=d1=d2=0d_{0}=d_{1}=d_{2}=0d0​=d1​=d2​=0.

tpd=tpdLH(MUX2)+tpdLH(MUX2)=16+16=32t_{pd}=t_{pdLH}(MUX2)+t_{pdLH}(MUX2)=16+16=32tpd​=tpdLH​(MUX2)+tpdLH​(MUX2)=16+16=32

כעת, נחשב גם את השינוי ההפוך d3:1→0d_{3}:1\to 0d3​:1→0 באותם התנאים בדיוק:

tpd=tpdHL(MUX2)+tpdHL(MUX2)=20+20=40t_{pd}=t_{pdHL}(MUX2)+t_{pdHL}(MUX2)=20+20=40tpd​=tpdHL​(MUX2)+tpdHL​(MUX2)=20+20=40

2.3 - מחבר ומחסר(Full Adder/Subtractor)

נממש את המחבר ומחסר שלנו ככה:

S=a⊕b‾⊕cin‾Cout=cin⋅(b+a⊕a_ns‾)‾⋅b⋅a⊕a_ns‾‾‾\begin{align*} &S=\overline{\overline{a \oplus b}\oplus c_{in}} \\ &C_{out}=\overline{\overline{c_{in}\cdot (b+\overline{a \oplus a\_ns})}\cdot \overline{b\cdot \overline{a \oplus a\_ns}}} \end{align*}​S=a⊕b​⊕cin​​Cout​=cin​⋅(b+a⊕a_ns​)​⋅b⋅a⊕a_ns​​​​

והוא יראה כך:
​digitalSystemsSim1-alu1.svg
ההשהיות המקסימליות הינן:

b→S:    18  nsa→S:    18  nscin→S:    9  nsa→Cout:    27  nsb→Cout:    18  nsa_ns→Cout:    27  nscin→Cout:    14  ns\begin{align*} b\to S:\;\; & 18\; ns \\ a\to S:\;\; & 18\; ns \\ c_{in}\to S:\;\; & 9\; ns \\ a\to C_{out}:\;\; & 27\; ns \\ b\to C_{out}:\;\; & 18\; ns \\ a\_ns\to C_{out}:\;\; & 27\; ns \\ c_{in}\to C_{out}:\;\; & 14\; ns \end{align*}b→S:a→S:cin​→S:a→Cout​:b→Cout​:a_ns→Cout​:cin​→Cout​:​18ns18ns9ns27ns18ns27ns14ns​

2.4 - יחידה אריתמתית לוגית לסיבית אחת

נממש את ה-ALUALUALU שלנו כך:
​סימולציה 1 בספרתיות - ALU.jpg
ההשהיות המקסימליות מכל כניסה לכל יציאה הינן כולן 67  ns67\;ns67ns שכן כולם מחכים ל-muxmuxmux והוא מחכה ל-F.A/SF.A/SF.A/S.

2.5 - יחידה אריתמתית לוגית ל-646464 סיביות

נממש את היחידה הזאת ע"י לקיחה של 646464 יחידות ALUALUALU מהסעיף הקודם וחיבורן בטור(כלומר Couti→Cini+1C_{out_{i}}\to C_{in_{i+1}}Couti​​→Cini+1​​) ו-a,ba,ba,b מגיעים מבחוץ וחיבור ה-CoutC_{out}Cout​ של האחרון ל-CoutC_{out}Cout​ של היחידה כמתואר בשרטוט:
​סימולציה 1 בספרתיות - ALU64bit.jpg
מכיוון שכל ALUALUALU מחכה ל-CoutC_{out}Cout​ של קודמו, המסלול הארוך ביותר יהיה מ-a[0]a[0]a[0] ל-CoutC_{out}Cout​.
כל מעבר מ-cinc_{in}cin​ ל-CoutC_{out}Cout​ לוקח 14ns14ns14ns כאשר a,ba,ba,b יציבים ולכן מתקבל שאורך המסלול יהיה 63⋅14=822ns63 \cdot 14=822ns63⋅14=822ns.

הרצות הסימולציות

סימולציית ה-mux4mux4mux4:
​סיפרתיות סימולציה 1 - סימולציה 1.png
עבור הסימולציה של ה-fasfasfas בחרנו את המסלולים b→S,b→Coutb\to S,b\to C_{out}b→S,b→Cout​ ותוצאתה היא:
​ספרתיות סימולציה 1 - סימולציה 2.png
כעת, סימולצית ה-ALUALUALU:
​ספרתיות סימולציה 1 - סימולציה 3.png