Vengineerの妄想(準備期間)

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

OVM : ovm_transactionクラス

Verification Engineerの戯言

ovm_transationクラスは、OVMで基本的なデータクラスです。ovm_objectクラスを継承するので、
copyprintrecord関数を再定義しています。また、トランザクションの時間に関する関数をサポートしています。
base/ovm_transaction.svh
    virtual class ovm_transaction extends ovm_object;
        function new (string name="");
        function bit is_active ();
        function ovm_event_pool get_event_pool ();

        virtual function string convert2string();

        function void set_initiator (ovm_component initiator);
        function ovm_component get_initiator ();

        function void accept_tr (time accept_time=0);
        function integer begin_tr (time begin_time=0);
        function integer begin_child_tr (time begin_time=0, integer parent_handle=0);
        function void end_tr (time end_time=0, bit free_handle=1);

        function integer get_tr_handle ();
        function void disable_recording ();
        function void enable_recording (string stream);
        function bit is_recording_enabled();

        virtual protected function void do_accept_tr ();
        virtual protected function void do_begin_tr ();
        virtual protected function void do_end_tr ();

        function time get_begin_time ();
        function time get_end_time ();
        function time get_accept_time ();
    endclass
enable_recording関数でfiberへのトランザクションの記録ができるようになっているが、
ovm_create_fiber関数(src/ovm_misc.sv)は現時点未実装。

検証、Verification、SystemVerilog、OVM、Open Verification Methodology