383 lines
14 KiB
Plaintext
383 lines
14 KiB
Plaintext
2003-07-08 Stefan Jones <stefan.jones@multigig.com>
|
|
* quote.c: return the pointer to the start of malloced
|
|
memory so it can be freeded
|
|
|
|
2003-05-02 Stuart Brorson <SDB@cloud9.net>
|
|
* Major changes in subckt.c to handle POLY attributes in
|
|
dependent sources. Added new case to switch in "translate" to
|
|
handle E, F, G, H sources. Many other fixes.
|
|
|
|
* Moved location of call to ENHtranslate_poly in inp.c. This was
|
|
necessary to correctly process POLY attributes and the associated
|
|
netlists and voltage sources.
|
|
|
|
2003-04-10 Stuart Brorson <sdb@cloud9.net>
|
|
* modified inp_readall (inpcom.c) to ignore blank
|
|
lines terminated by \r\n *and * \n. This fixes problems
|
|
associated with importing files from Windozeland.
|
|
* Added explanatory comments to many modules.
|
|
|
|
2002-01-03 Paolo Nenzi <p.nenzi@ieee.org>
|
|
|
|
* wdisp: added an entire directory containing windows frontend code
|
|
(Holger Vogt patch). Files in wdsip: ftegraf.h, makedefs, Makefile.am,
|
|
windisp.c and winprint.c.
|
|
|
|
* Makefile.am: Windows code compilation rules added to makefile.
|
|
|
|
* display.c, outitf.c, rawfile.c, resource.c, runcoms.c: added
|
|
defines for Windows (Holger Vogt patch).
|
|
|
|
|
|
2001-12-14 Paolo Nenzi <p.nenzi@ieee.org>
|
|
|
|
* control.c, control.h, com_cdump.c, com_cdump.h, variable.c, variable.h:
|
|
Patched the code with the one contributed by Charles Williams. The patches
|
|
addresses some memory leaks.
|
|
|
|
2001-11-25 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* circuits.h: transfered definition of structure 'circ' to ftedefs.h
|
|
|
|
2001-02-07 Paolo Nenzi <p.nenzi@ieee.org>
|
|
|
|
* outitf.c: From a message Alan sento to the mailing list:
|
|
---------- Forwarded message ----------
|
|
Date: Tue, 6 Feb 2001 11:11:56 -0000
|
|
From: "Gillespie, Alan" <Alan.Gillespie@analog.com>
|
|
Reply-To: ng-spice-devel@ieee.ing.uniroma1.it
|
|
To: "Ng-Spice-Devel (E-mail)" <ng-spice-devel@ieee.ing.uniroma1.it>
|
|
Subject: [ng-spice-devel] Reference variable update in interactive mode
|
|
|
|
|
|
I've tweaked outitf.c so that the reference variable value
|
|
is updated to the screen in interactive mode. I forgot to
|
|
save the old version first, though, so I couldn't do a diff,
|
|
so I'm just attaching the whole new outitf.c file. Also, I've
|
|
updated the documentation as follows :-
|
|
|
|
|
|
|
|
Modifications to "outitf.c"
|
|
---------------------------
|
|
|
|
A number of modifications have been applied to outitf.c in
|
|
order to achieve the following "improvements" :-
|
|
|
|
1) Spice3, by default, saved all node voltages, including
|
|
nodes internal to the devices. These extra nodes add
|
|
dramatically to the amount of data saved, but don't add
|
|
significantly to the useful information about the circuit.
|
|
So, instead of saving these nodes, a "hack" has been
|
|
introduced which checks a new spice option, and either
|
|
discards the internal node, or saves some device currents
|
|
instead.
|
|
|
|
2) During long simulations, spice would sit "staring back
|
|
blankly", giving no clue as to how well the simulation
|
|
was, or wasn't, proceeding. In order to give a little
|
|
more feedback, another "hack", in the data writing routine,
|
|
writes the value of the reference variable to the error
|
|
stream, which is usually the screen. In order to minimize
|
|
the CPU time "wasted" doing this, the routine will only
|
|
reprint the value if more than a quarter of a second since
|
|
the last screen update. The result is that this feedback
|
|
adds no significant extra time to performance of the
|
|
simulation.
|
|
|
|
3) The original file writing routines used to write each data
|
|
value to the file individually. A buffering scheme was added,
|
|
which collects each row of data in a buffer, and the writes
|
|
the whole buffer in one call. This gave a significant
|
|
performance improvement (up to 20%) on HPUX, with all currents
|
|
saved in large circuits, although there was no significant
|
|
difference on Windows 95. The improvement has not been
|
|
measured on Linux.
|
|
|
|
4) A check was added to make sure the file write was successful.
|
|
Spice3 could easily fill the hard disk, but would continue to
|
|
churn away, producing no more useful data. Now it will exit
|
|
gracefully. I can't remember why I thought this was important,
|
|
but at least it means that a PC with power management will be
|
|
able to power down after a long overnight simulation has
|
|
ceased to produce any more useful data.
|
|
|
|
Changes
|
|
-------
|
|
The routine beginPlot is called at the beginning of the simulation
|
|
to select which nodes and variables will be saved. The first
|
|
modification is at the point where it checks the "save" list. This
|
|
is the list of tokens attached to the .save lines read from the
|
|
spice source file. The routine now checks for "allv" and "alli"
|
|
as well as "all". "allv" is treated as a synonym for "all". If
|
|
"all" or "allv" is found, then a saveall flag is set, and if "alli"
|
|
is found then a new savealli flag is set.
|
|
|
|
Next, the addDataDesc routine is called for every variable to be
|
|
saved. This is done by stepping through an array called dataNames[].
|
|
I'm not quite sure where this array comes from, but it was quite
|
|
easy to add an if statement to stop it calling addDataDesc if
|
|
dataNames[i] points to a string containing any of the following -
|
|
|
|
#internal
|
|
#source
|
|
#drain
|
|
#collector
|
|
#emitter
|
|
#base
|
|
|
|
That seems to catch all the internal device nodes.
|
|
The next addition is a new pass through the dataNames[] array
|
|
specifically looking for those strings. (This pass is only performed
|
|
if the savealli flag has been set). When one of the strings is found,
|
|
a bunch of if-then-else statements creates a corresponding string
|
|
which is submitted to the add addSpecialDesc routine. This saves the
|
|
relevant device current. Note that since mosfets have only two
|
|
internal nodes, but four terminal currents, and bipolars have three
|
|
internal nodes and four terminal currents, some internal nodes have
|
|
to save more than one terminal current.
|
|
|
|
This last change is a clumsy hack, and only works if the devices in
|
|
question actually have internal nodes. Resistors and capacitors, for
|
|
instance, never have internal nodes, and so their terminal currents
|
|
will not cannot be saved with the .save alli card. Also, any bipolar,
|
|
mosfet or diodes with zero valued parasitic resistances (rd, rs, rc,
|
|
rb, re) will not be allocated internal nodes, and so their terminal
|
|
currents will not be saved by this hack, either.
|
|
|
|
Further down outitf.c, the OUTpData routine is called whenever a
|
|
new row of data is ready to be written to file. Near the top of this,
|
|
the reference variable is written to file separately from the rest of
|
|
the variables. This is a convenient point for a couple of statements
|
|
which check the elapsed time since the last update, and write the
|
|
reference value to stderr if it's time. Slightly further down the
|
|
routine is the section for writing data to a "plot", i.e. retaining
|
|
it in memory. A similar statement or two writes the reference value
|
|
to the screen for this case, i.e. interactive mode. At the end of the
|
|
OUTpData routine, a new check has been added to see if there was an
|
|
error writing to the rawfile. If so, the shouldstop flag is set to
|
|
TRUE, and the simulation will abort.
|
|
|
|
Scanning down outitf.c, the next modification is in the fileInit
|
|
routine. The first statement initialises the lastclock variable.
|
|
This is used later when deciding if it's time to write the reference
|
|
value to the screen.
|
|
|
|
Next, the fileInit_pass2 routine writes the name strings to the start
|
|
of the rawfile. At the end of this routine there is now a statement
|
|
which checks if this will be a binary rawfile, and if so, it allocates
|
|
a row buffer of the correct length.
|
|
|
|
The fileStartPoint routine seems to be called before each row of data
|
|
is written, and so this is a convenient point to reset the buffer
|
|
pointer to zero.
|
|
|
|
The fileAddRealValue and fileAddComplexValue routines now simply write
|
|
the relevant values to the buffer, and increment the buffer pointer.
|
|
Previously they called the fwrite library routine to actually write
|
|
the data. If the rawfile is not a binary one, however, they just write
|
|
the text as before.
|
|
|
|
The fileEndPoint routine was previously empty. Now it actually calls
|
|
fwrite to write the whole buffer to the file (if it's a binary file).
|
|
|
|
Finally the fileEnd routine prints the total number of data points to
|
|
the screen, and de-allocates the row buffer (if it was a binary
|
|
rawfile).
|
|
|
|
Congratulations to whoever put these dummy routines in in the first
|
|
place, since that allowed the buffering to be added very easily.
|
|
|
|
2001-01-23 Paolo Nenzi <p.nenzi@ieee.org>
|
|
|
|
* subckt.c: added some code (very, very experimental)
|
|
to support mos devices with variable number of nodes
|
|
(5 to 7) in subcircuit expansion. This hack is necessary
|
|
since SOI devices can have up to 7 nodes.
|
|
|
|
2000-11-07 Arno W. Peters <A.W.Peters@ieee.org>
|
|
|
|
* com_history, com_alias, parser/cshpar.c, parser/complete.c:
|
|
Applied patch by Michael Widlok. It fixes command completion and
|
|
history list. In the process, Michael also fixed a memory leak.
|
|
|
|
2000-09-09 Arno W. Peters <A.W.Peters@ieee.org>
|
|
|
|
* commands.c: Use fourier.h.
|
|
|
|
* dotcards.c: Update to prevent segfault.
|
|
|
|
* fourier.c, fourier.h: com_fourier is now calling fourier(), a
|
|
function with more parameters.
|
|
|
|
* dotcards.c: Added assertions to guard a double indirection, now
|
|
ngspice will bomb out on an assertion instead of a segfault.
|
|
|
|
2000-07-18 Arno W. Peters <A.W.Peters@ieee.org>
|
|
|
|
* com_ahelp.c, com_help.c, com_plot.c, com_set.c, com_unset.c:
|
|
Updated header file includes.
|
|
|
|
* quote.c: Code formatting changes.
|
|
|
|
2000-07-16 Arno W. Peters <A.W.Peters@ieee.org>
|
|
|
|
* com_set.h: New header file.
|
|
|
|
* com_state.c, com_state.h: Separated from debugcom.c.
|
|
|
|
* com_dump.c, com_dump.h: Separated from debugcom.c.
|
|
|
|
* debugcom.c, debugcom.h: Removed.
|
|
|
|
* Makefile.am: Updates for added/removed files.
|
|
|
|
2000-03-22 Paolo Nenzi <p.nenzi@ieee.org>
|
|
|
|
* rawfile.c: Applied Michael Widlok patch.
|
|
|
|
* spiceif.c: Applied Michael Widlok patch.
|
|
|
|
2000-03-12 Paolo Nenzi <p.nenzi@ieee.org>
|
|
|
|
* x11.c: Cleared the code. Rewmoved some empty return on void
|
|
functions.
|
|
|
|
1999-12-20 Paolo Nenzi <p.nenzi@ieee.org>
|
|
|
|
* outif.c: To fix various "save"-related segmentation faults, make
|
|
this one-line patch to outitf.c: line 356, change unique =
|
|
devname; to unique = copy(devname);
|
|
|
|
1999-12-20 Paolo Nenzi <p.nenzi@ieee.org>
|
|
|
|
* subckt.c: Bug: Current controlled switch subcircuit does not
|
|
expand the controlling source correctly: vsrc expands to
|
|
name:vsrc, not to v:name:src.
|
|
|
|
Fix: changed this file to indicate that w device has only 2 not 3
|
|
nodes and 1 not zero controlling sources.
|
|
|
|
1999-09-07 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* *.c: put back static functions declarations back in the .c files
|
|
(shouldn't be in .h files!)
|
|
|
|
1999-09-07 Arno <A.W.Peters@ieee.org>
|
|
|
|
* aspice.c: template to fprintf now conform to argument types.
|
|
|
|
* cmath1.c:
|
|
|
|
* cmath2.c: removed most warnings about possible use of
|
|
uninitialized variables. Only two remain in cx_sqrt().
|
|
|
|
1999-09-06 Arno Peters <A.W.Peters@ieee.org>
|
|
|
|
* dotcards.c: Put proper braces around an
|
|
ambiguous if/else construct.
|
|
|
|
* postcoms.c:
|
|
|
|
* postsc.c: Removed unused variables.
|
|
|
|
1999-09-04 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* Makefile.am (libfte_a_SOURCES): forgot display.h in list
|
|
|
|
* typesdef.c: moved types.c to typesdef.c
|
|
|
|
* signal_handler.c: moved signal.c to signal_handler.c
|
|
|
|
* *.c: added header file for all .c files
|
|
|
|
1999-09-01 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* *.c: removed lots of unnecessary HAS_XX tests and code
|
|
|
|
* Makefile.am (libfte_a_SOURCES): removed mfb.c from sources
|
|
|
|
* signal.c (ft_sigintr): removed HAS_MFB test
|
|
|
|
1999-08-30 Paolo Nenzi <pnenzi@ieee.ing.uniroma1.it>
|
|
|
|
* Removed #include "suffix.h" and replaced GENERIC with void.
|
|
|
|
1999-08-28 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* Makefile.am (libfte_a_SOURCES): removed x10.c from source files
|
|
|
|
* clip.c: removed MAX/MIN #defines
|
|
|
|
* Removed all #includes of misc.h and util.h (now in spice.h)
|
|
|
|
1999-08-19 Paolo Nenzi <pnenzi@ieee.ing.uniroma1.it>
|
|
|
|
* Makefile.am: added spec.c.
|
|
|
|
* spcmdtab.c: added code for spec command support. The original
|
|
patch came from ftp.mpce.mq.edu.au.
|
|
|
|
* spec.c: added this file containing the spec command code.
|
|
|
|
1999-08-08 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* Makefile.am (DEFS): removed -DWANT_MFB (don't need it)
|
|
|
|
* resource.c : removed HAS_RLIMIT_ tests
|
|
|
|
* error.c: removed HAS_VAXFPERROR code
|
|
|
|
* cmath3.c: removed HAS_SHORTMACRO code
|
|
|
|
* display.c : removed HAS_X10 code
|
|
|
|
* mfb.c (Mfb_Init): removed HAS_PCTERM code
|
|
|
|
* resource.c: removed all code related to HAS_MEMAVL
|
|
|
|
1999-08-06 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* resource.c: removed tests on HAS_UNIX_SEGMENT_HACK
|
|
|
|
* xgraph.c (ft_xgraph), options.c (cp_usrset), misccoms.c: removed
|
|
tests on HAS_SYSTEM
|
|
|
|
* nutinp.c, inp.c (com_source, doedit): removed tests on
|
|
HAS_SYSTEM (always true?)
|
|
|
|
* doplot.c (com_hardcopy): removed tests on HAS_UNLINK (always
|
|
true), removed tests on HAS_SYSTEM (always true?)
|
|
|
|
* signal.c:
|
|
* evaluate.c (doop):
|
|
* error.c (fatal):
|
|
* aspice.c: removed test on HAS_UNIX_SIGS (always true)
|
|
|
|
* signal.c:
|
|
* evaluate.c: removed test on HAS_LONGJUMP (always true)
|
|
|
|
1999-08-04 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* aspice.c: changed HAS_WAIT into HAVE_SYS_WAIT_H
|
|
|
|
* inpcom.c, breakp.c: changed HAS_CTYPE into HAVE_CTYPE_H
|
|
|
|
1999-08-03 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* signal.c, resource.c, evaluate.c, aspice.c: changed SIGNAL_TYPE
|
|
into RETSIGTYPE
|
|
|
|
1999-07-31 Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
|
|
|
|
* Makefile.am: added @X_CFLAGS@ (X11 header files) to INCLUDES and
|
|
removed unused LIBS list.
|
|
|
|
28-07-1999 emmanuel.rouat@wanadoo.fr (Manu Rouat)
|
|
|
|
* graf.c, display.c, doplot.c, x11.c: changed HAS_X11 define
|
|
to X_DISPLAY_MISSING, which is supplied by autoconf in config.h
|
|
|
|
* Makefile.am: removed -DWANT_X11
|
|
|