IRSIM 9.7

Revision information on IRSIM version 9.6, 9.7:

IRSIM revision history: Version 9.6
  1. December 2, 2002
    Original release of IRSIM version 9.6 with TCL.
  2. December 9, 2002
    Fixes error with revision 1 in which compilation will fail if the "user subcircuit" option is selected. Also fixes a problem with the print output to the tkcon console, which was sending garbage for arguments in error messages.
  3. December 24, 2002
    Fixes a few problems with the standard (non-Tcl) compile (thanks to Mike Godfrey for the fixes).
  4. February 19, 2003
    Corrects problems with refreshing the "analyzer" window by threading the graphics interface. This also speeds up the graphics initialization. This fix is not relevant to the Tcl version.
  5. March 12, 2003
    Updates the "make config" process to match that for Magic-7.2 revision 29. As per the notices posted above, the fixes may actually break the compile for some systems.
  6. March 24, 2003
  7. April 9, 2003
    This version was never officially released.
  8. March 31, 2003
  9. September 23, 2003
    Attempt to update varargs. This was a no-go, and superceded by revision 10.
  10. September 26, 2003
    Updates the deprecated "varargs" variable argument method, allowing compilation with gcc version 3, and overloads the Tcl "clock" command such that input command files (especially pre-version-9.6 ones) can be run without substituting "irsim::clock" for "clock".
  11. December 3, 2003
    Additional updates, especially to remove text after all #endifs to stop the compiler from complaining.
    Also, corrected an error with the non-TCL-based version compile involving routine lprintf().
IRSIM revision history: Version 9.7
  1. November 13, 2004
    Changed the "make" method to GNU autoconf. Changed the source directory structure, which now looks similar to magic's. Confirmed compile and run for both the Tcl and non-Tcl versions.
  2. November 15, 2004
    Removed all references to BLT, and began an actual port of the "analyzer" window to Tk. Not quite finished yet, but still more usable than the BLT version was. Fixed a number of other bugs left over from Revision 0.
  3. January 10, 2005
    More work on the Tk "analyzer" window. Most of the functionality of the original version has been put back in. It is once again possible to zoom and pan the window, and change the numerical base of vectors. More to come.
  4. January 16, 2005
    Finished work on the Tk "analyzer" window, including all of the original functionality, plus a nice "signal manager" window for selecting which signals to display in the analyzer window.
  5. January 21, 2005
    Added parameter files for the standard MOSIS processes, from Jeff Sondeen's collection.
  6. January 24, 2005
    Revisions by Jason Schonberg, to correctly check for "linux" in the configure script, and correctly include "string.h" for files that use the system string functions.
  7. September 3, 2005
    Changes to the Makefile process to get version and revision information from file VERSION, rather than the directory name. Also, switched the real directory name to the versioned string ("irsim-9.7.6") and the symbolic link to the package name ("irsim"), which is obviously the right way to do it, although that fact had to be pointed out to me.
  8. September 29, 2005
    Some minor fixes to get IRSIM to compile under gcc-4, as well as to avoid various compile-time warnings. Thanks to Prof. Dinesh Sharma for providing output from the gcc-4 compile.
  9. October 1, 2005
    Fixes by Professor Dinesh Sharma for compiling the non-Tcl version under gcc-4.
  10. October 2, 2005
    Added backwards-compatibility for the original IRSIM commands except for "set" and "flush"; however, those two commands are handled by substitution when using the old command-file sourcing command "@".
  11. October 3, 2005
    A few more fixes: 1) Fixed compilation when using "--disable-faultsim", 2) Correctly initialize and display the analyzer when using command "ana" from inside a command file, 3) Correctly parse comment lines in files using the original IRSIM syntax.
  12. October 26, 2005
    Corrected an error preventing single-character node names from being displayed in the analyzer window. Thanks to Mark Martin for pointing out this error.
  13. January 1, 2006
    Changes to correct the behavior with respect to DOCDIR as defined in the Makefile. Patch courtesy of Eric Work.
  14. Februrary 2, 2006
    Changes throughout the code base to clean up and standardize the system and local include files.
    Also: Changed the top-level "configure" to not use optimization. Note that the cleanup may break non-Linux compiles. Any such problems need to be reported immediately.
  15. Februrary 12, 2006
    Various code changes for NetBSD, Cygwin, and Mac OS X, and a correction to the "decay" command.
  16. Februrary 23, 2006
    More compatibility changes; changed definition of CAD_HOME so that libdir can be something other than ${prefix}/lib (for example, /usr/share).
  17. Februrary 24, 2006
    Changed CAD_HOME to CAD_ROOT to avoid breaking backward compatibility.
    Also: Added DESTDIR to all the Makefile install procedures to support "sandbox" compilation and installation.
  18. April 5, 2006
    Changed the Depend file handling in "rules.mak" to match that done in Magic, which avoids putting system files in the dependencies where they don't belong (which is really a gcc error). Applied a patch by Eric Work to correct the "rpath" compiler switch.
  19. April 6, 2006
    Additional patch from Eric Work to remove the OpenGL dependencies from the configure file (the configuration was copied wholesale from the Magic distribution, and so some things are not relevant to IRSIM. . .).
  20. April 7, 2006
    Added a patch by Eric Work to correct the trace text printing in the PostScript output. Also, altered startup behavior so that IRSIM attempts to find a parameter file, picking up the parameter file name from the contents of the .sim file header line, if possible, and attempting to load a default configuration file if all else fails. Regardless, it will always return an error status rather than exit, which is bad behavior (especially when running under Magic). Also: Corrected the analyzer behavior so that closing the window from the window manager iconifies the analyzer rather than destroying it.
  21. April 12, 2006 at 10:22am
    Fixed unitialized base error; handling of quartile and decimal bases added.
    Corrections to code that automatically determines the parameter file to use from the file header. Corrections to the code that prints vectors in decimal base.
    Updates including fixes to the base digit representation allowing decimal base (this was already in the CVS but this revision update will put it in the tarball). Also, this is the first test of the automatic website update for IRSIM (which failed miserably; try again next time!).
  22. April 13, 2006 at 2:22pm
    Reinstated the wildcard character behavior (use of asterisk "*" character). Thanks to Wei Zhang for pointing out that this feature was broken.
  23. May 13, 2006 at 2:40am
    Added .spec file for building RPMS
    Also: Cleaner rpm spec file for irsim 9.7
    Also: Fixed boolean options for 'print XXX bool' Indirectly fixes print menus in analyzer
    Also: Changed the default background to black instead of white.
    Also: Automated packaging and rpm building directly from CVS Build an RPM: make distclean; make dist; rpmbuild --clean -ta irsim-*.tgz This is used by more than just Linux, MacOSX for example
    Also: Fixed fPIC problem on cygwin
    Also: Fixed .spec file dependencies
    Also: Fixed bug where legend paged wasn't visible
    Also: TCL_IRSIM doesn't use namesBox, added ifdefs to use traceBox instead
  24. May 21, 2006 at 2:40am
    2006-05-21 00:18 tim Corrected the Tcl/Tk version of IRSIM to correctly output to the log file when it has been declared with the "logfile" command. Thanks to Rishi Israni for pointing out this bug.
  25. June 10, 2006 at 2:40am
    Made a single correction to ensure that irsim can't crash if a step ("s") is executed when no simulation netlist is loaded.
  26. June 14, 2006 at 2:40am
    2006-06-14 00:12 eric Minor clean-up of build files
  27. June 22, 2006 at 2:40am
    2006-06-21 19:53 eric Set landscape on postscript output
  28. October 7, 2006 at 2:40am
    2006-10-06 20:47 tim Implemented a "settle" time that cures some of the worst problems with indeterminate values propagating through a circuit. Fixed the "decay" time handling so that IRSIM doesn't try to schedule multiple events on the same node, which gets it very confused.
    Also: 2006-10-07 02:40 tim
  29. October 19, 2006 at 2:40am
    2006-10-18 13:17 tim Corrected errors in the analyzer zoom and marker commands, where the internal delta conversion to time was hardcoded, and didn't use the ns2d() macros from the header files. Also, noting that ns2d() and related macros were defined multiple times, these were changed to be referenced from a single header file, units.h. Also, a diagnostic message from UpdateAnalyzer was removed.
    Also: 2006-10-19 02:40 tim
  30. October 20, 2006 at 2:40am
    2006-10-19 14:12 tim Corrected the "base set" command so that "base set" (without other arguments) does not crash IRSIM.
    Also: Modified the behavior of the tag callback to list (add "{}" around) any argument containing brackets. This allows brackets to be used in node names without causing problems when displaying in the analyzer window.
  31. October 25, 2006 at 2:40am
    2006-10-24 10:09 tim Change to increase the size of time units from 4 byte integers to 8 byte integers, handled automatically by the configure script. Previously, used type "unsigned long" for all systems, which is 4 bytes on many architectures.
    Also: Changed "|" to a Tcl null-procedure so that it is automatically interpreted as a comment character always, not just in the backwards-compatibility mode using the "@" command-file source command.
  32. October 26, 2006 at 2:40am
    2006-10-25 15:15 tim Implemented the ability to specify any vector (including clocks) in hexidecimal, decimal, and octal, as well as in the usual binary. To specify the base, prefix the number with "0b", "0d", "0o", or "0h". Unlike the traditional behavior, IRSIM will accept any value, padding values with 0 if they are shorter than the vector length, and emitting a warning for values larger than the vector (but truncating the number rather than treating it as an error condition). Corrected a number of problems stemming from the change from 4 byte integers to 8 byte integers for time values.
  33. October 27, 2006 at 2:40am
    2006-10-26 13:42 tim Added three important new commands: 1) toggle Changes the state of the node or vector. Nodes are changed L->H or H->L. Vectors have each bit toggled independently. Nodes with unknown values are unchanged. 2) at
  34. October 28, 2006 at 2:40am
    2006-10-27 18:08 tim Changed the parsing of the "vector" command so that, for example, "vector M M<1:8>" works correctly when there are signals M<1> through M<8>. Also allows vectors in reverse order, e.g, M<8:1>.
    Also: Minor corrections to the analyzer window commands to prevent overflow problems when negative numbers are converted to unsigned long long.
  35. October 30, 2006 at 2:40am
    2006-10-29 11:17 tim Corrections and enhancements: corrected segfault in the "at"/"every" command. Extended the syntax of "at" and "every" to include options "at/every get" and "at/every cancel", where "at/every [time]..." returns an ID for the scheduled event. Also allow extended syntax "at +[time]..." to indicate something to happen relative to "now" rather than at an absolute time (allows "at" to be nested in an "every" event, although I'm not positively sure this is safe).
    Also: Extended "assert" syntax to include "assert " where can be "%b", "%d", "%o", or "%h" ("%x"), to have the value returned in the indicated base.
  36. November 4, 2006 at 2:40am
    Added "loctypes.h" to the CVS database (forgot to do "cvs add"), without which irsim won't compile. . .
  37. November 14, 2006 at 2:40am
    Added a definition for va_copy() for systems like Solaris that don't define it anywhere. Otherwise, the Tcl/Tk based IRSIM won't run under Solaris.
  38. November 18, 2006 at 2:40am
    Some corrections to allow the non-Tcl-based compile to work.
  39. December 1, 2006 at 2:40am
    Corrected the "%b..." notation for "setvector" so that it does not require the exact number of bits (which was already true for %d, %o, and %x), but zero-pads the number to the correct number of bits. Added two new commands (Tcl version only), "addnode" and "readsim". IRSIM can now be started without any ".sim" file on the command line, and still define nodes and create drawings in the analyzer window. "readsim" will read a .sim file after IRSIM has been started. Note that currently, there is no mechanism to free memory, so for the moment, "readsim" should not be used when a sim file is already in memory. Added a Tcl script "cver.tcl" that makes use of the new "addnode" feature to read in a dump file created by the verilog simulator "cver" and print the results in the analyzer window. This makes IRSIM an alternative back-end graphic display to the traditional "dinotrace".
  40. December 16, 2006 at 2:40am
    Changed "stepsize" to 64-bit integer to allow large step sizes. This can be necessary when using the "at" and "every" commands, since after the input sequences are established, the simulation is run by applying a single step statement covering the entire simulation time.
  41. December 18, 2006 at 2:40am
    Added command option "prefix" to the "readsim" command. This allows multiple files to be read in as separate subcircuits, without the problem of having node names common to each merged together in the IRSIM database.
    Also: Added command option "alias ", which connects together nodes in the database. This can be used to either add a new name for a node (similar to creating a vector size 1), or to connect nodes together. The latter purpose allows multiple files read into separate subcircuit namespaces with the "readsim [prefix]" command option to be connected up internally.
    Also: Corrected the vector "a:b" notation so that vectors written "a:b" are reverse of those written "b:a", and that the range of bits in the vector is correct (all errors in the first cut of the implementation).
  42. January 18, 2007 at 2:40am
    Corrected an error in the macro round() which returns type "int" and therefore can overflow when used on "TimeType" (= unsigned long long) variables. This primarily impacted the use of the marker and scrollbar in the analyzer window.
  43. February 4, 2007 at 2:40am
    Added the GPL copyright to make the distribution "officially" GPL. Since the only copyright notice in the code is a Stanford free-use copyright that is less restrictive than GPL, application of the GPL is admissible.
  44. February 6, 2007 at 2:40am
    Added commands "when" and "whenever" as a way to schedule events based on internal events (edge transitions). See online documentation for discussion. At the moment, the commands only work for nodes, not for vectors.
  45. February 7, 2007 at 2:40am
    Fixed another double long-to-int conversion error that causes problems with scrolling in the analyzer window.
  46. February 8, 2007 at 2:40am
    Modified the "when" and "whenever" commands, and the assertWhen mechanism, so that multiple edges can be specified for a single node. Also, added "whenever cancel" and "whenever get" options.
  47. March 8, 2007 at 2:40am
    Added a Tcl procedure "listtopnodes" for listing all top-level nodes in a flattened hierarchy.
  48. March 21, 2007 at 2:40am
    Corrected the analyzer display Tcl interface code to avoid an infinite loop when "zoom full" is followed by "zoom out". Thanks to Prof. Dinesh Sharma for the bug report.
  49. July 4, 2007 at 2:40am
    2007-07-04 00:14 tim Corrected an error that causes "histflush" to go into an infinite loop due to long-to-Ulong typecasting.
  50. July 6, 2007 at 2:40am
    2007-07-06 02:21 tim Implemented the "relax" command, which attempts to resolve initial conditions on undefined nodes. This is a first cut, and is an "extremely naïve" solution; on the other hand, it worked perfectly on the test case I gave it, so perhaps the simplicity is justified.
  51. July 23, 2007 at 2:40am
    Implemented the "relax" command, which attempts to resolve initial conditions on undefined nodes. This is a first cut, and is an "extremely naïve" solution; on the other hand, it worked perfectly on the test case I gave it, so perhaps the simplicity is justified.
    Also: 2007-07-22 05:43 tim Corrected a typecasting error that prevented the "dumph" command from working (segmentation faulted).
  52. September 2, 2007 at 2:40am
    2007-09-01 09:22 tim Modified the .sim file parsing to extend the syntax for the "r" and "C" device types such that the resistance or capacitance can take metric prefixes. Thus, "r A B 100.0k" will be interpreted as a 100 kohm resistor, and "C A B 10.0p" will be interpreted as a 10 pF capacitor. The only oddball feature of this extension is that to maintain backwards compatibility, "C A B 10" means 10 fF, *not* 10 F. This anomaly is deemed unlikely to cause any problems, given the unliklihood of inserting a 10 Farad capacitor into a circuit (which, if really needed, can be written "1000m").
    Also: 2007-09-02 02:40 tim
  53. September 5, 2007 at 2:40am
    2007-09-04 13:14 tim Added a conversion extention for length values like the ones for resistance and capacitance (see last revision). Values that have no metric unit declaration will be treated as the default lambda (whose relationship to microns is defined in the parameter file). Values that have metric units, such as "18n" or "2.0u" will be treated as appropriate metric units, and not scaled by the lambda scalefactor.
    Also: Modified the command-line parsing to allow command files to be specified as "-c filename" in addition to the traditional "-filename". This facilitates the use of filename completion capabilities of the OS shell, which can't be done when the "-" is attached to the filename.
    Also: 2007-09-05 02:40 tim
  54. September 7, 2007 at 2:40am
    2007-09-06 10:54 tim Corrected the tkana routines to run queries over all traces selected for the analyzer, not just those that are currently in the display. Otherwise, IRSIM appears to believe that traces which ran off the bottom of the display window don't exist, and can't be listed, or queried, or have their settings changed.
  55. September 9, 2007 at 2:40am
    2007-09-08 11:33 tim Corrected gate capacitance scaling. Was found to be calculating length * width * capga, where length and width are in centimicrons and capga is in pF/um^2. It was missing a centimicrons->microns conversion (squared!), thus producing values wrong by a factor of 10000.
    Also: Reverted back to the original---my mistake.
  56. September 12, 2007 at 2:40am
    2007-09-11 15:28 tim Corrected the "querysource" command, which assumed the original command name "?" when running the subroutine info(), and therefore treated it like "querygate".
  57. September 14, 2007 at 2:40am
    2007-09-13 15:40 tim Corrected the "setvector" routine so that it correctly handles decimal, hex, and octal values up to (unsigned) 64 bits. Split the "decimal" representation in the analyzer into two parts, signed (2's complement) and unsigned. The analyzer display of values up to 64 bits in decimal, hex, and octal is now correct. Negative numbers are determined by the high bit being set for whatever is the length of the defined vector.
    Also: 2007-09-13 22:20 tim
  58. September 15, 2007 at 2:40am
    2007-09-14 10:27 tim Added "random -bitstream " option to the "random" package in IRSIM. This generates a random bitstream of size . Probably a lot more useful than any of the other options to "random".
    Also: Changed the behavior of the "random" package to handle up to unsigned 64 bits with the "-integer" option, and to generate uniformly-distributed random bitstreams of arbitrary length. The initialization routine was changed to seed the generator with an arbitrary value; otherwise, the first value produced is always zero.
    Also: Corrected the vector notation handling, which was incorrect for vectors not defined down to index zero.
  59. October 14, 2007 at 2:40am
    2007-10-13 23:08 tim (Partially) corrected a problem with long simulations, in which the interrupt checking routing was only executed on "c" and "p" and "r" commands, but not "s". This was left off since "s" is a monolithic operation. However, command scripts that simulate only with "s" commands (no clocks or sequences), which is the preferred method in Tcl-based IRSIM, will never run the interrupt checking routine, which not only checks for interrupts but also allows the Tk console to refresh. Without refreshing, commands passed to the console for history saving pile up without being processed, and hog more and more memory. So this fix corrects the problem with memory filling up reported by Robert Moric. It does *not* fix the more general problem of not being able to interrupt during execution of an "s" command, in case one typed in an excessively long simulation time, then changed one's mind. That is probably best served by the system interrupt timer.
  60. October 18, 2007 at 2:40am
    2007-10-17 16:43 tim Implemented Tcl-based user subcircuits, where subcircuits in the .sim file can be evaluated by a Tcl procedure, instead of compiling in the user subcircuit (although that option is still available).
  61. October 20, 2007 at 2:40am
    2007-10-20 02:40 tim
  62. October 21, 2007 at 2:40am
    2007-10-20 05:02 tim Instantiated a completely overhauled "user subcircuit" method, including three different methods of defining subcircuits: 1) built-in subcircuits (the only type usable when not compiled with Tcl), 2) shared-object library subcircuits (Tcl only; uses tcl's "load" command), 3) interpreter-level procedure subcircuits (Tcl only; uses the interpreter directly). Both new methods are much simpler to use; especially, the shared-object library method means that different sets of subcircuits can be compiled and loaded at run-time without having to compile a separate version of IRSIM for each.
    Also: 2007-10-21 02:40 tim
  63. October 25, 2007 at 2:40am
    2007-10-24 12:10 tim Cleaned up the user subcircuit code quite a bit. Will try to document this stuff today.
  64. November 23, 2007 at 2:40am
    2007-11-22 10:34 tim Added a new command line option "-@ " that reads a command file in a backwards-compatible syntax, such that old command files using "set" and "flush" instead of "setvector" and "histflush" can be sourced from the command line without requiring the command file to be edited.
  65. January 7, 2008 at 2:40am
    Corrections to prevent fatal errors when compiling the non-Tcl version of IRSIM.
  66. April 19, 2008 at 2:40am
    Removed "-exact" from "package require" in tkcon.tcl, which is causing problems when used with Tcl version 8.5.X.
  67. May 2, 2008 at 2:40am
  68. June 28, 2008 at 9:33am
    2008-06-13 09:50 tim Corrected the IRSIM startup script so that it will run properly if called from Magic with a .sim filename given on the command line.
  69. July 7, 2008 at 2:40am
    2008-07-06 11:21 tim Added /usr/share/tcltk/ to the search path for Tcl and Tk, to conform to the Ubuntu distribution. Thanks to Peter Scott for bringing this to my attention.
  70. January 9, 2009 at 2:40am
    2009-01-08 07:10 tim Corrected an error identified by Marcus Escobosa which revealed that the Tcl procedure subcircuits were broken, addressing an array out-of-bounds when attempting to apply the specified output resistance to the subcircuit device's output driver transistors.
  71. January 15, 2009 at 2:40am
    Corrected an error in the Tcl user subcircuit code that fails to set a reference count on user data, and so allows Tcl to release the user data memory, causing a segfault on subsequent accesses of the user data refcount.
  72. May 17, 2009 at 2:40am
    Changed the "readsim" command behavior so that nodes VDD and GND do not get prefixed. Otherwise, the subcircuit VDD and GND nets easily become too large for IRSIM to handle.
  73. September 27, 2009 at 2:40am
    2009-09-26 19:07 tim Changed "print" commands to "irsim::print" in the Tcl/Tk script so that they execute properly from inside Magic, which has a conflicting "print" command. Thanks to Todd Newton for bringing this bug to my attention.
  74. April 28, 2011 at 6:59am
    Corrected what was found to be a long-standing (5 years!) error in my "settle" code that fixes problems with undefined value propagation through pass-transistor logic. Portions of a node having definite values as defined by min/max voltage thresholds would be scheduled to be marked as a conflict rather than set immediately. This prevents such nodes from turning passgates on/off which stops the indefinite value propagation. By letting portions of a connected node be either set immediately or scheduled for settling to an unknown value in the future allows irsim to handle many more pass-transistor logic cases.
    Also: Minor change to move the "CONFLICT" flag from the node structure to the thevenin structure.
  75. May 26, 2011 at 2:40am
    Update at Thu Apr 28 07:23:34 PDT 2011 by tim
  76. September 7, 2012 at 3:00am
    Update at Tue Mar 6 12:30:35 PST 2012 by tim
    Also: Another configuration change for Tcl/Tk in lib64
    Also: Update at Thu Sep 6 10:08:21 EDT 2012 by tim
    Also: Merge branch 'master' into work
  77. September 10, 2012 at 3:00am
    Update at Sun Sep 9 15:44:09 EDT 2012 by tim
  78. September 19, 2012 at 3:00am
    Commit due to a compile of IRSIM---no updates were made.
    Also: Update at Tue Sep 18 08:02:01 EDT 2012 by tim
    Also: Merge branch 'master' into work
  79. September 23, 2012 at 3:00am
    Applied a patch from Ryan Schmidt to replace the internally-defined "macosx" with the externally-defined "__APPLE__".
    Also: Update at Sat Sep 22 09:54:24 EDT 2012 by tim
    Also: Merge branch 'master' into work
  80. January 17, 2013 at 3:00am
    Change to rename "cver" functions to "vcd", the generic name for the format being handled. "cver" is just an application that uses the VCD format.
    Also: Update at Wed Jan 16 19:49:03 EST 2013 by tim
    Also: Merge branch 'master' into work
  81. August 16, 2013 at 3:00am
    Minor---cleanup of some compile-time files that got checked in along with the rest.
    Also: Update at Thu Aug 15 08:38:39 EDT 2013 by tim
    Also: Merge branch 'master' into work
  82. August 22, 2013 at 3:00am
    Corrected an error that would cause "setvector" to produce an incorrect result for vectors with more than 32 bits when given a hex or decimal value exceeding 32 bits.
    Also: Update at Wed Aug 21 10:43:42 EDT 2013 by tim
    Also: Merge branch 'master' into work
  83. September 24, 2013 at 3:00am
    Update at Mon Sep 23 22:18:32 EDT 2013 by tim
  84. May 27, 2014 at 3:00am
    Update at Mon May 26 09:55:08 EDT 2014 by tim
  85. May 28, 2014 at 3:00am
    Update at Tue May 27 19:10:18 EDT 2014 by tim
  86. May 30, 2014 at 3:00am
    Update at Thu May 29 10:52:48 EDT 2014 by tim
  87. May 31, 2014 at 3:00am
    Update at Fri May 30 14:41:23 EDT 2014 by tim
  88. June 1, 2014 at 3:00am
    Update at Sat May 31 14:50:55 EDT 2014 by tim
  89. February 11, 2015 at 3:00am
    Modified make enviroment to remove log files with "make clean", and ignore log files when doing git transfers.
    Also: Update at Tue Feb 10 08:43:34 EST 2015 by tim
    Also: Merge branch 'master' into work
  90. February 24, 2015 at 3:00am
    Corrected a few things with the tkcon console: Corrected the up and down arrows for history scrolling (broken by Tcl/Tk 8.6), and corrected the use of "exit" so that it calls the console's exit routine so that the console will save history before exiting. The history file is now named .irsim_tkcon_hst so that it does not interfere with the history file from other tools.
    Also: Update at Mon Feb 23 20:59:19 EST 2015 by tim
    Also: Merge branch 'master' into work
  91. March 3, 2015 at 3:00am
    Updated the configure script to match the one used for magic; this should solve problems compiling to Tcl/Tk targets on Ubuntu Linux.
    Also: Update at Mon Mar 2 13:45:37 EST 2015 by tim
    Also: Merge branch 'master' into work
    Also: Additional minor typo correction.
  92. March 5, 2015 at 3:00am
    Modified the configure script to remove an unnecessary manipulation of compiler-related environment variables that is used under magic, but is not needed for irsim, and may be causing compile-time issues.
    Also: Update at Wed Mar 4 08:47:56 EST 2015 by tim
    Also: Merge branch 'master' into work
  93. April 29, 2015 at 3:00am
    Expanded "readvcd" to include parsing $scope and $upscope statements. Corrected a "setvector" parsing error that would fail to parse a binary vector in the form "%b" followed by a string of ones and zeros.
    Also: Update at Tue Apr 28 16:20:06 EDT 2015 by tim
    Also: Merge branch 'master' into work
  94. October 10, 2015 at 3:00am
    Added ifdefs for USER_SUBCKT and TCLSUBCKT to prevent errors when these are disabled.
    Also: Update at Fri Oct 9 11:32:26 EDT 2015 by tim
    Also: Merge branch 'master' into work
    Also: Updates for cygwin compile
  95. July 22, 2016 at 3:00am
    Updated configure script to extract the paths for the Tcl and Tk lib and include files, so that subsequent checks for those files are not disjoint from the contents of tclConfig.sh and tkConfig.sh.
    Also: Update at Thu Jul 21 11:25:35 EDT 2016 by tim
    Also: Merge branch 'master' into work
  96. September 17, 2016 at 3:00am
    Corrected various Makefiles to add LDFLAGS to the compile options for the shared object libraries. Thanks to Filipe Rosset for the patch file.
    Also: Update at Fri Sep 16 09:50:35 EDT 2016 by tim
    Also: Merge branch 'master' into work
  97. March 2, 2017 at 3:00am
    Corrected a crash condition in which strcpy() is used with source equal to dest, which is technically not allowed and makes the result system dependent and potentially causing a segfault.
    Also: Update at Wed Mar 1 15:05:25 EST 2017 by tim
    Also: Merge branch 'master' into work
  98. August 10, 2017 at 3:00am
    Update at Wed Aug 9 09:04:42 EDT 2017 by tim
  99. August 11, 2017 at 3:00am
    Update at Thu Aug 10 22:41:12 EDT 2017 by tim
  100. February 15, 2018 at 3:00am
    Update at Wed Feb 14 08:04:01 EST 2018 by tim
    Updated the launch script to be compatible with modern versions of Cygwin, a change that was made some time ago to Magic and other tools that were using the "TERM" environment variable to detect if the script was running in a Cygwin environment.
    Also: Corrected the main Tcl routine irsim::start to not return a zero status if an error occurs reading a script file; otherwise, no error information is printed to the terminal. Also, replaced the incorrect "cannot open ... for input" error message that is printed whenever an error occurs while reading a script file, with a more proper "error reading script" message (which is now followed by the actual error message).
  101. February 16, 2018 at 3:00am
    Update at Thu Feb 15 09:41:30 EST 2018 by tim
    Fixed tkcon.tcl for Tcl/Tk 8.6, where "-under" is no longer an acceptable abbreviation for "-underline" in some Tk calls.
  102. November 2, 2018 at 3:00am
    Update at Thu Nov 1 22:46:04 EDT 2018 by tim
    Fixed a long-unnoticed error in which the analyzer window does not appear if the analyzer command contains a "-" option like "-h" to force an entry to be hexidecimal. The problem is that such options call a routine that shifts the command line arguments, and that overwrites the command. The command name disappears, so the tag callback, which looks up the callback function based on the command name, fails. The solution was to modify the argument shifting so that it starts from argument 1. This is a bit of a hack, and could be more properly done, but it is unlikely than anyone would ever write a tag callback that would fail because of it.
  103. May 17, 2019 at 3:00am
    Correction to avoid errors when traces have "." in the name, which interferes with the Tk widget hierarchy, where widgets are created with and identified from the trace name. Thanks to Rajit Manohar for the bug fix.
  104. May 19, 2019 at 3:00am
    Corrected two instances where *printf() is used like strcpy(), with no format. Apparently some finicky compilers don't like that.
  105. June 16, 2019 at 3:00am
    Corrected the passing of arguments from the configure script wrapper on the top level to the actual configure script.
  106. January 30, 2020 at 3:01am
    Added distributed install for installing into locations that are not the final destination, without appending the entire install tree to the end of DESTDIR, by specifying "--with-destdir=" at configure time.
    Corrected --with-distdir= option use of withval in configure.in.
    Also: Corrected improper use of dist_prefix in defs.mak.in.
  107. February 24, 2020 at 4:36pm
    Removed VERSION from .gitignore, and updated VERSION.
    Changes for git merge
    Also: Checking VERSION update (test)
  108. February 24, 2020 at 5:32pm
    Corrected Makefile to use -include instead of include on defs.mak so that "make distclean" works.
    VERSION update to test distribution rebuild.
  109. September 27, 2020 at 3:00am
    Changed LAMBDACM from type long to type double; otherwise, lambda cannot be lower than 0.01; for some processes, lambda is typically set to 0.005, which was rounded to zero. Also: Added needed includes to findr.c so that it will compile correctly.
  110. September 30, 2020 at 3:00am
    Modified the "printp" command to not output pending events that will change a node to "X". Most of these come from internal flop settling and are irrelevant; the signals of interest are the ones pending to switch state to 1 or 0. Added command "printpx" to behave like the original "printp" and print all transitions, including transitions to "X".
  111. September 25, 2021 at 3:00am
    Modified the node hashing algorithm to both make it use a better hashing function, and to increase the size of the hash table so that IRSIM does not get bogged down by netlists with a large number of nodes.
    Added commands "power" and "ground" that can be used to set the power and ground net names instead of defaulting to "Vdd" and "Gnd". Because these need to be set before a .sim file is read, also added command-line switches "-p" and "-g" to allow the names to be set if the .sim file is also provided on the command line.
  112. September 26, 2021 at 3:00am
    Made one adjustment to yesterday's update, since when the power supply is handled specially, resistor devices with one end connected to the power rail wouldn't update on startup, causing the other end of the resistor to always be undefined.
  113. October 12, 2021 at 3:00am
    Added support for the format recently added to magic for creating sim files that can deal with many device types by using the "x" sim file record. This was previously supported in IRSIM with the "user subckt" package. User subcircuits are still supported, but now subcircuits which represent basic types such as transistors, capacitors, resistors, and diodes can be specified in the .prm file and converted directly into IRSIM simulation types when reading in the .sim file.
  114. September 17, 2022 at 2:00am
    add powquery command
    fix powquery
    Also: fix startup errors
    Also: update power
    Also: fix power calculation
    Also: Delete .nsubrs.c.swp
    Also: Delete .rsim.c.swk
    Also: Delete .rsim.c.swl
    Also: Delete .rsim.c.swm
    Also: Delete .rsim.c.swn
    Also: Delete .rsim.c.swo
    Also: Delete .rsim.c.swp
    Also: Delete .sim.c.swo
    Also: Delete .sim.c.swp
    Also: Fix startup for prm files without devices and add backwards compatibility
    Also: Delete digital_pll.tcl
    Also: Delete ttype
    Also: Delete test.out
    Also: Delete tclscript.tcl
    Also: Delete .ps
    Also: Delete bashscript.sh
    Also: Fix histogram power calculation formula
    Also: Delete .config.c.swp
    Also: Delete .sim.c.swn
    Also: Delete ncap
    Also: Delete files directory
    Also: Delete irsim.sh
    Also: Delete irsim.tcl
    Also: Delete irsimexec
    Also: Delete tclirsim
    Also: Updated version to go along with the merge of pull request #5 from Jason Liang (Google Summer of Code project), removed the config.status file from scripts/, which should not be in the repository, and updated the .gitignore file to include that file and a few others that should never be in the repository.
  115. October 2, 2022 at 2:00am
    Made some corrections for the support of an arbitrary number of device types, errors which became apparent for the first time when I constructed a proper .prm file using all of the new syntax for declaring independent static and dynamic resistance values for each transistor type.
  116. October 3, 2022 at 2:00am
    Moved several power-related commands into the #ifdef where they're supposed to be.
  117. July 25, 2023 at 2:00am
    Removed a number of C99 style violations of the form "for (int i =" from the code; otherwise the mix of styles can cause issues with gcc on some OS variants due to the default gcc option settings.
  118. October 27, 2023 at 2:00am
    Corrected the .prm file reading so that it keeps an additional record so that the last device_name entry can always be set to NULL; otherwise the program can crash.
    Corrected for the value of lambda checked in the SIM file; this should have been the inverse of what was calculated, which is why all IRSIM runs were complaining about the .sim file lambda not matching the .prm file lambda.

email:

Last updated: October 27, 2023 at 2:00am