`include "hello_pkg.sv" 和import uvm_pkg::*; 区别
时间:10-02
整理:3721RD
点击:
`include "hello_pkg.sv" 和import uvm_pkg::*; 区别 ?这里做了两次,为什么?
`include "hello_pkg.sv"//这里Include hello_pkg.sv"
`include "dut_hello.v"//测试模块DUT文件
`include "hello_if.sv"//接口文件
`include "hello_case.sv"//测试用例case
module hello_tb_top;
import uvm_pkg::*;
import hello_pkg::*;//import hello_pkg::*
reg clk;
hello_if my_hello_if(clk,clk);//实例化接口
dut my_dut(.clk(clk),
.rxd(my_hello_if.rxd),
.rx_dv(my_hello_if.rx_dv),
.txd(my_hello_if.txd),
.tx_en(my_hello_if.tx_en)
);//实例化DUT,并将DUT的输入输出端口和my_hello_if连接在一起
initial begin//产生DUT需要的时钟
clk = 0;
forever begin
#10;clk = ~clk;
end
end
initial begin//通过config_db的set方式将my_if通知driver和monitor
//从而Driver和monitor可以直接和DUT通信。
uvm_config_db#(virtual hello_if)::set(null,"uvm_test_top.env.input_agt.drv","hello_if",my_hello_if);
uvm_config_db#(virtual hello_if)::set(null,"uvm_test_top.env.output_agt.mon","hello_if",my_hello_if);
run_test();//启动UVM
end
endmodule
`include "hello_pkg.sv"//这里Include hello_pkg.sv"
`include "dut_hello.v"//测试模块DUT文件
`include "hello_if.sv"//接口文件
`include "hello_case.sv"//测试用例case
module hello_tb_top;
import uvm_pkg::*;
import hello_pkg::*;//import hello_pkg::*
reg clk;
hello_if my_hello_if(clk,clk);//实例化接口
dut my_dut(.clk(clk),
.rxd(my_hello_if.rxd),
.rx_dv(my_hello_if.rx_dv),
.txd(my_hello_if.txd),
.tx_en(my_hello_if.tx_en)
);//实例化DUT,并将DUT的输入输出端口和my_hello_if连接在一起
initial begin//产生DUT需要的时钟
clk = 0;
forever begin
#10;clk = ~clk;
end
end
initial begin//通过config_db的set方式将my_if通知driver和monitor
//从而Driver和monitor可以直接和DUT通信。
uvm_config_db#(virtual hello_if)::set(null,"uvm_test_top.env.input_agt.drv","hello_if",my_hello_if);
uvm_config_db#(virtual hello_if)::set(null,"uvm_test_top.env.output_agt.mon","hello_if",my_hello_if);
run_test();//启动UVM
end
endmodule
include 你把代码吃进来,但是并不会被调用。import 调用
我并不用include,我在filelist吃它
我觉得你缺任何一个都不会work
谢谢!
小编好棒
include 把对应文件中的内容放到该文件中使用。import引用命名空间,可以使用对应命名空间下的参数。
我觉得`include "hello_pkg.sv"可以省略,前提是filelist中包含hello_pkg.sv并且在 hello_tb_top.sv 前面。