00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaModInstTerm.h 00004 // 00005 // This file contains the definition for the oaModInstTerm class. The 00006 // oaModInstTerm class is an object for managing all types of connections 00007 // between a net and a terminal of an instance in the module domain. 00008 // 00009 // ***************************************************************************** 00010 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00011 // Integration Initiative, this material may not be copied, modified, 00012 // re-published, uploaded, executed, or distributed in any way, in any medium, 00013 // in whole or in part, without prior written permission from Cadence. 00014 // 00015 // Copyright 2003-2005 Cadence Design Systems, Inc. 00016 // All Rights Reserved. 00017 // 00018 // $Author: icftcm $ 00019 // $Revision: #1 $ 00020 // $Date: 2010/08/09 $ 00021 // $State$ 00022 // ***************************************************************************** 00023 // ***************************************************************************** 00024 00025 00026 00027 #if !defined(oaModInstTerm_P) 00028 #define oaModInstTerm_P 00029 00030 00031 00032 // ***************************************************************************** 00033 // Nested includes 00034 // ***************************************************************************** 00035 #include "oaNetTermArray.h" 00036 #include "oaModInst.h" 00037 #include "oaModNet.h" 00038 00039 00040 00041 // ***************************************************************************** 00042 // Declare and define types in the OpenAccess namespace. 00043 // ***************************************************************************** 00044 BEGIN_OA_NAMESPACE 00045 00046 00047 00048 // ***************************************************************************** 00049 // oaModInstTerm 00050 // ***************************************************************************** 00051 class OA_DESIGN_DLL_API oaModInstTerm : public oaModObject { 00052 public: 00053 static oaModInstTerm *create(oaModNet *net, 00054 oaModInst *inst, 00055 oaModTerm *term); 00056 static oaModInstTerm *create(oaModNet *net, 00057 oaModInst *inst, 00058 const oaName &termName); 00059 static oaModInstTerm *create(oaModNet *net, 00060 oaModInst *inst, 00061 oaUInt4 termPosition); 00062 static void create(oaModInst *inst, 00063 const oaModNetTermArray &connData); 00064 static void create(oaModInst *inst, 00065 const oaModNetTermNameArray &connData); 00066 static void create(oaModInst *inst, 00067 const oaModNetTermPosArray &connData); 00068 00069 static oaModInstTerm *find(const oaModInst *inst, 00070 const oaModTerm *term); 00071 static oaModInstTerm *find(const oaModInst *inst, 00072 const oaName &termName); 00073 static oaModInstTerm *find(const oaModInst *inst, 00074 oaUInt4 termPosition); 00075 00076 void destroy(); 00077 00078 oaModInstTerm *getBit(oaUInt4 bitIndex) const; 00079 oaModNet *getNet(oaBoolean preferred = false) const; 00080 oaModInst *getInst() const; 00081 oaModTerm *getTerm() const; 00082 void getTermName(oaName &name) const; 00083 void getTermName(const oaNameSpace &ns, 00084 oaString &name) const; 00085 oaUInt4 getTermPosition() const; 00086 oaUInt4 getNumBits() const; 00087 oaBoolean isBound() const; 00088 oaBoolean isImplicit() const; 00089 oaBoolean usesTermPosition() const; 00090 00091 void addToNet(oaModNet *net); 00092 void removeFromNet(); 00093 00094 void scalarize(); 00095 00096 oaCollection<oaOccInstTerm, oaModInstTerm> getOccInstTerms(const oaOccurrence *top) const; 00097 00098 enum {dtIndex = oacInstTermDataType}; 00099 }; 00100 00101 00102 00103 // ***************************************************************************** 00104 // Design Traits. 00105 // ***************************************************************************** 00106 template<> 00107 class oaTraits<oaModInstTerm> { 00108 public: 00109 typedef oaModObject parentType; 00110 typedef oaInstTermModTypeEnum modTypeType; 00111 enum {domain = oacModDomain}; 00112 enum {isMultiDomain = true}; 00113 enum {dbType = oacDesignDBType}; 00114 enum {dtIndex = oacInstTermDataType}; 00115 enum {isConcrete = true}; 00116 enum {objectTypeEnumVal = oacModInstTermType}; 00117 enum {dataTypeEnumVal = oacInstTermDataType}; 00118 }; 00119 00120 00121 00122 END_OA_NAMESPACE 00123 00124 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.