在所有系统 verilog 文件中自动包含一个文件

Automatically including a file in all system verilog files

我从一位同事那里采用了一堆 .sv 文件,但每个文件都无法编译,因为它缺少存储在名为 "globals.sv" 的文件中的“已定义环境变量”。添加行

`include "globals.sv"

到每个文件的顶部都可以,但是是否有一个 ModelSim 命令行标记,我可以使用它在编译时为每个 .sv 自动包含此文件?我必须重新 运行 带有 "globals2.sv" 和 "globals3.sv" 的文件,并且能够一次包含所有文件会容易得多。我正在想象一个命令,例如:

vlog -env_variables globals.sv -c *.sv
vlog -env_variables globals2.sv -c *.sv

这将使用 globals.sv 中的变量定义编译每个 .sv 文件。

如有任何帮助,我们将不胜感激!

您最好的办法是编写一个脚本,将 `include globals.sv 添加到每个 *.sv 文件的开头。然后代码可以在任何模拟器上运行。

有一个名为 -mfcuvlog 选项,它将所有文件编译成一个大文件 (Multi File C编译 Unit)。所以你可以做类似

vlog -mfcu globals.sv rtl/*.sv
vlog -mfcu globals2.sv tb/*.sv