Menu
Coddy logo textTech

יצירת שעון

חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 71 מתוך 90.

שעון הוא אות שמתחלף ברציפות בין 0 ל-1 במרווחי זמן קבועים. שעונים חיוניים ללוגיקה רציפה, כמו כפכפים ומונים.

למה ליצור שעון

בסביבות בדיקה, צריך שעון כדי לבדוק מעגלים סדרתיים. השעון מניע את ההתנהגות של כפכפים, אוגרים ומכונות מצבים.

שיטות ליצירת שעון

שיטהתיאור
always עם השהיה של #השיטה הנפוצה ביותר
לולאת foreverשיטה חלופית
לולאת repeatלמספר קבוע של מחזורים

שיטה 1: בלוק always עם השהיה

reg clk;

initial begin
  clk = 0;
end

always #5 clk = ~clk;
  • clk = 0 בזמן 0
  • כל 5 יחידות זמן, clk מתחלף
  • המחזור = 10 יחידות זמן
  • התדירות = 1/10 = 0.1 ליחידת זמן

שיטה 2: לולאה אינסופית

reg clk;

initial begin
  clk = 0;
  forever begin
    #5 clk = ~clk;
  end
end

אותה תוצאה כמו בשיטת always.

שיטה 3: חזרה במשך מספר קבוע של מחזורים

reg clk;

initial begin
  clk = 0;
  repeat (10) begin
    #5 clk = ~clk;
  end
end

יוצר בדיוק 10 חזיתות שעון (5 מחזורים מלאים), ואז נעצר.

challenge icon

אתגר

הוסף את הקוד החסר כדי ליצור שעון שמחליף מצב בכל 4 יחידות זמן (המחזור = 8 יחידות זמן).

מה לעשות:

  1. אתחל את clk ל־0 בזמן 0 באמצעות בלוק initial
  2. השתמש בבלוק always עם השהיה כדי להחליף את מצב clk בכל 4 יחידות זמן

נסו בעצמכם

module clock_challenge;
  reg clk;
  
  // TODO: שלב 1 - הוסף בלוק initial כדי להגדיר clk = 0
  
  
  // TODO: שלב 2 - הוסף בלוק always כדי להפוך את הערך של clk כל 4 יחידות זמן
  

  initial begin
    $monitor("Time %0t: clk = %b", $time, clk);
    #20;
    $display("Clock generated for 20 time units");
    $finish;
  end
endmodule
quiz iconבחנו את עצמכם

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

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

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