SystemVerilog Class スコープ演算子

タイトルは適当につけていますが、規格上の説明は

Class scope resolution operator ::

になってます。

  • サンプルコード
  •  1|class hoge;
     2|  static function void show(int a, int b);
     3|    $display("- a = %3d, b = %3d", a, b);
     4|  endfunction
     5|endclass
     6|
     7|module testbench;
     8|
     9|  int i,j;
    10|  hoge cl_hoge = new;
    11|
    12|  initial begin
    13|    i = 10; j = 4;
    14|    cl_hoge.show(i, j);
    15|    hoge::show(i,j);
    16|    $finish;
    17|  end
    18|
    19|endmodule
  • 実行結果
  • # - a =  10, b =   4
    # - a =  10, b =   4

解説


記述と実行結果のとおりで、「::」を使うことで、
クラスのメンバ関数を直接使うことができます。
ただし、task/function は static でないといけません。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
10 | 2017/11 | 12
- - - 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
アクセス人数