/* * extract.h -- * * Defines the exported interface to the circuit extractor. * * rcsid "$Header: /usr/cvsroot/magic-8.0/extract/extract.h,v 1.3 2009/01/30 03:51:02 tim Exp $" * * ********************************************************************* * * Copyright (C) 1985, 1990 Regents of the University of California. * * * Permission to use, copy, modify, and distribute this * * * software and its documentation for any purpose and without * * * fee is hereby granted, provided that the above copyright * * * notice appear in all copies. The University of California * * * makes no representations about the suitability of this * * * software for any purpose. It is provided "as is" without * * * express or implied warranty. Export of this software outside * * * of the United States of America may require an export license. * * ********************************************************************* * */ #ifndef _EXTRACT_H #define _EXTRACT_H #include "utils/magic.h" /* Extractor warnings */ #define EXTWARN_DUP 0x01 /* Warn if two nodes have the same name */ #define EXTWARN_LABELS 0x02 /* Warn if connecting to unlabelled subcell * node. */ #define EXTWARN_FETS 0x04 /* Warn about badly constructed fets */ #define EXTWARN_ALL (EXTWARN_DUP|EXTWARN_LABELS|EXTWARN_FETS) extern int ExtDoWarn; /* Bitmask of above */ /* Known devices (see ExtTech.c and ExtBasic.c) */ /* Make sure these match extDevTable in extract/ExtBasic.c and */ /* also extflat/EFread.c */ #define DEV_FET 0 /* FET w/area, perimeter declared */ #define DEV_MOSFET 1 /* FET w/length, width declared */ #define DEV_ASYMMETRIC 2 /* Like MOSFET but D,S not swappable */ #define DEV_BJT 3 /* Bipolar Junction Transistor */ #define DEV_RES 4 /* Resistor */ #define DEV_CAP 5 /* Capacitor */ #define DEV_CAPREV 6 /* Capacitor, terminals reversed */ #define DEV_DIODE 7 /* Diode */ #define DEV_PDIODE 8 /* pDiode, same as Diode */ #define DEV_NDIODE 9 /* nDiode, terminals reversed */ #define DEV_SUBCKT 10 /* general-purpose subcircuit */ #define DEV_RSUBCKT 11 /* Resistor-like subcircuit. */ #define DEV_MSUBCKT 12 /* MOSFET-like subcircuit. */ #define DEV_CSUBCKT 13 /* Capacitor-like subcircuit. */ /* Device names for .ext file output (new in version 7.2) */ /* (defined in extract/ExtBasic.c *and* extflat/EFread.c) */ extern char *extDevTable[]; /* Extractor options */ #define EXT_DOADJUST 0x01 /* Extract hierarchical adjustments */ #define EXT_DOCAPACITANCE 0x02 /* Extract capacitance */ #define EXT_DOCOUPLING 0x04 /* Extract coupling capacitance */ #define EXT_DORESISTANCE 0x08 /* Extract resistance */ #define EXT_DOLENGTH 0x10 /* Extract pathlengths */ #define EXT_DOALL 0x1f /* ALL OF THE ABOVE */ #define EXT_DOLOCAL 0x20 /* Write to local directory only */ #define EXT_DOLABELCHECK 0x40 /* Check for connections by label */ extern int ExtOptions; /* Bitmask of above */ extern bool ExtTechLine(); extern void ExtTechInit(); extern void ExtTechFinal(); extern void ExtSetStyle(); extern void ExtPrintStyle(); extern void ExtRevertSubstrate(); extern Plane *ExtCell(); extern int ExtGetGateTypesMask(); extern int ExtGetDiffTypesMask(); #ifdef MAGIC_WRAPPER extern bool ExtGetDevInfo(); extern bool ExtCompareStyle(); #endif #ifdef THREE_D extern void ExtGetZAxis(); #endif extern void ExtDumpCaps(); #endif /* _EXTRACT_H */