ovm_driver.svh

Go to the documentation of this file.
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
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