חזרה — תכנון ALU
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 57 מתוך 90.
אתגר
ALU (יחידה אריתמטית-לוגית) היא מעגל דיגיטלי שמקבל שתי כניסות, מבצע עליהן פעולה ומפיק יציאה אחת. היא מבצעת פעולות אריתמטיות ולוגיות על שתי כניסות, בהתאם לאות בחירה. האות select בוחר פעולה אחת לביצוע.
איך זה עובד
| select | פעולה | יציאה |
|---|---|---|
2'b00 | חיבור | a + b |
2'b01 | חיסור | a - b |
2'b10 | AND סיביות | a & b |
2'b11 | OR סיביות | a | b |
בנו ALU פשוטה באמצעות פקודת case.
מה לעשות:
- צרו מודול בשם
alu - הוסיפו כניסות:
a(4 סיביות),b(4 סיביות),select(2 סיביות) - הוסיפו יציאה:
result(4 סיביות, מסוג reg) - הוסיפו בלוק
always @(*) - בתוכו, הוסיפו פקודת
case (select) - הוסיפו ארבעה מקרים עבור
2'b00,2'b01,2'b10,2'b11 - הוסיפו מקרה
defaultכדי להגדיר אתresult = 0 - סגרו באמצעות
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כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין