スポンサーサイト

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

[SystemVerilog] extern で別ファイルにて実装を定義

第九回 SystemVerilog読書会 にて class内部の task/function の実装部分を
extern 宣言出来るみたいなので、試しに書いてみました。

  • sample.sv

     1|class hoge;
     2|
     3|  extern task show();
     4|
     5|endclass
     6|
     7|module testbench;
     8|
     9|  hoge cl_hoge = new;
    10|
    11|  initial begin
    12|    cl_hoge.show();
    13|    $finish;
    14|  end
    15|
    16|endmodule
  • hoge.sv

    1|`include "sample.sv"
    2|
    3|task hoge::show();
    4|  $display("--- hoge::show No.1 ---");
    5|endtask

実行

$> make RTL=hoge.sv
vlog hoge.sv
Model Technology ModelSim ALTERA vlog 10.1d Compiler 2012.11 Nov  2 2012
-- Compiling package hoge_sv_unit
-- Compiling module testbench

Top level modules:
    testbench
vsim -c -L work testbench -do "run -all; quit"

# 10.1d

# vsim -L work -do {run -all; quit} -c testbench 
# Loading sv_std.std
# Loading work.hoge_sv_unit
# Loading work.testbench
# run -all 
# --- hoge::show No.1 ---
# ** Note: $finish    : sample.sv(13)
#    Time: 0 ps  Iteration: 0  Instance: /testbench

ちなみに、複数ファイルにてコンパイルする場合には
-mfcu」オプションを使ってやることも出来ます。

$> vlog sample.sv hoge.sv -mfcu

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

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