トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

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のモードが用意されているあたりも嬉しい.