2025.12.21 22:45
makeでいけるんじゃないか
・IcarusVerilogをVSCode上から使うのに良さげなプラグインが無さそうな感じ。
・gtkwaveでマウスをクリックしたときのマーカーの動きが異様に遅いんだよなぁとか思いながら何か解決策はないのかと検索したらAIの回答とやらで環境変数のGDK_BACKENDをx11にする(export GDK_BACKEND=x11)すると良いという話を目にした。
・本当?と思ってやってみたらなるほど、ちゃんと動くようになった。
・ならば・・・ということでMakefileを書いてみる。美しくはないけどこんな感じ
1 VERILOG = iverilog
2 VVP = vvp
3 EXPORT = GDK_BACKEND
4 VFLAGS = -g2012
5 VVPSRC = ft232h_sync.vvp
6 TARGET = ft232h_sync.vcd
7 SRCS = ft232h_sync_tb.sv ft232h_sync.sv fifo_if.sv
8 all: $(TARGET)
9
10 .PHONY: clean
11 clean:
12 rm $(VVPSRC)
13 rm $(TARGET)
14
15 wave: $(TARGET)
16 unset $(EXPORT); export $(EXPORT)=x11; gtkwave $(TARGET)
17
18 $(VVPSRC): $(SRCS)
19 $(VERILOG) $(VFLAGS) -o $(VVPSRC) $^
20
21 $(TARGET): $(VVPSRC)
22 $(VVP) $(VVPSRC)
・これで単にmakeすれば.vcdまで生成され(ファイル名は$dumpfileで指定しているけど)、make waveするとiverilog、vvpしてgtkwaveが起動する。
・なんだか何ヶ月もずいぶん遠回りしたけど、結局これで良いんじゃないかという結論。