diff --git a/resis/Depend b/resis/Depend index b73eacf7..f22d303f 100644 --- a/resis/Depend +++ b/resis/Depend @@ -15,7 +15,7 @@ ResMakeRes.o: ResMakeRes.c ../utils/magic.h ../utils/geometry.h \ ../database/database.h ../utils/malloc.h ../textio/textio.h \ ../extract/extract.h ../extract/extractInt.h ../extract/extDebugInt.h \ ../windows/windows.h ../dbwind/dbwind.h ../utils/tech.h \ - ../textio/txcommands.h ../resis/resis.h + ../textio/txcommands.h ../resis/resis.h ../cif/CIFint.h ResSimple.o: ResSimple.c ../utils/magic.h ../utils/geometry.h \ ../utils/geofast.h ../tiles/tile.h ../utils/hash.h ../utils/heap.h \ ../database/database.h ../utils/malloc.h ../textio/textio.h \ diff --git a/resis/ResConDCS.c b/resis/ResConDCS.c index 69adc06a..da5cb7fe 100644 --- a/resis/ResConDCS.c +++ b/resis/ResConDCS.c @@ -450,8 +450,8 @@ DBTreeCopyConnectDCS(scx, mask, xMask, connect, area, destUse) for (tran = TT_TECHDEPBASE; tran < TT_MAXTYPES; tran++) { devptr = ExtCurStyle->exts_device[tran]; - tran_name = devptr->exts_deviceName; - if ((tran_name != NULL) && (strcmp(tran_name, "None"))) + if ((devptr != NULL) && ((tran_name = devptr->exts_deviceName) != NULL) + && (strcmp(tran_name, "None"))) { TTMaskSetMask(&DiffTypeBitMask, &(devptr->exts_deviceSDTypes[0])); diff --git a/resis/ResMain.c b/resis/ResMain.c index 33657767..767c599e 100644 --- a/resis/ResMain.c +++ b/resis/ResMain.c @@ -72,8 +72,8 @@ ResInitializeConn() for (tran = TT_TECHDEPBASE; tran < TT_MAXTYPES; tran++) { devptr = ExtCurStyle->exts_device[tran]; - tran_name = devptr->exts_deviceName; - if ((tran_name != NULL) && (strcmp(tran_name, "None"))) + if ((devptr != NULL) && ((tran_name = devptr->exts_deviceName) != NULL) + && (strcmp(tran_name, "None"))) { for (diff = TT_TECHDEPBASE; diff < TT_MAXTYPES; diff++) { diff --git a/resis/ResMakeRes.c b/resis/ResMakeRes.c index 1ff30a22..5d874d1d 100644 --- a/resis/ResMakeRes.c +++ b/resis/ResMakeRes.c @@ -24,6 +24,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/ #include "utils/tech.h" #include "textio/txcommands.h" #include "resis/resis.h" +#include "cif/CIFint.h" /* Forward declarations */ bool ResCalcNearTransistor(); @@ -783,13 +784,14 @@ ResDoContacts(contact, nodes, resList) resNode *resptr; cElement *ccell; int tilenum, squaresx, squaresy, viawidth; - int minside, spacing, border; + int minside, spacing, border, cscale; float squaresf; resResistor *resistor; resElement *element; static int too_small = 1; minside = CIFGetContactSize(contact->cp_type, &viawidth, &spacing, &border); + cscale = CIFCurStyle->cs_scaleFactor; if ((ExtCurStyle->exts_viaResist[contact->cp_type] == 0) || (viawidth == 0)) { @@ -818,7 +820,8 @@ ResDoContacts(contact, nodes, resList) } else { - if ((contact->cp_width < minside) || (contact->cp_height < minside)) + if (((contact->cp_width * cscale) < minside) || + ((contact->cp_height * cscale) < minside)) { if (too_small) { @@ -832,13 +835,13 @@ ResDoContacts(contact, nodes, resList) else { viawidth += spacing; - squaresf = (float)(contact->cp_width - minside) / (float)viawidth; + squaresf = (float)((contact->cp_width * cscale) - minside) / (float)viawidth; squaresf *= ExtCurStyle->exts_unitsPerLambda; squaresf /= (float)viawidth; squaresx = (int)squaresf; squaresx++; - squaresf = (float)(contact->cp_height - minside) / (float)viawidth; + squaresf = (float)((contact->cp_height * cscale) - minside) / (float)viawidth; squaresf *= ExtCurStyle->exts_unitsPerLambda; squaresf /= (float)viawidth; squaresy = (int)squaresf; diff --git a/resis/ResReadSim.c b/resis/ResReadSim.c index 6cb38633..cc47fb4b 100644 --- a/resis/ResReadSim.c +++ b/resis/ResReadSim.c @@ -146,8 +146,12 @@ ResReadSim(simfile,fetproc,capproc,resproc,attrproc,mergeproc) case '|': if (strcmp(line[NODEUNITS],"units:") == 0) { - lambda = (float)atof(line[NODELAMBDA]); - if (lambda == 0.0) lambda = 1.0; + lambda = (float)atof(line[NODELAMBDA]); + if (lambda == 0.0) lambda = 1.0; + /* NOTE: units is derived from EFScale */ + /* which needs a factor of 100 conversion */ + /* to database units. */ + lambda *= 100.0; } result=0; break;