如何在 Yosys 中输出依赖文件(相当于 gcc -MMD)?
How to output dependency files in Yosys (gcc -MMD equivalent)?
Yosys 是否有一个命令,它创建一个与 gcc 选项 -MMD 等效的依赖文件? (此选项输出一个小的 Makefile 片段,其中列出了编译单元包含的所有文件。参见 Using g++ with -MMD in makefile to automatically generate dependencies)
背景:我尝试构建一个Makefile,它使用Yosys 合成了一个verilog 项目。该项目使用单个顶级 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 文件之一发生更改,就会生成 blif 文件。
Yosys git head (a96c775) 现已添加此类功能。只需将 -E <depsfile>
添加到您的 yosys 调用即可生成依赖文件。
Yosys 是否有一个命令,它创建一个与 gcc 选项 -MMD 等效的依赖文件? (此选项输出一个小的 Makefile 片段,其中列出了编译单元包含的所有文件。参见 Using g++ with -MMD in makefile to automatically generate dependencies)
背景:我尝试构建一个Makefile,它使用Yosys 合成了一个verilog 项目。该项目使用单个顶级 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 文件之一发生更改,就会生成 blif 文件。
Yosys git head (a96c775) 现已添加此类功能。只需将 -E <depsfile>
添加到您的 yosys 调用即可生成依赖文件。