在所有系统 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 文件的开头。然后代码可以在任何模拟器上运行。
有一个名为 -mfcu
的 vlog
选项,它将所有文件编译成一个大文件 (Multi File C编译 Unit)。所以你可以做类似
vlog -mfcu globals.sv rtl/*.sv
vlog -mfcu globals2.sv tb/*.sv
我从一位同事那里采用了一堆 .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 文件的开头。然后代码可以在任何模拟器上运行。
有一个名为 -mfcu
的 vlog
选项,它将所有文件编译成一个大文件 (Multi File C编译 Unit)。所以你可以做类似
vlog -mfcu globals.sv rtl/*.sv
vlog -mfcu globals2.sv tb/*.sv