You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

66 lines
3.2 KiB

/**********
Copyright 1990 Regents of the University of California. All rights reserved.
Author: 1985 Thomas L. Quarles
Modified: Apr 2000 - Paolo Nenzi
Modified: 2000 AlansFixes
**********/
#include "ngspice.h"
#include "resdefs.h"
#include "devdefs.h"
#include "ifsim.h"
IFparm RESpTable[] = { /* parameters */
IOPP( "resistance", RES_RESIST, IF_REAL, "Resistance"),
IOPAA( "ac", RES_ACRESIST, IF_REAL, "AC resistance value"),
IOPZU( "temp", RES_TEMP, IF_REAL, "Instance operating temperature"),
IOPZ( "dtemp", RES_DTEMP, IF_REAL,
"Instance temperature difference with the rest of the circuit"),
IOPQU( "l", RES_LENGTH, IF_REAL, "Length"),
IOPZU( "w", RES_WIDTH, IF_REAL, "Width"),
IOPU( "m", RES_M, IF_REAL, "Multiplication factor"),
IOPU( "tc", RES_TC1, IF_REAL, "First order temp. coefficient"),
IOPU( "tc1", RES_TC1, IF_REAL, "First order temp. coefficient"),
IOPU( "tc2", RES_TC2, IF_REAL, "Second order temp. coefficient"),
IOPU( "scale", RES_SCALE, IF_REAL, "Scale factor"),
IOP( "noisy", RES_NOISY, IF_INTEGER, "Resistor generate noise"),
IP( "sens_resist", RES_RESIST_SENS, IF_FLAG,
"flag to request sensitivity WRT resistance"),
OP( "i", RES_CURRENT, IF_REAL, "Current"),
OP( "p", RES_POWER, IF_REAL, "Power"),
OPU( "sens_dc", RES_QUEST_SENS_DC, IF_REAL, "dc sensitivity "),
OPU( "sens_real", RES_QUEST_SENS_REAL, IF_REAL,
"dc sensitivity and real part of ac sensitivity"),
OPU( "sens_imag", RES_QUEST_SENS_IMAG, IF_REAL,
"dc sensitivity and imag part of ac sensitivity"),
OPU( "sens_mag", RES_QUEST_SENS_MAG, IF_REAL, "ac sensitivity of magnitude"),
OPU( "sens_ph", RES_QUEST_SENS_PH, IF_REAL, "ac sensitivity of phase"),
OPU( "sens_cplx", RES_QUEST_SENS_CPLX, IF_COMPLEX, "ac sensitivity")
};
IFparm RESmPTable[] = { /* model parameters */
IOPQ( "rsh", RES_MOD_RSH, IF_REAL,"Sheet resistance"),
IOPZ( "narrow", RES_MOD_NARROW, IF_REAL,"Narrowing of resistor"),
IOPZ( "dw", RES_MOD_NARROW, IF_REAL,"Narrowing of resistor"),
IOPZ( "short", RES_MOD_SHORT, IF_REAL,"Shortening of resistor"),
IOPZ( "dlr", RES_MOD_SHORT, IF_REAL,"Shortening of resistor"),
IOPQ( "tc1", RES_MOD_TC1, IF_REAL,"First order temp. coefficient"),
IOPQO( "tc2", RES_MOD_TC2, IF_REAL,"Second order temp. coefficient"),
IOPX( "defw", RES_MOD_DEFWIDTH, IF_REAL,"Default device width"),
IOPX( "w", RES_MOD_DEFWIDTH, IF_REAL,"Default device width"),
IOPQ( "kf", RES_MOD_KF, IF_REAL,"Flicker noise coefficient"),
IOPQ( "af", RES_MOD_AF, IF_REAL,"Flicker noise exponent"),
IOPXU( "tnom", RES_MOD_TNOM, IF_REAL,"Parameter measurement temperature"),
IP( "r", RES_MOD_R, IF_FLAG,"Device is a resistor model")
};
char *RESnames[] = {
"R+",
"R-"
};
int RESnSize = NUMELEMS(RESnames);
int RESpTSize = NUMELEMS(RESpTable);
int RESmPTSize = NUMELEMS(RESmPTable);
int RESiSize = sizeof(RESinstance);
int RESmSize = sizeof(RESmodel);