Commit Graph

3544 Commits

Author SHA1 Message Date
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
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 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 Vogt a6c28e44ff Add info on shared library 2022-10-24 17:04:45 +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 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 2547115eeb Prevent Visual Studio compiler warnings 2022-10-09 10:21:06 +02:00
Holger Vogt ffc09208bf send error message to stderr, not to stdout 2022-10-08 16:51:02 +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 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
Holger Vogt 56d07aab31 Transfer i(xx) to xxx#branch only when i is the first
character of the token or preceeded by a space.
2022-10-08 16:46:51 +02:00
Holger Vogt 92ba8ac88e Just to notify that this might need a better solution 2022-10-08 16:46:18 +02:00
Holger Vogt f832380dc9 FIXME: This is a hack to re-enable 'make check'
Do not print warning if in batch mode.
2022-10-08 16:46:01 +02:00
Holger Vogt 6037450952 Warning message, when 'run' is called without job
(tran, op, ac etc.) is defined.
2022-10-08 16:44:48 +02:00
Holger Vogt 3af627db44 Change error messages to warning messages, because simulator moves on
and command is ignored.
Make messages more verbose (which command?).
2022-10-08 16:44:30 +02:00
Holger Vogt 1bcbe8e6d8 Don't send error message to stdout, but to stderr. 2022-10-08 16:44:01 +02:00
Brian Taylor e703bd9142 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-10-07 13:48:37 +02:00
Brian Taylor e9855be595 If variable ps_port_directions >= 2, also show the translated Xspice statements. 2022-10-07 13:48:05 +02:00
Holger Vogt 0754ea7657 Make the Error message a Warning message,
because ngspice may move on
2022-10-07 13:38:20 +02:00
Holger Vogt 43c5ffaae8 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-10-07 13:24:12 +02:00
Holger Vogt 2126230b64 Prevent crashes when nodes or tables are not available,
e.g. due to missing input file.
2022-10-07 13:22:59 +02:00
Holger Vogt 037293c81e Improved error message: more info on the bad set form 2022-10-07 13:22:43 +02:00
Giles Atkinson b1341c8e30 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-10-07 13:19:59 +02:00