Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

حلقة Repeat

جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 60 من 90.

تقوم حلقة repeat بتنفيذ كتلة من الكود لعدد محدد من المرات. وعلى عكس حلقة for، فهي لا تستخدم متغيراً لعدّاد الحلقة.

تعمل حلقة repeat لعدد محدد من المرات. حيث تقوم بتزويدها بثابت أو تعبير يحدد عدد التكرارات التي سيتم تنفيذها.

الصيغة:

repeat (number) begin
  // الكود المراد تكراره
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 Loop

 حلقة Forحلقة Repeat
متغير العدادنعم (صريح)لا
متى يُستخدمالحاجة إلى قيمة الفهرس (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 دورات كاملة).

قواعد هامة

القاعدةالشرح
يجب أن يكون الرقم غير سالبلا يمكن التكرار لعدد مرات سالب
يمكن استخدام ثابت أو تعبيرrepeat (10) أو repeat (count)
لا يتوفر متغير حلقةلا يمكن تتبع رقم التكرار
استخدم begin/end للجمل المتعددةمطلوب لأكثر من سطر واحد
challenge icon

التحدي

ماذا تفعل:

أضف حلقة repeat المفقودة لطباعة "Verilog" 4 مرات.

ورقة مرجعية

تقوم حلقة repeat بتنفيذ كتلة من الكود لعدد محدد من المرات دون الحاجة لمتغير عداد للحلقة.

repeat (number) begin
  // كود للتكرار
end

يمكن استخدام تعبير ثابت أو متغير:

integer count = 3;
repeat (count) begin
  $display("Looping");
end

حالة استخدام شائعة — توليد دورات الساعة (clock cycles):

repeat (20) begin
  #5 clk = ~clk;
end

مقارنة بين Repeat و For Loop: استخدم repeat عندما تحتاج فقط إلى التكرار (لا حاجة لفهرس)؛ واستخدم for عندما تحتاج إلى قيمة عداد التكرار.

جرّب بنفسك

module repeat_challenge;
  
  initial begin
    $display("Printing 4 times:");
    
    // مهمة: أضف حلقة تكرار (repeat loop)
    // كرر 4 مرات
    // في الداخل، اطبع "Verilog"
    
    $finish;
  end
endmodule
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات