Hi,
can anyone tell me why this error is coming up and help to resolve it.?
please find the below code and error,
class spi_reg_adapter extends uvm_reg_adapter;
`uvm_object_utils(spi_reg_adapter)
function new(string name = "spi_reg_adapter");
super.new(name);
endfunction
virtual function uvm_sequence_item reg2bus(const ref uvm_reg_bus_op rw);
// spi_trans rt_spi_trans = spi_trans::type_id::create("rt_spi_trans");
endfunction : reg2bus
virtual function void bus2reg(uvm_sequence_item bus_item, ref uvm_reg_bus_op rw);
spi_trans rt_spi_trans;
if (!$cast(rt_spi_trans, bus_item))
begin
assert($cast(rt_spi_trans,bus_item))
else
`uvm_fatal (get_name()," SPI REG WR/RD to PCIe Register model - Failed bus item is not typecast with reg trans");
return;
end
if(rt_spi_trans.pkt_type == WRITE)
begin //{
rw.kind = UVM_WRITE;
rw.addr = rt_spi_trans.address;
rw.data = rt_spi_trans.write_data;
`uvm_info(get_type_name(),$sformatf(" TRANSACTION_TYPE : %h, ADDR : %h, DATA : %h ",rw.kind,rw.addr,rw.data),UVM_LOW)
end //}
else if(rt_spi_trans.pkt_type == READ)
begin //{
rw.kind = UVM_WRITE;
rw.addr = rt_spi_trans.address;
rw.data = rt_spi_trans.read_data;
`uvm_info(get_type_name(),$sformatf(" TRANSACTION_TYPE : %h, ADDR : %h, DATA : %h ",rw.kind,rw.addr,rw.data),UVM_LOW)
end //}
rw.status = UVM_IS_OK;
endfunction : bus2reg
endclass : spi_reg_adapter
UVM_FATAL …/src/reg_model/spi_reg_adapter.svh(30) @ 27575.000ns: reporter [spi_adapter] SPI REG WR/RD to PCIe Register model - Failed bus item is not typecast with reg trans
Thanks,
Sandeep Gaur