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

Modulo Operator

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

عامل حسابي أساسي آخر هو عامل باقي القسمة (%). وهو يعطيك الباقي بعد القسمة.

عندما تقسم عددًا على عدد آخر، يخبرك عامل باقي القسمة بما تبقّى.

التعبيرالنتيجةالشرح
10 % 3110 ÷ 3 = 3 والباقي 1
15 % 4315 ÷ 4 = 3 والباقي 3
8 % 208 ÷ 2 = 4 والباقي 0

مثال على الشيفرة

module modulo_demo;
  reg [7:0] result;
  
  initial begin
    result = 10 % 3;
    $display("10 %% 3 = %d", result);  // 1
    
    result = 15 % 4;
    $display("15 %% 4 = %d", result);  // 3
    
    result = 8 % 2;
    $display("8 %% 2 = %d", result);   // 0
    $finish;
  end
endmodule

الاستخدامات الشائعة

تحقّق مما إذا كان العدد زوجيًا أم فرديًا:

if (number % 2 == 0)
  $display("Even");
else
  $display("Odd");

تدوير العداد (من 0 إلى 9، ثم العودة إلى 0):

count = (count + 1) % 10;

احصل على الرقم الأخير من عدد:

last_digit = value % 10;   // 123 % 10 = 3
challenge icon

التحدي

احسب البواقي لكل تعبير.

ما يجب فعله:

  1. احسب 17 % 5 وخزّن الناتج في mod1
  2. احسب 22 % 7 وخزّن الناتج في mod2
  3. احسب 14 % 4 وخزّن الناتج في mod3

جرّب بنفسك

module modulo_challenge;
  reg [7:0] mod1, mod2, mod3;
  
  initial begin
    mod1 = ______;   // 17 % 5
    mod2 = ______;   // 22 % 7
    mod3 = ______;   // 14 % 4
    
    $display("17 %% 5 = %d", mod1);
    $display("22 %% 7 = %d", mod2);
    $display("14 %% 4 = %d", mod3);
    $finish;
  end
endmodule
quiz iconاختبر نفسك

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

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

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