mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-08-31 02:07:07 +02:00
"extresist" command continues to work as before. However, the method now reads from .ext files instead of .sim files, so generating ".sim" and ".nodes" files is no longer necessary. In addition, the core code of "extresist" was put directly into ExtCell.c so that full R-C extraction can be run using "extract do resistance" followed by "extract all", without needing to run "extresist" at all other than to set parameters (e.g., "extresist tolerance 10").
76 lines
2.6 KiB
C
76 lines
2.6 KiB
C
/*
|
|
* extparse.h
|
|
*
|
|
* Definitions for the .ext file parser. Relocated from EFread.c.
|
|
*
|
|
* *********************************************************************
|
|
* * 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 _MAGIC__EXTFLAT__EXTPARSE_H
|
|
#define _MAGIC__EXTFLAT__EXTPARSE_H
|
|
|
|
/*
|
|
* The following table describes the kinds of lines
|
|
* that may be read in a .ext file.
|
|
*/
|
|
typedef enum
|
|
{
|
|
ABSTRACT, ADJUST, ATTR, CAP, DEVICE, DIST, EQUIV, FET, KILLNODE, MERGE,
|
|
NODE, PARAMETERS, PORT, PRIMITIVE, RESISTOR, RESISTCLASS, RNODE, SCALE,
|
|
SUBCAP, SUBSTRATE, TECH, TIMESTAMP, USE, VERSION, EXT_STYLE
|
|
} Key;
|
|
|
|
static const struct
|
|
{
|
|
const char *k_name; /* Name of first token on line */
|
|
Key k_key; /* Internal name for token of this type */
|
|
int k_mintokens; /* Min total # of tokens on line of this type */
|
|
}
|
|
keyTable[] =
|
|
{
|
|
{"abstract", ABSTRACT, 0}, /* defines a LEF-like view */
|
|
{"adjust", ADJUST, 4},
|
|
{"attr", ATTR, 8},
|
|
{"cap", CAP, 4},
|
|
{"device", DEVICE, 11}, /* effectively replaces "fet" */
|
|
{"distance", DIST, 4},
|
|
{"equiv", EQUIV, 3},
|
|
{"fet", FET, 12}, /* for backwards compatibility */
|
|
{"killnode", KILLNODE, 2},
|
|
{"merge", MERGE, 3},
|
|
{"node", NODE, 7},
|
|
{"parameters", PARAMETERS, 3},
|
|
{"port", PORT, 8},
|
|
{"primitive", PRIMITIVE, 0}, /* defines a primitive device */
|
|
{"resist", RESISTOR, 4},
|
|
{"resistclasses", RESISTCLASS, 1},
|
|
{"rnode", RNODE, 5},
|
|
{"scale", SCALE, 4},
|
|
{"subcap", SUBCAP, 3},
|
|
{"substrate", SUBSTRATE, 3},
|
|
{"tech", TECH, 2},
|
|
{"timestamp", TIMESTAMP, 2},
|
|
{"use", USE, 9},
|
|
{"version", VERSION, 2},
|
|
{"style", EXT_STYLE, 2},
|
|
{0}
|
|
};
|
|
|
|
/* atoCap - convert a string to a EFCapValue */
|
|
#define atoCap(s) ((EFCapValue)atof(s))
|
|
|
|
extern int efReadLineNum; /* Current line number in the .ext file */
|
|
extern char *efReadFileName; /* Name of current .ext file being read */
|
|
|
|
#endif /* _MAGIC__EXTFLAT__EXTPARSE_H */
|