לולאת while
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 59 מתוך 90.
לולאת while חוזרת על בלוק קוד כל עוד תנאי מתקיים. בניגוד ללולאת for, אין לה מונה מובנה. עליך לעדכן את משתנה הלולאה בעצמך.
לולאת while בודקת תנאי לפני כל איטרציה. אם התנאי נכון, הלולאה מתבצעת. אם הוא שקרי, הלולאה נעצרת.
תחביר:
while (condition) begin
// קוד שיש לחזור עליו
endדוגמה פשוטה
integer i = 0;
while (i < 5) begin
$display("i = %d", i);
i = i + 1;
endפלט:
i = 0
i = 1
i = 2
i = 3
i = 4הלולאה רצה כל עוד i < 5.
לולאת while לעומת לולאת for
| לולאת for | לולאת while | |
|---|---|---|
| מונה | מובנה | אתה מנהל אותו |
| מתי להשתמש | מספר ידוע של איטרציות | לא ידוע מתי הלולאה תיעצר |
| תחביר | for (i=0; i<5; i=i+1) | while (i < 5) |
לולאת while בסביבות בדיקה
לולאות while שימושיות כשלא יודעים בדיוק כמה איטרציות צריך:
integer i = 0;
while (i < 16) begin
$display("Testing value %d", i);
i = i + 1;
endמציאת ערך מסוים
integer i = 0;
reg [7:0] data;
while (data[i] != 1) begin
i = i + 1;
end
$display("First 1 found at position %d", i);כללים חשובים
| כלל | הסבר |
|---|---|
| התנאי חייב להפוך לשקרי | אחרת תיווצר לולאה אינסופית |
| יש לעדכן את משתנה הלולאה בתוך הלולאה | אחרת הלולאה לעולם לא תסתיים |
משתנה הלולאה חייב להיות integer או reg | הוא לא יכול להיות wire |
יש להשתמש ב-begin/end עבור כמה פקודות | נדרש עבור יותר משורה אחת |
אתגר
מה צריך לעשות:
הוסיפו את לולאת while החסרה כדי להדפיס מספרים מ-0 עד 2.
נסו בעצמכם
module while_challenge;
integer i;
initial begin
i = 0;
$display("Printing 0 to 2:");
// TODO: הוסף לולאת while
// חזור בלולאה כל עוד i < 3
// בתוך הלולאה, הדפס את i
// הגדל את i ב-1
$finish;
end
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין