00001 // $Id: ovm__driver_8svh-source.html,v 1.1 2008/10/07 21:54:30 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_DRIVER_SVH 00023 `define OVM_DRIVER_SVH 00024 00025 00026 typedef class ovm_driver; 00027 typedef class ovm_seq_item_cons_if; 00028 typedef class ovm_sequence_item; 00029 00030 00031 //------------------------------------------------------------------------------ 00032 // 00033 // CLASS: ovm_seq_item_prod_if 00034 // 00035 //------------------------------------------------------------------------------ 00036 00037 class ovm_seq_item_prod_if extends ovm_component; 00038 00039 // variable to hold the sequence item producer reference 00040 ovm_sequencer seqr_ref; 00041 00042 // constructor 00043 extern function new (string name="", ovm_component parent = null); 00044 00045 // print method for this object 00046 extern function void do_print (ovm_printer printer); 00047 00048 // polymorphic creation 00049 extern function ovm_object create (string name=""); 00050 00051 // get_type_name implementation 00052 extern virtual function string get_type_name(); 00053 00054 // connection method for the interfaces 00055 extern function void connect_if(ovm_seq_item_cons_if seqr_if); 00056 00057 // method to signal that the driver is done with the item 00058 extern function void item_done(ovm_sequence_item item=null); 00059 00060 // method to query if the producer has an item available 00061 extern function bit has_do_available(); 00062 00063 // method to add delta delay for sequence item processing 00064 extern task wait_for_sequences(); 00065 00066 // method to get a base item from the producer (blocking) 00067 extern task get_next_item(output ovm_sequence_item item); 00068 00069 // method to get a base item from the producer (blocking) 00070 extern task try_next_item(output ovm_sequence_item item); 00071 00072 // Macro to enable factory creation 00073 `ovm_component_registry(ovm_seq_item_prod_if, ovm_seq_item_prod_if) 00074 00075 endclass 00076 00077 00078 //------------------------------------------------------------------------------ 00079 // 00080 // CLASS: ovm_driver 00081 // 00082 //------------------------------------------------------------------------------ 00083 00084 virtual class ovm_driver extends ovm_threaded_component; 00085 00086 // sequence item producer interface 00087 ovm_seq_item_prod_if seq_item_prod_if; 00088 00089 // Constructor 00090 extern function new (string name, ovm_component parent); 00091 00092 endclass 00093 00094 00095 `endif // OVM_DRIVER_SVH 00096
![]() 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 |