מהן השהיות
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 67 מתוך 90.
ב-Verilog, עיכובים קובעים מתי פקודה מתבצעת או מתי אות משתנה. משתמשים בהם כדי למדל התנהגות תזמון של חומרה אמיתית.
למה נחוצות השהיות
לחומרה אמיתית דרוש זמן כדי שאותות יעברו דרך חוטים ושערים. השהיות מאפשרות לך לדמות את התנהגות התזמון הזאת.
- בסימולציה, ללא השהיות, הכול מתרחש בזמן 0
- השהיות מאפשרות לך לפזר אירועים לאורך זמן
- הן עוזרות לבדוק תכנונים רגישים לתזמון, כמו שעונים ומכונות מצבים
סוגי השהיות
| סוג ההשהיה | מטרה |
|---|---|
| השהיות שערים | השהיה דרך שערים לוגיים |
| השהיות השמה | השהיה בעת השמת ערכים |
| הנחיית timescale | מגדירה יחידות זמן לסימולציה |
תחביר בסיסי
כותבים השהיה באמצעות # ואחריו מספר:
#10 clk = ~clk; // המתן 10 יחידות זמן, ואז הפוך את מצב השעון
#5 a = b; // המתן 5 יחידות זמן, ואז השם ל־a את הערך של bהמספר שאחרי # הוא מספר יחידות הזמן שיש להמתין.
דוגמה פשוטה
initial begin
a = 0;
#10 a = 1; // לאחר 10 יחידות זמן, a מקבל את הערך 1
#5 a = 0; // לאחר עוד 5 יחידות זמן, a מקבל את הערך 0
endתזמון:
- זמן 0:
a = 0 - זמן 10:
a = 1 - זמן 15:
a = 0
השהיות בבלוקי always
always #5 clk = ~clk; // הפוך את מצב השעון כל 5 יחידות זמןכך נוצר אות שעון רציף (בהנחה ש־clk אותחל תחילה ל־0 בבלוק initial. אחרת ~x נשאר x).
כללים חשובים
| כלל | הסבר |
|---|---|
הסימן # | מציין השהיה |
המספר שאחרי # | כמה יחידות זמן להמתין |
| השהיות מצטברות | #10 ואז #20 פירושם המתנה של 30 בסך הכול |
| לא ניתן לסנתז | השהיות מיועדות לסימולציה בלבד |
אתגר
מה צריך לעשות:
הוסיפו את ההשהיות החסרות כדי שהקוד הזה ידפיס הודעות בזמנים 0, 10, 25 ו־40.
נסו בעצמכם
module delay_challenge;
initial begin
$display("Time %0t: Start", $time);
// TODO: הוסף השהיה כדי להגיע לזמן 10
$display("Time %0t: After first delay", $time);
// TODO: הוסף השהיה כדי להגיע לזמן 25
$display("Time %0t: After second delay", $time);
// TODO: הוסף השהיה כדי להגיע לזמן 40
$display("Time %0t: End", $time);
$finish;
end
endmodule
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין