1、测试代码
a.pkg
常见错误如下:
1)在package里include 一个interface.sv文件,出错如下,所以在package里不能include 一个interface;
2)在package里看不到另外一个package,b_pkg is not a package。
所以在一个package里直接import一个package是找不到的,即使在前面已经include了这个package。
3)package里include另外一个package,报错如下:
因此,package中无法include另一个package,那么能否import 另外一个package的内容呢?
可以的,如果需要在a.pkg中import b.pkg,需要在include a.pkg之前include b.pkg,如下:
`include b.pkg
`include a.pkg
否则,会出现找不到package的情况。
4)include和import的区别
include 是把所有的文本内容原样插入到代码中;
import 不会把文本内容插入,其作用是把package的内容引入import 语句所在的作用域。
5)如何在一个package 中import 另一个package?
如果在package a_pkg中import了package b_pkg::type_b,那么在module1中import a_pkg::*时,无法引用到type_b。因为a_pkg只是使得b_pkg::type_b在a_pkg域中可见并加以使用,并未定义在a_pkg中。所以,用户需要牢记一点的是,import操作使得类型可见的域只是调用该import时当前的域。例如下面的例子中,a_pkg中可见b_pkg::b_mon,但是module1则无法可见a_pkg::b_mon。
此处引用其他文章中示例