Additional tweaks to the handling of the three new options for

determining what does and doesn't get into the R-C extraction
output.  Added option "debug" and moved all excess diagnostic
information to be gated by this flag.  Corrected an issue in
the standard extraction in which the substrate is always output
with zero lumped resistance, preventing it from being checked
by "extresist" for inclusion or exclusion in the .res.ext output.
Reinstated the computation of minimum resistance transistor but
excluded other devices.  Added more sane handling of exceptional
conditions like loops.  The result is a more consistent check of
nets in the design.  However, I still need to recheck the
"rg_maxres" calculation because it appears to be too low.
This commit is contained in:
R. Timothy Edwards
2026-06-01 17:21:02 -04:00
parent c22031724a
commit 03610f6d40
6 changed files with 258 additions and 58 deletions
+11 -11
View File
@@ -311,20 +311,19 @@ typedef struct rcdelaystuff
typedef struct rdev
{
struct rdev *nextDev; /* Next device in linked list */
struct rdev *realDev; /* Single Lumped Device for */
/* devices connected in parallel */
resDevice *layout; /* pointer to resDevice that */
/* corresponds to RDev */
int status;
struct resextnode *gate; /* Terminals of transistor. */
struct resextnode *source;
struct resextnode *drain;
struct resextnode *subs; /* Used with subcircuit type only */
Point location; /* Location of lower left point of */
/* device. */
TileType rs_ttype; /* tile type for device */
ExtDevice *rs_devptr; /* device extraction record */
char *rs_gattr; /* Gate attributes, if any */
struct resextnode *subs; /* Used with subcircuit type only */
Point location; /* Location of lower left point */
/* of the device. */
TileType rs_ttype; /* tile type for device */
float rs_wl; /* device W/L, if relevant */
ExtDevice *rs_devptr; /* device extraction record */
char *rs_gattr; /* Gate attributes, if any */
char *rs_sattr;
char *rs_dattr;
} RDev;
@@ -495,11 +494,12 @@ typedef struct capval
#define ResOpt_DoExtFile 0x0004
#define ResOpt_DoLumpFile 0x0008
#define ResOpt_RunSilent 0x0010
#define ResOpt_Stats 0x0020
#define ResOpt_Signal 0x0040
#define ResOpt_Debug 0x0020
#define ResOpt_Stats 0x0040
#define ResOpt_Signal 0x0080
#define ResOpt_Geometry 0x0100
#define ResOpt_FastHenry 0x0200
#define ResOpt_Blackbox 0x0300
#define ResOpt_Blackbox 0x0400
#define ResOpt_DoSubstrate 0x0800
#define ResOpt_Box 0x1000