3 |
bsvのMakefile作成 (3) |
Makefile
過去記事でbsvのMakefileを作成しましたが、その後この記事によりtop.vが不要なことが判明したのでMakefileを再作成しました。以前のものよりtop.vを削除した分だけ若干シンプルになっています。
# ファイル名の生成
BSRCS = $(wildcard *.bsv) # BSVソースファイル
BASRCS = $(addprefix mk, $(addsuffix .ba, $(basename $(BSRCS)))) # BA中間ファイル
VSRCS = $(addprefix mk, $(addsuffix .v, $(basename $(BSRCS)))) # Verilogファイル
# .PHONY ターゲットの定義
.PHONY: all bsv_view verilog_view clean
# 全体のターゲット定義
all: bsv_view verilog_view
# BSV波形ビューアの起動
bsv_view: bsim.vcd
gtkwave -A bsim.vcd
# BSV波形ファイルの生成
bsim.vcd: mkTb.exe
./mkTb.exe -V bsim.vcd
# BSV実行ファイルの生成
mkTb.exe: $(BASRCS)
bsc -sim -e mkTb -parallel-sim-link 4 -o mkTb.exe
# BSVファイルのコンパイル
mk%.ba: %.bsv
time bsc -sim -u -steps-warn-interval 1000000 -steps 8000000 -suppress-warnings T0054 $<
# Verilog波形ビューアの起動
verilog_view: verilog.vcd
gtkwave -A verilog.vcd
# Verilog波形ファイルの生成
verilog.vcd: mkTb.exev
./mkTb.exev +bscvcd=verilog.vcd
# Verilog実行ファイルの生成
mkTb.exev: $(VSRCS)
bsc -verilog -e mkTb -parallel-sim-link 4 -o mkTb.exev
# BSVファイルからVerilogファイルを生成
mk%.v: %.bsv
time bsc -verilog -u -steps-warn-interval 1000000 -steps 8000000 -suppress-warnings T0054 $<
# クリーンアップ
clean:
@rm -f mk*.v
@rm -f *.bi *.bo *.ba a.out \#*
@rm -f *.cxx *.h *.o *.so *.bexe
@rm -f *.exe *.exev
@rm -f *.vcd *~ *.fsdb *.log
依存関係グラフ
ここで、’Makefile'の依存関係の可視化の記事のプログラムをそのまま用いて、
$ LANG=C make -np | python3 make_p_to_json.py > graph.json; python json_to_dot.py workflow.png; xv workflow.png
このコマンドにより作成した依存関係図を図830.1に示します。
Leave a Comment