00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaConnectDef.h 00004 // 00005 // This file contains the definition of the oaConnectDef class, its derived 00006 // classes, and its public supporting classes. The oaConnectDef class is an 00007 // abstract base for all types of connection definitions. A connection 00008 // definition associates an assignment definition (an oaAssignmentDef) with 00009 // either a net or a terminal. 00010 // 00011 // The oaConnectDef classes together with the oaAssignment classes provide users 00012 // a way to override the name of the net used in the associated connection. 00013 // 00014 // The derived classes of oaConnectDef include: 00015 // 00016 // oaNetConnectDef 00017 // This class implements a connectDef that associates an oaAssignmentDef 00018 // with a single-bit net. Applications traversing connectivity search up 00019 // the design hierarchy for an oaAssignment that has the lookup name 00020 // specified in the assignment definition. If an oaAssignment is found, 00021 // it specifies the net name to use instead of the name the corresponding 00022 // net. If not found, the default net name specified in the assignment 00023 // definition is used. 00024 // 00025 // oaTermConnectDef 00026 // This class implements a connectDef that associates an oaAssignmentDef 00027 // with a single-bit terminal. Applications traversing connectivity search 00028 // up the design hierarchy for an oaAssignment that has the lookup name 00029 // specified in the assignment definition. If an oaAssignment is found, 00030 // it specifies the net name to use to externally connect the corresponding 00031 // terminal to. If not found, the default net name specified in the 00032 // assignment definition is used. 00033 // 00034 // ***************************************************************************** 00035 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00036 // Integration Initiative, this material may not be copied, modified, 00037 // re-published, uploaded, executed, or distributed in any way, in any medium, 00038 // in whole or in part, without prior written permission from Cadence. 00039 // 00040 // Copyright 2003-2005 Cadence Design Systems, Inc. 00041 // All Rights Reserved. 00042 // 00043 // $Author: icftcm $ 00044 // $Revision: #1 $ 00045 // $Date: 2010/08/09 $ 00046 // $State: Exp $ 00047 // ***************************************************************************** 00048 // ***************************************************************************** 00049 00050 00051 00052 #if !defined(oaConnectDef_P) 00053 #define oaConnectDef_P 00054 00055 00056 00057 // ***************************************************************************** 00058 // Nested includes 00059 // ***************************************************************************** 00060 #include "oaTerm.h" 00061 #include "oaAssignmentDef.h" 00062 00063 00064 00065 // ***************************************************************************** 00066 // Declare and define types in the OpenAccess namespace. 00067 // ***************************************************************************** 00068 BEGIN_OA_NAMESPACE 00069 00070 00071 00072 // ***************************************************************************** 00073 // oaConnectDef 00074 // ***************************************************************************** 00075 class OA_DESIGN_DLL_API oaConnectDef : public oaBlockObject { 00076 public: 00077 void destroy(); 00078 00079 void getAssignmentDef(oaAssignmentDef &assignmentDef) const; 00080 00081 enum {dtIndex = oacConnectDefDataType}; 00082 }; 00083 00084 00085 00086 // ***************************************************************************** 00087 // oaNetConnectDef 00088 // ***************************************************************************** 00089 class OA_DESIGN_DLL_API oaNetConnectDef : public oaConnectDef { 00090 public: 00091 static oaNetConnectDef *create(const oaBitNet *net, 00092 const oaAssignmentDef &assignmentDef); 00093 00094 oaBitNet *getNet() const; 00095 }; 00096 00097 00098 00099 // ***************************************************************************** 00100 // oaTermConnectDef 00101 // ***************************************************************************** 00102 class OA_DESIGN_DLL_API oaTermConnectDef : public oaConnectDef { 00103 public: 00104 static oaTermConnectDef *create(const oaBitTerm *term, 00105 const oaAssignmentDef &assignmentDef); 00106 00107 oaBitTerm *getTerm() const; 00108 }; 00109 00110 00111 00112 // ***************************************************************************** 00113 // Design Traits. 00114 // ***************************************************************************** 00115 template<> 00116 class oaTraits<oaConnectDef> { 00117 public: 00118 typedef oaBlockObject parentType; 00119 typedef oaConnectDefModTypeEnum modTypeType; 00120 enum {domain = oacBlockDomain}; 00121 enum {dbType = oacDesignDBType}; 00122 enum {isConcrete = false}; 00123 enum {isMultiDomain = true}; 00124 enum {dtIndex = oacConnectDefDataType}; 00125 enum {dataTypeEnumVal = oacConnectDefDataType}; 00126 enum {abstractTypeEnumVal = oacConnectDefType}; 00127 }; 00128 00129 template<> 00130 class oaTraits<oaNetConnectDef> { 00131 public: 00132 typedef oaConnectDefModTypeEnum modTypeType; 00133 typedef oaConnectDef parentType; 00134 enum {isMultiDomain = true}; 00135 enum {dtIndex = oacConnectDefDataType}; 00136 enum {dataTypeEnumVal = oacConnectDefDataType}; 00137 enum {domain = oacBlockDomain}; 00138 enum {dbType = oacDesignDBType}; 00139 enum {isConcrete = true}; 00140 enum {objectTypeEnumVal = oacNetConnectDefType}; 00141 }; 00142 00143 template<> 00144 class oaTraits<oaTermConnectDef> { 00145 public: 00146 typedef oaConnectDefModTypeEnum modTypeType; 00147 typedef oaConnectDef parentType; 00148 enum {isMultiDomain = true}; 00149 enum {dtIndex = oacConnectDefDataType}; 00150 enum {dataTypeEnumVal = oacConnectDefDataType}; 00151 enum {domain = oacBlockDomain}; 00152 enum {dbType = oacDesignDBType}; 00153 enum {isConcrete = true}; 00154 enum {objectTypeEnumVal = oacTermConnectDefType}; 00155 }; 00156 00157 00158 00159 END_OA_NAMESPACE 00160 00161 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.