一、下面以SVT APB Adapter為例,介紹一下uvm_reg_adapter的實現方法,以及在RAL Test中的作用。
class svt_apb_reg_adapter extends uvm_reg_adapter;
`uvm_object_utils(svt_apb_reg_adapter)
function new(string name = "svt_apb_reg_adapter");
super.new();
endfunction : new
extern virtual function uvm_sequence_item reg2bus(const ref uvm_reg_bus_op rw);
extern virtual function uvm_sequence_item bus2reg(uvm_sequence_item bus_item, ref uvm_reg_bus_op rw);
endclass : svt_apb_reg_adapter
function uvm_sequence_item svt_apb_reg_adapter::reg2bus(const ref uvm_reg_bus_op rw);
svt_apb_master_transaction apb = svt_apb_master_transaction::type_id::create("apb");
apb.xact_type = (rw.kind == UVM_READ) ? svt_apb_master_transaction::READ : svt_apb_master_transaction::WR