Menu
Coddy logo textTech

חזרה — תכנון ALU

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

challenge icon

אתגר

ALU (יחידה אריתמטית-לוגית) היא מעגל דיגיטלי שמקבל שתי כניסות, מבצע עליהן פעולה ומפיק יציאה אחת. היא מבצעת פעולות אריתמטיות ולוגיות על שתי כניסות, בהתאם לאות בחירה. האות select בוחר פעולה אחת לביצוע.

איך זה עובד

selectפעולהיציאה
2'b00חיבורa + b
2'b01חיסורa - b
2'b10AND סיביותa & b
2'b11OR סיביותa | b

בנו ALU פשוטה באמצעות פקודת case.

מה לעשות:

  1. צרו מודול בשם alu
  2. הוסיפו כניסות: a (4 סיביות), b (4 סיביות), select (2 סיביות)
  3. הוסיפו יציאה: result (4 סיביות, מסוג reg)
  4. הוסיפו בלוק always @(*)
  5. בתוכו, הוסיפו פקודת case (select)
  6. הוסיפו ארבעה מקרים עבור 2'b00, 2'b01, 2'b10, 2'b11
  7. הוסיפו מקרה default כדי להגדיר את result = 0
  8. סגרו באמצעות endcase ו-endmodule

נסו בעצמכם

// TODO: ליצור מודול alu 

  // TODO: להוסיף קלטים (a, b, select)
  
  // TODO: להוסיף פלט (result)

  // TODO: להוסיף בלוק always @(*)
  
  // TODO: להוסיף case (select)
  
  // TODO: להוסיף case 2'b00: result = a + b;
  
  // TODO: להוסיף case 2'b01: result = a - b;
  
  // TODO: להוסיף case 2'b10: result = a & b;
  
  // TODO: להוסיף case 2'b11: result = a | b;
  
  // TODO: להוסיף default: result = 0;
  
  // TODO: להוסיף endcase

// TODO: להוסיף endmodule

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

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