Holger Vogt
5adef0cf36
AlmostEqualUlps setting has been too strict: it failed in MINGW gcc.
...
3 --> 10
2022-11-11 11:50:53 +01:00
Holger Vogt
0d86539638
Trim trailing spaces
2022-11-09 15:11:13 +01:00
Holger Vogt
f9039ea238
Don't allocate memory for control array at every time step
...
Use loc instead, setting it up once during INIT
2022-11-09 15:09:52 +01:00
Brian Taylor
104afe77cb
Remove asserts, replace fixed size lexer_buf.
2022-11-07 14:47:57 +01:00
Brian Taylor
d05689eed8
Add pindly tristate example. Cleanup error handling.
2022-11-07 14:47:36 +01:00
Brian Taylor
f6386bda0c
Remove most asserts.
2022-11-07 14:47:29 +01:00
Brian Taylor
1200092250
Add behavioral (LOGICEXP, PINDLY) test for 283 circuit. There are glitches in the simulation for some of the s* outputs. Probably due to not having inertial delays. And why not set 'zero' delays as close to zero as permitted by XSPICE.
2022-11-07 14:47:18 +01:00
Brian Taylor
ab7634e72e
Reduce the delays of 'zero' delay gates to 1.0e-11. Add decoder test for logicexpr and pindly.
2022-11-07 14:47:13 +01:00
Brian Taylor
77d56eb184
Fix a typo, add more comments.
2022-11-07 14:47:02 +01:00
Brian Taylor
7e4b10a9db
Add support for TRISTATE: in PINDLY.
2022-11-07 14:46:53 +01:00
Brian Taylor
50e3c7eadd
Fix potential memory leak, clean out debug code.
2022-11-07 14:46:48 +01:00
Brian Taylor
3bdb6ee151
Better estimates of rise/fall delays in PINDLYs with outputs separated by CASE.
2022-11-07 14:46:34 +01:00
Brian Taylor
5717b2b2fc
Fix visualc compiler warnings.
2022-11-07 14:46:27 +01:00
Brian Taylor
629010b1cb
Improve delay estimates for pindly output buffers.
2022-11-07 14:46:14 +01:00
Brian Taylor
3eb0a089e5
Initial handling of PINDLY. Output buffers without rise/fall delay estimates.
2022-11-07 14:46:04 +01:00
Brian Taylor
9d239dc2f7
Move f_logicexp, f_pindly calls to u_process_instance. Use u_add_instance to copy gate instances and models to the replacement cards.
2022-11-07 14:45:57 +01:00
Brian Taylor
a27ae48e27
Fix potential memory leak.
2022-11-07 14:45:51 +01:00
Brian Taylor
67369f1c67
Initial logicexp parser and gate generator.
2022-11-07 14:45:45 +01:00
Brian Taylor
db81d7ca28
Add drive 0/1 for $d_lo/$d_hi.
2022-11-07 14:45:33 +01:00
Holger Vogt
2e064db79a
Add STATIC_VAR_TABLE locdata
...
Add CALLBACK cm_d_pwm_callback
Reserve memory for x, y arrays only once during INIT
2022-11-07 12:16:58 +01:00
Holger Vogt
9bab229e7b
We are developing towards ngspice-39
2022-11-06 11:31:21 +01:00
Holger Vogt
5bf6894d58
Add info on new function ngCM_Input_Path
2022-11-06 11:30:00 +01:00
Holger Vogt
159e36d23b
Add function
...
char* ngCM_Input_Path(const char* path);
to shared ngspice API
to send file path for code model input files (e.g. dsource).
Such path cannot be extracted automatically when netlist has
been sent by ngSpice_Circ
2022-10-26 23:34:10 +02:00
Holger Vogt
ce2e95f32d
Fix typo
2022-10-26 16:23:36 +02:00
Holger Vogt
39316ea3c6
Function ngSpice_Circ() may send empty lines to shared ngspice.
...
Skip these lines while processing the netlist array.
2022-10-26 16:23:00 +02:00
Holger Vogt
8bcea45f1c
Add a guard on parameter 'position', limit to
...
1e-9 to 0.999999999
FIXME: the given parameter limits from ifspec.ifs are not recognized.
2022-10-22 13:31:38 +02:00
Holger Vogt
4a222d74c1
Update on author
2022-10-22 13:29:48 +02:00
Holger Vogt
ec43c65f56
Patch required to allow compiling at Fedora with -Werror=format-security
...
Provided by Mamoru Tasaka
2022-10-21 15:26:20 +02:00
Holger Vogt
3864edb941
Typo
2022-10-19 12:25:00 +02:00
Holger Vogt
16b95ecda2
Small correction to previous commit.
2022-10-17 20:32:44 +02:00
Holger Vogt
43517efb41
Add a limit of 0.999 to bipolar parameters mje, mjc, and mjs.
...
The bipolar model is restricted to values < 1.
Fixes bug 583
2022-10-17 20:32:34 +02:00
Holger Vogt
ce82fb22e2
prepare ngspice-38
2022-10-17 20:32:06 +02:00
Holger Vogt
6b0ba58e42
Fix bug 590, but only for GUI with MS Windows.
...
X11 for Cygwin, Linux is not yet o.k.
2022-10-17 20:27:15 +02:00
Holger Vogt
c38e6abe59
Make doxygen documentation complete as an example.
2022-10-15 16:02:07 +02:00
Holger Vogt
f78a8b49a7
The derivative of pow shall use the new pow function as well,
...
when compat mode LT is selected.
2022-10-14 14:54:30 +02:00
Holger Vogt
2378302114
Update for doxygen: add function names to \brief
2022-10-12 21:49:08 +02:00
Holger Vogt
39fd21b04b
Update to comments for doxygen
2022-10-12 21:33:24 +02:00
Giles Atkinson
c396090e51
Fix memory leak reported by Brian Taylor.
2022-10-12 20:52:35 +02:00
Giles Atkinson
eb353ee2f7
Fix XSPICE's node prefix '~' when PSPICE compatability is used.
2022-10-12 20:52:15 +02:00
Holger Vogt
0ac52967dd
Fix typo
2022-10-12 12:52:43 +02:00
Holger Vogt
b2c4c4dac1
Test for doxygen documentation
2022-10-12 12:52:09 +02:00
Holger Vogt
540cda52ad
If compatmode is lt, change the pow(x,y) and x**y functions:
...
If x < 0, output only if y is integer number, otherwise output 0
2022-10-12 12:26:12 +02:00
Holger Vogt
d24b405bfb
Add some comment
2022-10-12 12:23:36 +02:00
Brian Taylor
ff58fbbe56
Remove VisualC compile warnings.
2022-10-09 10:15:14 +02:00
Holger Vogt
317e5a3d99
Search for .spiceinit (or spice.rc) firstly in a user defined directory,
...
when the directory path is set in the environmental variable
SPICE_USERINIT_DIR.
If not found then search in the current directory, then in HOME, then
in USERPROFILE.
2022-10-09 10:11:23 +02:00
Holger Vogt
dcb3bf0f8b
Prevent Visual Studio compiler warnings
2022-10-08 17:20:48 +02:00
Giles Atkinson
8775376723
Fix a crash that sometimes occurs on Linux when interrupting from
...
the terminal a simulation that was started directly from the command
line. A gdb backtrace showed rl_cleanup_after_signal() calling
fwrite() with a NULL file pointer.
2022-10-08 16:55:53 +02:00
Holger Vogt
69bb426cdb
send error message to stderr, not to stdout
2022-10-07 11:24:04 +02:00
Holger Vogt
a741ccf4e1
Streamline the simple diode model.
2022-09-29 16:28:16 +02:00
Holger Vogt
dc8c7db718
Fix a bug in simple diode, when ilimit is set, but not epsilon.
...
Make model more similar to LTSPICE
Add an example
2022-09-29 16:14:25 +02:00
Holger Vogt
8d86aa84d8
Remove parameter noiseless in simple diode model.
...
The model is noiseless anyway.
2022-09-29 16:05:30 +02:00
Brian Taylor
21f62db206
Remove unnecessary hierarchical level check.
2022-09-24 11:57:18 +02:00
Brian Taylor
41b7c867ff
Fix memory leaks in ff/latch code.
2022-09-23 14:59:17 +02:00
Brian Taylor
93bd661a3e
If ps_udevice_msgs >= 2, print complete line of unsupported PSpice instance. For debugging purposes.
2022-09-23 14:59:01 +02:00
Giles Atkinson
583ee06232
Fix bug reported by Anant Devi in user discussion 22/9/22.
...
A function call, vi(v) was misparsed as the special token i(vsource)
for the current in a voltage source.
2022-09-23 13:15:07 +02:00
Giles Atkinson
31fcd7d561
Correct the digital state resolution table, that was previously asymmetric.
...
An equivalent change is mentioned in the SPICE OPUS change history.
2022-09-23 13:15:07 +02:00
Giles Atkinson
af09a06cdb
Add bidirectional digital/analog bridge.
2022-09-23 13:15:07 +02:00
Giles Atkinson
118b997642
Add two functions to the Code Model Library: cm_get_node_name()
...
makes circuit node names available to diagnostics, while
cm_probe_node() is needed for a bidirectional A/D bridge.
2022-09-23 13:15:07 +02:00
Giles Atkinson
9d780f8bb4
Fix bug #602 "Warning message trying to linearize a transient analysis vector"
...
by changing the way "ngspice -a" (autorun option) works. The inserted code
now checks whether a simulation has already run by examining $curplot
before forcing "run". Also at most one simulation is forced to run.
2022-09-23 13:15:07 +02:00
Giles Atkinson
2f9403d143
Prevent overwriting of previous debug output when expanding auto-bridge deck.
2022-09-23 13:15:07 +02:00
Giles Atkinson
8156745c97
Rewrite code with Visual Studio complaints.
2022-09-23 13:15:06 +02:00
Holger Vogt
2d4c1379af
Transfer i(xx) to xxx#branch only when i is the first
...
character of the token or preceeded by a space.
2022-09-23 12:58:47 +02:00
Holger Vogt
c7b0438ce7
Just to notify that this might need a better solution
2022-09-23 12:04:20 +02:00
Holger Vogt
41e92be956
FIXME: This is a hack to re-enable 'make check'
...
Do not print warning if in batch mode.
2022-09-21 10:04:22 +02:00
Holger Vogt
cfba8a5cd3
Note: ix: dc value used for op instead of transient time=0 value
...
Former warning message or note only issued when dc value and
value at transient time=0 differ.
2022-09-20 22:50:17 +02:00
Holger Vogt
bce48859df
Note: vs: dc value used for op instead of transient time=0 value
...
Former warning message or note only issued when dc value and
value at transient time=0 differ.
2022-09-20 22:47:24 +02:00
Holger Vogt
ba394d5903
Warning message, when 'run' is called without job
...
(tran, op, ac etc.) is defined.
2022-09-20 20:09:42 +02:00
Holger Vogt
6237639ec5
Change error messages to warning messages, because simulator moves on
...
and command is ignored.
Make messages more verbose (which command?).
2022-09-20 13:28:55 +02:00
Holger Vogt
64b429d6f8
Don't send error message to stdout, but to stderr.
2022-09-18 16:00:21 +02:00
Holger Vogt
453350bf2f
safeguard against circuit not being abvailable,
...
avoid crash
2022-09-18 11:11:56 +02:00
Holger Vogt
8dba70c7cc
add parameter description
2022-09-18 11:10:59 +02:00
Brian Taylor
78f732a8a1
Add comment about ps_udevice_msgs variable. Set to 1 will print PSpice instance names and types which are not supported and are found when processing a subckt.
2022-09-14 15:01:39 +02:00
Holger Vogt
3d625bc1ef
pwlts: a pwl v/i source with time input, smoothing and limiting functions
2022-09-09 15:24:37 +02:00
Holger Vogt
f5a172ce4e
Make the Error message a Warning message,
...
because ngspice may move on
2022-09-07 16:27:29 +02:00
Holger Vogt
8ef0c03fa6
Prevent a crash if (due to input error) the node_table is not available.
2022-09-04 17:35:47 +02:00
Holger Vogt
c7fa70d109
Add special savecurrents options:
...
options savecurrents_bsim3, savecurrents_bsim4, and savecurrents_mos1
will save all device currents as listed in chapts 31.6.1, .8 and .9
of the ngspice manual. Pure savecurrents will yield a subset of MOS1
currents, as seen before.
2022-09-02 15:06:40 +02:00
Holger Vogt
e9fcb9b332
Prevent crash in gettok() and similar functions by checking for NULL
...
input. Return NULL instead.
2022-09-01 16:57:54 +02:00
Holger Vogt
04ded78ef6
Prevent crashes when nodes or tables are not available,
...
e.g. due to missing input file.
2022-08-31 15:43:20 +02:00
Holger Vogt
bfab06e04b
Improved error message: more info on the bad set form
2022-08-31 15:42:30 +02:00
Giles Atkinson
3901c0a865
Remove search for "family" parameters on subcircuits in XSPICE
...
automatic bridging support as string-valued parameter support is
not yet intgrated.
2022-08-31 15:34:09 +02:00
Giles Atkinson
495172f532
Latest auto-bridge code from development branch.
2022-08-31 15:34:04 +02:00
Giles Atkinson
148cecf919
Insert XSPICE bridging devices automatically when an analogue node
...
has the same name as an XSPICE event node (including digital nodes).
The function Evtcheck_nodes() is replaced by a new version in its
own file.
2022-08-31 15:33:59 +02:00
Holger Vogt
ff62468c1f
Iterations for op or dc may start with arguments 0 for ln().
...
To cope with this, and potential overflow in exp function,
some limits have been added.
2022-08-30 20:02:46 +02:00
Holger Vogt
0be7461dd9
Enable power measurement for W switch
2022-08-29 20:30:23 +02:00
Holger Vogt
b83a0d3fdf
Allow individual current measurements in switches or
...
linear dependent sources.
2022-08-29 14:12:43 +02:00
Holger Vogt
655a81da7a
.probe alli improved:
...
* Enable current mesurement for I source
* Look at only the first 2 nodes of S and W switches
and F and G controlled current sources, measure current
with = voltage source added to second node. So we get
I(Fx), I(Gx), I(Sx), and I(Wx).
2022-08-29 12:23:13 +02:00
Giles Atkinson
682b849603
Make FROM/TO work in TRIG/TARG and WHEN variants of .meas/meas command.
...
Discussion at
https://sourceforge.net/p/ngspice/discussion/133842/thread/973e152274/
2022-08-17 15:30:56 +02:00
Holger Vogt
cc866ead29
Check for tran at first when linearize is called.
2022-08-17 15:14:06 +02:00
Brian Taylor
a361d63ca1
Make a trivial change to support (n)and3a, (n)or3a, (n)xor3a types. These are not used in any of the Micro Cap libraries. Completes support for Pspice tristate gate types.
2022-08-06 10:43:17 +02:00
Brian Taylor
f0876163e8
If variable ps_port_directions >= 2, also show the translated Xspice statements.
2022-08-06 10:43:02 +02:00
Brian Taylor
47753ad5b2
Ignore IO models in a subckt. Setting variable ps_port_directions to a non-zero int prints the directions (IN, OUT, INOUT) of subckt ports.
2022-08-06 10:42:50 +02:00
Brian Taylor
15d987ad0f
Check for name collisions between nodes generated during translation from Pspice to Xspice and instance pin or subckt port names. These are reported as ERRRORs.
2022-08-06 10:42:43 +02:00
Holger Vogt
3fc3997cef
Handle the case when control voltages on and off are equal.
...
Update the linear switch: add the limits to resistance ron, roff
Update the log switch: correct the resistance calculation for
von < voff
Add some examples for the pswitch.
2022-08-05 17:30:08 +02:00
Holger Vogt
874aca4a86
Avoid an endless loop: Safeguard function
...
search_plain_identifier(char *str, const char *identifier)
against identifiers being an empty string.
2022-08-01 18:30:50 +02:00
Holger Vogt
227bb9c419
If a node name to be plotted ends by ':power', its type is set to POWER.
...
Thus 'settype power nodename(s)' in the examples is no longer necessary.
2022-07-31 15:49:50 +02:00
Holger Vogt
382b6c534b
Update to .probe command:
...
If no .save or save command given by the user, add '.save all' internally.
To do so, check for .save or save.
Update to the .probe p command (power measurement)
Add probe_int_ to internal nodes and instance names, where appropriate.
These nodes will be disregarded when setting up the plot structure.
2022-07-31 15:47:32 +02:00
Holger Vogt
0b3383546c
Handle .if ... .else ... .endif before .csparam is executed,
...
thus allowing parameter entry to .control section being dependent
on .if
2022-07-24 15:54:29 +02:00
Giles Atkinson
f878878bd8
Remove some dead code in the dec_bridge code model.
2022-07-24 12:23:24 +02:00
Giles Atkinson
659b426cf8
Fix double free in XSPICE CALLBACK functions as desribed here:
...
https://sourceforge.net/p/ngspice/mailman/message/37677362/
and add missing CALLBACKs in models that use STATIC_VARs with
pointer values.
2022-07-24 12:23:19 +02:00
Giles Atkinson
2406846a21
Extend the output and partial derivatives of the output from the 2/3-D
...
table lookup models (XSPICE) continuously outside the defined
rectangle or cube, as it may help convergence and avoid ambiguity caused
by rounding at the boundaries. See bug #591 "Wrong 2D table model output".
The value is that of the nearest point in the region while the reported
derivative is ramped to zero outside the boundaries.
Also fixes incorrect output at the upper limit in each dimension.
2022-07-24 12:23:15 +02:00