00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaOccNet.h 00004 // 00005 // This file contains the definition for the oaOccNet class and its public 00006 // supporting classes. The oaOccNet class is an abstract base for all types 00007 // of occurrence nets. 00008 // 00009 // oaAssignmentNetSpec 00010 // This class implements an array of pointers to objects that may be 00011 // either connectDef objects or assignment objects in either the module 00012 // or occurence domain. 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 2003-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(oaOccNet_P) 00033 #define oaOccNet_P 00034 00035 00036 00037 // ***************************************************************************** 00038 // Nested includes 00039 // ***************************************************************************** 00040 #include "oaModNet.h" 00041 #include "oaOccurrence.h" 00042 00043 00044 00045 // ***************************************************************************** 00046 // Declare and define types in the OpenAccess namespace. 00047 // ***************************************************************************** 00048 BEGIN_OA_NAMESPACE 00049 00050 00051 00052 // ***************************************************************************** 00053 // oaAssignedNetSpec 00054 // ***************************************************************************** 00055 class OA_DESIGN_DLL_API oaAssignedNetSpec : public oaArray<oaDesignObject*> { 00056 public: 00057 oaAssignedNetSpec(oaUInt4 sizeIn = 0); 00058 }; 00059 00060 00061 00062 // ***************************************************************************** 00063 // oaOccNet 00064 // ***************************************************************************** 00065 class OA_DESIGN_DLL_API oaOccNet : public oaOccObject { 00066 public: 00067 static oaOccNet *find(const oaOccurrence *occurrence, 00068 const oaName &name); 00069 00070 oaBoolean isEmpty() const; 00071 oaBoolean isImplicit() const; 00072 oaBoolean isGlobal() const; 00073 00074 oaSigType getSigType() const; 00075 oaUInt4 getNumBits() const; 00076 00077 void getName(oaName &name) const; 00078 void getName(const oaNameSpace &ns, 00079 oaString &name) const; 00080 void getPathName(oaName &pathName) const; 00081 void getPathName(const oaNameSpace &ns, 00082 oaString &pathName) const; 00083 00084 oaOccBitNet *getBit(oaUInt4 bitIndex) const; 00085 00086 oaOccNet *getAssignedNet(oaBoolean ignoreDefault = false) const; 00087 oaOccNet *getAssignedNet(oaAssignedNetSpec &spec, 00088 oaBoolean ignoreDefault = false) const; 00089 00090 oaNet *getNet() const; 00091 oaModNet *getModNet() const; 00092 00093 oaCollection<oaOccNet, oaOccNet> getGlobalNets() const; 00094 oaCollection<oaOccInstTerm, oaOccNet> getInstTerms(oaUInt4 filterFlags = oacInstTermIterNotImplicit) const; 00095 oaOccMemNetCollection getMemberNets(oaBoolean unique = true) const; 00096 oaCollection<oaOccBitNet, oaOccNet> getSingleBitMembers() const; 00097 oaCollection<oaOccNet, oaOccNet> getSpan() const; 00098 oaCollection<oaOccTerm, oaOccNet> getTerms(oaUInt4 filterFlags = oacTermIterAllNotHidden | oacTermIterNotImplicit) const; 00099 00100 enum {dtIndex = oacNetDataType}; 00101 }; 00102 00103 00104 00105 // ***************************************************************************** 00106 // oaOccBitNet 00107 // ***************************************************************************** 00108 class OA_DESIGN_DLL_API oaOccBitNet : public oaOccNet { 00109 public: 00110 oaBoolean isPreferredEquivalent() const; 00111 00112 oaOccNetConnectDef *getConnectDef() const; 00113 oaOccBitNet *getPreferredEquivalent() const; 00114 void getParasiticConfidence(oaUInt4 &minValue, 00115 oaUInt4 &maxValue) const; 00116 00117 void setParasiticConfidence(oaUInt4 value); 00118 void setParasiticConfidence(oaUInt4 minValue, 00119 oaUInt4 maxValue); 00120 00121 oaCollection<oaOccBitNet, oaOccBitNet> getEquivalentNets() const; 00122 oaCollection<oaOccBitNet, oaOccBitNet> getEquivalentNets(oaUInt4 filterFlags) const; 00123 }; 00124 00125 00126 00127 // ***************************************************************************** 00128 // Design Traits. 00129 // ***************************************************************************** 00130 template<> 00131 class oaTraits<oaOccNet> { 00132 public: 00133 typedef oaOccObject parentType; 00134 typedef oaNetModTypeEnum modTypeType; 00135 enum {domain = oacOccDomain}; 00136 enum {isMultiDomain = true}; 00137 enum {dbType = oacDesignDBType}; 00138 enum {isConcrete = false}; 00139 enum {dtIndex = oacNetDataType}; 00140 enum {dataTypeEnumVal = oacNetDataType}; 00141 enum {abstractTypeEnumVal = oacOccNetType}; 00142 }; 00143 00144 template<> 00145 class oaTraits<oaOccBitNet> { 00146 public: 00147 typedef oaNetModTypeEnum modTypeType; 00148 typedef oaOccNet parentType; 00149 enum {dtIndex = oacNetDataType}; 00150 enum {dataTypeEnumVal = oacNetDataType}; 00151 enum {domain = oacOccDomain}; 00152 enum {isMultiDomain = true}; 00153 enum {dbType = oacDesignDBType}; 00154 enum {isConcrete = false}; 00155 enum {abstractTypeEnumVal = oacOccBitNetType}; 00156 }; 00157 00158 00159 00160 END_OA_NAMESPACE 00161 00162 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.