00001 // ***************************************************************************** 00002 // ***************************************************************************** 00003 // oaPiElmore.h 00004 // 00005 // This file contains the definition for the oaPiElmore class. The oaPiElmore 00006 // class represents a reduced model for the parasitics seen by a driver of a net 00007 // using a PI model and a set of Elmore delayTimes. The PI model consists of two 00008 // capacitors and a resistor between them, with nearCap being the capacitor 00009 // closer to the driver. The Elmore delays represent the first moment of the 00010 // impulse response of the interconnect parasitics to each receiver. 00011 // 00012 // ***************************************************************************** 00013 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00014 // Integration Initiative, this material may not be copied, modified, 00015 // re-published, uploaded, executed, or distributed in any way, in any medium, 00016 // in whole or in part, without prior written permission from Cadence. 00017 // 00018 // Copyright 2002-2005 Cadence Design Systems, Inc. 00019 // All Rights Reserved. 00020 // 00021 // $Author: icftcm $ 00022 // $Revision: #1 $ 00023 // $Date: 2010/08/09 $ 00024 // $State: Exp $ 00025 // ***************************************************************************** 00026 // ***************************************************************************** 00027 00028 00029 00030 #if !defined(oaPiElmore_P) 00031 #define oaPiElmore_P 00032 00033 00034 00035 // ***************************************************************************** 00036 // Nested includes 00037 // ***************************************************************************** 00038 #include "oaReducedModel.h" 00039 00040 00041 00042 // ***************************************************************************** 00043 // Declare and define types in the OpenAccess namespace. 00044 // ***************************************************************************** 00045 BEGIN_OA_NAMESPACE 00046 00047 00048 00049 // ***************************************************************************** 00050 // oaPiElmore 00051 // ***************************************************************************** 00052 class OA_DESIGN_DLL_API oaPiElmore : public oaReducedModel { 00053 public: 00054 static oaPiElmore *create(oaDesignObject *driver, 00055 const oaAnalysisPoint *ap, 00056 oaFloat nearCap, 00057 oaFloat res, 00058 oaFloat farCap); 00059 00060 static oaPiElmore *find(const oaDesignObject *driver, 00061 const oaAnalysisPoint *ap); 00062 00063 void setNearCap(oaFloat value); 00064 void setRes(oaFloat value); 00065 void setFarCap(oaFloat value); 00066 void setPiModel(oaFloat nearCap, 00067 oaFloat res, 00068 oaFloat farCap); 00069 00070 oaFloat getNearCap() const; 00071 oaFloat getRes() const; 00072 oaFloat getFarCap() const; 00073 void getPiModel(oaFloat &nearCap, 00074 oaFloat &res, 00075 oaFloat &farCap) const; 00076 00077 oaCollection<oaElmore, oaPiElmore> getElmores() const; 00078 }; 00079 00080 00081 00082 // ***************************************************************************** 00083 // Design Traits. 00084 // ***************************************************************************** 00085 template<> 00086 class oaTraits<oaPiElmore> { 00087 public: 00088 typedef oaReducedModTypeEnum modTypeType; 00089 typedef oaReducedModel parentType; 00090 enum {dtIndex = oacReducedModelDataType}; 00091 enum {dataTypeEnumVal = oacReducedModelDataType}; 00092 enum {dbType = oacDesignDBType}; 00093 enum {domain = oacNoDomain}; 00094 enum {isMultiDomain = false}; 00095 enum {isConcrete = true}; 00096 enum {objectTypeEnumVal = oacPiElmoreType}; 00097 }; 00098 00099 00100 00101 END_OA_NAMESPACE 00102 00103 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.