Added a new special device model name "Short" which enables the
use of a resistor type as a FET extended drain, allowing the FET drain node to short across to the other side of the resistor so that the resistor is absorbed into the FET device. Used with the GF180MCU process to describe the salicide-block ESD FET types.
This commit is contained in:
parent
86b4ac3e4c
commit
53682af668
|
|
@ -2005,6 +2005,30 @@ extOutputDevices(def, transList, outFile)
|
|||
if (!strcmp(devptr->exts_deviceName, "Ignore"))
|
||||
continue;
|
||||
|
||||
/* Model type "Short" in the techfile indicates a device */
|
||||
/* to short across the first two nodes (the gate and the */
|
||||
/* source). This solves the specific issue of a transistor */
|
||||
/* extended drain where the drain is a resistor but the */
|
||||
/* resistor is part of the model and should not be output. */
|
||||
|
||||
if (!strcmp(devptr->exts_deviceName, "Short"))
|
||||
{
|
||||
fprintf(outFile, "equiv ");
|
||||
|
||||
/* To do: Use parameters to specify which terminals */
|
||||
/* are shorted. */
|
||||
|
||||
/* gate */
|
||||
node = (NodeRegion *)extGetRegion(reg->treg_tile);
|
||||
fprintf(outFile, "\"%s\" ", extNodeName(node));
|
||||
|
||||
/* First non-gate terminal */
|
||||
node = (NodeRegion *)extTransRec.tr_termnode[0];
|
||||
fprintf(outFile, "\"%s\"\n", extNodeName(node));
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Original-style FET record backward compatibility */
|
||||
if (devptr->exts_deviceClass != DEV_FET)
|
||||
fprintf(outFile, "device ");
|
||||
|
|
@ -2916,7 +2940,12 @@ extTransPerimFunc(bp)
|
|||
}
|
||||
else
|
||||
{
|
||||
TxError("Error: Asymmetric device with multiple terminals!\n");
|
||||
/* Do not generate error messages on "Ignore" or "Short"
|
||||
* device types
|
||||
*/
|
||||
if (strcmp(extTransRec.tr_devrec->exts_deviceName, "Ignore") &&
|
||||
strcmp(extTransRec.tr_devrec->exts_deviceName, "Short"))
|
||||
TxError("Error: Asymmetric device with multiple terminals!\n");
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue