00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaOccVectorInstDef.h 00004 // 00005 // This file contains the definition for the oaOccVectorInstDef class. The 00006 // oaOccVectorInstDef class implements the definition of a vectorInst, including 00007 // its name and bit-range. A vectorInstDef is never created by applications. 00008 // Instead, it is automatically created whenever applications create 00009 // vectorInsts. Since multiple vectorInsts can refer to different members of the 00010 // same vectorInst definition, the vectorInstDef represents the super-set of all 00011 // members of the vectorInsts. 00012 // 00013 // ***************************************************************************** 00014 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00015 // Integration Initiative, this material may not be copied, modified, 00016 // re-published, uploaded, executed, or distributed in any way, in any medium, 00017 // in whole or in part, without prior written permission from Cadence. 00018 // 00019 // Copyright 2002-2005 Cadence Design Systems, Inc. 00020 // All Rights Reserved. 00021 // 00022 // $Author: icftcm $ 00023 // $Revision: #1 $ 00024 // $Date: 2010/08/09 $ 00025 // $State: Exp $ 00026 // ***************************************************************************** 00027 // ***************************************************************************** 00028 00029 00030 00031 #if !defined(oaOccVectorInstDef_P) 00032 #define oaOccVectorInstDef_P 00033 00034 00035 00036 // ***************************************************************************** 00037 // Nested includes 00038 // ***************************************************************************** 00039 #include "oaBusNetDef.h" 00040 #include "oaOccurrence.h" 00041 00042 00043 00044 // ***************************************************************************** 00045 // Declare and define types in the OpenAccess namespace. 00046 // ***************************************************************************** 00047 BEGIN_OA_NAMESPACE 00048 00049 00050 00051 // ***************************************************************************** 00052 // oaOccVectorInstDef 00053 // ***************************************************************************** 00054 class OA_DESIGN_DLL_API oaOccVectorInstDef : public oaOccObject { 00055 public: 00056 static oaOccVectorInstDef *find(const oaOccurrence *occurrence, 00057 const oaScalarName &name); 00058 00059 oaUInt4 getMinIndex() const; 00060 oaUInt4 getMaxIndex() const; 00061 oaUInt4 getNumBits() const; 00062 00063 void getName(oaScalarName &name) const; 00064 void getName(const oaNameSpace &ns, 00065 oaString &name) const; 00066 void getPathName(oaScalarName &pathName) const; 00067 void getPathName(const oaNameSpace &ns, 00068 oaString &pathName) const; 00069 00070 oaBitOrder getBitOrder() const; 00071 00072 oaBoolean isImplicit() const; 00073 00074 oaCollection<oaOccInst, oaOccVectorInstDef> getVectorInsts() const; 00075 oaCollection<oaOccInst, oaOccVectorInstDef> getVectorInstBits() const; 00076 00077 enum {dtIndex = oacVectorInstDefDataType}; 00078 }; 00079 00080 00081 00082 // ***************************************************************************** 00083 // Design Traits. 00084 // ***************************************************************************** 00085 template<> 00086 class oaTraits<oaOccVectorInstDef> { 00087 public: 00088 typedef oaOccObject parentType; 00089 typedef oaVectorInstDefModTypeEnum modTypeType; 00090 enum {domain = oacOccDomain}; 00091 enum {isMultiDomain = true}; 00092 enum {dbType = oacDesignDBType}; 00093 enum {dtIndex = oacVectorInstDefDataType}; 00094 enum {isConcrete = true}; 00095 enum {objectTypeEnumVal = oacOccVectorInstDefType}; 00096 enum {dataTypeEnumVal = oacVectorInstDefDataType}; 00097 }; 00098 00099 00100 00101 END_OA_NAMESPACE 00102 00103 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.