/* local definitions */ #define allContM1 ndc/m1,pdc/m1,nwc/m1,pwc/m1 #define PNplusWOC ndiff,pdiff,nnd/a,ppd/a #define CAPP allPoly #define SSEPP ~(allPoly)/act #define SSEP1 ~(allMetal1)/m1 #define SSEP2 ~(allMetal2)/m2 #define SSEP3 ~(allMetal3)/m3 /* Make sure local cap defs don't appear before regardless of what cpp does*/ #ifdef M1ContactsAct|M1Contacts|PNplus|PolyCap|\ M1Cap|M2Cap|M3Cap|M1CapNoDiff|NdRes|PdRes|M1Res|\ PolyRes|M2Res|M3Res|nothing THERE_IS_AN_ERROR_SOME_LOCAL_CAPACITANCE_DEFINITIONS_HAVE_ALREADY_BEEN_DEFINED #endif /* Local capacitance definitions */ #define M1ContactsAct ndc,pdc,nwc,pwc,nbdc,capc,ec,clc,emc,pbc #define M1Contacts M1ContactsAct,pc,via #define PNplus (ndiff,pdiff,em,col,ppd,nnd,M1ContactsAct)/a #define PolyCap (poly,pc)/a #define M1Cap (m1,M1Contacts)/m1 #define M2Cap (m2,m2c,m3c,pad)/m2 #define M3Cap (m3,m3c,pad2)/m3 #define M1CapNoDiff (m1,pc,via)/m1 #define NDRes (ndiff,nsd,ndc/act,nsc/act) #define PDRes (pdiff,psd,pdc/act,psc/act) #define PolyRes (poly,pc/act,pfet,nfet) #define M1Res (metal1,m2c/metal1) #define M2Res (metal2,via/m2,pad) #define M3Res (metal3,pad2/m3,via2/m3) #define nothing /* Use macros for planeorder and sideoverlap for backwards compatibility */ #if defined(WRL_STANFORD_EXTRACTOR) #define planeOrder(l,ord) planeorder l ord #define noplaneOrdering noplaneordering #define sideOverlap(l1,sep,l2,cap,shield)\ sideoverlap l1 sep l2 cap shield #else /* WRL_STANFORD_EXTRACTOR */ #define planeOrder(l,ord) #define noplaneOrdering #define sideOverlap(l1,sep,l2,cap,shield)\ sideoverlap l1 sep l2 cap #endif /* WRL_STANFORD_EXTRACTOR */ #include "scmosExt100.tech" #define extForSpice #include "scmosExt100.tech" #undef extForSpice #include "scmosExt26b.tech" #define extForSpice #include "scmosExt26b.tech" #undef extForSpice #include "scmosExt34.tech" #define extForSpice #include "scmosExt34.tech" #undef extForSpice #include "scmosExtDiag.tech"