Menu
Coddy logo textTech

Recap - Timing Control

CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 72/90。

challenge icon

チャレンジ

このチャレンジでは、遅延、gate delay、assignment delay、timescale、そして clock の生成についての理解をテストします。

実行すること:

  1. timescale directive with 1ns / 1ps を Add
  2. 5 time units ごとに toggles する clock を Generate
  3. 3 time unit の gate delay を持つ AND gate を Add
  4. assignment delay を使用して、2 time units after に ab に assign(a は直ちに Read)

自分で試してみよう

// TODO: タイムスケールディレクティブを追加 (1ns / 1ps)


module timing_challenge;
  reg clk;
  reg a, b;
  wire out;
  
  initial begin
    clk = 0;
  end
  
  // TODO: 5タイムユニットごとにトグルするクロックを生成
  
  
  // TODO: 3タイムユニットの遅延を持つANDゲートを追加 (入力 a, b, 出力 out)
  
  
  initial begin
    $monitor("Time %0t: clk=%b, a=%b, b=%b, out=%b", $time, clk, a, b, out);
    
    a = 1;
    
    // TODO: 代入遅延を使用して2タイムユニット後に a を b に代入
    // 今 a を読み取り、2タイムユニット後に b に代入
    
    
    #20;
    $finish;
  end
endmodule

基礎のすべてのレッスン

自分で練習してみよう: Verilogオンラインコンパイラ