Verification Engineerの戯言 : SystemVerilogの世界へようこそ
vmm_tlm_analysis_portクラスのインスタンスと接続できるのは、vmm_tlm_analysis_portクラスのインスタンスです。
このことは、VMM : PortとExportで説明した、vmm_tlm_b_transport_portとvmm_tlm_b_transport_exportの関係と同じです。
このことは、VMM : PortとExportで説明した、vmm_tlm_b_transport_portとvmm_tlm_b_transport_exportの関係と同じです。
vmm_tlm_analysis_exportクラスの定義は、vmm_tlm_analysis_portクラスと基本的には同じです。
デフォルトでは、Dはvmm_tlm_xactorクラス、Tはvmm_dataクラスです。
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つのパラメータ(TとDを持ちます。
デフォルトでは、Dはvmm_tlm_xactorクラス、Tはvmm_dataクラスです。
vmm_tlm_analysis_exportクラスは、次のように、vmm_tlm_alalysis_portクラスからトランザクションを受け取るクラスの中にインスタンス化します。
また、Dをデフォルトのvmm_dataクラスからmy_transクラスに変えています。
そして、write関数も定義しています。
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