Commit Graph

9294 Commits

Author SHA1 Message Date
Giles Atkinson 7dd2db904c Change CMPP-related struct Mif_Parse_Value to a union
as C99 allows initialisation of any member.  Also correct a comment
in miftypes.h.
2024-05-01 10:30:48 +02:00
Giles Atkinson 0152ea92db Support use of vector defaults for XSPICE vector parameters.
This answers Feature Request 60 - "Array as default value for parameter".
2024-05-01 10:30:40 +02:00
Giles Atkinson 8ad759bd66 Use the correct type of hash table for device and model names.
This fixes unpredictable failures of commands like "print @some_device".
2024-05-01 10:30:31 +02:00
Giles Atkinson 673ae5c01d Change the code that makes variables from device/model parameters
(spiceif.c) and vectors from variables (vectors.c) so that
array and string-valued parameters and the resulting variables
are handled correctly.  Fix a memory leak in converting
array parameters; that requires a change in cplask.c so that
CPL devices behave the same way as others.  Add a "device" variant of
the Compose command so that generated vectors are available in scripts.
2024-05-01 10:30:16 +02:00
dwarning 3684db0126 use limexp to prevent NaN with extreme exponents 2024-05-01 10:30:03 +02:00
dwarning 0fdd412324 format 2024-05-01 10:29:53 +02:00
Brian Taylor d002ba353b Fix scan_gates to consider correctly gates with an inverted output. Refactor the checks in infix_to_postfix for invalid postfix expressions. 2024-05-01 10:29:35 +02:00
Brian Taylor 0ec0c92eae Go back to before previous merge. 2024-05-01 10:29:21 +02:00
Brian Taylor 31ed74041f Remove unnecessary #include. 2024-05-01 10:29:06 +02:00
Brian Taylor 57048228e9 Add variable ps_scan_gates_optimize (default 1). If < 1, then turn off the optimizations in scan_gates. 2024-05-01 10:28:53 +02:00
Holger Vogt ab0cf31148 Guard reading and executing spinit by variable no_spinit. 2024-05-01 10:28:40 +02:00
Holger Vogt 8f2f0088f2 Add a new exported function ngSpice_nospinit() to set
variable no_spinit.
2024-05-01 10:28:09 +02:00
Holger Vogt 2c2c97104f Unify all spinit sources 2024-05-01 10:27:31 +02:00
Holger Vogt ac7584bcf6 Unify the function interface, avoid lto-type-mismatch 2024-05-01 10:27:19 +02:00
Brian Taylor 292f7ad60a Fix bug in the LOGICEXP scan_gates optimizer. Some gates with an inverting output were generated with bad logic which gave incorrect simulation results. 2024-05-01 10:27:09 +02:00
Holger Vogt 3341b2e045 Bug 665: enable compiling the code models with link time optimization.
Fix provided by Giles Atkinson.
Still the build of ngspice fails (tested with Cygwin) at the linking stage.
2024-05-01 10:25:12 +02:00
Holger Vogt cac87d9dd0 Improve response to error: reporting the error when
detecting an expression, not simply move on with a
wrong meas result.
2024-03-29 17:21:38 +01:00
Holger Vogt e561249e9b fix a bug in the ={par({...})} function.
The replacement did not happen correctly.
2024-03-29 17:19:48 +01:00
Holger Vogt ee39b2600b Add a evaluation function which truly removes also the
scale factor from the token when gobble=0 before
moving on.
2024-03-29 17:16:41 +01:00
Holger Vogt bfb7798f97 measure example with expression evaluation 2024-03-29 17:12:40 +01:00
Holger Vogt 49951cd197 Bug 664: Report an error if token in meas statement is not a vector and
cannot be evaluated as a number.
2024-03-26 20:08:08 +01:00
dwarning a1210a257d use only magnitudes in ac noise analysis even if openvaf compiled models deliver negative noise contributions 2024-03-26 19:59:23 +01:00
dwarning 7722c3dc6b only access to CKTkluMODE if KLU configured 2024-03-25 09:20:51 +01:00
Holger Vogt 03a1010a65 Repeat loop requires plain number, transformed vector, or transformed variable 2024-03-19 17:05:10 +01:00
Holger Vogt 92b3a901c7 The values used in the foreach loop my be given by a vector
(in addition to plain numbers or a list variable).
2024-03-19 16:41:27 +01:00
Holger Vogt e27f093fb7 Prevent error: implicit declaration of function ‘get_local_home’
[-Werror=implicit-function-declaration], if editline is selected.
2024-03-16 23:18:13 +01:00
Holger Vogt 0c2c10eb9c add 'option klu' to printout 2024-03-16 23:13:03 +01:00
Brian Taylor 715ce8c809 Return correct error statuses. Detect another illegally placed gate operator in an infix expression. 2024-03-15 21:53:13 +01:00
Holger Vogt 603c730260 If TRACE is defined, print out everything without comment lines,
to improve readability.
Redo printing of global nodes when TRACE is defined.
2024-03-15 19:20:53 +01:00
Holger Vogt 054a65c2d5 Fix a bug in 'reset', where .subckt are not transformed
due to wrong line count in dynmaxline.
2024-03-15 19:20:47 +01:00
dwarning 7e39c10bee introduce jfet gate-drain and gate-source junction emission coefficient 2024-03-13 21:55:38 +01:00
Holger Vogt 65a91648ef temporary printout of deck 2024-03-13 17:27:33 +01:00
Brian Taylor 14bf034f28 The lexer incorrectly treats a single '_' '-' '/' as an identifier. The counter used for tmp__ names should be incremented after use. The infix_to_postfix converter now has more checks for invalid infix expressions in LOGICEXP constructs. Without these checks the evaluation of the generated postfix could silently create bad gates which would load but simulate incorrectly. All MicroCap and PSpice libraries and QEI.cir pass their tests. 2024-03-11 22:25:48 +01:00
Brian Taylor ae8e423d97 Add WARNINGs when there are potential name collisions, and identify the possible name. 2024-03-11 22:25:39 +01:00
Holger Vogt adb38ecb17 Upon error, bail out when strict_error is set. 2024-03-10 21:58:56 +01:00
dwarning 2dab26212a introduce diode breakdown voltage parameter alias vb 2024-03-10 09:47:17 +01:00
Holger Vogt f5c0a1420c Upon a warning on a model issue, ngspice should not bail out,
even if strict_error is set, as typically the simulation will
run and foreign models often have additional unsupported, but
less important parameters.

It shall however, exit if the simulation is interrupted due
to an error and strict_errorhandling is set.
2024-03-09 23:41:34 +01:00
Holger Vogt da51e1bddf Don't use printf(".."), but fprintf(stdout, "..."),
thus send an end-of-line also when redirected to file.
2024-02-28 10:06:31 +01:00
Holger Vogt a5f99a4953 Make PSP103_nqs standard, as it is used by the Open PDK from IHP 2024-02-23 14:12:49 +01:00
Brian Taylor 4c983e9133 Remove old dead code. 2024-02-23 14:06:39 +01:00
Brian Taylor 8788ce3504 Add check for a trailing } in a logicexp statement. 2024-02-23 14:06:28 +01:00
Brian Taylor 826401f6a4 Add error detection and reporting for invalid infix expressions. 2024-02-23 14:06:17 +01:00
dwarning adaa3d39fc no use for grouping in cx_fft and cx_ifft 2024-02-16 13:56:43 +01:00
dwarning 3201bcb09b prevent clang error 2024-02-16 10:12:09 +01:00
dwarning fd000c079b hicum2: use device temperature for noise analysis too 2024-02-15 18:19:11 +01:00
dwarning 3a18028283 vbic: use device temperature for noise analysis too 2024-02-15 18:09:38 +01:00
dwarning 305cd85c76 mos1...3: use device temperature for noise analysis too 2024-02-15 07:49:06 +01:00
dwarning a1dbd3f3c8 bjt, dio, jfet, res: use device temperature for noise analysis too 2024-02-14 18:16:50 +01:00
dwarning 20c82a5b1b format 2024-02-14 17:50:41 +01:00
dwarning e8f1cd4c92 too soon return - break is correct 2024-02-14 14:17:01 +01:00