Commit Graph

3495 Commits

Author SHA1 Message Date
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
Holger Vogt d39c60542d Enable power measurement for W switch 2022-10-07 13:18:51 +02:00
Holger Vogt 79bb8edc90 Allow individual current measurements in switches or
linear dependent sources.
2022-10-07 13:18:15 +02:00
Holger Vogt 7e610c8487 .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-10-07 13:17:30 +02:00
Giles Atkinson 04445e42ea 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-10-07 13:16:28 +02:00
Holger Vogt a1dd1f5563 Check for tran at first when linearize is called. 2022-10-07 13:16:03 +02:00
Brian Taylor 3ca91aa1ac 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-10-07 13:15:45 +02:00
Brian Taylor abd4af1ae6 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-10-07 13:14:58 +02:00
Brian Taylor 2d9f86c742 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-10-07 13:14:35 +02:00
Holger Vogt b94ef139dd Avoid an endless loop: Safeguard function
search_plain_identifier(char *str, const char *identifier)
against identifiers being an empty string.
2022-10-07 13:12:30 +02:00
Holger Vogt 5b0b328186 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-10-07 13:12:04 +02:00
Holger Vogt fc0bf595f2 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-10-07 13:11:42 +02:00
Holger Vogt 3da97fa277 Handle .if ... .else ... .endif before .csparam is executed,
thus allowing parameter entry to .control section being dependent
on .if
2022-10-07 13:10:31 +02:00
Holger Vogt 0e885bc3a9 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-10-07 13:06:29 +02:00
Holger Vogt 7f65a68ad6 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-10-07 13:05:56 +02:00
Holger Vogt 8a097c020e 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-10-07 13:05:10 +02:00
Holger Vogt 73ee9e452d Prevent crash when ca or d are not defined. May happen when
.endc is missing.
2022-10-07 13:04:50 +02:00
Holger Vogt 9e1eac0613 Correct comment: Command circbyline is not involved,
we are sending the netlist as an array.
2022-10-07 13:03:18 +02:00
Holger Vogt a597c6a295 Suppress I/O redirection for command 'circbyline'.
This enables sending commands like
circbyline btest testnode 0 v=((v(in1) - v(in2)) < 0.1 ? 0.111 : v(in1))
2022-10-07 13:02:39 +02:00
Holger Vogt c26e4c990a Move evaluation of statistical functions inside of a B source
to after numparam expansion, thus allow parameters in functions agauss etc.

Replace gettok by new gettok_np to ignore characters ( ) ,
which may be left over after parameter expansion.

This fixes bug 593.
2022-10-07 13:01:33 +02:00
Holger Vogt ab6e273a5e Remove inner couple {...} from {{...}} only when instance is not
a behavioral source which will be translated to a B source.
2022-10-07 13:01:07 +02:00
Brian Taylor b6db33f472 There needs to be 2 variants of d0_gff. One for d_dlatch, the other for d_srlatch. 2022-10-07 12:56:37 +02:00
Brian Taylor a8f103eebc Clean out dead code in model processing. 2022-10-07 12:56:14 +02:00
Brian Taylor 1a00a30f18 Add support for srff. 2022-10-07 12:55:59 +02:00
Brian Taylor 7f38ce4ebb Remove debug code. 2022-10-07 12:55:42 +02:00
Brian Taylor 648218d5a8 Remove invalid check. 2022-10-07 12:55:25 +02:00
Brian Taylor 6a067378cb Add optional debug code to check for name collisions. Connector nodes between gates now have a con_ prefix. 2022-10-07 12:55:06 +02:00
Brian Taylor 5b3862ebc7 Prevent multiple d_zero_inv99 models per subckt. 2022-10-07 12:54:54 +02:00
Brian Taylor 9361e9ae6c Follow convention, use eq() macro. Show replacement cards when ngdebug=TRUE. 2022-10-07 12:54:32 +02:00
Brian Taylor e38e1099b5 Create pin and port lists only when variable ps_pins_and_ports is set != 0. 2022-10-07 12:54:17 +02:00
Brian Taylor ac9559db76 Remove optional:, params:, text: before generating a ports list. 2022-10-07 12:54:03 +02:00
Brian Taylor 528c50dc46 Retain the param: section after removing the optional: section from a Pspice subckt declaration. 2022-10-07 12:53:41 +02:00
Brian Taylor 5a50868264 Add more comments. Move incompatible input name checks to add_..._inout_timing_model() functions for dff, jkff, dltch. 2022-10-07 12:53:22 +02:00
Brian Taylor e8dfd16cb2 Add counter test. Check for usage of $d_lo, $d_hi, $d_nc usage with dff, jkff, dltch which will not translate to Xspice. 2022-10-07 12:52:39 +02:00
Brian Taylor ecf4ea8978 Get rid of -Wpedantic warnings. 2022-10-07 12:52:04 +02:00
Brian Taylor 4ce9add137 Remove debugging asserts. 2022-10-07 12:51:51 +02:00
Brian Taylor bc8d67d5fa Generate lists of subckt ports indicating direction (in, out, inout.) 2022-10-07 12:51:33 +02:00
Brian Taylor 1fb533a3d4 Stopped memory leak in continuation cards when removing old cards. 2022-10-07 12:51:18 +02:00
Brian Taylor 89c698d4ea Slight cleanup. Some work ensuring that generated names do not collide may be necessary. 2022-10-07 12:51:03 +02:00
Brian Taylor 219ca23635 For debug tracing, list the cards before and after udevice replacements. 2022-10-07 12:50:51 +02:00
Brian Taylor 18e17cefdf Add pullup/down. Skip spurious '*' line. 2022-10-07 12:50:30 +02:00
Brian Taylor 813c73966d Add support for oa/oai compound gates. 2022-10-07 12:50:10 +02:00
Brian Taylor 7b5c780043 Fix a memory leak. Cleanup the code a bit. All-digital Pspice subckts with U* devices for most used gates/ff can be handled. More extensive test cases are necessary. Also, interfacing subckts with analog ports is not implemented. 2022-10-07 12:49:46 +02:00
Brian Taylor 96a1b528fd Replace Pspice U* and .model cards with their Xspice equivalent statements. There are still memory leaks which will be plugged next. The .subckts have only digital ports, which will need to addressed for mixed A/D designs. 2022-10-07 12:49:29 +02:00
Brian Taylor 2c3c632349 Add translation of ao/aoi compound gates. 2022-10-07 12:49:06 +02:00
Brian Taylor a2fd346b1a Trial run at scanning cards for Pspice U* devices and models. #define INTEGRATE_UDEVICES to turn it on. No new cards are created yet, just lots of debugging info. 2022-10-07 12:48:51 +02:00
Brian Taylor 9bbcf20584 Add brief usage notes and makefile. asserts will need to be removed after integration is complete. 2022-10-07 12:48:36 +02:00
Brian Taylor b367434c78 Add default zero delay models d0_gate, d0_eff, d0_gff, d0_tgate. Use tprintf. 2022-10-07 12:48:21 +02:00
Brian Taylor 620c15a981 Initial files for translating Pspice u.. instances and timing models into Xspice equivalents. Standard gates, tristate gates, dff, jkff, dlatch are supported. Compound gates and pullup/down are not done. Makefile and frontend/inpcom.c changes have not been finished. These modifications will be needed to complete integration. 2022-10-07 12:47:59 +02:00
Holger Vogt 360b7dc7ed Make warning message on missing init file more verbose. 2022-10-07 12:38:38 +02:00