לולאת 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 אונליין