00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaModModuleVectorInstBit.h 00004 // 00005 // This file contains the definition for the oaModModuleVectorInstBit class. The 00006 // oaModModuleVectorInstBit class implements a single bit of a module vectorInst 00007 // in a module. VectorInstBits are automatically created and destroyed as 00008 // vectorInsts are created or destroyed. Implicitly created vectorInstBits 00009 // cannot be modified to insure consistency with its defining vectorInst. 00010 // Explicitly created vectorInstBits define a unique bit of a vectorInst 00011 // definition since the bits of a vectorInst are not allowed to overlap with 00012 // other vectorInsts. 00013 // 00014 // ***************************************************************************** 00015 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00016 // Integration Initiative, this material may not be copied, modified, 00017 // re-published, uploaded, executed, or distributed in any way, in any medium, 00018 // in whole or in part, without prior written permission from Cadence. 00019 // 00020 // Copyright 2004-2005 Cadence Design Systems, Inc. 00021 // All Rights Reserved. 00022 // 00023 // $Author: icftcm $ 00024 // $Revision: #1 $ 00025 // $Date: 2010/08/09 $ 00026 // $State: Exp $ 00027 // ***************************************************************************** 00028 // ***************************************************************************** 00029 00030 00031 00032 #if !defined(oaModModuleVectorInstBit_P) 00033 #define oaModModuleVectorInstBit_P 00034 00035 00036 00037 // ***************************************************************************** 00038 // Nested includes 00039 // ***************************************************************************** 00040 #include "oaModVectorInstDef.h" 00041 #include "oaModModuleInst.h" 00042 00043 00044 00045 // ***************************************************************************** 00046 // Declare and define types in the OpenAccess namespace. 00047 // ***************************************************************************** 00048 BEGIN_OA_NAMESPACE 00049 00050 00051 00052 // ***************************************************************************** 00053 // oaModModuleVectorInstBit 00054 // ***************************************************************************** 00055 class OA_DESIGN_DLL_API oaModModuleVectorInstBit : public oaModModuleBitInst { 00056 public: 00057 static oaModModuleVectorInstBit *create(oaModule *module, 00058 oaModule *master, 00059 const oaScalarName &baseName, 00060 oaUInt4 bitIndex); 00061 00062 static oaModModuleVectorInstBit *create(oaModule *module, 00063 const oaScalarName &masterName, 00064 const oaScalarName &baseName, 00065 oaUInt4 bitIndex); 00066 00067 static oaModModuleVectorInstBit *find(const oaModule *module, 00068 const oaScalarName &baseName, 00069 oaUInt4 bitIndex); 00070 00071 static oaBoolean isValidName(const oaModule *module, 00072 const oaScalarName &baseName, 00073 oaUInt4 bitIndex); 00074 00075 oaModVectorInstDef *getDef() const; 00076 oaUInt4 getBitIndex() const; 00077 00078 using oaModInst::getName; 00079 void getName(oaVectorBitName &name) const; 00080 00081 void setName(const oaScalarName &baseName, 00082 oaUInt4 bitIndex); 00083 }; 00084 00085 00086 00087 // ***************************************************************************** 00088 // Design Traits. 00089 // ***************************************************************************** 00090 template<> 00091 class oaTraits<oaModModuleVectorInstBit> { 00092 public: 00093 typedef oaInstModTypeEnum modTypeType; 00094 typedef oaModModuleBitInst parentType; 00095 enum {dtIndex = oacInstDataType}; 00096 enum {dataTypeEnumVal = oacInstDataType}; 00097 enum {domain = oacModDomain}; 00098 enum {isMultiDomain = true}; 00099 enum {dbType = oacDesignDBType}; 00100 enum {isConcrete = true}; 00101 enum {objectTypeEnumVal = oacModModuleVectorInstBitType}; 00102 }; 00103 00104 00105 00106 END_OA_NAMESPACE 00107 00108 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.