حلقة Repeat
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 60 من 90.
تُنفِّذ حلقة repeat كتلة من البرمجة لـ عدد محدد من المرات. وعلى عكس حلقة for، فإنها لا تستخدم متغيِّر عداد للحلقة.
تنفذ حلقة repeat عددًا محددًا من المرات. أنت تعطيه قيمة ثابته أو تعبيرًا يحدد عدد التكرارات (iterations) المراد تنفيذها.
الصياغة (Syntax):
repeat (number) begin
// الكود المراد تكراره
endمثال بسيط
repeat (5) begin
$display("Hello");
endالمخرجات:
Hello
Hello
Hello
Hello
Helloيتم طباعة الرسالة 5 `times` بالضبط.
Repeat مع تعبير
integer count = 3;
repeat (count) begin
$display("Looping");
endالمخرجات:
Looping
Looping
LoopingRepeat مقابل For Loop
| For Loop | Repeat Loop | |
|---|---|---|
| متغير العداد (Counter) | نعم (صريح) | لا |
| متى يُستخدم | تحتاج إلى قيمة الفهرس (index) | تحتاج فقط إلى التكرار |
| مثال | for (i=0; i<5; i=i+1) | repeat (5) |
توليد دورات ساعة متعددة
initial begin
clk = 0;
repeat (20) begin
#5 clk = ~clk;
end
endيولّد هذا 20 حافة ساعة (10 دورات كاملة).
قواعد مهمة
| القاعدة | الشرح |
|---|---|
| يجب أن يكون `number` غير سالب | لا يمكن التكرار لعدد مرات سالب |
| يمكن استخدام ثابتاً أو تعبيراً | repeat (10) أو repeat (count) |
| لا يتوفر متغير تكرار (`loop`) | لا يمكن تتبع رقم `Iteration` |
| استخدم `begin`/`end` للعبارات المتعددة | مطلوب لأكثر من سطر واحد |
التحدي
ما الذي يجب فعله:
أضف حلقة repeat المفقودة لطباعة "Verilog" 4 مرات.
جرّب بنفسك
module repeat_challenge;
initial begin
$display("Printing 4 times:");
// TODO: أضف حلقة repeat
// كرر 4 مرات
// في الداخل، اطبع "Verilog"
$finish;
end
endmoduleيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة