VMM CentralのブログThe VMM TLM Reactive Interfaceは、
Example of Transaction-Level Communication in VMM 1.2の続きのようです。
Example of Transaction-Level Communication in VMM 1.2の続きのようです。
vmm_tlm_reactive_if'というexportの説明です。
このvmm_tlm_reactive_ifは、ターゲット側に次のように使います。
このvmm_tlm_reactive_ifは、ターゲット側に次のように使います。
引用
class consumer extends vmm_xactor;
vmm_tlm_reactive_if #(vmm_tlm_generic_payload, 4) reactive_export;
…
virtual function void build_ph;
super.build_ph();
reactive_export = new( this, "reactive_export");
endfunction: build_ph
パラメータにペイロードと接続でする数(この例では、4)を指定します。このexportからデータを獲得するときは、
reactive_export.get(tx);とし、データの処理が終了したら、
reactive_export.completed();のようにします。
データが無いときは、getタスクはブロックします。ブロックしたくないときは、try_getタスクを使います。
UVMがそろそろ1.0正式版がリリースされますが、VMMもまだまだ使えますよ!
検証、Verification、SystemVerilog、VMM、Verification Methodology Manual