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