שימוש במשימות מערכת
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 77 מתוך 90.
משימות מערכת הן פקודות מובנות ב-Verilog שמתחילות בסימן דולר ($). הן מבצעות פעולות שימושיות כמו הדפסת הודעות, סיום סימולציה ויצירת קובצי צורות גל.
כבר עסקנו ב-$display, ב-$monitor, ב-$dumpfile וב-$dumpvars בשיעורים קודמים. בשיעור הזה נבחן משימות מערכת נוספות שמועילות בספסלי בדיקה.
משימות מערכת נוספות
| משימת מערכת | מטרה |
|---|---|
$time | החזרת זמן הסימולציה הנוכחי |
$finish | סיום הסימולציה |
$stop | השהיית הסימולציה |
$random | יצירת מספר אקראי |
$time
מחזירה את זמן הסימולציה הנוכחי. שימושית למעקב אחר מועד התרחשותם של אירועים.
$display("Current time is %0t", $time);$finish
מסיים את הסימולציה. השתמשו בו תמיד בסוף ספסל הבדיקה שלכם.
$finish;$stop
משהה את הסימולציה. אפשר להמשיך אותה באמצעות פקודה של הסימולטור. שימושי לניפוי באגים.
$stop;$random
יוצר מספר אקראי. שימושי ליצירת גירוי בדיקה אקראי.
reg [7:0] rand_value;
rand_value = $random;דוגמה לשימוש בכמה משימות מערכת
module system_tasks_demo;
reg [7:0] data;
integer i;
initial begin
$display("Simulation started at time %0t", $time);
for (i = 0; i < 5; i = i + 1) begin
data = $random;
$display("Random value %d: %b", i, data);
end
$stop;
#10 $display("Resumed at time %0t", $time);
$display("Simulation finished at time %0t", $time);
$finish;
end
endmoduleאתגר
הוסף את משימות המערכת החסרות לספסל הבדיקה הזה.
מה לעשות:
- הוסף
$displayכדי להדפיס את הזמן הנוכחי בתחילת התהליך - הוסף
$displayכדי להדפיס את הזמן הנוכחי בסוף התהליך - הוסף
$finishכדי לסיים את הסימולציה
נסו בעצמכם
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmodule
module testbench;
reg a, b;
wire c;
and_gate dut (
.a(a),
.b(b),
.c(c)
);
initial begin
// TODO: הוסף $display עם השעה הנוכחית בתחילת הסימולציה
// פורמט: "Start time: %0t"
$monitor("Time %0t: a=%b, b=%b, c=%b", $time, a, b, c);
a = 0; b = 0; #10;
a = 0; b = 1; #10;
a = 1; b = 0; #10;
a = 1; b = 1; #10;
// TODO: הוסף $display עם השעה הנוכחית בסוף הסימולציה
// פורמט: "End time: %0t"
// TODO: הוסף $finish
end
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים14יסודות ה־Testbench
מהו Testbenchיצירת אותות גירויהצגה וניטורDumpfile ו־Dumpvarsשימוש במשימות מערכתסיכום — Testbench מלא3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין