Brian Taylor
0805856fb7
Distinguish between set/reset delays when possible.
2022-12-19 12:43:00 +01:00
Brian Taylor
253df17949
Make it optional to use zl/zh/lz/hz delays for utgate.
2022-12-19 12:42:36 +01:00
Brian Taylor
4c457a3cd4
Avoid unnecessary calculations for utgate.
2022-12-19 12:42:06 +01:00
Brian Taylor
a4b609fb6a
For utgate timing models, if hl/lh are not present use zl/zh/lz/hz to give a more accurate tristate delay.
2022-12-19 12:41:18 +01:00
Brian Taylor
021982799e
More conservative delay estimates for timing model type ugff.
2022-12-19 12:40:50 +01:00
Brian Taylor
11f6eace68
For dff/jkff, obtain more conservative estimates for clk_delay, set_delay and reset_delay.
2022-12-19 12:40:06 +01:00
Holger Vogt
cc8b651562
re-enable making old app nutmeg
2022-12-11 15:47:22 +01:00
Holger Vogt
d4fcef9bf6
Repair the broken --enable-oldapps option
2022-12-11 15:47:05 +01:00
Holger Vogt
e28d3feee0
Remove unused variable debarr.
...
Add another example.
2022-12-11 15:39:10 +01:00
Holger Vogt
6c1be283a7
Add a function ddt (derivative versus time) to the B-source funtion parser.
2022-12-11 15:38:22 +01:00
Brian Taylor
47260e2eb8
Rewrite extract_model_param.
2022-12-11 15:38:08 +01:00
Brian Taylor
0924fbb7eb
Modify the delay calculation for non-conforming timing model in .subckt CD4572UB.
2022-12-11 15:37:34 +01:00
Holger Vogt
a5eaac128a
For monotonic plotting find out the majority of increasing or decreasing
...
x-axis values, add a warning to add 'retraceplot' to plot all if more than
10% of the values deviate from the majority.
2022-12-11 15:37:14 +01:00
Holger Vogt
9613625840
Prevent seg fault after strange input like
...
*no circuit
.save all
.probe alli
.op
.end
2022-12-11 15:36:22 +01:00
Pascal Kuthe
744002dc49
fix sigfault on older c compilers
2022-12-11 15:35:53 +01:00
Giles Atkinson
7ead974a5a
Prevent crash when cm_analog_set_temp_bkpt() is called during OPtran().
2022-12-11 15:35:31 +01:00
Giles Atkinson
73e8fed0fc
Fix warnings from gcc 10.2.1.
2022-12-11 15:35:14 +01:00
Brian Taylor
929d1f5190
Added xor/xnor for logicexp timing models.
2022-12-11 15:34:56 +01:00
Brian Taylor
7ff8f3773f
Handle cases where logicexp has a timing model but no pindly. This is rare, only 22 tests from the digital libraries. Move digital examples, add missing .spiceint file.
2022-12-11 15:34:33 +01:00
Brian Taylor
a0cf65ca1a
Add B-source note
2022-12-11 15:33:24 +01:00
Holger Vogt
631ff35c34
The 8th parameter on a voltage or current source now is 'number of pulses'.
...
Previous usage had been PHASE, introduced by XSPICE, which has
been redundant to DELAY. PHASE is again available when compatibility flag
xs has been set.
2022-12-11 15:32:51 +01:00
Holger Vogt
e967b31c94
Add a new compatibility mode xs (for XSPICE)
2022-12-11 15:32:30 +01:00
Holger Vogt
27fb6cd0a6
Allow resetting the limit for warning mesaages, when a new run is started.
2022-12-11 15:32:11 +01:00
Holger Vogt
8e175f1e77
Replace obscure warning "singular matrix: check nodes mymode1 and mynode1" by
...
"singular matrix: check node mynode1", if both node names are equal.
2022-12-11 15:31:41 +01:00
Brian Taylor
1511214874
Add more debug instrumentation.
2022-12-11 15:31:09 +01:00
Brian Taylor
fe733a8ca2
Use tilde '~' inputs instead of creating inverters.
2022-12-11 15:30:41 +01:00
Holger Vogt
59e28ac2a2
Remove mentioning line number 0, which has been incomprehensible.
2022-12-11 15:30:12 +01:00
Holger Vogt
59413a7f71
Add error messages when controlled_exit is called:
...
No exit without message.
2022-12-11 15:29:47 +01:00
Pascal Kuthe
75c2a3c621
calculate log frequency sweep such that start frequency and stop frequency are always exactly included
2022-12-11 15:29:19 +01:00
Pascal Kuthe
c5d5da15ee
fix: allow hicum/l2 to compile with older c++ compilers
2022-12-11 15:28:59 +01:00
Holger Vogt
f13aa89626
Add new functions for operators x**y or x^y
...
compatmode hs: x>0 pow(x, y), x<0 pow(x, round(y)), X=0 0
compatmode lt: x>0 pow(x, y), x<0 pow(x, y) if y is close to integer, else 0
2022-12-11 15:27:26 +01:00
Holger Vogt
d0f686727d
Add new functions for operators x**y or x^y
...
compatmode hs: x>0 pow(x, y), x<0 pow(x, round(y)), X=0 0
compatmode lt: x>0 pow(x, y), x<0 pow(x, y) if y is close to integer, else 0
2022-12-11 15:27:02 +01:00
Brian Taylor
9932a78e39
Add safety braces.
2022-12-11 15:26:42 +01:00
Brian Taylor
5726c9ff0b
Tidy up debug tracing code.
2022-12-11 15:26:16 +01:00
Brian Taylor
aa2f3b7bbb
Fix memory leaks.
2022-12-11 15:25:52 +01:00
Brian Taylor
4294f49968
Add more vectors to behavioral 283 circuit. Add tristate buffer circuit which shows glitches until inertial delays are implemented.
2022-12-11 15:25:24 +01:00
Brian Taylor
cefa6b380c
When the gen_tab has only one entry, do not call optimize_gen_tab, it is not necessary.
2022-12-11 15:25:00 +01:00
Brian Taylor
029df5a3d6
Check that the bparse gen_tab optimization loop finishes when no more improvements occur.
2022-12-11 15:24:35 +01:00
Holger Vogt
6af73bc97f
remove unused
2022-12-11 15:24:04 +01:00
Holger Vogt
d77e36dc1b
To find the nearest integer, use nearbyint(). trunc() has delivered
...
only one-sided answers.
2022-12-11 15:23:20 +01:00
Holger Vogt
47f2b7c6af
AlmostEqualUlps setting has been too strict: it failed in MINGW gcc.
...
3 --> 10
2022-12-11 15:22:54 +01:00
Holger Vogt
ba6ff75dab
Trim trailing spaces
2022-12-11 15:22:30 +01:00
Holger Vogt
f26c9146f5
Don't allocate memory for control array at every time step
...
Use loc instead, setting it up once during INIT
2022-12-11 15:22:01 +01:00
Brian Taylor
aff20b9db1
Remove asserts, replace fixed size lexer_buf.
2022-12-11 15:21:09 +01:00
Brian Taylor
d54c1fc091
Add pindly tristate example. Cleanup error handling.
2022-12-11 15:20:27 +01:00
Brian Taylor
0627af435a
Remove most asserts.
2022-12-11 15:20:03 +01:00
Brian Taylor
b142be7fde
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-12-11 15:19:39 +01:00
Brian Taylor
4e76586b6b
Reduce the delays of 'zero' delay gates to 1.0e-11. Add decoder test for logicexpr and pindly.
2022-12-11 15:19:17 +01:00
Brian Taylor
13c01abf0d
Fix a typo, add more comments.
2022-12-11 15:18:52 +01:00
Brian Taylor
68f0d49f58
Add support for TRISTATE: in PINDLY.
2022-12-11 15:18:32 +01:00
Brian Taylor
363179ce2f
Fix potential memory leak, clean out debug code.
2022-12-11 15:18:12 +01:00
Brian Taylor
499bef097e
Better estimates of rise/fall delays in PINDLYs with outputs separated by CASE.
2022-12-11 15:17:51 +01:00
Brian Taylor
a01edf2f36
Fix visualc compiler warnings.
2022-12-11 15:17:33 +01:00
Brian Taylor
22a3af8a1e
Improve delay estimates for pindly output buffers.
2022-12-11 15:17:17 +01:00
Brian Taylor
64c2c1ee05
Initial handling of PINDLY. Output buffers without rise/fall delay estimates.
2022-12-11 15:16:57 +01:00
Brian Taylor
62aab3885d
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-12-11 15:16:37 +01:00
Brian Taylor
7c699a599f
Fix potential memory leak.
2022-12-11 15:16:20 +01:00
Brian Taylor
a54aa4d1f7
Initial logicexp parser and gate generator.
2022-12-11 15:16:02 +01:00
Brian Taylor
4a904cdf18
Add drive 0/1 for $d_lo/$d_hi.
2022-12-11 15:15:44 +01:00
Holger Vogt
e47049f31a
Add STATIC_VAR_TABLE locdata
...
Add CALLBACK cm_d_pwm_callback
Reserve memory for x, y arrays only once during INIT
2022-12-11 15:15:22 +01:00
Holger Vogt
f1165052ad
We are developing towards ngspice-39
2022-11-06 11:23:17 +01:00
Holger Vogt
14f42f805d
Add info on new function ngCM_Input_Path
2022-10-29 15:48:58 +02:00
Holger Vogt
eb70d81dab
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-28 14:12:53 +02:00
Holger Vogt
4b15632f9b
Function ngSpice_Circ() may receive empty lines.
...
Skip these lines while setting the netlist.
2022-10-26 22:24:52 +02:00
Holger Vogt
97ee2d8047
Fix typo
2022-10-26 17:48:34 +02:00
holger
7eafd48cc0
Add udevices.h to makefile.am for 'make dist'
2022-10-24 20:27:57 +02:00
Holger Vogt
a6c28e44ff
Add info on shared library
2022-10-24 17:04:45 +02:00
Holger Vogt
638a09b718
Make doxygen documentation complete as an example.
2022-10-22 19:51:32 +02:00
Holger Vogt
70f38ec25f
Update for doxygen: add function names to \brief
2022-10-22 19:51:06 +02:00
Holger Vogt
b6d2a50e42
Update to comments for doxygen
2022-10-22 19:50:40 +02:00
Holger Vogt
3288d5ac99
Test for doxygen documentation
2022-10-22 19:48:12 +02:00
Holger Vogt
ed6f802948
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 15:54:12 +02:00
Holger Vogt
2d8ea17d65
Update on author
2022-10-22 15:54:01 +02:00
Holger Vogt
61d23b99ff
Patch required to allow compiling at Fedora with -Werror=format-security
...
Provided by Mamoru Tasaka
2022-10-22 15:53:45 +02:00
Holger Vogt
7fa5c7ad87
Typo
2022-10-22 15:53:32 +02:00
Holger Vogt
27ba1e39df
Small correction to previous commit.
2022-10-17 16:47:51 +02:00
Holger Vogt
06d349ff06
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 16:03:36 +02:00
Holger Vogt
5bc1660773
prepare ngspice-38
2022-10-16 16:59:34 +02:00
Holger Vogt
e2defea752
The derivative of pow shall use the new pow function as well,
...
when compat mode LT is selected.
2022-10-14 14:56:09 +02:00
Giles Atkinson
01c4a5dff2
Fix memory leak reported by Brian Taylor.
2022-10-14 13:52:34 +02:00
Giles Atkinson
9801d06795
Fix XSPICE's node prefix '~' when PSPICE compatability is used.
2022-10-14 13:52:17 +02:00
Holger Vogt
d7485d7136
Fix typo
2022-10-14 13:51:16 +02:00
Holger Vogt
edab163192
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-14 13:50:37 +02:00
Holger Vogt
933b1fdb2b
Add some comment
2022-10-14 13:50:20 +02:00
Brian Taylor
150839dd1a
Remove VisualC compile warnings.
2022-10-09 10:21:51 +02:00
Holger Vogt
7f486febe9
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:21:39 +02:00
Holger Vogt
2547115eeb
Prevent Visual Studio compiler warnings
2022-10-09 10:21:06 +02:00
Giles Atkinson
e67261be29
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:58:26 +02:00
Holger Vogt
ffc09208bf
send error message to stderr, not to stdout
2022-10-08 16:51:02 +02:00
Holger Vogt
9166f202a6
Streamline the simple diode model.
2022-10-08 16:50:47 +02:00
Holger Vogt
ec6a902fb9
Fix a bug in simple diode, when ilimit is set, but not epsilon.
...
Make model more similar to LTSPICE
Add an example
2022-10-08 16:50:38 +02:00
Holger Vogt
7bb581b1b3
Remove parameter noiseless in simple diode model.
...
The model is noiseless anyway.
2022-10-08 16:50:26 +02:00
Brian Taylor
266d944745
Remove unnecessary hierarchical level check.
2022-10-08 16:50:15 +02:00
Brian Taylor
bd00738a49
Fix memory leaks in ff/latch code.
2022-10-08 16:50:03 +02:00
Brian Taylor
e2652d813d
If ps_udevice_msgs >= 2, print complete line of unsupported PSpice instance. For debugging purposes.
2022-10-08 16:49:38 +02:00
Giles Atkinson
c704854b3c
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-10-08 16:49:02 +02:00
Giles Atkinson
d9952575dd
Correct the digital state resolution table, that was previously asymmetric.
...
An equivalent change is mentioned in the SPICE OPUS change history.
2022-10-08 16:48:20 +02:00
Giles Atkinson
372d9b2c87
Add bidirectional digital/analog bridge.
2022-10-08 16:48:11 +02:00
Giles Atkinson
e80b724460
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-10-08 16:47:50 +02:00
Giles Atkinson
8cc9d8522f
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-10-08 16:47:30 +02:00