bsimcmg, add to ngspice, (level 17 and 72)
This commit is contained in:
parent
c6dcefa9f1
commit
677e2f7146
|
|
@ -956,6 +956,7 @@ if test "x$enable_adms" = xyes ; then
|
|||
AC_DEFINE([ADMS], [1], [Support for Verilog-A models])
|
||||
|
||||
VLADEVDIR=" adms/bsimbulk \
|
||||
adms/bsimcmg \
|
||||
adms/ekv \
|
||||
adms/hicum0 \
|
||||
adms/hicum2 \
|
||||
|
|
@ -964,6 +965,7 @@ if test "x$enable_adms" = xyes ; then
|
|||
|
||||
# The makefiles for adms (to be added to AC_CONFIG_FILES by ./autogen.sh --adms)
|
||||
#VLAMKF src/spicelib/devices/adms/bsimbulk/Makefile
|
||||
#VLAMKF src/spicelib/devices/adms/bsimcmg/Makefile
|
||||
#VLAMKF src/spicelib/devices/adms/ekv/Makefile
|
||||
#VLAMKF src/spicelib/devices/adms/hicum0/Makefile
|
||||
#VLAMKF src/spicelib/devices/adms/hicum2/Makefile
|
||||
|
|
@ -973,6 +975,7 @@ if test "x$enable_adms" = xyes ; then
|
|||
NOTVLADEVDIR=""
|
||||
|
||||
VLADEV=" spicelib/devices/adms/bsimbulk/libbsimbulk.la \
|
||||
spicelib/devices/adms/bsimcmg/libbsimcmg.la \
|
||||
spicelib/devices/adms/ekv/libekv.la \
|
||||
spicelib/devices/adms/hicum0/libhicum0.la \
|
||||
spicelib/devices/adms/hicum2/libhicum2.la \
|
||||
|
|
|
|||
|
|
@ -2187,6 +2187,53 @@
|
|||
</admst:if>
|
||||
</admst:when>
|
||||
|
||||
<admst:when test="[lower-case(name)='bsimcmg']">
|
||||
<admst:if test="[nilled(variable[name='nmos'])]">
|
||||
<admst:value-of select="analog"/>
|
||||
<admst:value-of select="."/>
|
||||
<admst:new datatype="variable" arguments="%p,nmos,%p">
|
||||
<admst:push into="module/variable" select="." onduplicate="ignore"/>
|
||||
<admst:value-to select="sizetype" value="scalar"/>
|
||||
<admst:value-to select="type" value="integer"/>
|
||||
<admst:value-to select="input" value="yes"/>
|
||||
<admst:value-to select="output" value="yes"/>
|
||||
<admst:value-to select="parametertype" value="model"/>
|
||||
<admst:value-to select="scope" value="global_model"/>
|
||||
<admst:new datatype="number" arguments="1">
|
||||
<admst:value-to select="scalingunit" value="1"/>
|
||||
<admst:value-of select="."/>
|
||||
<admst:value-of select="../module"/>
|
||||
<admst:new datatype="expression" arguments="%p,%p">
|
||||
<admst:value-of select="."/>
|
||||
<admst:value-to select="../../default" value="%p"/>
|
||||
</admst:new>
|
||||
</admst:new>
|
||||
</admst:new>
|
||||
</admst:if>
|
||||
<admst:if test="[nilled(variable[name='pmos'])]">
|
||||
<admst:value-of select="analog"/>
|
||||
<admst:value-of select="."/>
|
||||
<admst:new datatype="variable" arguments="%p,pmos,%p">
|
||||
<admst:push into="module/variable" select="." onduplicate="ignore"/>
|
||||
<admst:value-to select="sizetype" value="scalar"/>
|
||||
<admst:value-to select="type" value="integer"/>
|
||||
<admst:value-to select="input" value="yes"/>
|
||||
<admst:value-to select="output" value="yes"/>
|
||||
<admst:value-to select="parametertype" value="model"/>
|
||||
<admst:value-to select="scope" value="global_model"/>
|
||||
<admst:new datatype="number" arguments="1">
|
||||
<admst:value-to select="scalingunit" value="1"/>
|
||||
<admst:value-of select="."/>
|
||||
<admst:value-of select="../module"/>
|
||||
<admst:new datatype="expression" arguments="%p,%p">
|
||||
<admst:value-of select="."/>
|
||||
<admst:value-to select="../../default" value="%p"/>
|
||||
</admst:new>
|
||||
</admst:new>
|
||||
</admst:new>
|
||||
</admst:if>
|
||||
</admst:when>
|
||||
|
||||
<admst:otherwise>
|
||||
<admst:value-of select="name"/>
|
||||
<admst:fatal format="%s: device not handled by the adms ngspice interface\n"/>
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ int add_udn(int,Evt_Udn_Info_t **);
|
|||
#include "adms/ekv/ekvitf.h"
|
||||
#include "adms/psp102/psp102itf.h"
|
||||
#include "adms/bsimbulk/bsimbulkitf.h"
|
||||
#include "adms/bsimcmg/bsimcmgitf.h"
|
||||
#endif
|
||||
#ifdef CIDER
|
||||
/* Numerical devices (Cider integration) */
|
||||
|
|
@ -207,6 +208,7 @@ static SPICEdev *(*static_devices[])(void) = {
|
|||
(SPICEdev *(*)(void)) get_ekv_info,
|
||||
(SPICEdev *(*)(void)) get_psp102_info,
|
||||
(SPICEdev *(*)(void)) get_bsimbulk_info,
|
||||
(SPICEdev *(*)(void)) get_bsimcmg_info,
|
||||
#endif
|
||||
|
||||
#ifdef NDEV
|
||||
|
|
@ -291,7 +293,7 @@ SPICEdev ** devices(void)
|
|||
#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v5", "bsim4v6", "bsim4v7", \
|
||||
"bsim4soi", "bsim3soipd", "bsim3soifd", "bsim3soidd", "hisim2", "hisimhv1", "hisimhv2", \
|
||||
"cap", "cccs", "ccvs", "csw", "dio", "hfet", "hfet2", "ind", "isrc", "jfet", "ltra", "mes", "mesa" ,"mos1", "mos2", "mos3", \
|
||||
"mos6", "mos9", "res", "soi3", "sw", "tra", "urc", "vccs", "vcvs", "vsrc", "hicum0", "hicum2", "bjt504t", "ekv", "psp102", "bsimbulk"}
|
||||
"mos6", "mos9", "res", "soi3", "sw", "tra", "urc", "vccs", "vcvs", "vsrc", "hicum0", "hicum2", "bjt504t", "ekv", "psp102", "bsimbulk", "bsimcmg"}
|
||||
#else
|
||||
#define DEVICES_USED {"asrc", "bjt", "vbic", "bsim1", "bsim2", "bsim3", "bsim3v32", "bsim3v2", "bsim3v1", "bsim4", "bsim4v5", "bsim4v6", "bsim4v7", \
|
||||
"bsim4soi", "bsim3soipd", "bsim3soifd", "bsim3soidd", "hisim2", "hisimhv1", "hisimhv2", \
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@ model_numnodes(int type)
|
|||
}
|
||||
|
||||
#ifdef ADMS
|
||||
if (type == INPtypelook("BSIMBULK")) /* bsimbulk.va */
|
||||
if (type == INPtypelook("BSIMBULK") || /* bsimbulk.va */
|
||||
type == INPtypelook("BSIMCMG")) /* bsimcmg.va */
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
|
|
@ -133,6 +134,7 @@ INP2M(CKTcircuit *ckt, INPtables *tab, card *current)
|
|||
thismodel->INPmodType != INPtypelook("ekv") &&
|
||||
thismodel->INPmodType != INPtypelook("psp102") &&
|
||||
thismodel->INPmodType != INPtypelook("bsimbulk") &&
|
||||
thismodel->INPmodType != INPtypelook("bsimcmg") &&
|
||||
#endif
|
||||
thismodel->INPmodType != INPtypelook("HiSIM2") &&
|
||||
thismodel->INPmodType != INPtypelook("HiSIMHV1") &&
|
||||
|
|
|
|||
|
|
@ -337,6 +337,14 @@ char *INPdomodel(CKTcircuit *ckt, card * image, INPtables * tab)
|
|||
INPmkTemp
|
||||
("Device type BSIMBULK not available in this binary\n");}
|
||||
break;
|
||||
case 17:
|
||||
case 72:
|
||||
type = INPtypelook("BSIMCMG");
|
||||
if (type < 0) {
|
||||
err =
|
||||
INPmkTemp
|
||||
("Device type BSIMCMG not available in this binary\n");}
|
||||
break;
|
||||
case 44:
|
||||
type = INPtypelook("ekv");
|
||||
if (type < 0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue