gcc オプション -MMD に相当する依存ファイルを作成する Yosys 用のコマンドはありますか? (このオプションは、コンパイル単位に含まれるすべてのファイルをリストする小さな Makefile フラグメントを出力します。Makefile で -MMD を指定して g++ を使用して依存関係を自動的に生成する を参照してください)
背景: Yosys を使用して Verilog プロジェクトを合成する Makefile を作成しようとしています。プロジェクトは、他の verilog 依存関係が含まれている単一の最上位 verilog ファイルを使用します。これを行うには、次の make ルールを使用します。これは非常にうまく機能します。
$(HARDWARE_BLIF_FILES): $(SUITE_OBJ_DIR)/%.blif : $(SUITE_SUPPORT_HARDWARE_DIR)/%.v
$(HARDWARE_YOSYS) -q -p 'read_verilog -I/path/to/hwlib $<' -p 'synth_ice40 -blif $@'
Makefile で明示的に他の Verilog ファイルに言及したくないので、依存ファイルを使用したいと思います。これにより、依存ファイルのいずれかに適用された変更を検出し、再コンパイルをトリガーできます。
Clifford によって追加された新しい yosys -E オプションのおかげで、上記の Makefile ルールを次のように変更できました。
-include $(HARDWARE_BLIF_DEP_FILES)
$(HARDWARE_BLIF_FILES): $(SUITE_OBJ_DIR)/%.blif : $(SUITE_SUPPORT_HARDWARE_DIR)/%.v
$(HARDWARE_YOSYS) -q -E $(SUITE_OBJ_DIR)/$*.v.d -p 'read_verilog -I/path/to/hwlib $<' -p 'synth_ice40 -blif $@'
これで、暗黙的に参照される Verilog ファイルの 1 つが変更されるたびに、blif ファイルが生成されます。