class write_test extends test_base;
int cmd_arr[$];
bit [14:0] addr_arr[$];
bit [7:0] data_arr[$];
bit [1:0] td_arr[$];
bit [1:0] addr_inc_arr[$];
bit [3:0] num_rd_arr[$];
`uvm_component_utils(write_test)
function new(string name, uvm_component parent);
super.new(name, parent);
`uvm_info("TRACE", $sformatf("%m"), UVM_HIGH);
endfunction
virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
`uvm_info("TRACE", $sformatf("%m"), UVM_HIGH);
repeat(3) cmd_arr.push_front(1);
addr_arr.push_front(15'h7ffc);
data_arr.push_front(8'hce);
addr_arr.push_front(15'h7ff2);
data_arr.push_front(8'h0a);
addr_arr.push_front(15'h1000);
data_arr.push_front(8'h11);
// Specify which sequence to run
pkt_seq_base::type_id::set_type_override(direct_seq::get_type());
uvm_config_db#(int)::set(this, "env.e_agent*.seqr", "cmd_arr", cmd_arr);
uvm_config_db#(bit [14:0])::set(this, "env.e_agent*.seqr", "addr_arr", addr_arr);
uvm_config_db#(bit [7:0])::set(this, "env.e_agent*.seqr", "data_arr", data_arr);
endfunction
endclass
class direct_seq extends pkt_seq_base;
int msg_id = 0;
int clk_scal = 25;
int cmd_arr[$];
bit [14:0] addr_arr[$];
bit [7:0] data_arr[$];
bit [1:0] td_arr[$];
bit [1:0] addr_inc_arr[$];
bit [3:0] num_rd_arr[$];
write_seq wr_seq;
read_seq rd_seq;
`uvm_object_utils_begin(direct_seq)
`uvm_field_queue_int(cmd_arr, UVM_ALL_ON)
`uvm_field_queue_int(addr_arr, UVM_ALL_ON)
`uvm_field_queue_int(data_arr, UVM_ALL_ON)
`uvm_field_queue_int(td_arr, UVM_ALL_ON)
`uvm_field_queue_int(addr_inc_arr, UVM_ALL_ON)
`uvm_field_queue_int(num_rd_arr, UVM_ALL_ON)
`uvm_object_utils_end
// Other codes
endclass
I’m having the error on data type incompatibility as listed below. How can I debug these errors?
uvm_config_db#(int)::set(this, "env.e_agent*.seqr", "cmd_arr", cmd_arr);
|
ncelab: *E,TYCMPAT (write_test.sv,31|73): formal and actual do not have assignment compatible data types (expecting datatype compatible with ‘int’ but found ‘queue of int’ instead).
uvm_config_db#(bit [14:0])::set(this, "env.e_agent*.seqr", "addr_arr", addr_arr);
|
ncelab: *E,TYCMPAT (write_test.sv,32|82): formal and actual do not have assignment compatible data types (expecting datatype compatible with ‘packed array’ but found ‘queue of packed array [14:0] of bit’ instead).
uvm_config_db#(bit [7:0])::set(this, "env.e_agent*.seqr", "data_arr", data_arr);
|
ncelab: *E,TYCMPAT (write_test.sv,33|81): formal and actual do not have assignment compatible data types (expecting datatype compatible with ‘packed array’ but found ‘queue of packed array [7:0] of bit’ instead).