mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-10-06 09:53:00 +02:00
Corrected the "extresist" command behavior to ensure that
transistor records match between the ".ext" file and the ".res.ext" file for the number of terminals per device. Previously, the first device type for the layer type was always being used, and if it had fewer terminals (e.g., a MOScap), then one terminal would go missing in the output.
This commit is contained in:
+32
-1
@@ -114,7 +114,7 @@ ResPrintExtDev(outextfile, devices)
|
||||
{
|
||||
TileType t;
|
||||
char *subsName;
|
||||
ExtDevice *devptr;
|
||||
ExtDevice *devptr, *devtest;
|
||||
|
||||
for (; devices != NULL; devices = devices->nextDev)
|
||||
{
|
||||
@@ -124,6 +124,37 @@ ResPrintExtDev(outextfile, devices)
|
||||
{
|
||||
t = devices->layout->rd_devtype;
|
||||
devptr = ExtCurStyle->exts_device[t];
|
||||
|
||||
/* Make sure the number of S/D terminals matches for */
|
||||
/* the device record. */
|
||||
|
||||
if ((devices->drain == NULL) && (devptr->exts_deviceSDCount == 2))
|
||||
{
|
||||
/* Check if there is a compatible device */
|
||||
/* with 2 terminals */
|
||||
|
||||
for (devtest = devptr->exts_next; devtest;
|
||||
devtest = devtest->exts_next)
|
||||
if (devtest->exts_deviceSDCount == 1)
|
||||
{
|
||||
devptr = devtest;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ((devices->drain != NULL) && (devptr->exts_deviceSDCount == 1))
|
||||
{
|
||||
/* Check if there is a compatible device */
|
||||
/* with 3 terminals */
|
||||
|
||||
for (devtest = devptr->exts_next; devtest;
|
||||
devtest = devtest->exts_next)
|
||||
if (devtest->exts_deviceSDCount == 2)
|
||||
{
|
||||
devptr = devtest;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
subsName = devptr->exts_deviceSubstrateName;
|
||||
|
||||
#ifdef MAGIC_WRAPPER
|
||||
|
||||
Reference in New Issue
Block a user