スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[SystemVerilog] functionで waitするの続き

[SystemVerilog] functionでwaitする


内ので記述で疑問だったので、続き。
ちょっとコードを書いてみました。

module testbench ();

  class C;
    bit b;
    function bit func1();
      return b;
    endfunction
  endclass

  C obj1=new;

  initial begin
    repeat(10) begin
      wait(obj1.func1());
      $display("waiting over : @%0t", $time);
    end
  end

  initial begin
    #10 obj1.b=1;
    #10 obj1.b=0;
    #10 obj1.b=1;
    #10 obj1.b=0;
  end

endmodule: testbench
  • 実行結果
  • # waiting over : @10
    # waiting over : @10
    # waiting over : @10
    # waiting over : @10
    # waiting over : @10
    # waiting over : @10
    # waiting over : @10
    # waiting over : @10
    # waiting over : @10
    # waiting over : @10
    

これだと、waitしている側に遅延が無いので結果としてそうですね。


なので、#5遅延つけてみました。

module testbench ();

  class C;
    bit b;
    function bit func1();
      return b;
    endfunction
  endclass

  C obj1=new;

  initial begin
    repeat(10) begin
      wait(obj1.func1());
      $display("waiting over : @%0t", $time);
      #5;
    end
  end

  initial begin
    #10 obj1.b=1;
    #10 obj1.b=0;
    #10 obj1.b=1;
    #10 obj1.b=0;
  end

endmodule: testbench
  • 実行結果
  • # waiting over : @10
    # waiting over : @15
    # waiting over : @30
    # waiting over : @35
    

と、こんな感じで functionの結果を waitに突っ込むことが出来るらしいです。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。