לולאת for
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 58 מתוך 90.
לולאות ב-Verilog מאפשרות לך להריץ בלוק קוד מספר פעמים. הן שימושיות במיוחד בסביבות בדיקה ליצירת דפוסי בדיקה חוזרים, לאתחול זיכרון ולמעבר על מערכים. בניגוד לתיאורי חומרה שפועלים במקביל, לולאות רצות ברצף, ולכן הן אידיאליות לסימולציה ולבדיקה.
הלולאה הנפוצה ביותר היא <strong>for</strong> לולאה, שחוזרת על עצמה מספר מסוים של פעמים. לולאת 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 עבור כמה פקודות | נדרש עבור יותר משורה אחת |
| יש להימנע מלולאות אינסופיות | יש לוודא שהתנאי יהפוך בסופו של דבר לשקר |
| הכי מתאים לשימוש בספסלי בדיקה | רוב הלולאות אינן ניתנות לסינתזה |
אתגר
מה לעשות:
הוסף את לולאת 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השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין