Verification Engineerの戯言 : SystemVerilogの世界へようこそ
vmm_tlm_analysis_portクラスの定義は、次のようになります。
vmm_tlm_analysis_portクラスは、2つのパラメータ(INITIATORとDATA)を持ちます。
vmm_tlm_analysis_portクラスは、2つのパラメータ(INITIATORとDATA)を持ちます。
class vmm_tlm_analysis_port#(type INITIATOR = vmm_tlm_xactor, type DATA = vmm_data) extends vmm_tlm_analysis_port_base#(DATA);
vmm_tlm_analysis_portクラスは、次のようにトランザクタクラスの中でインスタンス化します。
また、DATAをデフォルトのvmm_dataクラスからmy_transクラスに変えています。
b_transport関数の中で、write関数にてトランザクションデータ(trans)をブロードキャストしています。
class tlm_consumer extends vmm_xactor; vmm_tlm_analysis_port#(tlm_consumer, my_trans) analysis_port = new(this,"consumer_analysis"); function b_transport(int id=-1,my_trans trans, ref int delay); this.analysis_port.write(trans); endfunction endclassこの例では、INITIATORをデフォルトのvmm_tlm_xactorクラスからtlm_comsumerクラスに変えています。
また、DATAをデフォルトのvmm_dataクラスからmy_transクラスに変えています。
b_transport関数の中で、write関数にてトランザクションデータ(trans)をブロードキャストしています。
b_transport関数は、VMM : b_transportで説明しました。
vmm_tlm_analysis_portクラスは、vmm_tlm_b_transport_portクラスと同じようにtlm_bindとtlm_unbindが使えます。
検証、Verification、SystemVerilog、VMM、Verification Methodology Manual