ovm_virtual_sequencer.svh

Go to the documentation of this file.
00001 // $Id: ovm__virtual__sequencer_8svh-source.html,v 1.1 2008/10/07 21:54:28 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_VIRTUAL_SEQUENCER_SVH
00023 `define OVM_VIRTUAL_SEQUENCER_SVH
00024 
00025 
00026 //------------------------------------------------------------------------------
00027 //
00028 // CLASS: ovm_seq_cons_if
00029 //
00030 //------------------------------------------------------------------------------
00031 
00032 class ovm_seq_cons_if extends ovm_component;
00033 
00034   // variable to hold the sequence consumer as an ovm_sequencer_base
00035   ovm_sequencer_base seqrb_ref;
00036 
00037   // variable to hold the sequence consumer as an ovm_sequencer if the
00038   // consumer is that type
00039   ovm_sequencer seqrnp_ref;
00040 
00041   // constructor
00042   extern function new (string name="", ovm_component parent = null);
00043 
00044   // do_print for this object
00045   extern function void do_print (ovm_printer printer);
00046 
00047   // polymorphic creation
00048   extern function ovm_object create (string name="");
00049 
00050   // get_type_name implementation
00051   extern virtual function string get_type_name();
00052 
00053   // method to connect this object to an ovm_sequence_prod_if
00054   //extern function void connect_if(ovm_seq_prod_if_base seqr_if);
00055   extern function void connect_if(ovm_seq_prod_if seqr_if);
00056 
00057   // method to query who the current grabber of the connected sequencer is
00058   extern function ovm_sequence current_grabber();
00059 
00060   // method to query if the connected sequencer is grabbed
00061   extern function bit is_grabbed();
00062 
00063   // method to start a sequence on the connected sequencer
00064   extern task start_sequence(ovm_sequence this_seq);
00065 
00066   // method to grab the connected sequencer
00067   extern task grab(ovm_sequence this_seq);
00068 
00069   // method to ungrab the connected sequencer
00070   extern function void ungrab(ovm_sequence this_seq);
00071 
00072   // method to query if this interface object is connected
00073   extern function bit is_connected();
00074 
00075   // method to query whether this interface is connected to a virtual sequencer
00076   // or sequencer
00077   extern function bit is_virtual_sequencer();
00078 
00079   // method to get the connecte sequencer's type name
00080   extern function string get_sequencer_type_name();
00081 
00082   // Macro to enable factory creation
00083   `ovm_component_registry(ovm_seq_cons_if, ovm_seq_cons_if)
00084 
00085 endclass
00086 
00087 
00088 //------------------------------------------------------------------------------
00089 //
00090 // CLASS: ovm_virtual_sequencer
00091 //
00092 //------------------------------------------------------------------------------
00093 
00094 class ovm_virtual_sequencer extends ovm_sequencer_base;
00095 
00096   //ovm_seq_cons_if_base seq_cons_if[string];
00097   ovm_seq_cons_if seq_cons_if[string];
00098 
00099   // Constructor
00100   extern function new (string name, ovm_component parent);
00101 
00102   // Provide implementations virtual methods such as get_type_name and create,
00103   // and register fields for outside access and debug. 
00104   extern virtual function string get_type_name();
00105 
00106   extern virtual function void do_print(ovm_printer printer);
00107 
00108   // Function executed on startup to process user-selected default_sequence
00109   extern virtual protected task start_default_sequence();
00110 
00111   extern virtual function void add_seq_cons_if(string if_name);
00112 
00113 endclass: ovm_virtual_sequencer
00114 
00115 
00116 `endif // OVM_VIRTUAL_SEQUENCER_SVH
00117 

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:20:12 2008
Find a documentation bug? Report bugs to: bugs.intelligentdv.com Project: DoxygenFilterSV