Diary/2010-3-5
Bluespec
Bluespecの30日ライセンスをいただい(てしまっ)たので,早速遊んでみた.
export BLUESPEC_LICENSE_FILE=27000@snowserv export BLUESPEC_HOME=/opt/Bluespec-2009.10.B export BLUESPECDIR=$BLUESPEC_HOME/lib export PATH=$BLUESPEC_HOME/bin:$PATH
こんな感じで環境設定して,
http://www.cybernet.co.jp/bluespec/documents/Sort_Sample.pdf
のようなコードを書いて保存したら(たとえば sample.bsv とか)
bsc -u -sim sample.bsv bsc -sim -o sim.out -e mkTb mkTb.ba
で,シミュレーション可能なsim.outとかができるので,
./sim.out -V dump.vcd
とかして実行すると,シミュレーションしてダンプファイルが生成される.
vcdなので,gtkwaveなどで波形が確認できる.
また,
bsc -u -verilog sample.bsv
とかすると,Verilogのコードが生成される.
また,
http://www.cybernet.co.jp/bluespec/documents/Tutorial_counter_JP.pdf
に,カウンタを作るチュートリアルが.
パラメタ化したinterfaceを作るときに,
(* synthesize *)
を取り除くのをわすれないとコンパイルエラーになるので注意.
PulseWireとか,ガード付きのメソッドとか,Stmtとかがすっごい便利だなあ,と.
変数の扱い方とかのあたりが,まだよくわからないので,リファレンス読む.
ちなみに,ちゃんとemacsのモードが用意されているあたりも嬉しい.