Menu
CoddyTech

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

 حلقة forحلقة while
العدادمدمجأنت تديره
متى تُستخدمعدد معروف من التكراراتغير معروف متى ستتوقف الحلقة
الصياغةfor (i=0; i<5; i=i+1)while (i < 5)

حلقة while في منصات الاختبار

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

قواعد مهمة

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

التحدي

ما المطلوب:

أضف حلقة 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 عبر الإنترنت