Commit Graph

3189 Commits

Author SHA1 Message Date
Holger Vogt e8aea4967c Remove some compiler warnings 2021-01-02 19:00:48 +01:00
Holger Vogt 2359f28812 Remove compiler warning
cast between incompatible function types from
‘void (*)(int,  int)’ to ‘void (*)(int)’
2021-01-02 19:00:29 +01:00
Holger Vogt 7bd12a60a6 Enable multiplier 'm' for behavioral resistor
(R using a B source).
2020-12-22 17:56:19 +01:00
Holger Vogt 014dfe1b7b The old inp_deckcopy() is a safer way of copying, while retaining
the correct line numbers for parameter substitution.
2020-12-22 17:56:19 +01:00
Holger Vogt b1d062668c When there is no model found, and we have an m devices,
set the number of nodes to 4. This has to be fixed (find
a way to detect the number of nodes automatically).
2020-12-22 17:56:19 +01:00
Holger Vogt b0a2ab5729 A FIXME: The number of nodes is fixed to 4!
Better make this flexible, but how to detect this number safely?
2020-12-22 17:56:19 +01:00
Holger Vogt 5366f946eb Remove more compiler warnings 2020-12-22 17:56:19 +01:00
Holger Vogt 238f8d393a Suppress some compiler warnings 2020-12-22 17:56:19 +01:00
Holger Vogt 3c2f6585e0 Add some comment. 2020-12-22 17:56:19 +01:00
Holger Vogt e1eb851ec4 Add function rem_unused_mos_models()
Netlist is flat at this stage, all numbers expanded,
but not yet parsed into the circuit structure.
So again try to remove unused MOS models.
All binning models are still here when w or l have been
determined by an expression from within the PDK.
2020-12-22 17:56:18 +01:00
Holger Vogt 19fb3ec38f make some functions non-ststic to support function
rem_unused_mos_models() in inps.c
2020-12-22 17:56:18 +01:00
Holger Vogt 5ee6a98e4b Add a comment 2020-12-22 17:56:18 +01:00
Holger Vogt 043634b60e Jump over the HSPICE-specific key words 2020-12-22 17:56:18 +01:00
Holger Vogt 8c253524af With the new inp_deckcopy_ln treat the first line
in the deck equal to all other lines.
2020-12-22 17:56:18 +01:00
Holger Vogt 8b376b4581 Remove dot lines somewhat later. 2020-12-22 17:56:18 +01:00
Holger Vogt 777cfcf477 Reduce the memory requirements if there is a PDK with
a lot of binning models.
This is a hack and needs testing!
inpcom.c: If an x line, add w and l to the netlist card,
if available.
subckt.c: select a suitable model bin, discard the rest
for each subcircuit, depending on w and l from above.
inpgmod.c: less restrictive equal for real numbers,
allow both min and max boundaries (problem of equating
real numbers), when the selected device has w or l on
the boundary between two model bins.
2020-12-22 17:56:18 +01:00
Holger Vogt 79d6f27d74 fix a typo 2020-12-22 17:56:18 +01:00
Holger Vogt 9072f40b9a bug 535: re-enale tc1, tc2 even if tokens tc1 or tc2
may be part of other tokens as well.
2020-12-22 17:56:18 +01:00
Holger Vogt aee35e6ef3 No brackets around instance parameters dtemp, temp 2020-12-22 17:56:18 +01:00
Holger Vogt fe24a4135c spice2g6 poly(19 compat:
When counting token, count an expression {...} for the
gain as a single token, even if it contains spaces.
2020-12-22 17:56:18 +01:00
Holger Vogt c43c6f6ca4 improve comment 2020-12-22 17:56:18 +01:00
Holger Vogt d24aa7134c E_constant Vconst 0 TABLE {Max(V(DP)-V(GN),0)}=((20,120))
Allow such strange construct, where a single pair x,y will
simplay return a constant y (120 in the above example).
This is used in external devices models and aknowledged
by other simulators.
2020-12-22 17:56:18 +01:00
Holger Vogt 025a9fe599 Partially undo commit [ab778d] :
revert to aswitch as vswitch replacement
2020-12-22 17:56:18 +01:00
Holger Vogt 87751ad073 Make the ngSpice_Circ(char** circa) more robust:
Error message when .end card is missing
Reset if .end card is missing, to allow loading
a netlist again.
NULL as last element is no longer required, but .end card
(this has been implicitedly assumed).
Remove a bug that skippoed the last line (the .end card).
2020-12-22 17:56:18 +01:00
Holger Vogt 2d34cbddf8 re-write and simplify the tc1, tc2 code for behavioral
R, L, C lines invoking the B source.
Enable parameterization of the TCs.
Create a tc string in an extra function, add this string
to the new R, L, C line.
2020-12-22 17:56:18 +01:00
Holger Vogt 1ef4115578 In a command 'meas tran teval when v(2)=1' the rhs
should be treated as a number '1', not as a vector v(1)
2020-12-22 17:56:18 +01:00
Holger Vogt 6055fda73d spaces 2020-12-22 17:56:18 +01:00
Holger Vogt 5c4af54be1 Windows.h -> windows.h 2020-12-22 17:56:18 +01:00
Holger Vogt 44b8498d63 prevent a crash when e,g,f,h sources do not have enough paramaters. 2020-12-22 17:56:18 +01:00
Holger Vogt d0a8e6ac51 update to the limit function for ps compatibility.
The output will stay between the two limits given.
Tere is no prescription which of the two is upper
or lower.
This function will not solve all PS-Spice
compatible model convergence issues. We better look
for a built-in function with smooth, steadily
differentiable corners.
2020-12-22 17:56:18 +01:00
Vogt bb8cdb2e2d enable the use of either single or double quotes
for file path names (was mixed up, becaus isquote()
aknowledges both types).
2020-12-22 17:56:18 +01:00
dwarning 03cd512e7f separate and correct capacitor charge formula transformation 2020-12-22 17:56:18 +01:00
Holger Vogt 95754d29c1 Introduce variacle 'plainlet' which allow simple copying
of vectors, even if the right hand side vector name
contain forbidden characters (like math characters).

set plainlet
let newvec = v(/out)
unset plainlet
2020-12-22 17:56:18 +01:00
dwarning 450ec47a3e rm unused quote.h in vngspice_fftw 2020-12-22 17:56:18 +01:00
Holger Vogt aa0d0abe34 Fix a bug in the limit() function (PSPICE compat mode) 2020-12-22 11:11:59 +01:00
Holger Vogt 9276f9fb0e Use the pwl LIMIT=TRUE flag when replacing
G1 2 3 TABLE ... or E2 4 5 TABLE ... by code model pwl
2020-12-22 11:11:23 +01:00
Holger Vogt d06ff2abab New variable 'plainwrite' added. Allows 'write' with node names
containing characters like + - /. Function are the disabled.
This replaces the automatic selection of this mode by compat flags,
which is not transparent enough to the user.
2020-12-22 11:09:40 +01:00
Holger Vogt 36e2a9af4d Add variable 'plainplot' to allow plotting without
function support, but with node names incl chatacters like + - /.
Flag to command 'plot' is renamed to plainplot.
Error message added if vector not found.
Example file added.
2020-12-22 11:09:27 +01:00
Holger Vogt b76ac6be1c Add writing all vectors if compat mode eg or ki is selected. 2020-12-22 11:09:09 +01:00
Holger Vogt f0090508b0 If new parameter 'plain' is added to the 'plot' command,
all expression handling is skipped, vectors are plotting as is.
This allows nodes names with vectors like v(+vs) or /out
to be plotted without need resorting to double quotes.
2020-12-22 11:08:57 +01:00
Holger Vogt 84d3d8c143 Don't add v(...) around output vector if compat mode 'eg' is set. 2020-12-22 11:08:22 +01:00
Holger Vogt c90230b43f If the compatibility flags ki or eg are set, the 'write' command
will not use function parsing and evaluation, but simply plot
the listed vectors. vec1 vs vec2 is also not supported.
This option is useful if node names vs+ or /mynode are used and
have to be written into a raw file, as may be used by KiCad or EAGLE.
2020-12-22 11:08:03 +01:00
Holger Vogt 19a688513c add compatibility mode eg for EAGLE
clarify mode a for 'whole netlist' and ll for 'all'
2020-12-22 11:07:31 +01:00
Holger Vogt dd86bdee46 Enlarge the buffer size for command 'listing' from 512 to 4096 bytes. 2020-12-22 11:07:14 +01:00
Holger Vogt 3e98cecd56 enable paths with spaces for finding 'spinit' 2020-12-22 11:07:02 +01:00
Holger Vogt c67da190ef If function 'db' is evaluated, set
v_type to SV_DB.
2020-12-22 11:05:33 +01:00
Holger Vogt 97db844944 Prevent raw file entries (by the 'write' command) like
6	i(i(v_vsupply2))	current
2020-12-22 11:05:21 +01:00
Holger Vogt f49922c1f1 If a new vector is created by the functions cph or ph,
its type should be 'phase', not voltage. Thus prevent
raw file entries (created by the 'write' command like
	4	v(cph(vout2))	voltage
2020-12-22 11:05:10 +01:00
dwarning f12dfc6e7b prevent garbage output of X11 plotting function 2020-12-22 11:04:24 +01:00
Holger Vogt 7360d8aa66 Fix a typo 2020-12-22 11:03:44 +01:00