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

Recap - Operator Challenge

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

challenge icon

التحدي

أكمل الشيفرة بكتابة التعبيرات الصحيحة لكل مهمة. يغطي هذا التحدي جميع المعاملات الموجودة في هذا الفصل.

ما يجب فعله:

  1. Logical: تحقّق مما إذا كان كلٌّ من value1 وvalue2 غير صفري، وخزّن النتيجة في logic_out
  2. Reduction: تحقّق مما إذا كانت all bits في vector تساوي 1، وخزّن النتيجة في reduction_out
  3. Shift: أجرِ إزاحة لِـdata إلى left بمقدار 2 bits، وخزّن النتيجة في shift_out
  4. Concatenation: ادمج high وlow into قيمة من 8 bits، وخزّن النتيجة في concat_out
  5. Conditional: خزّن larger من `a` و`b` في cond_out

جرّب بنفسك

module operator_challenge;
  reg [3:0] value1, value2;
  reg logic_out;
  
  reg [3:0] vector;
  reg reduction_out;
  
  reg [7:0] data;
  reg [7:0] shift_out;
  
  reg [3:0] high, low;
  reg [7:0] concat_out;
  
  reg [3:0] a, b;
  reg [3:0] cond_out;
  
  initial begin
    // منطقي
    value1 = 4'd6;
    value2 = 4'd0;
    logic_out = ______;   // تحقق مما إذا كانت value1 و value2 غير صفريتين
    
    // اختزال
    vector = 4'b1111;
    reduction_out = ______;   // Check if all bits of vector are 1
    
    // Shift
    data = 8'b00001111;
    shift_out = ______;   // إزاحة data إلى اليسار بمقدار بتين
    
    // تسلسل
    high = 4'b1010;
    low = 4'b1100;
    concat_out = ______;   // ادمج high و low في قيمة 8 بت
    
    // شرطي
    a = 4'd7;
    b = 4'd12;
    cond_out = ______;   // خزّن الأكبر من `a` و `b`
    
    $display("6 && 0 = %d", logic_out);
    $display("&4'b1111 = %d", reduction_out);
    $display("00001111 << 2 = %b", shift_out);
    $display("{1010, 1100} = %b", concat_out);
    $display("max(7, 12) = %d", cond_out);
    $finish;
  end
endmodule

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

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