从 WORK 以外的库将 VHDL 包导入 SV
importing VHDL packages to SV from libraries other than WORK
我有一个编译成库的 VHDL 模块,比方说,LIB_A
。该模块有记录的端口,相应的类型定义在一个包中,该包也被编译成LIB_A
。我想为模块编写一些断言并使用 OneSpin 检查它们。
目前我遇到的问题是我可以访问SV中模块的简单端口,但我无法访问作为记录元素的端口。我尝试导入具有 import
和 library/package 名称的不同组合的 VHDL 包,但没有成功。
从库LIB_A
导入VHDL包的语法是什么?我还需要考虑其他事情吗?
代码示例:
import my_package::*; // LIB_A?
module checker_m;
//
// A plain SVA assertion
//
always dummy_a: assert ( my_module.record_output.Reg1.some_sig == 0 );
endmodule
bind my_module checker_m checker_inst ();
正如@toolic 提到的,这个问题似乎确实是特定于供应商的。由于某些原因,当我以小写形式编写记录元素时,它会起作用。其余部分(信号、模块)我在与 VHDL 中相同的情况下编写,并且有效。只有记录元素导致问题,直到它们被写成小写。
我有一个编译成库的 VHDL 模块,比方说,LIB_A
。该模块有记录的端口,相应的类型定义在一个包中,该包也被编译成LIB_A
。我想为模块编写一些断言并使用 OneSpin 检查它们。
目前我遇到的问题是我可以访问SV中模块的简单端口,但我无法访问作为记录元素的端口。我尝试导入具有 import
和 library/package 名称的不同组合的 VHDL 包,但没有成功。
从库LIB_A
导入VHDL包的语法是什么?我还需要考虑其他事情吗?
代码示例:
import my_package::*; // LIB_A?
module checker_m;
//
// A plain SVA assertion
//
always dummy_a: assert ( my_module.record_output.Reg1.some_sig == 0 );
endmodule
bind my_module checker_m checker_inst ();
正如@toolic 提到的,这个问题似乎确实是特定于供应商的。由于某些原因,当我以小写形式编写记录元素时,它会起作用。其余部分(信号、模块)我在与 VHDL 中相同的情况下编写,并且有效。只有记录元素导致问题,直到它们被写成小写。