Menu
CoddyTech

לולאת for

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

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

הלולאה הנפוצה ביותר היא for לולאת for, שחוזרת מספר מסוים של פעמים. לולאת for מבצעת בלוק קוד שוב ושוב, עם משתנה לולאה שמשתנה בכל איטרציה. את שולטת בדיוק במספר הפעמים שהיא פועלת.

תחביר:

for (initialization; condition; increment) begin
  // קוד שיש לחזור עליו
end
חלקמה הוא עושהדוגמה
initializationקובעת ערך התחלתיi = 0
conditionמתי לעצורi < 10
incrementמשתנה בכל לולאהi = i + 1

דוגמה פשוטה

integer i;

for (i = 0; i < 5; i = i + 1) begin
  $display("i = %d", i);
end

פלט:

i = 0
i = 1
i = 2
i = 3
i = 4

הלולאה מתבצעת 5 פעמים (i = 0, 1, 2, 3, 4).

לולאת for בסביבות בדיקה

לולאות for משמשות בדרך כלל לבדיקת כל צירופי הקלט:

integer test_value;

for (test_value = 0; test_value < 16; test_value = test_value + 1) begin
  $display("test_value = %d", test_value);
end

כך נבדקים כל 16 הערכים האפשריים של אות בן 4 סיביות.

לולאת for עם מערכים

reg [7:0] memory [0:9];
integer i;

initial begin
  for (i = 0; i < 10; i = i + 1) begin
    memory[i] = i * 8;
  end
end

פעולה זו מאתחלת 10 מיקומי זיכרון.

כללים חשובים

כללהסבר
משתנה הלולאה חייב להיות integer או reg הוא לא יכול להיות wire
השתמשו ב-begin/end עבור כמה פקודותנדרש עבור יותר משורה אחת
הימנעו מלולאות אינסופיותודאו שהתנאי יהפוך בסופו של דבר לשקר
השתמשו בגבולות קבועים בקוד שניתן לסנתזהסינתזה פורסת את הלולאה לעותק אחד של הלוגיקה לכל איטרציה
challenge icon

אתגר

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

הוסף את לולאת for החסרה כדי להדפיס את המספרים מ־0 עד 3.

נסו בעצמכם

module for_challenge;
  integer i;
  
  initial begin
    $display("Printing 0 to 3:");
    
    // TODO: הוסיפו לולאת for
    // אתחלו את i = 0
    // חזרו על הלולאה כל עוד i < 4
    // הגדילו את i = i + 1
    // בתוך הלולאה, הדפיסו באמצעות: $display("i = %d", i);
    
    $finish;
  end
endmodule
quiz iconבחנו את עצמכם

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

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

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