תזמון המעברים
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 81 מתוך 90.
אתגר
בשיעור הזה תוסיפו את לוגיקת המונה שקובעת כמה זמן כל אור נשאר דולק. המונה סופר לאחור מערך מוגדר מראש עד לאפס, ואז מפעיל את שינוי המצב הבא.
דרישות התזמון
| מצב | משך | ערך המונה |
|---|---|---|
| ירוק | 30 שניות | 30 |
| צהוב | 10 שניות | 10 |
| אדום | 40 שניות | 40 |
איך המונה פועל
- כשהמצב מתחיל, המונה נטען בערך משך הזמן
- בכל פעימת שעון, ערך המונה קטן ב־1
- כשהמונה מגיע ל־0, הגיע הזמן לעבור למצב הבא
המשימה שלכם היא להוסיף את לוגיקת המונה החסרה למכונת המצבים. קלט next מהשלב הקודם כבר אינו בשימוש: המונה קובע עכשיו מתי המצב משתנה, וסביבת הבדיקה כבר לא מניעה את next.
מה לעשות:
- הסירו את
input next,מכותרת המודול והחליפו את התנאיelse if (next)בלוגיקת המונה שלהלן - הוסיפו הצהרה
reg [5:0] counter(השאירו אותה אם כבר הצהרתם עליה בשלב הראשון) - בעת איפוס, הגדירו את
counterל־0 - כאשר
counter == 0:- טענו למונה את משך הזמן של המצב הבא
- עברו למצב הבא
- אחרת, הפחיתו את המונה ב־1 בכל פעימת שעון
נסו בעצמכם
module traffic_light (
input clk,
input reset,
output reg red,
output reg yellow,
output reg green
);
reg [1:0] state;
// TODO: להצהיר על אוגר counter (6 ביטים)
// השמות לפלטים
always @(*) begin
case (state)
0: begin green = 1; yellow = 0; red = 0; end
1: begin green = 0; yellow = 1; red = 0; end
2: begin green = 0; yellow = 0; red = 1; end
default: begin green = 0; yellow = 0; red = 1; end
endcase
end
// מכונת מצבים עם תזמון
always @(posedge clk or posedge reset) begin
if (reset) begin
state <= 2; // להתחיל באור אדום
// TODO: להגדיר את counter ל-0
end else begin
if (counter == 0) begin
case (state)
0: begin
state <= 1;
// TODO: לטעון את counter עבור אור צהוב (10 שניות)
end
1: begin
state <= 2;
// TODO: לטעון את counter עבור אור אדום (40 שניות)
end
2: begin
state <= 0;
// TODO: לטעון את counter עבור אור ירוק (30 שניות)
end
endcase
end else begin
// TODO: להפחית את counter ב-1
end
end
end
endmoduleכל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין