Files
magic/extract/extract.h
T
Tim Edwards 538d7201e1 Modified the behavior of "extract" so that it does not try to check
for sticky labels making connections through the hierarchy.  This
is only needed for some annoying layouts that put point-size labels
with no connecting geometry in cells, and causes magic to spent
excessive amounts of time searching through labels for any layout
that has lots of labels.
2021-04-26 12:19:33 -04:00

97 lines
3.5 KiB
C

/*
* 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 */