SPI UVM Adapter
class spi_reg_adapter extends uvm_reg_adapter; const string REPORT_TAG = "SPI_REG_ADAPTER"; `uvm_object_utils(spi_reg_adapter) function new (string name = "spi_reg_adapter"); super.new(name); `uvm_info(REPORT_TAG, $sformatf("%m", UVM_NONE) provides_responses =1; endfunction virtual function uvm_sequence_item reg2bus (cont ref uvm_reg_bus_op rw); spi_seq_item spi_req; spi_req = spi_seq_item::type_id::create("spi_reg"); spi_req.inc=0; spi_req.data_size = 1; spi_req.address = rw.addr; if(rw.kind == UVM_READ) begin spi_req.cmd_val = 0; end else begin spi_req.cmd_val = 1; spi_req.data_wr[0] = rw.data; end return spi_req; endfunction virtual function void bus2reg (uvm_sequence_item bus_item, cont ref uvm_reg_bus_op rw); spi_seq_item spi_req; spi_req = spi_seq_item::type_id::create("spi_reg"); if(!$cast(spi_req, bus_item)) begin ...