Vengineerの戯言

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

VMM : vmm_tlm_analysis_exportクラス

Verification Engineerの戯言 : SystemVerilogの世界へようこそ

vmm_tlm_analysis_portクラスのインスタンスと接続できるのは、vmm_tlm_analysis_portクラスのインスタンスです。
このことは、VMM : PortとExportで説明した、vmm_tlm_b_transport_portvmm_tlm_b_transport_exportの関係と同じです。

vmm_tlm_analysis_exportクラスの定義は、vmm_tlm_analysis_portクラスと基本的には同じです。
    class vmm_tlm_analysis_export#(type T = vmm_tlm_xactor,
                                   type D = vmm_data)
                                   extends vmm_tlm_analysis_export_base#(D);
vmm_tlm_analysis_portクラスと同様に、vmm_tlm_analysis_exportクラスでも、2つのパラメータ(TDを持ちます。
デフォルトでは、Dvmm_tlm_xactorクラス、Tvmm_dataクラスです。

vmm_tlm_analysis_exportクラスは、次のように、vmm_tlm_alalysis_portクラスからトランザクションを受け取るクラスの中にインスタンス化します。
    class tlm_scoreboard extends vmm_group;

      vmm_tlm_analysis_export#(tlm_scoreboard,my_trans) analysis_export = new(this,"scb_analysis");

      function write(int id=-1, my_trans trans);
      endfunction
    endclass
この例では、Tをデフォルトのvmm_tlm_xactorクラスからtlm_scoreboardクラスに、
また、Dをデフォルトのvmm_dataクラスからmy_transクラスに変えています。
そして、write関数も定義しています。

検証、Verification、SystemVerilog、VMM、Verification Methodology Manual