Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

OVM-VMM : vmm_channel_adapter

Verification Engineerの戯言

vmm_channel_adapterクラスは、putgetpeekのTLMインターフェースを使うovm_componentVMM componentを接続するために使います。
sv/interop_lib/vmm_channel_adapter.svファイルで次のように定義されています。
  class vmm_channel_adapter #(type OVM=int,
                            VMM=OVM,
                            OVM2VMM=ovm_passthru_converter #(OVM), 
                            VMM2OVM=ovm_passthru_converter #(OVM)) 
                                 extends tlm_fifo_base #(OVM);
ovm_componentputインタフェースを使うとき、getインターフェースを使うときの両方に利用できます。

putタスクは、次のようになっています。
   virtual task put(OVM t);
     VMM vmm_t;
     vmm_t = OVM2VMM::convert(t);
     chan.put(vmm_t);
     put_ap.write(t);
   endtask
chan.put(vmm_t)でVMM側にデータをputする。また、put_ap.write(t)でアナリシス・ポート'''にデータをライトする。

また、getタスクは、次のようになっています。
   virtual task get(output OVM t);
     VMM vmm_t;
     chan.get(vmm_t);
     t = VMM2OVM::convert(vmm_t);
     get_ap.write(t);
   endtask
chan.get(vmm_t)でVMM側からデータをgetする。また、get_ap.write(t)でアナリシス・ポート'''にデータをライトする。

ココまで見てきたに、vmm_channel_adapterクラスには、次のような4つのportを持ちます。
    put_export
    get_peek_export
    put_ap
    get_ap

例題は、sv/examples/ovm_interop/02_interconnected/03_vmm_channel_adapter_v2o.sv

検証、Verification、SystemVerilog、VMM、OVM、Verification Methodology Manual、Open Verification Methodology