Holger Vogt
13ca544d15
replace & with && and | with || and *# with * #
2018-05-18 15:15:38 +02:00
Holger Vogt
ae9cc17aff
add predefined parameters TEMP, VT after each subckt call
2018-05-18 15:12:22 +02:00
Holger Vogt
77814b8618
add predefined params TEMP, VT, GMIN to beginning of deck
...
add funcs limit, pwr, pwrs, stp, if, int
2018-05-18 15:10:15 +02:00
Holger Vogt
5ace7ff1fd
exclude simple e and h sources from getting a series voltage source
...
by undoing the name conversion
2018-05-16 08:16:22 +02:00
Holger Vogt
cfa473ad96
don't print NULL (deallocated lines)
2018-05-16 00:19:46 +02:00
Holger Vogt
9908b39d2b
make inp_compat_mode global
2018-05-16 00:15:29 +02:00
Holger Vogt
98fe623ba4
add function prototype pspice_compat
...
to deal with compatibility issues during loading
a PSPICE library
2018-05-16 00:14:31 +02:00
Holger Vogt
4aff986ee8
fix a bug, missing ;
2018-05-15 23:36:16 +02:00
Holger Vogt
429326e139
Add current measurement for device XYZ using I(XYZ)
2018-05-15 23:16:22 +02:00
h_vogt
7dd81327ec
new command 'alterparam', to be used in conjunction with 'mc_source'
...
add command 'alterparam paramname=pvalue'
to change a global .param
add command 'alterparam subcktname pname=vpval'
to change a parameter inside of a subcircuit
2018-05-15 22:46:06 +02:00
h_vogt
5c3a6a3829
new command 'mc_source' to internally reload circuit
...
We store a copy of the whole deck in 'mc_deck'.
'mc_source' can be used to re-read this copy.
2018-05-15 22:45:29 +02:00
h_vogt
464f855d1d
subckt.c, introduce new function inp_deckcopy_oc()
...
copy a deck
without li_actual,
without comment lines
without .control section
2018-05-15 22:45:10 +02:00
rlar
dc604c75d5
inpcom.c, whitespace
2018-05-15 22:43:43 +02:00
rlar
0f1b75a95b
inpcom.c, abstraction, introduce bogus_find_subckt()
...
extracted from inp_fix_inst_calls_for_numparam().
This code is and was evil, as it does not respect scoping rules.
2018-05-15 22:43:23 +02:00
Holger Vogt
73db0477c0
vdmosdist.c, white spaces
2018-05-04 20:35:16 +02:00
Holger Vogt
68fbc49216
vdmos.c, sort parameters
2018-05-04 20:35:14 +02:00
Holger Vogt
285de59446
enable alternative weak inversion model if parameter subslope is given
2018-05-04 20:35:11 +02:00
Holger Vogt
93e34540b8
introduce parameter ksubthres, compatible to LTSPICE
2018-05-04 20:35:10 +02:00
Holger Vogt
a0867ff1a3
bugfix: collapse the correct nodes if RB is zero or not given
2018-05-04 20:35:09 +02:00
Holger Vogt
2474c28a54
Alternative simple weak inversion model
...
according to https://www.anasoft.co.uk/MOS1Model.htm .
Fits existing LTSPICE models by adapting the slope parameter.
2018-05-04 20:35:08 +02:00
Holger Vogt
0ece0d0c1c
make breakdown voltage internally always positive
2018-05-04 20:35:07 +02:00
Holger Vogt
63be243f72
Add a simple quasi saturation model according to V. d'Alessandro e.a., 2001
2018-05-04 20:35:07 +02:00
Holger Vogt
72e03e7eab
replace parameter name subthres by subslope
2018-05-04 20:35:06 +02:00
Holger Vogt
5ba25a8716
change parameter to scalef when calculating n empirical compromise between smooth curve and reduction of Id slightly above threshold
2018-05-04 20:35:05 +02:00
Holger Vogt
3ee3ab39a9
Choose better interpolation and default parameters
2018-05-04 20:35:04 +02:00
Holger Vogt
729eac4e84
cweakinv, add model parameter model->VDMOSsubshift
2018-05-04 20:35:03 +02:00
Holger Vogt
f0d131fb8a
cweakinv, introduce sine scaling fucntion scalef()
2018-05-04 20:35:02 +02:00
Holger Vogt
284f68765d
frontend/vectors.c, readability of warning message
2018-05-04 20:35:01 +02:00
Holger Vogt
68125ea3cf
allow reading LTSPICE ascii raw files with 'load' command
...
by discarding 'Offset:'
2018-05-04 20:35:00 +02:00
Holger Vogt
43a6339071
rename VDMOS_CGS, VDMOS_CGD, VDMOS_CDS to VDMOS_CAPGS, VDMOS_CAPGD, VDMOS_CAPDS C: current, CAP: capacitance, V: voltage, G: conductance, Q: charge
2018-05-04 20:34:59 +02:00
Holger Vogt
b4b6e3ebf8
Add the bulk diode to the ac calculation
2018-05-04 20:34:58 +02:00
Holger Vogt
87e8b366ad
Add gate resistor to AC calculation 2
...
Add matrix entries for gate resistor
2018-05-04 20:34:56 +02:00
Holger Vogt
5d6e3348c9
Add gate resistor to AC calculation 1
...
Replace g (gate) by gp (gate prime) in existing matrix loading
2018-05-04 20:34:54 +02:00
Holger Vogt
570aacbf02
Remove VDMOS_CBS, VDMOS_CBD, VDMOS_CB
2018-05-04 20:34:52 +02:00
Holger Vogt
2b444a3423
remove unused parameters VDMOS_VBS/VBD and VDMOS_CAPBD/BS/GS/GD/GB
2018-05-04 20:34:51 +02:00
Holger Vogt
33a68b7321
return only half of the capacitance cgs and cgd
2018-05-04 20:34:50 +02:00
Holger Vogt
62297b2450
add weak inversion current capability
...
calibration of parameter subthres with LTSPICE is still missing.
2018-05-04 20:34:47 +02:00
rlar
ce2e704f56
up, where to ? fixme, there are more ...
2018-05-04 20:34:45 +02:00
rlar
ede0fb1caa
cleanup
2018-05-04 20:34:44 +02:00
Holger Vogt
4a3c707036
add parallel resistor rds (between outer drain and source nodes, parallel to bulk diode)
2018-05-04 20:34:42 +02:00
Holger Vogt
b7c6145f5e
rename the device multiplier m to mu, not to mix it up with the Body diode grading coefficient m
2018-05-04 20:34:41 +02:00
Holger Vogt
c5f47d3c1b
Error message and exit if a vdmos device instance
...
has different source and bulk node (have to be the same).
2018-05-04 20:34:40 +02:00
Holger Vogt
b13675ea44
remove unused code to calculate bulk-source and bulk-drain capacitors has been replaced already by capacitor from parallel bulk diode
2018-05-04 20:34:39 +02:00
Holger Vogt
f9b66af074
add the mtriode parameter scale the triode region independently from saturation current
2018-05-04 20:34:36 +02:00
Holger Vogt
40fe11db07
Body diode grading coefficient is m, not mj
2018-05-04 20:34:34 +02:00
Holger Vogt
2f719f7401
function 'inp_vdmos_model' to process vdmos model lines towards ngspice compatibility
2018-05-04 20:34:32 +02:00
Holger Vogt
f3478d7f13
re-format code
2018-05-04 20:34:31 +02:00
Holger Vogt
9d00a9e28d
re-format code (whitespace only)
2018-05-04 20:34:31 +02:00
Holger Vogt
45f52c859b
enable breakdown capability of parallel bulk diode
2018-05-04 20:34:30 +02:00
Holger Vogt
2bf70fa259
add matrix entries for bulk diode
2018-05-04 20:34:29 +02:00
Holger Vogt
bfec119e5b
Use better name for some parameters, cosmetics
2018-05-04 20:34:27 +02:00
Holger Vogt
4ac7a641ec
diode model for bulk diode added code taken from dio.c etc. capacitance calculation for vdmos bulk cap removed, is now completely with the diode. An internal node added for series diode resistance RB
...
matrix entries not yet done!
2018-05-04 20:34:26 +02:00
Holger Vogt
1ce7fef519
missing model parameters added
2018-05-04 20:34:25 +02:00
Holger Vogt
a4dc84ae35
missing model parameters added
2018-05-04 20:34:24 +02:00
Holger Vogt
0dc0aa06c4
re-introdeuce parameter phi Resulting temperature dependency of vto still not available
2018-05-04 20:34:24 +02:00
Holger Vogt
5b8c8072f3
mobility and substrate related parameters and equations removed
2018-05-04 20:34:22 +02:00
Holger Vogt
9df45731e9
depl cap calculation removed
2018-05-04 20:34:21 +02:00
Holger Vogt
0a213bea1a
more on removing the sidewall capacitance
2018-05-04 20:34:20 +02:00
Holger Vogt
ef547eb8ff
sidewall capacitance calculation removed
2018-05-04 20:34:19 +02:00
Holger Vogt
7df59a750e
useful parameter declarations moved to stay
2018-05-04 20:34:18 +02:00
Holger Vogt
0ebb7348ca
remove drain and source resistance contributions
2018-05-04 20:34:18 +02:00
Holger Vogt
84005efe8b
lateral diffusion and overlap capacitance removed
2018-05-04 20:34:17 +02:00
Holger Vogt
e0ddc38519
default transconductance parameter kp set to 1
2018-05-04 20:34:16 +02:00
Holger Vogt
e9e621de07
remove effective channel length, replace by l
2018-05-04 20:34:15 +02:00
Holger Vogt
47ef2bfaff
remove unused parameters VDMOS_MOD_VTO
2018-05-04 20:34:14 +02:00
Holger Vogt
d1497d8270
rename parameter "pb" --> "vj"
2018-05-04 20:34:13 +02:00
Holger Vogt
9c1b403f79
remove Gate.*OverlapCap
2018-05-04 20:34:12 +02:00
Holger Vogt
dee9dc370f
default m, W, L = 1
2018-05-04 20:34:11 +02:00
Holger Vogt
1aa3196ed9
another re-formatting for better readability (whitespace only)
2018-05-04 20:34:10 +02:00
Holger Vogt
d63123a269
gate resistance und gate conductance added, prime gate node added, not yet o.k. when rg is set, probably wrong signedness
2018-05-04 20:34:09 +02:00
Holger Vogt
40b9b18b01
gate conductance added
2018-05-04 20:34:09 +02:00
Holger Vogt
e0734a3ade
re-format for better readability
2018-05-04 20:34:08 +02:00
Holger Vogt
5abe8a759b
re-format for better readability, (whitespace only)
2018-05-04 20:34:07 +02:00
Holger Vogt
c0c3470dff
add the simple vdmos capacitance model instead of Meyer's model
2018-05-04 20:34:06 +02:00
Holger Vogt
389c888948
capacitance parameters cgdmin, cgdmax, a, cgs completely installed
2018-05-04 20:34:05 +02:00
Holger Vogt
eb1df52743
remove unused VDMOS_CAPZEROBIASBD/BDSW/BS/BSSW aka VDMOSCbd/bdsw/bs/bssw
2018-05-04 20:34:04 +02:00
Holger Vogt
f7b66ded9d
comment
2018-05-04 20:34:03 +02:00
Holger Vogt
f4853e85ca
add vdmos to the parameter list and search
2018-05-04 20:34:02 +02:00
rlar
b07661786f
move arround
2018-05-04 20:34:01 +02:00
Holger Vogt
8473c8e03c
remove empty VMOSdelete() function
2018-05-04 20:34:00 +02:00
Holger Vogt
b87f5c0563
remove never used sensitivity analysis code
2018-05-04 20:33:59 +02:00
Holger Vogt
b6a8613427
remove unused old sensitivity functions
2018-05-04 20:33:58 +02:00
Holger Vogt
1c4cb49478
CAPBYPASS removed
2018-05-04 20:33:57 +02:00
rlar
306e46359d
whitespace
2018-05-04 20:33:56 +02:00
rlar
5008d495ce
untabify
2018-05-04 20:33:55 +02:00
Holger Vogt
3e6a46826b
add src/spicelib/devices/vdmos to ngspice
2018-05-04 20:33:54 +02:00
Holger Vogt
d9bc4a5b41
add src/spicelib/devices/vdmos to ngspice
2018-05-04 20:33:53 +02:00
rlar
572bf10ebd
execute vdmos-1.el
2018-05-04 20:33:46 +02:00
rlar
45a70b3a53
rewrite, use enum instead of #define sequences
...
see branch "rewrite-defines2enum"
2018-04-30 19:23:18 +02:00
Francesco Lannutti
3a7e9411c3
drop #ifdef MUTUAL
2018-04-22 22:10:43 +02:00
rlar
bcf00ade06
cpl/cplsetup.c, cleanup VECTOR_ALLOC and MATRIX_ALLOC
...
swap first two arguments for readability
2018-04-22 22:04:45 +02:00
rlar
04dc62ef13
devices/*, move kind of `enum' defines out of struct definition
2018-04-15 15:05:02 +02:00
rlar
3b0e8cb8f1
vsrc/isrc, use an explicit #ifdef "PULSE_FUN_TYPES" guard
...
to avoid duplicate definition
2018-04-15 15:05:02 +02:00
rlar
a729c2860c
sensitivity, drop redundant #defines SENS_LIN/OCT/DEC/DEFPERT
...
use SENS_LINEAR/OCTAVE/DECADE/DEFPERTUB instead
2018-04-15 15:05:02 +02:00
rlar
a9439dc7dd
sensitivity, use numStates and numSenStates instead of hardcoded literals
2018-04-15 15:04:57 +02:00
rlar
d3f13edd4a
devices/vbic/vbicsetup.c, bug fix, incorrect states allocation
...
VBICnumSenStates is 10 not 8
2018-04-15 08:42:02 +02:00
rlar
d981fb331b
spicelib/devices/*, drop empty destroy functions
2018-04-15 07:13:06 +02:00
rlar
e725d728fc
res/restemp.c, avoid temporary NaN value, (simplify debugging)
...
RESupdate_conduct() may be called several times before all
parameters have been set via RESparam() invocations,
or finally being set to default values in RESsetup()
Especially RESscale might still be 0.0 as well as RESm
thus temporarily creating a NaN in RESupdate_conduct.
This would unnecessarily complicate debugging with enabled
floating point exceptions.
2018-03-17 18:36:12 +01:00
rlar
ead6dc4816
spicelib/devices/{sw,csw}, unify CKTstates[] access
...
do it the same way as the other devices do
access CKTstates[][slot] via device specific descriptive macros
access CKTstates[] via CKTstate0 CKTstate1 macros
this patch has been checked for object file in-variance with gcc
2018-03-08 19:40:53 +01:00
rlar
bcecc19e8b
spicelib/devices/{sw,csw}, cleanup for readability
...
This change is functional invariant, and has been checked
with gcc for object file in-variance.
For the details see the "rewrite-sw" branch
2018-03-08 18:24:49 +01:00
h_vogt
3dd2115291
frontend/subckt.c, do not put model names into numparam hash table
...
nobody seems to make use of these entries.
see nupa_type which shrinks to four enum's
2018-03-01 18:13:01 +01:00
rlar
b803b294b4
frontend/parser/lexical.c, cp_lexer(), allow # and * comment
...
Both, whether interactive or not.
Especially for command scripts.
2018-02-26 19:41:04 +01:00
rlar
6903584e99
asrc/asrcacld.c, bug fix, reciproc tc coefficient
2018-02-25 21:59:15 +01:00
Holger Vogt
b1aa6cfc87
xspice/enh/enhtrans.c, two2three_translate(), plug a memory leak
2018-02-25 20:05:15 +01:00
rlar
878c9645c7
frontend/outitf.c, drop /* ARGSUSED */ comments
2018-02-22 21:56:05 +01:00
Holger Vogt
edc690e26f
frontend/outitf.c, plug a memory leak when `.option interp'
2018-02-22 21:55:23 +01:00
rlar
cd1bbf2003
rewrite, use designated initializer for SPICEdev initialisation
2018-02-21 20:02:00 +01:00
rlar
95ef5e79d9
numparam/*, use `pscopy()'
2018-02-20 21:34:06 +01:00
rlar
9ad63cc2c0
numparam/*, plug memory leaks
2018-02-20 21:33:55 +01:00
rlar
ea1b83698f
numparam/*, drop case conversions
...
inpcom.c is supposed to convert everything to lower case.
Thus we can work case sensitive in numparam,
which is easier compared to a whole set of local case conversions.
2018-02-20 21:33:32 +01:00
rlar
0200d5c7e9
numparam/*, drop "old style" '&' syntax
...
Probably an artefact of the external preprocessor implementation
of numparam.
This syntax seems to have been a non spice macro expansion facility.
2018-02-20 21:30:52 +01:00
rlar
8022aa09a6
spicenum.c, cleanup dicoS usage
2018-02-20 21:30:41 +01:00
rlar
aa0dbd20ad
spicenum.c, drop putlogfile()
2018-02-20 21:30:15 +01:00
rlar
15c00a9d42
spicenum.c, drop dologfileS, logfileS and nblogS
...
which are never set
2018-02-20 21:29:50 +01:00
rlar
112f35cc96
nupa_copy(), use skip_back_ws()
2018-02-20 21:29:29 +01:00
rlar
9218b76583
nupa_copy(), cleanup
2018-02-20 21:28:56 +01:00
rlar
ec24c1ded7
nupa_copy(), fix lvalue
2018-02-20 21:28:03 +01:00
rlar
06708f1ed1
nupa_copy(), ls ==> s_end - (const) s
2018-02-20 21:27:38 +01:00
rlar
751d377d3e
pscopy(), pscopy_up(), use `char *stop' argument
...
instead of `int length' argument
2018-02-20 21:13:16 +01:00
rlar
e21d48a267
pscopy(), pscopy_up(), use _spice_dstring_setlength() return value
...
instead of invoking spice_dstring_value()
2018-02-20 21:13:05 +01:00
rlar
2ce91b0821
pscopy(), pscopy_up(), expand spice_dstring_reinit() macro
...
and inline the resulting spice_dstring_setlength() invocation
2018-02-20 21:12:56 +01:00
rlar
2cb579cd9f
pscopy(), pscopy_up(), drop `start' argument
...
which is always zero
2018-02-20 21:12:44 +01:00
rlar
3bd9c1c858
scopyd(), return void
2018-02-20 20:51:30 +01:00
rlar
5164c16a1b
numparam/mystring.c, drop unused nadd(), cins(), sins() and spos_()
2018-02-17 19:15:55 +01:00
rlar
468f7580ad
nupa_subcktcall(), cleanup using skip_ws()
2018-02-17 19:15:55 +01:00
rlar
a38b19bc0e
nupa_subcktcall(), reintroduce search for last occurence of the subckt name
2018-02-17 19:15:55 +01:00
rlar
c2f519c191
nupa_subcktcall(), drop `p_subname'
2018-02-17 19:15:55 +01:00
rlar
3f5ea23c71
nupa_subcktcall(), drop `ls_ptr'
...
valid because
neither `jp' nor `gp' will ever be incremented beyond end of string
2018-02-17 19:15:55 +01:00
rlar
437f92385a
nupa_subcktcall(), avoid `jp' pointing beyond end of string
...
The skip whitespace loop in the following line shall
safely swallow the delimiting space instead
2018-02-17 19:15:55 +01:00
rlar
bb9689139b
nupa_subcktcall(), drop `parsebuf' and `buf'
2018-02-17 19:15:55 +01:00
rlar
8b1e4fc32c
nupa_subcktcall(), introduce search_isolated_identifier()
...
the functionality is a bit different though,
because the previous code searched for the *last* occurence of the identifier
yet the new code searches for the first occurence.
2018-02-17 19:15:55 +01:00
rlar
6a57023ced
nupa_subcktcall(), drop `hp'
2018-02-17 19:15:55 +01:00
rlar
b16a61fb7c
nupa_subcktcall(), use skip_non_ws()
2018-02-17 19:15:55 +01:00
rlar
71ac5bccc2
nupa_subcktcall(), swap `hp' and `kp'
...
neither `hp' nor `kp' will be used any more behind this body
2018-02-17 19:15:55 +01:00
rlar
07112d62fb
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
e4a2106cfe
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
1298eacdb2
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
1157142dfd
nupa_subcktcall(), simplify
2018-02-17 19:15:55 +01:00
rlar
6ca336af85
nupa_subcktcall(), pscopy transform
2018-02-17 19:15:55 +01:00
rlar
7d40920bd6
nupa_subcktcall(), cleanup
2018-02-17 19:15:55 +01:00
rlar
70cec5e9e3
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
ec9636e078
nupa_subcktcall(), ls ==> ls_ptr - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
701dcad9a4
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
a773601b84
nupa_subcktcall(), g ==> gp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
3267bf8d63
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
0a149819a5
nupa_subcktcall(), h ==> hp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
47f1e7b1fa
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00
rlar
cc932725ac
nupa_subcktcall(), k ==> kp - (const) t_p
2018-02-17 19:15:55 +01:00
rlar
d991296b82
nupa_subcktcall(), split personality of `k'
2018-02-17 19:15:55 +01:00
rlar
b9750ee59f
nupa_subcktcall(), fix lvalue
2018-02-17 19:15:55 +01:00