Verification Engineerの戯言
ここまでの記述をシミュレーションするには、次のコマンドを実行します。
bscコマンドでオプションに -sim を指定します。
この時点では、まだ中間ファイル(mkAttempt.ba)が生成されるだけです。
中間ファイル名は、モジュール名(ここではmkAttempt).ba です。
bscコマンドでオプションに -sim を指定します。
この時点では、まだ中間ファイル(mkAttempt.ba)が生成されるだけです。
中間ファイル名は、モジュール名(ここではmkAttempt).ba です。
% bsc -sim FirstAttempt.bsv Elaborated module file created: mkAttempt.ba
次にシミュレータを生成します。
-e オプションでトップ階層を指定し、シミュレータの名前を -o オプションで指定します。
-e オプションでトップ階層を指定し、シミュレータの名前を -o オプションで指定します。
% bsc -sim -e mkAttempt -o ./sim mkAttempt.ba Bluesim object created: mkAttempt.{h,o} Bluesim object created: schedule.{h,o} Simulation shared library created: sim.so Simulation executable created: ./sim
生成されたシミュレータを実行すると、"Hello World"がずーと表示されます。
% ./sim Hello World Hello World Hello World Hello World Hello World Hello World ...
では、シミュレーションを終了するには、どうすればいいのでしょう!
SystemVerilogと同じように $finish を使います。
package FirstAttempt; // My first design in the cool Bluespec language String s = "Hello world"; (* synthesize *) module mkAttempt(Empty); rule say_hello; $display(s); $finish(0); endrule endmodule endpackage
これで1回だけ、"Hello World" が表示されます。
% bsc -sim FirstAttempt.bsv Elaborated module file created: mkAttempt.ba % bsc -e mkAttempt -sim -o ./sim mkAttempt.ba Bluesim object created: mkAttempt.{h,o} Bluesim object created: schedule.{h,o} Simulation shared library created: sim.so Simulation executable created: ./sim % ./sim Hello World
検証、Verification、Bluespec SystemVerilog