Verification Engineerの戯言
vmm_channel_adapterクラスは、put、get、peekのTLMインターフェースを使うovm_componentとVMM componentを接続するために使います。
sv/interop_lib/vmm_channel_adapter.svファイルで次のように定義されています。
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_componentがputインタフェースを使うとき、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