Menu
Coddy logo textTech

מהן השהיות

חלק מהיחידה יסודות במסלול ה-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 בסך הכול
לא ניתן לסנתזהשהיות מיועדות לסימולציה בלבד
challenge icon

אתגר

מה צריך לעשות:

הוסיפו את ההשהיות החסרות כדי שהקוד הזה ידפיס הודעות בזמנים 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

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Verilog אונליין