スポンサーサイト

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

SystemVerilogのclassはどう?

前回の「SC_MODULEとclass xxx : sc_module の違いについて」の流れで、
SystemVerilogのclassはどうなるか試してみました。

テストしたコードはこちら。
 1|class hoge;
 2|  int   x;
 3|  task set (int i);
 4|    x = i;
 5|  endtask
 6|  function int get;
 7|    return x;
 8|  endfunction
 9|
10|  local int y;
11|  task set_y (int i);
12|    y = i;
13|  endtask
14|  function int get_y;
15|    return y;
16|  endfunction
17|endclass
18|
19|module testbench;
20|  hoge test = new;
21|
22|  initial begin
23|    test.set(3);
24|    $display("---            test.x is %d", test.x);
25|    $display("--- call get() test.x is %d", test.get());
26|    test.= 10;
27|    $display("---            test.x is %d", test.x);
28|    $display("--- call get() test.x is %d", test.get());
29|    $display("Local value y test");
30|    test.set_y(10);
31|    $display("--- call get() test.y is %d", test.get_y());
32|    $finish(1);
33|  end
34|
35|endmodule:testbench
実行結果はこちらになります。
20120518_sv_sim.png

では、「local」宣言した場合どうなるかというと。
32|    test.= 100;
33|    $display("---            test.y is %d", test.y);
34|    $display("--- call get() test.y is %d", test.get_y());
コンパイルエラーが出ます。
20120518_sv_err.png

言語によって色々なんですねー。
関連記事

コメントの投稿

非公開コメント

プロフィール

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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。