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

Recap - Timing Control

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

challenge icon

التحدي

يختبر هذا التحدي فهمك لـ delays وgate delays وassignment delays وtimescale وclock generation.

ما يجب فعله:

  1. Add توجيه timescale مع 1ns / 1ps
  2. Generate clock يقوم بـ toggles every 5 time units
  3. Add بوابة AND مع gate delay مقداره 3 time units
  4. استخدم assignment delay لإسناد a إلى b after 2 time units (اقرأ a فورًا)

جرّب بنفسك

// TODO: أضف توجيه timescale (1ns / 1ps)


module timing_challenge;
  reg clk;
  reg a, b;
  wire out;
  
  initial begin
    clk = 0;
  end
  
  // TODO: أنشئ ساعة تتبدل كل 5 وحدات زمنية
  
  
  // TODO: أضف بوابة AND بتأخير 3 وحدات زمنية (المدخلات a, b، المخرج out)
  
  
  initial begin
    $monitor("Time %0t: clk=%b, a=%b, b=%b, out=%b", $time, clk, a, b, out);
    
    a = 1;
    
    // TODO: استخدم تأخير التعيين لتعيين a إلى b بعد وحدتين زمنيتين
    // اقرأ a الآن، عيّن إلى b بعد وحدتين زمنيتين
    
    
    #20;
    $finish;
  end
endmodule

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

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