ovm_object_globals.svh

Go to the documentation of this file.
00001 // $Id: a00248.html,v 1.1 2009/01/07 19:30:03 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_OBJECT_GLOBALS_SVH
00023 `define OVM_OBJECT_GLOBALS_SVH
00024 
00025 //This bit marks where filtering should occur to remove urm stuff from a
00026 //scope
00027 bit ovm_start_ovm_declarations = 1;
00028 
00029 //----------------------------------------------------------------------------
00030 //
00031 // General purpose parameters and typedefs
00032 //
00033 //----------------------------------------------------------------------------
00034 //
00035 //Current problem with large vector inout decls.
00036 parameter OVM_STREAMBITS = 4096; 
00037 typedef logic signed [OVM_STREAMBITS-1:0] ovm_bitstream_t;
00038 
00039 //------------------------------------------------------------------------------
00040 //
00041 // Enumerations
00042 //
00043 //------------------------------------------------------------------------------
00044 // Radix definition
00045 parameter OVM_RADIX     = 'hf000000; //4 bits setting the radix
00046 
00047 // ovm_radix_enum
00048 // ----------
00049 
00050 typedef enum {
00051    OVM_BIN       = 'h1000000,
00052    OVM_DEC       = 'h2000000,
00053    OVM_UNSIGNED  = 'h3000000,
00054    OVM_OCT       = 'h4000000,
00055    OVM_HEX       = 'h5000000,
00056    OVM_STRING    = 'h6000000,
00057    OVM_TIME      = 'h7000000,
00058    OVM_ENUM      = 'h8000000,
00059    OVM_NORADIX   = 0
00060 } ovm_radix_enum;
00061 
00062 function string ovm_radix_to_string(ovm_radix_enum radix);
00063   case(radix)
00064     OVM_BIN:     return "'b";
00065     OVM_OCT:     return "'o";
00066     OVM_DEC:     return "'s";
00067     OVM_TIME:    return "'u";
00068     OVM_STRING:  return "'a";
00069     default: return "'x";
00070   endcase
00071 endfunction
00072 
00073 // ovm_recursion_policy_enum
00074 // ---------------------
00075 
00076 typedef enum { 
00077   OVM_DEFAULT_POLICY = 0, 
00078   OVM_DEEP           = 'h400, 
00079   OVM_SHALLOW        = 'h800, 
00080   OVM_REFERENCE      = 'h1000
00081  } ovm_recursion_policy_enum;
00082 
00083 //------------------------------------------------------------------------------
00084 //
00085 // Parameters
00086 //
00087 //------------------------------------------------------------------------------
00088 
00089 parameter OVM_MACRO_NUMFLAGS    = 17;
00090 //A=ABSTRACT Y=PHYSICAL
00091 //F=REFERENCE, S=SHALLOW, D=DEEP
00092 //K=PACK, R=RECORD, P=PRINT, M=COMPARE, C=COPY
00093 //--------------------------- AYFSD K R P M C
00094 parameter OVM_DEFAULT     = 'b000010101010101;
00095 parameter OVM_ALL_ON      = 'b000000101010101;
00096 parameter OVM_FLAGS_ON    = 'b000000101010101;
00097 parameter OVM_FLAGS_OFF   = 0;
00098 
00099 //Values are or'ed into a 32 bit value
00100 //and externally
00101 parameter OVM_COPY         = (1<<0);
00102 parameter OVM_NOCOPY       = (1<<1);
00103 parameter OVM_COMPARE      = (1<<2);
00104 parameter OVM_NOCOMPARE    = (1<<3);
00105 parameter OVM_PRINT        = (1<<4);
00106 parameter OVM_NOPRINT      = (1<<5);
00107 parameter OVM_RECORD       = (1<<6);
00108 parameter OVM_NORECORD     = (1<<7);
00109 parameter OVM_PACK         = (1<<8);
00110 parameter OVM_NOPACK       = (1<<9);
00111 //parameter OVM_DEEP         = (1<<10);
00112 //parameter OVM_SHALLOW      = (1<<11);
00113 //parameter OVM_REFERENCE    = (1<<12);
00114 parameter OVM_PHYSICAL     = (1<<13);
00115 parameter OVM_ABSTRACT     = (1<<14);
00116 parameter OVM_READONLY     = (1<<15);
00117 parameter OVM_NODEFPRINT   = (1<<16);
00118 
00119 //Extra values that are used for extra methods
00120 parameter OVM_MACRO_EXTRAS  = (1<<OVM_MACRO_NUMFLAGS);
00121 parameter OVM_FLAGS        = OVM_MACRO_EXTRAS+1;
00122 parameter OVM_UNPACK       = OVM_MACRO_EXTRAS+2;
00123 parameter OVM_CHECK_FIELDS = OVM_MACRO_EXTRAS+3;
00124 parameter OVM_END_DATA_EXTRA = OVM_MACRO_EXTRAS+4;
00125 
00126 
00127 //Get and set methods (in ovm_object). Used by the set/get* functions
00128 //to tell the object what operation to perform on the fields.
00129 parameter OVM_START_FUNCS  = OVM_END_DATA_EXTRA+1;
00130 parameter OVM_SET           = OVM_START_FUNCS+1;
00131 parameter OVM_SETINT        = OVM_SET;
00132 parameter OVM_SETOBJ        = OVM_START_FUNCS+2;
00133 parameter OVM_SETSTR        = OVM_START_FUNCS+3;
00134 parameter OVM_END_FUNCS     = OVM_SETSTR;
00135 
00136 //Global string variables
00137 string ovm_aa_string_key;
00138 `endif  //OVM_OBJECT_GLOBALS_SVH

Intelligent Design Verification
Intelligent Design Verification
Project: OVM, Revision: 2.0.1
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.5.5
Wed Jan 7 19:27:18 2009
Find a documentation bug? Report bugs to: bugs.intelligentdv.com Project: DoxygenFilterSV