UVM RALアダプタ
UVM登録モデルでは、我々は、設計レジスタアクセス、すなわち行う WRITE 設計レジスタまたはに READ RALメソッドを呼び出すことにより、設計レジスタからを。最後に、これらのトランザクションがバスを設計するために配置する必要があり、これはRALコンポーネントによって行われます アダプター。
RALアダプタはRALモデルとインタフェースとの間の変換器として作用します。これは、インターフェイス/バス・トランザクションにRALメソッドのトランザクションを変換します。
- レジスタモデルとの間のアダプタの変換は、書き込み方法およびインターフェイス固有のトランザクションを読み取ります
- トランザクション・アダプタが拡張することによって実現される uvm_reg_adapterの クラスとreg2bus()とbus2regを実装()メソッド
A、UVM RAL reg2bus
- reg2bus方法は、インタフェース(バス)取引にRALトランザクションを変換します
二、UVM RAL bus2reg
- bus2reg方法はRAL取引にインタフェース(バス)トランザクションを変換します
class tb_env extends uvm_env;
reg_model regmodel;
uvm_reg_predictor#(ahb_trans) ahb2reg_predictor;
reg2ahb_adapter reg_adapter;
ahb_agent ahb;
virtual function void build_phase(uvm_phase phase);
ahb2reg_predictor = new(“ahb2reg_predictor”, this);
endfunction
virtual function void connect_phase(uvm_phase phase);
if (regmodel.get_parent() == null) begin
reg_adapter = reg2ahb_adapter::type_id::create(“reg_adapter”,,get_full_name());
...
ahb2reg_predictor.map = regmodel.AHB;
ahb2reg_predictor.adapter = reg_adapter;
ahb.monitor.ap.connect(ahb2reg_predictor.bus_in);
end
...
endfunction
...
endclass