תכנון מרבב 2 ל־1
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 64 מתוך 90.
אתגר
מרבב (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 בוחר אחת משתי כניסות ומעביר אותה ליציאה בהתאם לאות בחירה.
טבלת אמת
| sel | out |
|---|---|
| 0 | out = in0 |
| 1 | out = in1 |
כאשר sel הוא 0, היציאה עוקבת אחר in0. כאשר sel הוא 1, היציאה עוקבת אחר in1.
מה לעשות:
- צור מודול בשם
mux2to1 - הוסף כניסה
in0(סיבית אחת) - הוסף כניסה
in1(סיבית אחת) - הוסף כניסה
sel(סיבית אחת) - הוסף יציאה
out(סיבית אחת, מטיפוסreg) - הוסף בלוק
always @(*) - בתוכו, הוסף פקודת
if-else:- אם
sel == 0, הגדרout = in0 - אחרת, הגדר
out = in1
- אם
- סגור באמצעות
endmodule
נסו בעצמכם
// שלב 1: צרו מודול בשם mux2to1
// שלב 2: הוסיפו קלט in0
// שלב 3: הוסיפו קלט in1
// שלב 4: הוסיפו קלט sel
// שלב 5: הוסיפו פלט out (מטיפוס reg)
// שלב 6: הוסיפו בלוק always @(*)
// שלב 7: הוסיפו משפט if-else
// אם sel == 0, אז out = in0
// אחרת, out = in1
// שלב 8: סיימו את המודולכל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין