00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaOccAssignment.h 00004 // 00005 // The oaOccAssignment class is the base class for occurrences of all types of 00006 // assignments. The oaOccAssignment object specifies the value to be interpreted 00007 // interpreted as the replacement (or "assignment") of the data specified in 00008 // an oaOccNetConnectDef or oaOccTermConnectDef object that may exist in the 00009 // occurrence view of the design hierarchy. 00010 // 00011 // The derived classes include: 00012 // 00013 // oaOccAssignValue 00014 // This class implements an assignment that specifies the name of a 00015 // single-bit, explicit net to use as logical replacements for the nets 00016 // associated with corresponding oaOccNetConnectDef or oaOccTermConnectDef 00017 // objects found in the occurrence view of the design hierarchy. 00018 // 00019 // oaOccAssignAssignment 00020 // This class implements an assignment that has an assignmentDef as 00021 // its value. 00022 // 00023 // Applications knowing how to traverse the occurrence hierarchy can search for 00024 // an oaOccAssignment on an instance and use the defined value. If no assignment 00025 // is found, the default name specified on the assignmentDef on the 00026 // corresponding oaOccConnectDef object is to be used. If an oaOccAssignValue is 00027 // found, it specifies the name of the net to use with the oaOccConnectDef. If 00028 // an oaOccAssignAssignment is found, the traversal is to continue looking up 00029 // the occurrence hierarchy using the assignmentDef of the 00030 // oaOccAssignAssignment. 00031 // 00032 // ***************************************************************************** 00033 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00034 // Integration Initiative, this material may not be copied, modified, 00035 // re-published, uploaded, executed, or distributed in any way, in any medium, 00036 // in whole or in part, without prior written permission from Cadence. 00037 // 00038 // Copyright 2003-2005 Cadence Design Systems, Inc. 00039 // All Rights Reserved. 00040 // 00041 // $Author: icftcm $ 00042 // $Revision: #1 $ 00043 // $Date: 2010/08/09 $ 00044 // $State: Exp $ 00045 // ***************************************************************************** 00046 // ***************************************************************************** 00047 00048 00049 00050 #if !defined(oaOccAssignment_P) 00051 #define oaOccAssignment_P 00052 00053 00054 00055 // ***************************************************************************** 00056 // Nested includes 00057 // ***************************************************************************** 00058 #include "oaAssignmentDef.h" 00059 #include "oaOccInst.h" 00060 00061 00062 00063 // ***************************************************************************** 00064 // Declare and define types in the OpenAccess namespace. 00065 // ***************************************************************************** 00066 BEGIN_OA_NAMESPACE 00067 00068 00069 00070 // ***************************************************************************** 00071 // oaOccAssignment 00072 // ***************************************************************************** 00073 class OA_DESIGN_DLL_API oaOccAssignment : public oaOccObject { 00074 public: 00075 static oaOccAssignment *find(const oaOccInst *inst, 00076 const oaString &name); 00077 00078 void getName(oaString &name) const; 00079 oaOccInst *getInst() const; 00080 00081 enum {dtIndex = oacAssignmentDataType}; 00082 }; 00083 00084 00085 00086 // ***************************************************************************** 00087 // oaOccAssignValue 00088 // ***************************************************************************** 00089 class OA_DESIGN_DLL_API oaOccAssignValue : public oaOccAssignment { 00090 public: 00091 void getValue(oaSimpleName &netName) const; 00092 }; 00093 00094 00095 00096 // ***************************************************************************** 00097 // oaOccAssignAssignment 00098 // ***************************************************************************** 00099 class OA_DESIGN_DLL_API oaOccAssignAssignment : public oaOccAssignment { 00100 public: 00101 void getAssignmentDef(oaAssignmentDef &aDef) const; 00102 }; 00103 00104 00105 00106 // ***************************************************************************** 00107 // Design Traits. 00108 // ***************************************************************************** 00109 template<> 00110 class oaTraits<oaOccAssignment> { 00111 public: 00112 typedef oaOccObject parentType; 00113 typedef oaAssignmentModTypeEnum modTypeType; 00114 enum {domain = oacOccDomain}; 00115 enum {isMultiDomain = true}; 00116 enum {dbType = oacDesignDBType}; 00117 enum {isConcrete = false}; 00118 enum {dtIndex = oacAssignmentDataType}; 00119 enum {dataTypeEnumVal = oacAssignmentDataType}; 00120 enum {abstractTypeEnumVal = oacOccAssignmentType}; 00121 }; 00122 00123 template<> 00124 class oaTraits<oaOccAssignValue> { 00125 public: 00126 typedef oaAssignmentModTypeEnum modTypeType; 00127 typedef oaOccAssignment parentType; 00128 enum {dtIndex = oacAssignmentDataType}; 00129 enum {dataTypeEnumVal = oacAssignmentDataType}; 00130 enum {domain = oacOccDomain}; 00131 enum {isMultiDomain = true}; 00132 enum {dbType = oacDesignDBType}; 00133 enum {isConcrete = true}; 00134 enum {objectTypeEnumVal = oacOccAssignValueType}; 00135 }; 00136 00137 template<> 00138 class oaTraits<oaOccAssignAssignment> { 00139 public: 00140 typedef oaAssignmentModTypeEnum modTypeType; 00141 typedef oaOccAssignment parentType; 00142 enum {dtIndex = oacAssignmentDataType}; 00143 enum {dataTypeEnumVal = oacAssignmentDataType}; 00144 enum {domain = oacOccDomain}; 00145 enum {isMultiDomain = true}; 00146 enum {dbType = oacDesignDBType}; 00147 enum {isConcrete = true}; 00148 enum {objectTypeEnumVal = oacOccAssignAssignmentType}; 00149 }; 00150 00151 00152 00153 END_OA_NAMESPACE 00154 00155 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.