Commit Graph

3801 Commits

Author SHA1 Message Date
Holger Vogt 4cc5966b6a Don't delete sourceinfo as it may lead to a crash upon 'quit'.
Needs further investigation.
2024-05-14 16:31:23 +02:00
Holger Vogt 893cd42064 Reload sourceinfo when changing the current circuit. 2024-05-14 16:31:15 +02:00
Holger Vogt 36bc67ecbb Save the wordlist sourceinfo to the current circuit.
Remove sourceinfo only upon 'quit'.
2024-05-14 16:30:59 +02:00
Holger Vogt 97d9f38421 Add (enhanced) patch by Giles Atkinson
Add controlled_exit() to errors when parsing functions.
Add verbose error messages, including line number and
name of the source file.

.lib file handlinmg with its recursive structure probably needs
testing and improvements.

More error messages may need this update.
2024-05-14 16:30:36 +02:00
Holger Vogt 862aa27713 Add linum_orig and linesource to commented out *include line 2024-05-14 16:30:27 +02:00
Holger Vogt eaae4d2212 Add linenum_orig and linesource info to newly generated
U device lines.
2024-05-14 16:30:15 +02:00
Holger Vogt c796171638 Add char *lineinfo to parameters of fcn insert_new_line 2024-05-14 16:30:04 +02:00
Holger Vogt 63d496b564 New parameter char *linesource for fcn insert_new_line
Make Fcn inp_read in inpcom.c static
2024-05-14 16:29:51 +02:00
Holger Vogt c4cbc40a3b Add file_name to fcn inp_read
Add wordlist sourceinfo to store input sources
path/file, internal, etc.)
debug_out.txt adds line info (var. sourcelineinfo)
Add sourcelineinfo to wordlist sourceinfo and to each new line.
When adding lines due to compatibility handling, use existing
linenum_orig and linesource.
2024-05-14 16:29:34 +02:00
Holger Vogt 03ba8397cc Add the original line source information to the new line. 2024-05-14 16:29:24 +02:00
Holger Vogt 89b25c5d58 Do not add line number 0, but the number of the original
.probe command to linenum_orig.
2024-05-14 16:28:51 +02:00
Holger Vogt e151b691fb Add an additional funtion parameter 'filename' to fcn inp_readall
to transfer not only the folder, but also the file name of the
current input
2024-05-14 16:28:40 +02:00
Holger Vogt 2ac12df93b while copying a deck, copy the new infos 2024-05-14 16:27:56 +02:00
Giles Atkinson b2c0f85c6d Prevent lines beginning '#' in .include files from being treated
as device lines.
2024-05-01 10:55:26 +02:00
Holger Vogt a48b1f8f46 allow compiling with CIDER deselected 2024-05-01 10:32:54 +02:00
Holger Vogt 39b5ea0d3f no lower casing for file input paths 2024-05-01 10:32:23 +02:00
Giles Atkinson 5f59d76a03 Suppress some warnings from MSVC. 2024-05-01 10:31:25 +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
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 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 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 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 7722c3dc6b only access to CKTkluMODE if KLU configured 2024-03-25 09:20:51 +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
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
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
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
Brian Taylor e01290c9a2 Replace the logicexp parser with infix to postfix translation followed by evaluating the postfix. logicexp.c is now shorter and easier to understand and maintain. Also, operator precedence expression parsing conforms to the PSPICE rules. Thus, a & b | c is understood to mean (a & b) | c, for example. 2024-02-13 10:11:28 +01:00
Brian Taylor bd0f725776 There are approx. 47 out of 1455 subckts in PSPICE 9.1 libraries which contain X* subckt calls together with zero or more U* instances. Now this type of subckt can be translated to XSPICE. 2024-02-13 10:11:21 +01:00
Giles Atkinson 2ec5944dd4 Use all available precision when creating a "plot" command for a
zoomed window.  That prevents an unexpected zoom-out in one dimension
caused by a zero-height (or width) window being requested when zooming
with already high magnification.
2024-02-07 14:56:59 +01:00
dwarning 1e8f9a411a rm obsolete order for spec blackman window 2024-01-26 08:32:18 +01:00
dwarning e0c3206601 partially revert commit aafd7bbb: spec triangular window 2024-01-26 07:45:27 +01:00
dwarning aafd7bbb42 correct bartlett/triangle fft window formulae 2024-01-21 21:58:43 +01:00
Brian Taylor a70297e87a Several PSPICE 9.1 evaluation digital libraries contain timing .model statements at the global level for subckts with U* instances that reference those models. By specifying "set ps_global_tmodels=1" in .spiceinit an extra pass inside u_instances() will collect those global timing models for use in subckts. Report errors detected when ngspice parses a LOGICEXP but has not added support for operator precendence. Include a hint of how to fix those errors by inserting parentheses. This error only occurs in 10 of 585 cases in the libraries. Note that inpcompat.c has been saved as a unix filetype. 2024-01-17 14:15:07 +01:00
Holger Vogt a0bddf872d Fix dd7b9ff27
("Avoid memory crash when reading old VDMOS models.
Enable both old and current model format.",
2023-12-30)
2024-01-15 11:10:50 +01:00