rlar
7534ac394c
work around, 'define __TERMAL_NODE__ in bsim6.va, first successfull plot
...
to work around dangling "temper" node in bsim6
fixme, adms populates the termal node slot in the matrix even though
__TERMAL_NODE__ was not defined, leading to a singular matrix.
fixme, adms
$port_connected
is not supported, thus just claim it to be connected.
inp2m.c, upgrade to allow bsim6 with 5 nodes
2019-02-17 07:42:37 +01:00
rlar
fa13ee77d6
dev.c and inp2m.c, bsim6 is level 16 ?!
2019-02-17 07:41:21 +01:00
dwarning
6a14271894
prevent crash if mos instance has too few nodes - bug #391
2019-01-30 15:44:36 +01:00
dwarning
1363b7a6b2
Reduce vdmos to a native 3 terminal version.
2018-12-22 22:42:31 +01:00
Holger Vogt
e18b848f7d
Allow '-' and '+' being part of the instance name.
...
Has already been available for B, E, F, G, and H sources
2018-08-07 19:57:38 +02:00
Holger Vogt
3e6a46826b
add src/spicelib/devices/vdmos to ngspice
2018-05-04 20:33:54 +02:00
rlar
4ec2717079
struct card, #5/6, rewrite from type "card" to "struct card"
2018-02-17 19:15:53 +01:00
rlar
8c7d7051ae
GENmodel, GENinstance, change layout, #4/4, complete the change
...
currently each and every device specific instance and model structure
duplicates the memory layout of a struct GENmodel / GENinstance
further the first structure elements behind a GENinstance header
are reinterpreted as a sort of a generic "node" array.
This business is very error prone, and makes it difficult to
extend struct GENmodel / struct GENinstance.
This patch makes this business much more bearable.
2018-02-17 11:53:06 +01:00
mhx
efb8214945
fix spelling, "too much" versus "too many"
2017-03-18 20:49:28 +01:00
rlar
889aaebfd7
inp2m.c, #7/7, whitepace cleanup
2017-03-18 20:44:21 +01:00
rlar
576e522d38
inp2m.c, #6/7, reorder code
2017-03-18 20:44:13 +01:00
rlar
73e76fd88a
inp2m.c, #5/7, drop nname[]
2017-03-18 20:44:04 +01:00
rlar
74145c53a6
inp2m.c, #4/7, move code up into the for loop
2017-03-18 20:43:55 +01:00
rlar
5a95487ad7
inp2m.c, #3/7, simpify, move code down into the for loop
2017-03-18 20:43:46 +01:00
rlar
788c8f7067
inp2m.c, #2/7, simplify, move code down into for loop
2017-03-18 20:43:38 +01:00
rlar
bef3fd1dd5
inp2m.c, #1/7, insist on a valid model, don't default to something
...
Emit an error message when unable to identify a valid modelname token.
If a default model is needed, then create one explicitly:
m1 1 2 3 4 mosdefault
.model mosdefault mos1()
2017-03-18 20:43:19 +01:00
rlar
80ef8b308d
inp2m.c, do not restrict binning to four nodes
...
until now, for unknown reasons,
the search for binned modelnames was restricted to
instances with less than five nodes.
2017-03-18 20:18:11 +01:00
rlar
50c0424225
inp2q.c, inp2m.c, plug a memory leak
2017-03-18 20:15:39 +01:00
rlar
40ca7d6db3
inp2m.c, #9/9c, cleanup
2017-03-07 21:54:42 +01:00
rlar
eecd940af8
inp2m.c, #8/9c, drop valid_numnodes()
2017-03-07 21:54:33 +01:00
rlar
6edd684020
inp2m.c, #7/9c, rewrite valid_numnodes() using model_numnodes()
2017-03-07 21:54:23 +01:00
rlar
09fbc0ee97
inp2m.c, #6/9c, now fix model_numnodes()
...
to prevent instance struct storage beeing overwritten.
2017-03-07 21:54:13 +01:00
rlar
54f6bd8d56
inp2m.c, #5/9c, rewrite
2017-03-07 21:54:00 +01:00
rlar
01b75e08ab
inp2m.c, #4/9c, rewrite using model_numnodes()
2017-03-07 21:53:50 +01:00
rlar
396441e1ea
inp2m.c, #3/9c, abstraction, introduce model_numnodes()
...
Note:
This commit does not change behaviour in any way,
yet one can instantly see some sickness now.
Some of the models definitely do not have 7 nodes,
Actually we would like to fetch the number of terminals from
struct IFdevice, slot terms or slot numNames
But it turns out several models publish bogus values.
For example "B4SOI", which has 7 nodes, but claims to have 8
2017-03-07 21:53:37 +01:00
rlar
3bb68fbd7a
inp2m.c, #2/9c, rewrite using GENnode[]
2017-03-07 21:53:26 +01:00
rlar
81b5278674
inp2m.c, #1/9c, rename 'nodeflag'
2017-03-07 21:53:16 +01:00
rlar
c89e7c8818
inp2m.c, #15/15b, collapse remaining code into a for loop
2017-03-05 17:23:20 +01:00
rlar
85236c08e6
inp2m.c, #14/15b, cleanup, drop empty blocks
2017-03-05 17:23:12 +01:00
rlar
8fa3afa4ae
inp2m.c, #13/15b, rewrite, move common code to the end
2017-03-05 17:23:07 +01:00
rlar
3d6a2e2422
inp2m.c, #12/15b, unify, add code which won't be executed at all
...
actually, this most certainly unveils a bug in the original code,
lacking invocation of INPgetModBin() when optional extra nodes come
into play.
2017-03-05 17:23:03 +01:00
rlar
99136a16e7
inp2m.c, #11/15b, rewrite, use array expressions
2017-03-05 17:22:57 +01:00
rlar
7eb6006461
inp2m.c, #10/15b, use 'nodeflag' instead of literal values
2017-03-05 17:22:51 +01:00
rlar
7ab64775b8
inp2m.c, #9/15b, rewrite, use arrays for 'node' and 'mname'
2017-03-05 17:22:40 +01:00
rlar
395939d2f4
inp2m.c, #8/15b, unify, add two invocations without any effect
2017-03-05 17:22:02 +01:00
rlar
55c9c3a73b
inp2m.c, #7/15b, cleanup some braces
2017-03-05 17:22:01 +01:00
rlar
7a1b65f045
inp2m.c, #6/15b, abstraction, introduce valid_numnodes()
2017-03-05 17:21:59 +01:00
rlar
cff00524c2
inp2m.c, #5/15b, express some facts in comments for the following commits
2017-03-05 16:47:51 +01:00
rlar
0a95935e46
inp2m.c, #4/15b, unify code slightly
2017-03-05 16:47:14 +01:00
rlar
f7b3f40c70
inp2m.c, #3/15b, set 'save' a little sooner
2017-03-05 16:46:39 +01:00
rlar
40c632f8a7
inp2m.c, #2/15b, drop TRACE code
2017-03-05 16:45:40 +01:00
rlar
f9213e3fe4
inp2m.c, #1/15b, drop comments
2017-03-05 16:45:23 +01:00
rlar
6fde9353ea
inp2m.c, #7/7, whitespace
2017-03-04 22:09:15 +01:00
rlar
11572fe9d0
inp2m.c, #6/7, polish comments
2017-03-04 19:16:11 +01:00
rlar
f66d37463f
inp2m.c, #5/7, renumber `nodeflag'
2017-03-04 19:16:11 +01:00
rlar
6a275a6bd9
inp2m.c, #4/7, rewrite
2017-03-04 19:16:11 +01:00
rlar
08b798c485
inp2m.c, #3/7, line wraps
2017-03-04 19:16:11 +01:00
rlar
f23876e30c
inp2m.c, #2/7, cleanup braces
2017-03-04 19:16:10 +01:00
rlar
80f58e98a8
inp2m.c, #1/7, cleanup comparisons
2017-03-04 19:16:10 +01:00
rlar
a2347a28d6
inp2*.c, cleanup, drop redundant initialisation
...
which can be dropped to the recently fixed INPgetMod(), see
inpgmod.c, INPgetMod(), bug fix, missing 'model' assignment
Note:
there have been INPgetMod() invocations without initialisation,
causing access to non-initialised memory with the unfixed INPgetMod()
2017-03-04 19:15:55 +01:00