Commit Graph

  • f541c6fb05 C:\Spice64 is again the default install directory for ngspice made by MSVC. Holger Vogt 2024-01-14 14:31:02 +0100
  • 5266a7c4bc If there is a successful step, but the goal is not yet reached, don't start with the minimum value of 1.00005, as this may last forever. Restart with 3. Holger Vogt 2024-01-14 11:16:45 +0100
  • d86a0c77cb Improve scheduling of breakpoints for V-source (PULSE and PWL). This fixes bugs with the TRA delay line reported by Tom Hajjar in the Help forum, Jan 11 2024. Giles Atkinson 2024-01-13 18:06:46 +0000
  • 2ad97feb31 A quick fix for a bug reported in the Help forum by Tom Hajjar on Jan 6 2024. Prevent the TRA device from requesting a breakpoint in the past, as that is a hard error. Giles Atkinson 2024-01-12 17:14:05 +0000
  • fb76eb5e12 Example for V/I sources, SFFM and AM Holger Vogt 2024-01-08 13:24:01 +0100
  • e6d6f8e928 Update to V/I sources, SFFM and AM Enable more AM functions. Unify the settings of both sources. Holger Vogt 2024-01-08 13:21:43 +0100
  • 5dbb25f667 Set new default values. Restructure the code a bit. Holger Vogt 2024-01-07 11:59:33 +0100
  • 4d0e65b3b6 Extend the error message Holger Vogt 2024-01-07 11:56:56 +0100
  • a4ae81ec06 We are developing towards ngspice-43 Holger Vogt 2024-01-06 23:14:26 +0100
  • aaaad70991 Previous AM was buggy in V(I)SRC: Update to amplitude modulation with corrected equation. Holger Vogt 2024-01-06 23:09:27 +0100
  • 88d0727d3f In PS compat mode we only have 2 nodes in a diode, but still allow self heating diode with ngspice syntax. Holger Vogt 2024-01-06 11:51:11 +0100
  • ace932e1b9 Patches provided by Carsten Schoenert: Misspellings, File access Holger Vogt 2023-12-31 13:51:05 +0100
  • 88844ba74d Prevent vectors carrying the E POLY source current from being disaggregated Holger Vogt 2023-12-31 13:32:45 +0100
  • dd7b9ff273 Avoid memory crash when reading old VDMOS models. Enable both old and current model format. Holger Vogt 2023-12-30 22:52:41 +0100
  • ace235da04 Remove ADMS from build process Holger Vogt 2023-12-29 16:53:39 +0100
  • 797af31e52 Remove ADMS, add KLU Holger Vogt 2023-12-29 16:52:57 +0100
  • ee531ae3bd Remove as it is oild and redundant Holger Vogt 2023-12-29 16:52:15 +0100
  • 1ad639d90a Add d_cosim to MS project file Holger Vogt 2023-12-29 11:01:01 +0100
  • f99a137eb3 Patch for snprintf provided by Marco Atzeri Holger Vogt 2023-12-29 10:59:56 +0100
  • 902a62d2f4 win_time.c as extra distribution, used only by MSVC Holger Vogt 2023-12-27 19:41:13 +0100
  • f8e77d08d0 More headers distributed Holger Vogt 2023-12-27 17:12:15 +0100
  • f4c560ba71 Add more KLU headers to enable their distribution Holger Vogt 2023-12-27 16:42:37 +0100
  • a08f1046e4 Add KLU headers to enable their distribution Holger Vogt 2023-12-27 16:18:36 +0100
  • 009249eafe Short title Holger Vogt 2023-12-27 12:27:31 +0100
  • c1effe3b33 Just a hack to avoid a crash during sensitivity analysis: Exclude parameter RCO from sens code, if not given, as sens sets mods->BJTintCollResistGiven to TRUE, which fails due to missing memory allocation for the extra nodes. Holger Vogt 2023-12-27 12:26:56 +0100
  • ca7c6cce71 Avoid crash, when sensitivity analysis is called Holger Vogt 2023-12-27 11:32:31 +0100
  • f307586d89 Formatting Holger Vogt 2023-12-27 10:42:07 +0100
  • db5e5b08eb Don't switch display to "op", if called from a dc simulation. Holger Vogt 2023-12-22 18:16:26 +0100
  • 03905433bb If compatmode hs is set, don't run an extra iteration with differing mode settings, but go directly to CKTop(). If other or none compat modes, keep existing behavior, as for example CIDER example may otherwise slow down significantly. Holger Vogt 2023-12-22 17:21:55 +0100
  • 37944bd7c4 Preliminary fix to bug 650 Don't omit replacement, when independent nested subcircuit has been checked. FIXME: Better use the cards level parameter. Holger Vogt 2023-12-22 17:18:43 +0100
  • 4671b588b6 Update comment Holger Vogt 2023-12-22 17:14:43 +0100
  • 5154fd3fd7 Allways export function ngCM_Input_Path, independently from XSPICE Update comment Holger Vogt 2023-12-22 17:14:22 +0100
  • d1abc8f6c7 typo Holger Vogt 2023-12-22 13:11:21 +0100
  • c53b32ffa8 Plug a potential memory leak Holger Vogt 2023-12-19 15:30:44 +0100
  • 8f52a67786 Fix set but not used warning. Brian Taylor 2023-12-18 09:46:44 -0800
  • af31904f99 The previous fix for Bug #467 - ".OPTION INTERP has accuracy issue" (359e3d46) updated variable timeold inside a loop so that all interpolations after the first caused division by zero. That caused the xspice/delta-sigma example to fail. Set the variable once at the end of the function. Giles Atkinson 2023-12-18 18:14:28 +0000
  • 81351555da Mention the vlnggen script and Verilog-controlled XSPICE models. Giles Atkinson 2023-12-18 11:42:12 +0000
  • ffcf3b24d9 Improve efficiency and irreversible CM support in EVTcall_hybrids() by halting calls to code models as soon as the timestep is chenged. This should have been included in 508fad0f55. Giles Atkinson 2023-12-18 11:37:39 +0000
  • c46866d688 Fix some typos. Thanks to Brian for checking. Holger Vogt 2023-12-18 20:13:06 +0100
  • 9a50f8b749 typo Holger Vogt 2023-12-12 17:24:23 +0100
  • ce8f6c5017 prepare ngspice-42 Holger Vogt 2023-12-12 17:08:58 +0100
  • 2e56f3a063 Add short description of the new interface functions ngSpice_LockRealloc(void) ad ngSpice_UnlockRealloc(void) Holger Vogt 2023-12-12 17:02:19 +0100
  • 7f30055f22 Prevent crash if port number is less than 1. Holger Vogt 2023-12-10 18:01:07 +0100
  • 45850c07dc Don't silently accept wrong user input (missing nodes, values). Check for at leat 4 tokens (name, n1, n2, val/model/...). If the instance has not been set up correctly, bail out, prevent crash. Holger Vogt 2023-12-10 15:18:17 +0100
  • 7cd4f003ff typo Holger Vogt 2023-12-10 15:16:05 +0100
  • 6459fed460 Don't prescribe a different resistance value if the user has given one > 0. Holger Vogt 2023-12-10 15:15:44 +0100
  • b76c3203f7 prepare ngspice-42 Holger Vogt 2023-12-09 15:47:00 +0100
  • 732c12c93f Remove another potential crash if buggy user input Holger Vogt 2023-12-08 10:40:33 +0100
  • c69018fe82 Enable measurements with ?-sweep (v, i, temp, or res). Improve error messages. Prevent crash is compüdata is not available. Add to examples for measure failures. Holger Vogt 2023-12-08 10:32:15 +0100
  • 6ad0a6ad38 hisim2: allow compile w/o NEWCONV defined dwarning 2023-12-05 17:02:51 +0100
  • a98cfcd8cb allow compile w/o NEWCONV defined dwarning 2023-12-05 10:48:11 +0100
  • 7e83526d81 Prepare ngspice-42 Holger Vogt 2023-12-05 16:25:55 +0100
  • 1adee64224 Add scripts for running the paranoia tests in parallel on Linux with valgrind. Brian Taylor 2023-12-01 15:54:17 -0800
  • 3cf8fe8c41 Stop after last data point, preventing read overrun of nscale. Giles Atkinson 2023-12-01 12:06:24 +0000
  • 7175a39448 Add files com_fileio.c, .h to shared and fftw ngspice Holger Vogt 2023-11-30 20:10:41 +0100
  • d82f948832 Fix a crash found by Brian Taylor: when .plot attempts to plot digital node history, interpolation may produce an infinite value at digital edges. Remove vertical edges when interpolating and make some other improvements: do not calculate a polynomial approximation for unused frames; center the target x-value in the frame; and do not propogate a reduction in degree to later frames. Giles Atkinson 2023-11-30 17:13:46 +0000
  • c18447f9f5 Add the support files for co-simulation with Verilog code compiled by Verilator. Also add script files to Visual Studio builds that are already installed by the Makefile builds. Giles Atkinson 2023-11-27 18:02:10 +0000
  • a92c569b72 Prevent some strings being mis-recognised by strstr(), including one that causes a false error message from the vlnggen script. Giles Atkinson 2023-11-22 16:16:46 +0000
  • 597268cc26 Treat input files names passed a start-up the same as those entered as commands or called as scripts: search for them using $sourcepath. Giles Atkinson 2023-11-21 17:12:23 +0000
  • 07ce9c788e Recognise *ng_script_with_params" in the first line of the first program input file to mean that the file is a pure interpreter script that receives any remaining command arguments. In winmain.c ensure that the argv array is NULL-terminated and tidy some code. Giles Atkinson 2023-10-18 13:37:57 +0100
  • 89851872ed When substituting interpreter variables, allow '$' to be part of the variable expresstion only within '[]' or '()'. That lets forms like "$a$b" to be treated as two substitutions, not one. Giles Atkinson 2023-10-18 13:21:24 +0100
  • 3ba314d4bc New interpreter commands strstr, strslice, fopen, fread and fclose. Giles Atkinson 2023-10-01 17:14:48 +0100
  • 566e2938f4 Add XSPICE code model d_cosim, a generic adaptor for digital cosimulation. Giles Atkinson 2023-10-18 15:03:38 +0100
  • 12fe7b90c4 Add new code model function cm_irreversible(). This may only be called from an XSPICE code model's INIT call and has three effects: the instance is treated as "hybrid" even when it does not use both port types; its position in the hybrids array is adusted; and it is explicitly notifed when called just befoore the end of an analog time-step. Giles Atkinson 2023-10-18 09:16:39 +0100
  • 34e6c4abea Convert XSPICE's hybrid_index array to instance pointers. That simplifies code and will be needed for irreversible code model support. Giles Atkinson 2023-10-11 17:06:23 +0100
  • 508fad0f55 In dctran.c, call EVTcall_hybrids() (which then calls a subset of code model instances) only when the current timestep was successful. That is efficient and means that code models may rely on such calls, for example a co-simulator may safely advance to the end of the timestep. The function cm_irreversible() that is mentioned in a comment will be added in a later commit. Giles Atkinson 2023-10-10 21:44:03 +0100
  • 3d1cbf93ee Add a predifined variable 'skywaterpdk' to speed up circuit loading and parsing. If set, it removes quoting tokens for params. This requires that Skywater PDK does adequately stick to the ngspice syntax to put params in between braces. As far as tests go, it does. It also set the number of nodes for MSO devices to 4, so no lengthy search is required. Holger Vogt 2023-11-23 18:29:48 +0100
  • dd58b07949 Initialize the new mutex vecreallocMutex Holger Vogt 2023-11-19 12:37:29 +0100
  • 1849a8d220 Add functions ngSpice_LockRealloc and ngSpice_UnlockRealloc to lock reallocing output vectors, e.g. during reading the vecs for plotting. Holger Vogt 2023-11-19 11:33:56 +0100
  • e87651e27f Update to comments, restrict mutex definitions to shared ngspice Holger Vogt 2023-11-19 11:32:25 +0100
  • 3619041e26 Add new lock for realloc of vectors Holger Vogt 2023-11-02 15:31:25 +0100
  • 1db8eff25c Write message only once. Holger Vogt 2023-11-02 15:30:54 +0100
  • ecf4f819dc typo Holger Vogt 2023-11-19 10:44:42 +0100
  • 40a783408c Remove adms, enable klu Holger Vogt 2023-11-18 20:10:17 +0100
  • 86e991515e Enable compiling with MINGW under MS Windows Holger Vogt 2023-11-18 20:09:49 +0100
  • 4d4f226a83 Prevent crash, when vector is defined, but still empty. Holger Vogt 2023-11-18 17:17:04 +0100
  • e376c0e5c6 Eanble op or ac op (operating point), when selfheat is on. op for tran has been o.k. Fixme: preliminary fix or hack. Holger Vogt 2023-11-18 17:16:19 +0100
  • b62bb20e6f Increase the allowable node name length from 24 to 256. Enable safe copying, no user induced buffer overflow. Holger Vogt 2023-11-18 10:55:19 +0100
  • 10756111bf Fix a bug when deleting the memory. With the first call to mem_delete() all the hash table is deleted, a second call to mem_delete() does not have any further effect, so has to be avoided. Holger Vogt 2023-11-18 09:58:30 +0100
  • e57979d15d Plug two memory leaks introduced by 2bbadc608 ("Use a hash table glonodes to prevent double or multiple entries in global node table global_nodes", 2023-11-17) Holger Vogt 2023-11-17 23:50:59 +0100
  • 70e366021b Generate seed numbers from a microseconds clock, not a seconds clock Holger Vogt 2023-11-17 18:35:21 +0100
  • 81bb886c71 Replace array global_nodes by hash table glonodes: Save each global node only once Search for global nodes hash table (much faster than scanning the list repeatedly). Remove limit for amount of global nodes. Holger Vogt 2023-11-17 17:02:06 +0100
  • 2bbadc6085 Use a hash table glonodes to prevent double or multiple entries in global node table global_nodes Holger Vogt 2023-11-17 13:58:57 +0100
  • d060cb82af typo Holger Vogt 2023-11-17 13:57:39 +0100
  • 0735b8d0a5 fix previous commit on repeating error messages Holger Vogt 2023-11-15 22:54:53 +0100
  • 22a10c0e44 typo Holger Vogt 2023-11-15 22:54:06 +0100
  • 55ba927973 If nan occurs during op calculation, issue the warning no more than 10 times. Holger Vogt 2023-11-14 16:57:14 +0100
  • 4da3dc51fd If compatmode ps or lt: add a series resistance (100µOhms) to diodes, when RS is not given or 0: Improves convergence in behavioural models for op evaluation. Holger Vogt 2023-11-14 16:56:31 +0100
  • 29bfe94318 Exclude some code under a unified #undef REM_USED Holger Vogt 2023-11-13 12:32:15 +0100
  • 2cf2693706 few code cleanings dwarning 2023-11-12 17:04:36 +0100
  • 2a005292db Sparse 1.3 is the matrix solver if no option (sparse or klu) is given. KLU is selected by 'option klu' If both 'option klu' and 'option sparse' are given, the last one executed determines the solver. 'option sparse=0' de-selects spares, i.e. selects klu. 'option klu=0' de-selects klu, selects sparse. 'option klu=1' has the same meaning as 'option klu'. 'option sparse=1' has the same meaning as 'option sparse'. Holger Vogt 2023-11-12 16:32:40 +0100
  • 5645968510 compiling with klu is now standard Holger Vogt 2023-11-12 15:40:04 +0100
  • c87df54f24 Remove unused global variable cp_dol. Holger Vogt 2023-11-11 10:39:51 +0100
  • 02aa2c03f9 klu is now compiled-in as standard Holger Vogt 2023-11-10 19:48:52 +0100
  • 359e3d4609 Fix Bug #467 - ".OPTION INTERP has accuracy issue". Giles Atkinson 2023-11-09 12:09:05 +0000
  • 10386ee3e3 Commit [35d338]ngspice partly reverted commit 423f9a9db to fix deletion of source files if make was accidentally used in the source tree. That caused the original bug to return. Fix the problem by deleting the generated source files by name (no such files exist in source. Also make the generated files depend on cmpp, making 'make clean' unnecessary after a chenge to cmpp. Giles Atkinson 2023-11-09 11:57:40 +0000
  • f6f7319792 Add null-pointer checks to some code that crashed when trying to .print results from a non-existent analysis. Also remove the troublesome .plot and .print lines from two examples. Giles Atkinson 2023-11-08 11:52:12 +0000
  • 4228ba6e8a Ignore end-of-line comments in quoted strings. Giles Atkinson 2023-10-16 10:16:59 +0100
  • 0a087809d6 If both node names are the same, just print them once in the error message. Holger Vogt 2023-11-08 13:12:06 +0100
  • 0555c5d9c7 Make previous KLU support check more transparent. Brian Taylor 2023-11-07 11:06:01 -0800