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); endtaskchan.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); endtaskchan.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