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

حلقة 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 Loop

 For LoopWhile Loop
العدّادمضمّنتديره بنفسك
متى تُستخدمعدد معروف من التكراراتمتى ستتوقف الحلقة غير معروف
بناء الجملةfor (i=0; i<5; i=i+1)while (i < 5)

حلقة While loop في بيئات الاختبار

تكون حلقات 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);

قواعد مهمة

القاعدةالشرح
يجب أن يصبح الشرط falseوإلا فستحدث حلقة loop لا نهائية
حدّث متغير loop من الداخلوإلا فلن تنتهي loop أبدًا
يجب أن يكون متغير loop من النوع integer أو regلا يمكن أن يكون wire
استخدم begin/end للعبارات المتعددةمطلوب لأكثر من سطر واحد
challenge icon

التحدي

ما يجب فعله:

Add حلقة 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
quiz iconاختبر نفسك

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

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

تدرّب بنفسك: مترجم Verilog عبر الإنترنت