我想在我的顶层模块中使用这个包。
package x_mater_pkg;
`timescale 1 ns/1 ps
import uvm_pkg::*;
`include "uvm_macros.svh"
localparam DATA_W = 128;
localparam x_PORTS = 4;
localparam ADDR_WIDTH = 2;
`include "x_driver.sv"
`include "x_env.sv"
`include "x_master_agent.sv"
`include "xsequence.sv"
`include "x.sv"
`include "x_sequencer.sv"
`include "x_tx_seq_item.sv"
`include "x_top.sv"
endpackage : x_master_pkg
在我的顶层模块中使用这个pkg:。
module top_x;
import x_master_pkg::*;
...
endmodule
一直得到一个错误,有人知道为什么吗?在其他情况下,我的slave接口的实例不被识别。
SV包不能包含其他设计元素。A module
是一个设计元素,不能在包里面。所以,您的 include
不应存在。
通常处理包的方法是
包括参数、类、函数......等其他非设计元素在包内。
在使用其成员的模块中导入包。
编译模型,使包含包的文件在使用前被编译。
x_mater_pkg.sv.
package x_mater_pkg;
localparam DATA_W = 128;
localparam x_PORTS = 4;
localparam ADDR_WIDTH = 2;
...
endpackage
x_top.sv
`include "uvm_macros.svh"
module top_x;
import uvm_pkg::*
import x_master_pkg::*;
...
endmodue
然后
compile uvm_pkg.sv x_mater_pkg.sv x_top.sv