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 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 Version: 1.4.6 Mon Sep 29 14:20:12 2008 |