00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaModVectorInstBit.h 00004 // 00005 // This file contains the definition for the oaModVectorInstBit class. The 00006 // oaModVectorInstBit class implements a single bit of a vectorInst in a module. 00007 // VectorInstBits are automatically created and destroyed as vectorInsts are 00008 // created or destroyed. Implicitly created vectorInstBits cannot be modified 00009 // to insure consistency with its defining vectorInst. Explicitly created 00010 // vectorInstBits define a unique bit of a vectorInst definition since the bits 00011 // of a vectorInst are not allowed to overlap with other 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 2004-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(oaModVectorInstBit_P) 00032 #define oaModVectorInstBit_P 00033 00034 00035 00036 // ***************************************************************************** 00037 // Nested includes 00038 // ***************************************************************************** 00039 #include "oaModDesignInst.h" 00040 00041 00042 00043 // ***************************************************************************** 00044 // Declare and define types in the OpenAccess namespace. 00045 // ***************************************************************************** 00046 BEGIN_OA_NAMESPACE 00047 00048 00049 00050 // ***************************************************************************** 00051 // oaModVectorInstBit 00052 // ***************************************************************************** 00053 class OA_DESIGN_DLL_API oaModVectorInstBit : public oaModBitInst { 00054 public: 00055 static oaModVectorInstBit *create(oaModule *module, 00056 oaDesign *master, 00057 const oaScalarName &baseName, 00058 oaUInt4 bitIndex, 00059 const oaParamArray *params = NULL); 00060 static oaModVectorInstBit *create(oaModule *module, 00061 const oaScalarName &libName, 00062 const oaScalarName &cellName, 00063 const oaScalarName &viewName, 00064 const oaScalarName &baseName, 00065 oaUInt4 bitIndex, 00066 const oaParamArray *params = NULL); 00067 00068 static oaModVectorInstBit *find(const oaModule *module, 00069 const oaScalarName &baseName, 00070 oaUInt4 bitIndex); 00071 00072 static oaBoolean isValidName(const oaModule *module, 00073 const oaScalarName &baseName, 00074 oaUInt4 bitIndex); 00075 00076 oaModVectorInstDef *getDef() const; 00077 oaUInt4 getBitIndex() const; 00078 00079 using oaModInst::getName; 00080 void getName(oaVectorBitName &name) const; 00081 00082 void setName(const oaScalarName &baseName, 00083 oaUInt4 bitIndex); 00084 }; 00085 00086 00087 00088 // ***************************************************************************** 00089 // Design Traits. 00090 // ***************************************************************************** 00091 template<> 00092 class oaTraits<oaModVectorInstBit> { 00093 public: 00094 typedef oaInstModTypeEnum modTypeType; 00095 typedef oaModBitInst parentType; 00096 enum {dtIndex = oacInstDataType}; 00097 enum {dataTypeEnumVal = oacInstDataType}; 00098 enum {domain = oacModDomain}; 00099 enum {isMultiDomain = true}; 00100 enum {dbType = oacDesignDBType}; 00101 enum {isConcrete = true}; 00102 enum {objectTypeEnumVal = oacModVectorInstBitType}; 00103 }; 00104 00105 00106 00107 END_OA_NAMESPACE 00108 00109 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.