0

Yosys 是否有一个命令,它创建一个与 gcc 选项 -MMD 等效的依赖文件?(此选项输出一个小的 Makefile 片段,其中列出了编译单元包含的所有文件。请参阅在 makefile 中使用 g++ 和 -MMD 自动生成依赖项

背景:我尝试构建一个 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 文件。

4

1 回答 1

3

Yosys git head (a96c775) 中添加了这样的功能。只需添加-E <depsfile>到您的 yosys 调用中即可生成依赖文件。

于 2018-01-07T15:38:27.893 回答