Commit Graph

7941 Commits

Author SHA1 Message Date
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 fb75a15e83 example for pwlts source code model 2022-09-09 15:26:45 +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
Holger Vogt 48d028fdba enable evtcheck_nodes.c for MS Visual Studio 2022-08-31 15:34:13 +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 c70a438ae0 Replace end-of-line comment delimiter $ by ;
So to make it independent from compatibility switch selection.
2022-08-29 14:19:47 +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 6b786099cb examples for .probe alli or .probe i(xx) 2022-08-29 14:11:20 +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
Holger Vogt ef3adfc050 set colors for grids and data 2022-08-28 17:52:55 +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 0e0daa7d9a Add 74xx283 4-bit adder example from the Micro Cap digital example circuits. Pspice primitives are translated to Xspice and a waveform is displayed using GTKWave. This is a digital-only test. 2022-08-06 10:42:56 +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 03bd381e83 aswitch needs two input nodes because gd has been selected for input. 2022-08-05 17:30:51 +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 7970bc7c54 New tables for MOS devices 2022-07-24 15:55:46 +02:00
Holger Vogt 9302f14bb9 Return data to input directory. 2022-07-24 15:54:58 +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
Holger Vogt 09e48350eb Simplify the NMOS or PMOS selection by setting only one parameter
'mostype'
ngspice-37+ is required.
2022-07-24 15:51:59 +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
Giles Atkinson ec725c3814 Fix memory leak by moving the state transition table to a STATIC_VAR
whose memory can be recovered by a call back.  Also make cfunc.mod
less ugly.
2022-07-24 12:23:05 +02:00
Holger Vogt 44930ebcb1 Function guess_type may yield the wrong type, because
it does not cover all of the the many, many options possible.
This commit fixes bug597, where [current] was interpreted as
capacitance.
2022-07-24 12:17:29 +02:00
Holger Vogt eee07be10d Improve (a little) the plotting of digital data with plot option digiplot:
Repair scaling on MS Windows:
Suppress y axis lettering and unit:
Allow or dis-allow grid.
2022-07-20 15:11:51 +02:00
Holger Vogt 67fc36c8bb We are devloping towrds ngspice-38 2022-07-20 14:52:25 +02:00
Holger Vogt 758ecd1d60 tabs to spaces 2022-07-18 23:29:59 +02:00
Holger Vogt 298eb556cd Make error message more verbose: Instead of only "no such parameter on this device",
give name of bad parameter and respective line in netlist.
2022-07-18 23:28:51 +02:00
Holger Vogt d61682360e Prevent crash when ca or d are not defined. May happen when
.endc is missing.
2022-07-18 23:23:55 +02:00
Holger Vogt b04e3dd89f WinGUI: Add a button 'Stop' to stop a simulation in intercative
or control mode. ngspice enters interactive mode and waits for user
commands. Simulation result vectors are available up to the
(time) point of stopping. Simulation may continue by command
'resume', however now in interactive mode, a control flow stays
interrupted.
2022-07-16 17:27:38 +02:00
Holger Vogt ae89414661 Add udevices.c to project 2022-07-16 17:25:07 +02:00
Holger Vogt d57909eef1 Re-format cktdojob.c 2022-07-16 17:24:41 +02:00
Holger Vogt 6ee4db9af4 Correct comment: Command circbyline is not involved,
we are sending the netlist as an array.
2022-07-16 17:23:59 +02:00