Vengineerの妄想(準備期間)

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

The VMM TLM Reactive Interface


VMM CentralのブログThe VMM TLM Reactive Interfaceは、
Example of Transaction-Level Communication in VMM 1.2の続きのようです。

vmm_tlm_reactive_if'というexportの説明です。
この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