对于使用 Yosys 进行综合的多文件 Verilog 项目,脚本通常如下所示:
# read the all files
read_verilog *.v
# synthesis
synth -top
# output the synthesis result
write_verilog res.v
如果修改了文件,则必须重新运行脚本,从而触发所有文件的合成。这个过程变得非常耗时,尤其是对于较大的项目。 Yosys是否提供任何支持增量合成的方法,仅允许对修改后的文件进行重新合成?如果是这样,您能否提供具体的脚本详细信息和示例?换句话说,假设有三个文件。对于初始合成,所有三个文件都被合成。如果我们以后修改一个文件,如何使用 Yosys 只合成修改后的文件?
如果Yosys不支持增量逻辑综合,是否有其他工具可以完成此任务?
增量合成的工作原理是在第一次运行中单独合成每个模块,如果发生修改(后续运行),则仅合成修改后的模块。在增量综合过程中,每个模块都会被综合以创建网表,然后将所有网表组合起来形成一个最终网表,即最终的综合设计。
但是,Yosys 没有内置对增量逻辑综合的支持,如果修改任何文件,则需要重新运行整个综合过程。或者,您可以使用自定义脚本(例如带有 make 文件的 Git)来确定哪些文件已被修改,并有选择地仅对这些文件重新运行综合。