ovm_transaction.svh

Go to the documentation of this file.
00001 // $Id: ovm__transaction_8svh-source.html,v 1.1 2008/10/07 21:54:19 alex.marin Exp $
00002 //----------------------------------------------------------------------
00003 //   Copyright 2007-2008 Mentor Graphics Corporation
00004 //   Copyright 2007-2008 Cadence Design Systems, Inc.
00005 //   All Rights Reserved Worldwide
00006 //
00007 //   Licensed under the Apache License, Version 2.0 (the
00008 //   "License"); you may not use this file except in
00009 //   compliance with the License.  You may obtain a copy of
00010 //   the License at
00011 //
00012 //       http://www.apache.org/licenses/LICENSE-2.0
00013 //
00014 //   Unless required by applicable law or agreed to in
00015 //   writing, software distributed under the License is
00016 //   distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
00017 //   CONDITIONS OF ANY KIND, either express or implied.  See
00018 //   the License for the specific language governing
00019 //   permissions and limitations under the License.
00020 //----------------------------------------------------------------------
00021 
00022 `ifndef OVM_TRANSACTION_SVH
00023 `define OVM_TRANSACTION_SVH
00024 
00025 `include "base/ovm_object.svh"
00026 
00027 typedef class ovm_event;
00028 typedef class ovm_event_pool;
00029 typedef class ovm_component;
00030     
00031 //------------------------------------------------------------------------------
00032 //
00033 // CLASS: ovm_transaction
00034 //
00035 // The base class transactions class
00036 //
00037 //------------------------------------------------------------------------------
00038     
00039 virtual class ovm_transaction extends ovm_object;
00040 
00041   //For a transaction, the parent is the initiator of the transaction
00042   extern function        new            (string name="", 
00043                                          ovm_component initiator=null);
00044 
00045   extern function void          set_initiator  (ovm_component initiator);
00046   extern function ovm_component get_initiator  ();
00047 
00048   //Transaction interface
00049   extern function void    accept_tr         (time accept_time=0);
00050   extern function integer begin_tr          (time begin_time=0);
00051   extern function integer begin_child_tr    (time begin_time=0, 
00052                                              integer parent_handle=0);
00053   extern function void    end_tr            (time end_time=0, bit free_handle=1);
00054 
00055   extern function integer get_tr_handle     ();
00056   extern function void    disable_recording ();
00057   extern function void    enable_recording  (string stream);
00058   extern function bit     is_recording_enabled();
00059   extern function bit     is_active         ();
00060 
00061   //Methods to add action to transaction interface
00062   extern virtual protected function void   do_accept_tr      ();
00063   extern virtual protected function void   do_begin_tr       ();
00064   extern virtual protected function void   do_end_tr         ();
00065 
00066   //Access methods
00067   extern function ovm_event_pool get_event_pool ();
00068   extern function time   get_begin_time     ();
00069   extern function time   get_end_time       ();
00070   extern function time   get_accept_time    ();
00071 
00072   //Override data control methods for internal properties
00073   extern virtual function void do_print (ovm_printer printer);
00074   extern virtual function void do_record (ovm_recorder recorder);
00075   extern virtual function void do_copy (ovm_object rhs);
00076 
00077   //protected ovm_events  m_events;
00078 
00079   extern protected function integer m_begin_tr (time    begin_time=0, 
00080                                                 integer parent_handle=0,
00081                                                 bit     has_parent=0);
00082 
00083   local time             begin_time=-1;
00084   local time             end_time=-1;
00085   local time             accept_time=-1;
00086 
00087   local ovm_component    initiator;
00088   local integer          stream_handle;
00089   local integer          tr_handle;      
00090   local bit              record_enable = 0;
00091 
00092   local ovm_event_pool   m_event_pool = new;
00093 
00094   local integer m_transaction_id = 0;
00095   extern function void               set_transaction_id(integer id);
00096   extern function integer            get_transaction_id();
00097        
00098   extern virtual function string convert2string;
00099 
00100 endclass
00101 
00102 `endif  //OVM_TRANSACTION_SVH

Intelligent Design Verification
Intelligent Design Verification
Project: OVM, Revision: 1.1.0
Copyright (c) 2008 Intelligent Design Verification.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included here:
http://www.intelligentdv.com/licenses/fdl.txt
doxygen
Doxygen Version: 1.4.6
Mon Sep 29 14:23:30 2008
Find a documentation bug? Report bugs to: bugs.intelligentdv.com Project: DoxygenFilterSV