为什么其他 files/modules 可以看到模块外的导入包?
Why is import package outside module visible from other files/modules?
- 文件A
`timescale 1ns/10ps
import mypkg::*;
module test_A (
...
);
- 文件 B:
`timescale 1ns/10ps
module test_B (
...
);
- 为什么
mypkg
的 typedef 在文件 B 中可见?
它不应该是每个编译单元(=这里的文件)吗?
3.12.1 编译单元 部分 IEEE 1800-2017 SystemVerilog LRM 为工具提供了将每个文件作为单独的编译单元处理的选择,如 C/C++ ,或者像在 Verilog 中一样在命令行上将每个文件编译为一个编译单元。如果使用单独的命令行编译,所有工具都将每个文件视为一个单独的编译单元。
遗憾的是没有标准的默认选择;您需要阅读工具的用户手册。
我知道 Modelsim/Questa 默认情况下将每个 SystemVerilog 文件视为一个单独的编译单元。
- 文件A
`timescale 1ns/10ps
import mypkg::*;
module test_A (
...
);
- 文件 B:
`timescale 1ns/10ps
module test_B (
...
);
- 为什么
mypkg
的 typedef 在文件 B 中可见? 它不应该是每个编译单元(=这里的文件)吗?
3.12.1 编译单元 部分 IEEE 1800-2017 SystemVerilog LRM 为工具提供了将每个文件作为单独的编译单元处理的选择,如 C/C++ ,或者像在 Verilog 中一样在命令行上将每个文件编译为一个编译单元。如果使用单独的命令行编译,所有工具都将每个文件视为一个单独的编译单元。
遗憾的是没有标准的默认选择;您需要阅读工具的用户手册。
我知道 Modelsim/Questa 默认情况下将每个 SystemVerilog 文件视为一个单独的编译单元。