לולאה אינסופית
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 61 מתוך 90.
לולאת forever חוזרת על בלוק קוד ברציפות, לנצח. היא אף פעם לא נעצרת מעצמה.
לולאת forever מתבצעת שוב ושוב ללא סוף. היא שימושית ליצירת שעונים ואותות רציפים אחרים בסביבות בדיקה.
תחביר:
forever begin
// קוד שחוזר על עצמו לנצח
endדוגמה פשוטה
forever begin
$display("This prints forever");
endהדבר ידפיס ללא הפסקה ויקריס את הסימולציה שלך. הקפד תמיד להוסיף השהיה או תנאי עצירה.
יצירת שעון (שימוש נפוץ)
השימוש הנפוץ ביותר ב-forever הוא ליצירת שעון:
initial begin
clk = 0;
forever begin
#5 clk = ~clk; // הפוך את המצב כל 5 יחידות זמן
end
endכך נוצר שעון שפועל לאורך כל הסימולציה.
לנצח עם Disable
אפשר לעצור לולאת forever באמצעות פקודת disable:
initial begin : clock_gen // השם נוסף כאן
clk = 0;
forever begin
#5 clk = ~clk;
end
endinitial begin
#100;
disable clock_gen; // עכשיו זה עובד
endלולאת forever לעומת לולאות אחרות
| לולאה | עוצרת? | מתי להשתמש |
|---|---|---|
for | כן (אחרי מספר קבוע של איטרציות) | מספר החזרות ידוע |
while | כן (כשהתנאי אינו מתקיים) | תנאי עצירה לא ידוע |
repeat | כן (אחרי מספר קבוע של איטרציות) | מספר החזרות ידוע |
forever | לא (לעולם לא) | אותות רציפים (שעון) |
כללים חשובים
| כלל | הסבר |
|---|---|
| חייב לכלול השהיה | #10 או @(posedge clk) |
| ללא השהיה, הסימולציה נתקעת | לולאה אינסופית ללא התקדמות בזמן |
יש להשתמש יחד עם disable כדי לעצור | אחרת הסימולציה לעולם לא מסתיימת |
| הכי טוב להשתמש בספסלי בדיקה | לא ניתן לסנתז |
אתגר
מה צריך לעשות:
הוסיפו את לולאת forever החסרה כדי ליצור שעון שמחליף מצב כל 10 יחידות זמן.
נסו בעצמכם
module forever_challenge;
reg clk;
initial begin
clk = 0;
// TODO: הוסף לולאת forever כדי להפוך את הערך של clk כל 10 יחידות זמן
end
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין