スポンサーサイト

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

SystemVerilog class の super

SystemVerilog classにて、super というものがあります。

  • サンプルコード
  •  1|class base;
     2|  virtual function void show(int a, int b);
     3|    $display("- a = %3d, b = %3d", a, b);
     4|  endfunction
     5|endclass
     6|
     7|class hoge extends base;
     8|  function void show(int a, int b=0);
     9|    if (!= 0) super.show(a,b);
    10|    else        $display("- a = %3d", a);
    11|  endfunction
    12|endclass
    13|
    14|module testbench;
    15|
    16|  int i,j;
    17|  hoge cl_hoge = new;
    18|
    19|  initial begin
    20|    i = 10; j = 4;
    21|    cl_hoge.show(i);
    22|    cl_hoge.show(i,j);
    23|    $finish;
    24|  end
    25|
    26|endmodule
  • 実行結果
  • # --- a =  10
    # --- a =  10, b =   4

解説


継承したクラス(ここでは、hoge)にて、オーバーライドされた show関数の 引数 bが 0以外であった場合に baseクラスの show関数を呼んでいます。 その際に、super を使うことで実現することができます。 ただし、一つ上(baseクラス)しか記述できません。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
07 | 2017/08 | 09
- - 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 31 - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。