00001 // $Id: ovm_misc.svh 17 2009-12-28 18:29:28Z seanoboyle $ 00002 //------------------------------------------------------------------------------ 00003 // Copyright 2007-2009 Mentor Graphics Corporation 00004 // Copyright 2007-2009 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_MISC_SVH 00023 `define OVM_MISC_SVH 00024 00025 // Used to indicate "no valid default value" in a parameter 00026 virtual class avm_virtual_class; endclass 00027 00028 //------------------------------------------------------------------------------ 00029 // 00030 // Topic: ovm_void 00031 // 00032 // The ~ovm_void~ class is the base class for all OVM classes. It is an abstract 00033 // class with no data members or functions. It allows for generic containers of 00034 // objects to be created, similar to a void pointer in the C programming 00035 // language. User classes derived directly from ~ovm_void~ inherit none of the 00036 // OVM functionality, but such classes may be placed in ~ovm_void~-typed 00037 // containers along with other OVM objects. 00038 // 00039 //------------------------------------------------------------------------------ 00040 00041 virtual class ovm_void; 00042 endclass 00043 00044 // Forward declaration since scope stack uses ovm_objects now 00045 typedef class ovm_object; 00046 00047 //---------------------------------------------------------------------------- 00048 // 00049 // CLASS- ovm_scope_stack 00050 // 00051 //---------------------------------------------------------------------------- 00052 00053 class ovm_scope_stack; 00054 local string m_scope=""; 00055 local string m_scope_arg=""; 00056 local int m_depth=0; 00057 local bit m_object_map[ovm_void]; 00058 local ovm_void m_stack[$]; 00059 00060 extern function void set (string s, ovm_object obj); 00061 extern function void down (string s, ovm_object obj); 00062 extern function void down_element (int element, ovm_object obj); 00063 extern function void up (ovm_object obj, byte separator="."); 00064 extern function void up_element (ovm_object obj); 00065 extern function void set_arg (string arg); 00066 extern function void unset_arg (string arg); 00067 extern function void set_arg_element (string arg, int ele); 00068 extern function int depth (); 00069 extern function string get (); 00070 extern function string get_arg (); 00071 extern function ovm_object current (); 00072 00073 extern function bit in_hierarchy (ovm_object obj); 00074 endclass 00075 00076 `endif // OVM_MISC_SVH
![]() Intelligent Design Verification Project: OVM, Revision: 2.0.3 |
Copyright (c) 2008-2010 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.6.3 IDV SV Filter Version: 2.6.3 Sat Jun 19 11:47:31 2010 |