00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaAntennaData.h 00004 // 00005 // This file contains the definitions for the oaAntennaModel, oaAntennaArea, 00006 // oaAntennaAreaArray, and oaAntennaData classes. 00007 // 00008 // The oaAntennaModel class implements an enumerated type that describes the 00009 // type of antennaData that can be associated with a terminal. The antennaModel 00010 // reflects the antenna process model corresponding to the antenna data. 00011 // 00012 // The oaAntennaArea class implements an object for holding antennaArea data. 00013 // This data includes an area value in square database units and an optional 00014 // layer number. If the layer number is oacNullIndex, the area is interpreted 00015 // as applying to all layers. 00016 // 00017 // The oaAntennaAreaArray class implements an array of antennaArea values. 00018 // 00019 // The oaAntennaData class implements on object for holding antenna data for 00020 // a particular antennaModel. 00021 // 00022 // ***************************************************************************** 00023 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00024 // Integration Initiative, this material may not be copied, modified, 00025 // re-published, uploaded, executed, or distributed in any way, in any medium, 00026 // in whole or in part, without prior written permission from Cadence. 00027 // 00028 // Copyright 2002-2008 Cadence Design Systems, Inc. 00029 // All Rights Reserved. 00030 // 00031 // $Author: icftcm $ 00032 // $Revision: #1 $ 00033 // $Date: 2010/08/09 $ 00034 // $State: Exp $ 00035 // ***************************************************************************** 00036 // ***************************************************************************** 00037 00038 00039 00040 #if !defined(oaAntennaData_P) 00041 #define oaAntennaData_P 00042 00043 00044 00045 // ***************************************************************************** 00046 // Nested includes 00047 // ***************************************************************************** 00048 #include "oaTech.h" 00049 #include "oaDesignDBTypes.h" 00050 00051 00052 00053 // ***************************************************************************** 00054 // Declare and define types in the OpenAccess namespace. 00055 // ***************************************************************************** 00056 BEGIN_OA_NAMESPACE 00057 00058 00059 00060 // ***************************************************************************** 00061 // oaAntennaArea 00062 // ***************************************************************************** 00063 class OA_DESIGN_DLL_API oaAntennaArea { 00064 public: 00065 oaAntennaArea(oaUInt8 areaIn = 0u, 00066 oaLayerNum layerNumIn = oacAnyLayerNum); 00067 00068 oaUInt8 &area(); 00069 oaLayerNum &layerNum(); 00070 00071 oaUInt8 area() const; 00072 oaLayerNum layerNum() const; 00073 00074 oaBoolean operator==(const oaAntennaArea &value) const; 00075 oaBoolean operator!=(const oaAntennaArea &value) const; 00076 00077 private: 00078 oaUInt8 areaVal; 00079 oaLayerNum layerNumVal; 00080 }; 00081 00082 00083 00084 00085 // ***************************************************************************** 00086 // oaAntennaAreaArray 00087 // ***************************************************************************** 00088 class OA_DESIGN_DLL_API oaAntennaAreaArray : public oaArray<oaAntennaArea> { 00089 public: 00090 oaAntennaAreaArray(oaUInt4 sizeIn = 0); 00091 oaAntennaAreaArray(const oaAntennaAreaArray &aIn); 00092 00093 void compress(); 00094 00095 using oaArray<oaAntennaArea>::sort; 00096 void sort(); 00097 }; 00098 00099 00100 00101 // ***************************************************************************** 00102 // oaAntennaData 00103 // ***************************************************************************** 00104 class OA_DESIGN_DLL_API oaAntennaData { 00105 public: 00106 oaAntennaData(const oaAntennaModel &processIn = oacDefaultAntennaModel); 00107 oaAntennaData(const oaAntennaData &dataIn); 00108 ~oaAntennaData(); 00109 00110 oaAntennaData &operator=(const oaAntennaData &dataIn); 00111 00112 const oaAntennaModel &getModel() const; 00113 void setModel(const oaAntennaModel &modelIn); 00114 00115 const oaAntennaAreaArray &gate() const; 00116 const oaAntennaAreaArray &diff() const; 00117 const oaAntennaAreaArray &partialMetal() const; 00118 const oaAntennaAreaArray &partialMetalSide() const; 00119 const oaAntennaAreaArray &partialCut() const; 00120 const oaAntennaAreaArray &maxCAR() const; 00121 const oaAntennaAreaArray &maxSideCAR() const; 00122 const oaAntennaAreaArray &maxCutCAR() const; 00123 00124 #if !defined(OA_DEPRECATED) 00125 oaAntennaAreaArray &gate(); 00126 oaAntennaAreaArray &diff(); 00127 oaAntennaAreaArray &partialMetal(); 00128 oaAntennaAreaArray &partialMetalSide(); 00129 oaAntennaAreaArray &partialCut(); 00130 oaAntennaAreaArray &maxCAR(); 00131 oaAntennaAreaArray &maxSideCAR(); 00132 oaAntennaAreaArray &maxCutCAR(); 00133 #endif 00134 00135 void setGate(const oaAntennaAreaArray &gate); 00136 void setDiff(const oaAntennaAreaArray &diff); 00137 void setPartialMetal(const oaAntennaAreaArray &partialMetal); 00138 void setPartialMetalSide(const oaAntennaAreaArray &partialMetalSide); 00139 void setPartialCut(const oaAntennaAreaArray &partialCut); 00140 void setMaxCAR(const oaAntennaAreaArray &maxCAR); 00141 void setMaxSideCAR(const oaAntennaAreaArray &maxSideCAR); 00142 void setMaxCutCAR(const oaAntennaAreaArray &maxCutCAR); 00143 00144 private: 00145 oaAntennaModel model; 00146 oaAntennaAreaArray gateVal; 00147 oaAntennaAreaArray diffVal; 00148 oaAntennaAreaArray partialMetalVal; 00149 oaAntennaAreaArray partialMetalSideVal; 00150 oaAntennaAreaArray partialCutVal; 00151 oaAntennaAreaArray maxCARVal; 00152 oaAntennaAreaArray maxSideCARVal; 00153 oaAntennaAreaArray maxCutCARVal; 00154 }; 00155 00156 00157 00158 END_OA_NAMESPACE 00159 00160 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.