Commit Graph

838 Commits

Author SHA1 Message Date
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 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 7360d8aa66 Fix a typo 2020-12-22 11:03:44 +01:00
Holger Vogt 28861739f8 allow writing character '%' 2020-10-16 18:12:31 +02:00
Holger Vogt 51df9aaa55 remove non ascii character §, which leads to compiler warnings 2020-10-11 21:12:29 +02:00
Holger Vogt fdc143ce16 Add a limit capability to the code model aswitch
Example switch-oscillators_inc.cir showed currents up to 3GA
2020-10-10 13:53:36 +02:00
Holger Vogt 14ef4e74ec Add PSPICE compatible ISWITCH
Translates iswitch either to csw or to aswitch models
2020-10-10 13:53:02 +02:00
Holger Vogt 2f1d3df8c7 add a Spectre compatibility mode 2020-10-10 12:19:49 +02:00
Holger Vogt 445c6f2d32 fix a bug that occurs when xspice is not selected
missing function parameter has been introduced in previous commit
2020-10-10 12:11:41 +02:00
Holger Vogt 602baf68e6 spice2g6 allows to omit the poly(n) statement, if the
polynomial is one-dimensional (n==1).
For compatibility with the XSPIXE code, we have to add
poly(1) appropriately.
2020-10-10 12:11:14 +02:00
Holger Vogt 60dfe836f4 If ps is enabled, .dc TEMP -15 75 5 will have been
modified to .dc (TEMPER) -15 75 5.
So we repair it here with a preliminary fix.
2020-10-10 12:10:43 +02:00
Holger Vogt ca27319213 no forcing lower-case letters for command 'cd' 2020-10-10 12:09:25 +02:00
Holger Vogt a0389bb547 In PS compatibility mode:
In subcircuit .subckt and X lines with 'params:' statement
replace comma separator by space. Do nothing if comma is inside of {}.
2020-08-20 15:49:32 +02:00
Holger Vogt e3aad7849c remove vceo= and icrating= from bjt model cards 2020-08-20 15:47:49 +02:00
Holger Vogt ebb1e953fe Streamline the compatibility flag generation 2020-08-20 15:39:19 +02:00
Holger Vogt c112279555 new compatibility handling with struct compat newcompat:
simplify the compatibility handling, better readability
make it easily extendable
add new flag 'ki' for KiCad compatibility
2020-08-20 15:38:43 +02:00
Holger Vogt 71e65b75b0 Syntax check: If the first character in a netlist
or .control line is one of =[]?()&%$§\"!:, then ngspice
replaces it by '*' and issues a warning.
'set strict_errorhandling' will force ngspice existing.
2020-08-20 15:28:59 +02:00
Holger Vogt 71338c3271 replace 'noiseless' only if it is an unconnected token 2020-08-20 15:28:32 +02:00
Holger Vogt ba7be26b95 If a g table source contains %, [, nor ] in its name,
replace it by _ in the a instance generated during parsing.
2020-08-20 15:18:40 +02:00
Holger Vogt 05bf86caaa safeguard against empty lines which may be sent to shared ngspice 2020-05-06 11:12:21 +02:00
Holger Vogt bbe81ca8f8 shared ngspice may transmit netlists with empty lines,
guard against crashing
2020-05-05 12:00:19 +02:00
Holger Vogt cbab726d69 use memcpy instead of strncpy to copy an exact amount of characters
remove unused function header
2020-05-01 18:49:45 +02:00
Holger Vogt c520a9a4b9 if lt(a) comp mode is set, replace 'noiseless' by 'noisy=0' in resistors 2020-04-25 10:30:05 +02:00
Holger Vogt 572daed2ec Remove '.backanno' if LT campatibility mode is set 2020-04-21 20:02:18 +02:00
Holger Vogt f5ebea5e9f use internally predefined pow() function 2020-04-21 19:59:11 +02:00
Holger Vogt 4c80a1ab7d fix a bug, use ciprefix instaed of cieq, cieq led to
always FALSE if statement
2020-04-21 19:55:42 +02:00
Holger Vogt 84ff135e5b syntax check for vdmos instances with 'thermal' flag 2020-04-04 14:10:07 +02:00
Holger Vogt 9e8e50cb57 Fix a bug raised by Sambeet in
[Ngspice-users] Problems with xspice limiter block:
Don't treat .model limit_comp limit(gain... as a function
if PSPICE compatibility is set.
2020-04-04 14:09:25 +02:00
dwarning edc5b5a4d4 VDMOS prevent fault if thermal switch is given but thermal nodes are not 2020-04-04 14:08:48 +02:00
dwarning e9abecc8c7 change vdmos flag to thermal, not to confuse with b4soi 2020-03-15 08:51:15 +01:00
dwarning 3686dbfb78 filter only mos instances with thermal switch 2020-03-15 08:51:15 +01:00
dwarning 791f18053f change vdmos flag to thermal, not to confuse with b4soi 2020-03-15 08:51:15 +01:00
Holger Vogt 71ad2903ff plug a memory leak in inpcom.c vdmos code 2020-03-15 08:51:13 +01:00
Holger Vogt 7f085144a9 remove all the remains of quote() and strip() that had been
used to modify the eigths bit of a character or string.
The functions had been switched off some time ago.
We now need all bits of a char for extended ascii or utf8
2020-03-15 08:51:12 +01:00
Holger Vogt 38bb89663d replace old_x11 by HAVE_LIBXFT defined in configure 2020-03-15 08:51:09 +01:00
h_vogt 7c3a305d43 add wide char for string i/o under Windows
add utf-8 systax check
2020-03-15 08:51:05 +01:00
Jim Monte a53cd3a3e9 fixed path created by ngdirname in Windows. Also added const to parameters whose arguments do not change and fixed some potential buffer overruns. 2020-03-15 08:51:02 +01:00
Holger Vogt ec1d655289 In VDMOS device, if instance parameter tnodeout is set,
check for exactly five nodes
2020-03-15 08:51:00 +01:00
dwarning 0362d63094 update vdmos with self-heating network and tj and tcase terminal 2020-03-15 08:50:59 +01:00
Holger Vogt b699c7fad8 add the PSPICE vswitch S_ST variant,
which resolves to the classical ngspice sw switch
2020-03-15 08:50:59 +01:00
Holger Vogt 0c74820821 enable PSPICE compatible ~(~v(9)&v(8)) 2020-03-15 08:50:57 +01:00
Jim Monte 2f3b9d0f2d Used Win32 function PathIsRelativeA() to identify an absolute path instead of checking the string since the system function may handle more cases (network shares, etc.). Also reviewed formatting that was done on inpcom.c by a code beautifier in an earlier commit. Nearly all of it was an improvement, but a few cases were reverted back to closer to the original form. One particular instance was comments where a list of steps was given one per line. 2020-03-15 08:50:53 +01:00
Holger Vogt ee5f4cfc29 Replace B source pwl by XSPICE PWL Controlled Source
that has smooth rounded and differentiable corners.
This is used in the replacem,ent operation evaluating
Exxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
2019-11-30 11:42:00 +01:00
Holger Vogt b76fbf99fe Replace B source pwl by XSPICE PWL Controlled Source
that has smooth rounded and differentiable corners.
Microchip or On-Semi OpAmps that needed gmin and source
stepping for operating point calculation  now converge
without, others like MCP6001 that generally refused
to converge are o.k. now. Reason is the heavily used
Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
from the OpAmp models.
2019-11-30 11:39:09 +01:00
Holger Vogt 42e99ec66c safeguard against crash if instance lines are incomplete 2019-11-30 11:33:04 +01:00
Holger Vogt 03c5870034 in ps compatibility mode: translate t_measured to tnom 2019-10-05 13:16:25 +02:00
Holger Vogt 552d587deb readability 2019-09-28 16:21:44 +02:00
Holger Vogt 976c949c86 avoid false warnings of model not found 2019-09-28 16:21:36 +02:00
Holger Vogt aa726c9864 Make ...search_identifier safe against NULL arguments
Otherwise strstr will fail
2019-09-14 11:30:20 +02:00