Menu
Coddy logo textTech

תכנון מרבב 2 ל־1

חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 64 מתוך 90.

challenge icon

אתגר

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

בפרויקט הזה תבנה מרבבים בגדלים שונים באמצעות פקודות if-else ו-case.

מרבב 2-ל-1

מרבב 2-ל-1 הוא הצורה הפשוטה ביותר. יש לו שתי כניסות נתונים (in0 ו-in1), כניסת בחירה אחת (sel) ויציאה אחת (out). כאשר sel הוא 0, היציאה עוקבת אחר in0. כאשר sel הוא 1, היציאה עוקבת אחר in1. תממש זאת באמצעות פקודת if-else בתוך בלוק always @(*).

דוגמה: אם in0 = 0, in1 = 1 ו-sel = 1, אז out = 1.

מרבב 2-ל-1 בוחר אחת משתי כניסות ומעביר אותה ליציאה בהתאם לאות בחירה.

טבלת אמת

 

selout
0out = in0
1out = in1

כאשר sel הוא 0, היציאה עוקבת אחר in0. כאשר sel הוא 1, היציאה עוקבת אחר in1.

מה לעשות:

  1. צור מודול בשם mux2to1
  2. הוסף כניסה in0 (סיבית אחת)
  3. הוסף כניסה in1 (סיבית אחת)
  4. הוסף כניסה sel (סיבית אחת)
  5. הוסף יציאה out (סיבית אחת, מטיפוס reg)
  6. הוסף בלוק always @(*)
  7. בתוכו, הוסף פקודת if-else:
    • אם sel == 0, הגדר out = in0
    • אחרת, הגדר out = in1
  8. סגור באמצעות endmodule

נסו בעצמכם

// שלב 1: צרו מודול בשם mux2to1


  // שלב 2: הוסיפו קלט in0
  
  // שלב 3: הוסיפו קלט in1
  
  // שלב 4: הוסיפו קלט sel
  
  // שלב 5: הוסיפו פלט out (מטיפוס reg)
  

  // שלב 6: הוסיפו בלוק always @(*)
  

    // שלב 7: הוסיפו משפט if-else
    // אם sel == 0, אז out = in0
    // אחרת, out = in1
    

// שלב 8: סיימו את המודול

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Verilog אונליין