לולאת חזרה
חלק מהיחידה יסודות במסלול ה-Verilog של Coddy. שיעור 60 מתוך 90.
לולאת repeat מבצעת בלוק קוד מספר קבוע של פעמים. בניגוד ללולאת for, היא אינה משתמשת במשתנה מונה של הלולאה.
לולאת repeat רצה מספר מוגדר של פעמים. נותנים לה קבוע או ביטוי שקובע כמה איטרציות לבצע.
תחביר:
repeat (number) begin
// Code to repeat
endדוגמה פשוטה
repeat (5) begin
$display("Hello");
endפלט:
Hello
Hello
Hello
Hello
Helloההודעה מודפסת בדיוק 5 פעמים.
חזרה עם ביטוי
integer count = 3;
repeat (count) begin
$display("Looping");
endפלט:
Looping
Looping
Loopingלולאת repeat לעומת לולאת for
| לולאת for | לולאת repeat | |
|---|---|---|
| משתנה מונה | כן (מפורש) | לא |
| מתי להשתמש | כשצריך את ערך האינדקס | כשצריך רק חזרה |
| דוגמה | for (i=0; i<5; i=i+1) | repeat (5) |
יצירת מחזורי שעון מרובים
initial begin
clk = 0;
repeat (20) begin
#5 clk = ~clk;
end
endהקוד הזה יוצר 20 חזיתות שעון (10 מחזורים מלאים).
כללים חשובים
| כלל | הסבר |
|---|---|
| המספר חייב להיות לא שלילי | אי אפשר לחזור על פעולה מספר שלילי של פעמים |
| אפשר להשתמש בקבוע או בביטוי | repeat (10) או repeat (count) |
| אין משתנה לולאה זמין | אי אפשר לעקוב אחר מספר האיטרציה |
השתמשו ב־begin/end עבור כמה פקודות | נדרש עבור יותר משורה אחת |
אתגר
מה לעשות:
הוסף את לולאת repeat החסרה כדי להדפיס "Verilog" 4 פעמים.
נסו בעצמכם
module repeat_challenge;
initial begin
$display("Printing 4 times:");
// TODO: הוסף לולאת repeat
// חזור 4 פעמים
// בתוך הלולאה, הדפס "Verilog"
$finish;
end
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגייםאופרטורי צמצוםאופרטורי הזזהאופרטור שרשוראופרטור תנאיסיכום – אתגר האופרטורים3שיטת המספרים
ייצוג בינארימספרים בעלי גודל מוגדרמספרים ללא גודל מוגדרמספרים שלילייםהערכים המיוחדים X ו־Zסיכום – תבניות מספרים6מודולים
מבנה מודוליציאות קלט ופלטיציאות קלט-פלטיצירת מופע של מודולמיפוי יציאות לפי שםמיפוי יציאות לפי סדרסיכום – בניית מודולתרגלו בעצמכם: קומפיילר Verilog אונליין