在verilog中,编译单元范围(1)和模块头(2)的导入包之间有什么区别吗?
1) 在编译单元范围
import mypkg::*;
module my_module(
port_declaration
...
Run Code Online (Sandbox Code Playgroud)
2) 在模块头
module my_module
import mypkg::*;
(
port_declaration
...
Run Code Online (Sandbox Code Playgroud)
上述所有情况都没有编译错误。我预计,使用 1) 方式,当有另一个文件在其编译单元范围内导入 mypkg 时,可能会导致重复导入警告或错误,但事实并非如此。
他们之间有什么区别吗?