Forum Discussion
Questasim UVM macros
Any updates on this?
Regards,
Richard Tan
yes in one module "dut" it was spelled wrong but still compilation results in error of not finding the uvm_pkg .
i have made some changes see below :
//uvm_sim_pk//
////////////////////////
`ifndef UVM_SIM_PK
`define UVM_SIM_PK
package uvm_sim_pk;
`include "C:/intelFPGA_lite/24.1std/questa_fse/verilog_src/uvm-1.1d/src/tlm1/uvm_tlm_imps.svh"
`include "C:/intelFPGA_lite/24.1std/questa_fse/verilog_src/uvm-1.1d/src/uvm_pkg.sv"
`include "uvm_macros.svh"
import uvm_pkg::*;
class my_transaction extends uvm_sequence_item;
`uvm_object_utils(my_transaction)
rand int addr;
rand int data;
rand bit r0w1;
function new (string name = "");
// Without a string name the transaction would be anonymous
super.new(name);
endfunction: new
///////////////////////////////////////////////////////////////////////////////////////////////
//top.sv//
`include "uvm_sim_pk.sv"
module top;
import uvm_sim_pk::*;
dut_if dut_if1 ();
dut dut1 ( .i_f(dut_if1) );
// Test classes are better placed in a package, but defining the class here
// avoids the need to introduce set_config_db to connect the virtual interface
// in this very simple example
//////////////////////////////////////////////////////////////////////////////////////////////
//dut.sv//
interface dut_if();
`include "uvm_pkg.sv"
`include "uvm_macros.svh"
import uvm_pkg::*;
int addr;
int data;
bit r0w1;
modport test (output addr, data, r0w1);
modport dut (input addr, data, r0w1);
////////////////////////////////////////////////////////////////////////
// do file //
## Questasim do file ##
vlib work
vlog -sv -work work +incdir+C:/intelFPGA/23.1std/questa_fe/verilog_src/uvm-1.1d/src uvm_tlm_imps.svh
vlog -sv -work work +incdir+C:/intelFPGA/23.1std/questa_fe/verilog_src/uvm-1.1d/src uvm_pkg.sv
vlog -sv -work work +incdir+C:/intelFPGA/23.1std/questa_fe/verilog_src/uvm-1.1d/src uvm_sim_pk.sv
vlog -sv -work work +incdir+C:/intelFPGA/23.1std/questa_fe/verilog_src/uvm-1.1d/src dut.sv
vlog -sv -work work +incdir+C:/intelFPGA/23.1std/questa_fe/verilog_src/uvm-1.1d/src top.sv
/////////////////////////////////////////////////////////////////////////
But i still this error :
- RichardT_altera1 year ago
Super Contributor
Its a UVM guideline to use .sv extensions for compile files and .svh for `include files.
You're trying to compile uvm_tlm_imps.svh directly:vlog -sv -work work +incdir+C:/intelFPGA/23.1std/questa_fe/verilog_src/uvm-1.1d/src uvm_tlm_imps.svh
This is incorrect. Remove that line — the uvm_tlm_imps.svh file will be included inside other UVM source files (like uvm_pkg.sv) automatically.
Regards,
Richard Tan