Ver Structural Verilog Compiler-Change Log
Change Log

24/08/97	Added support for aet generation in vsim.
26/08/97	Made component instantiations with duplicate names illegal.
27/08/97	Fixed flatten.c so it outputs UNK as the gate type if 
                        there are unspecified input/output ports.
27/08/97	Updated symbol.c to give the user a warning in UNK
                        gates are present (i.e., IP+OP!=TP).
27/08/97	Started work on an ivf network analyzer (Mizer).
31/08/97	Fixed assign statements so a statement like 
                        assign #(2,2) o=(a&b)|c; gives a zero delay for
                        the (a&b)|c operation and a (2,2) for the 
                        temporary wire connecting the gates to "o".
07/09/97	Started work on adapting the irsim graphical front end
                        to view vsim generated aet's.
11/09/97	aet's are viewable in anna.  Useful features such as search
                        have yet to be implemented.
15/09/97	Added single bit searching (0, 1, X, upclock, downclock) 
                        functions to the search menu.
18/09/97	Added bit vector searching routines, but only for fixed
                        values..have to add bin, oct, hex input routines
                        yet.  Also fixed searches so they update the 
                        values column along the right side of the window
                        and the trace cache as they should.
20/09/97	Search input routines done.  Also changed anna to reject
                        aet's of zero duration.
01/10/97	Added edge triggered D flip-flops to ver in format of
                        latch(q,d).  Clocking is under the control of the sim.  
                        Also fixed bug where xnor gate numbers in the
                        ivf file don't increment.  (misplaced break stmt.)
04/10/97	Updated mizer to do output/latch -> input/prev latch
                        traversals.  Fast loop detections are now 
                        possible and the starting of a c-code generator
                        for cycle-simulation is working.  Timing 
                        information is thrown away as the goal is a
                        *fast* cycle simulation.  Also, it only
                        supports two-level logic at this point.  (no "X")
07/10/97	Renamed mizer to "Cyco" (pronounced psycho).  Parallel
                        simulation of identical models is possible
                        with the c code generated by cyco.  At this point,
                        it is the user's responsibilty to generate a
                        driver for the generated c code.  line.c has been
                        provided as a flashy example.  Multilevel logic
                        is planned in a future release.
17/10/97	Added more descriptive error messages to ver like so...
                        ** syntax error near token ';' on line 51.32:
                        assign #6 d[3] = (a[3] & (~ b[3;
                                                       ^
                        Source program has errors.
17/10/97	Added aet generation routines to cyco generated code.
                        Look at examples/cla-cycle to see how to use
                        this feature.
26/10/97	Started work on an external macro expander for generate
                        statements.
27/10/97	Added more functionality to the macro expander/bugfixes.
28/10/97	Added for statements, etc to the macro expander for added
                        utility.
05/11/97	Sped up Cyco by adding the -w option which rewrites
                        the ivf file to stdio with as many wires optimized
                        out as possible.  Cyco speed increase is 6x 
                        when run on lines-cyco.v.  Also, the resulting
                        .c file should be a bit faster since it will 
                        have a smaller t[] symbol table and be missing
                        many unnecessary assignment statements.
15/11/97	Installed Linux on my pc (got sick of w95) and made Anna
                        compatible with Linux.  Also did minor bugfixes
                        to Ver (missing args in printf statements that
                        worked fine on my NetBSD Amiga box and my 
                        Solaris test ones..)
20/12/97	Fixed grammar for ver.y such that wire and assign 
                        statements can be interspersed among module
                        calls and other gates.  
20/12/97	Added signal directions so "assign k[0:7]=l[7:0];"
                        creates a 7-0 crossover rather than
                        assigning the signals like k[7]=l[7], etc..
20/12/97	Cleaned up the assign statement grammar so the 
                        expression parser from gen could be incorporated
                        into ver thus allowing numeric expressions such
                        as a[1+2], etc.  Divide by zeros on / and % will
                        point out the offending expression then halt
                        compilation after the whole program parses.
21/12/97	Further fixed up assignment grammar so the gates that
                        are output are maximal width rather than always
                        two wide with a n-1 temporaries for an n-bit
                        wide gate.  Also added nor (~|), nand (~^), and
                        xnor (~^) operators to assign statements.
22/12/97	Relaxed xor() and xnor() to have any arbitrary number
                        of inputs greater than or equal to two.
25/12/97	Now allow assign statements inside of gate primitives
                        like this: and(o,~a,a^b,a&(b|c)&d,d);
25/12/97	Added concatenation statements to bit vector assignments:
                        assign a[0:7]={2{b|c,d&e,f^g,~h}};
                        Merry Christmas!
26/12/97	Added 'h 'o 'b 'd format numbers to the repertoire of bit
                        vector stuff.  Also complain to user now if zero
                        length duplication counts are encountered with the
                        {number{ } } concatenation operator.
26/12/97	Redid the expression grammar.  Statements like:
                        assign a[3:0]=b[3:0]&c[3:0]; are now possible
                        along with hosts of operations involving { }
                        with that.
27/12/97	Assign statements can now handle vectors as defined in
                        input, output, and wire statements.  What this
                        means is a statement like assign o=i; will assign
                        *all* of vector i to all of vector o.  Note that
                        the direction of the assign goes straight across and
                        bits will *not* cross even if defined criss-cross
                        in the port or wire statements.
30/12/97	Assign statements will cross properly now--assignment
                        direction depends on the direction the bits
                        are specified in the input, output, or wire
                        statements.  
30/12/97	You can put functions in module instantiations now:
                        test mod1(o,a[3:0]^b);  Amazing what you can
                        do when there's 14" of snow outside and nothing
                        else to do.  =)
31/12/97	Added unary reduction operators to the grammar.
31/12/97	Discovered that you can't do empty module declarations since
                        I/O ports were always expected.  Fixed the grammar
                        to allow it.
04/01/98	Added drive strengths and gate names to gate specifications.
                        Note that this information is simply thrown away
                        (information is not saved on a parser reduce op)
                        because it has no import to either Cyco or vsim.
                        It is just there to facilitate parsing if such
                        items do pop up:
                        nand (strong0,strong1) #3 gate1(a,b,c), gate2(d,e,f);
04/01/98	Made module names optional as they're not really required in
                        Verilog.  Also, you can now stack several module
                        instantiations in one statement similar to how one
                        would define multiple gates.
04/01/98	Changed macro escape from {stuff} to `stuff` in gen so that 
                        concatenation operations in .v files wouldn't
                        cause gen to suffer parse errors.
05/01/98	Added array of instances to the module instantiation
                        grammar and flattening routines.  See 
                        linedraw.v in examples/lines and compare it
                        to the one in examples/lines-cycle.  Note how the
                        former is much more compact with array 
                        instantiations.  (old .v removed in later versions
                        -15.01.98 ajb)
06/01/98	Added array of gate instances to gate instantiation.
                        Format is same as for array of modules above.
11/01/98	Added tri, wand, wor, etc. statements.  They all function
                        as plain vanilla wire statements at this point and 
                        timing information isn't used.  That will be used 
                        later when those statements are extracted in a
                        flatten.  (i.e., the flatten routines have to be
                        updated yet.)
11/01/98	Added vectored and scalared keywords to the wire, wand, etc.
                        statements and checking for it in the the assignment of 
                        expressions and expression parser.
11/01/98	The tri, wire, etc statements function as they are supposed to.
                        Delays work, etc.  However, drivestrengths are ignored.
                        The gates WIRE, WAND, WOR, TRI0, TRI1, SUPPLY0, SUPPLY1
                        have to be added to vsim yet though..Note that delays
                        on input ports are unimplemented.
12/01/98	Updated the examples/line-cycle directory such that the .runme
                        will build a fully working executable rather than
                        making the user intervene.  Looks nice, doesn't it?
13/01/98	Updated vsim and anna to handle 0,1,x,z logic.
14/01/98	Fixed bug where component outputs weren't considered for
                        wire, wand, etc. statements.
15/01/98	Updated vsim so it could finally handle $x and $z node
                        values and initialize any gates that use those
                        values on the 1st simulator step.  Note that for
                        the time being, all nodes are initialized to
                        'x' on simulator startup.  If you need 'z'
                        values on inputs, you'll have to force them in
                        vsim for now.
15/01/98	Added supply0, supply1, tri0, tri1, and wire primitives
                        to vsim.  Have to add wand and wor yet..
15/01/98	Added wand and wor primitives.  These differ from their
                        and/or counterparts as they have the ability to
                        pass z values..
15/01/98	Added buf, bufif0, bufif1, notif0, notif1 gates to both
                        ver and vsim.  As with the not gate, these all
                        have only single outputs.
15/01/98	Added tristate bus example "bus" in the examples
                        directory that uses the bufif1 gate.
15/01/98	Added nmos and pmos gates to both ver and vsim.  Also
                        added their r versions (rnmos, rpmos).  
                        The pull strengths are ignored because the 
                        simulator does not model strengths.
15/01/98	Added pullup and pulldown gates to vtokens.l.  They
                        return the const1 and const0 tokens to the
                        parser.  (OK since strengths are not modelled.)
16/01/98	Added the option of being able to use named ports for
                        module instances.  This lets you specify ports
                        out of order if you so choose:
                        blahmodule(.a(x1), .b(x2), .c(x3)); says that
                        x1 goes to port a, x2 to b, etc.
17/01/98	Patched addgate() through the creation of addgate2() so
                        multiple output NOT and BUF gates are now 
                        possible.  The single input is listed last in
                        the argument list.  Note that the if0/if1 versions
                        of these gates still have only a single output
                        as per the ieee 1364-1995 verilog grammar.
17/01/98	Fixed the grammar rule for latches as the gate port def
                        for NOT and BUF was being incorrectly used for
                        latches.  (i.e., latches are supposed to have
                        only one output.)
20/01/98	Added /* */ format comments (nestable) and the ability to
                        embed "_" characters anywhere after the leading
                        digit in a 'd 'b 'o 'h number to enhance
                        readability.
20/01/98	Added parameter statements (right after module headers).
                        Note that parameter values are local to the module
                        they are defined in *only* in this implementation.
                        There is no defparam statement either.  
                        Additionally, using undefined parameters will cause
                        a syntax error.  (Defined parameters patch the lexer
                        to produce a number rather than identifier token.)
21/01/98	Added ability to have multiple semicolons in a row.
25/01/98	Added two missing component instantion definitions types
                        (empty LP RP) to the ver.y grammar.
03/01/98	Added -v flag to ver.  With this, the compiler will output
                        a vhdl translation of your verilog to stdio
                        rather than creating an ivf file.
05/01/98	Signals in portmaps coalesce into bitvectors if possible
                        now.  Also note that the only gates supported are
                        AND, OR, NOT, XOR, NAND, NOR, XNOR, BUF for the
                        time being.  
14/01/98	Fixed cyco for parallel simulation.  Any nonzero values
                        are ~0.  That way, *all* the bits are set rather
                        than just the low order one.
15/01/98	Fixed ver so it doesn't generate __name type component
                        names when it's forced to name an unnamed 
                        component.  Now it's c_name.  Similar scheme
                        for arrays of components...the __ has been
                        replaced with _c_.
10/04/98	Fixed vtokens.l so comments don't throw off error reporting
25/04/98	Updated Cyco so that combinational logic *after* latches
                        gets updated properly.  Did this by splitting up
                        the combinational logic evaluation and the latch
                        assignments.  By doing so, the user has finer
                        control over what gets evaluated and an increase
                        in throughput is possible.  
13/05/98	Updated event.c in anna by getting rid of references to
                        bsd/signal.h and making them /usr/include/signal.h.   
                        Thanks to Mike Maher from Redhat for this one!
13/05/98	Updated ver so it can now handle design libraries.  It
                        does this by "analyzing" good verilog into
                        lib/whatever directories as specified in a
                        -l whatever argument to the compiler.  To use a
                        library include, make sure library lib1, ... ,libn;
                        is present before any module definitions in
                        your source program.
14/05/98	Forgot to close files after the yyparse() for libraries.
16/05/98	Made ivf file generation optional with -n cmdline flag.
16/06/98	Removed .runme files in examples subdirectories and replaced
                        them with makefiles.  Everything is built from  
                        makefiles now.
09/07/98	Made stdio compiles selectable via an explicit "-" flag.
                        Also, ver now complains about invalid flags.
10/07/98	Added support for "$" in identifiers as well as escaped
                        identifiers.  Note that the characters "!", "/", "["
                        and "]" will automatically be prefixed with "\"
                        in order to keep conflicts with temp names,      
                        vectors, and flattened hierarchy names from
                        possibly conflicting with signal names.
11/07/98	Also do "\" prefix escape on "\" now.
03/08/98	Fixed expressions so that "!" and "~" are functionally
                        equivalent on single bits.  "!" used to flag
                        a syntax error.
30/09/98	Updated line.c in the lines-cycle example so it would  
                        work on x servers > 8 bpp.
30/09/98	Added -dff cmdline option that you have to use now when    
                        using the latch keyword.
30/09/98	Fixed an uninitialized pointer problem in library.c
                        for when a missing module was encountered and
                        a liblist wasn't specified.
30/09/98	Added -uselibs keyword to activate "library" keyword.
02/10/98	Removed all malloc()/calloc()/free() references in
                        anna and now use its private library instead.
05/10/98	Fixed anna such that remote windowing is now possible.
                        (formerly used ":0.0" when "" should've been
                        used for XOpenDisplay())
25/10/98	Added GTKWave to the main distribution.  It's in a
                        preliminary state with many unimplemented
                        features, but it is mostly usable and can
                        be used in place of anna.
14/11/98	Added more features to GTKWave.
14/11/98	Switched to GTK 1.1.3.  1.0.6 won't compile GTKWave now.
14/11/98	Added vertex and vbpp to the archive in the "experimental"
                        directory.  They'll get moved to a main
                        subdirectory when I finish up GTKWave and have
                        time to work on integrating them with the
                        rest of Ver (probably for the 1.0 release).
20/11/98	Bugfixes to GTKWave.  Got rid of coredumps caused from
                        improperly cutting and pasting trace prev and
                        next pointers.  Added the "floating" marker 
                        for pointing to trace times.
22/11/98	Removed flickering from the primary marker.  Also
                        removed coredumps caused by moving the pointer
                        off screen when holding down the mouse button.
                        (Added extra sanity checking for bounds.)
23/11/98	Grab pointer during primary marker drag.  That way
                        button release events aren't lost if you release
                        outside of the window.
24/11/98	Added 'entry_box' widget for single number entries in
                        GTKWave.
25/11/98	Revamped sigcmp() such that numbers inside of
                        signal names are preserved for comparisons.
                        So, "x[1]/name/0" < "x[10]/name/0".
27/11/98	Fixed hptr/vptr display code so the last transition at
                        the very right of a trace is displayed    
                        properly and isn't always a vertical bar.
28/11/98	Removed coredump problem in exclude traces function
                        caused by accidentally circumventing the
                        if(dodraw).  
01/12/98	Fixed bsearch.c so that the hptr/vptr search routines
                        work for versions of bsearch() such as AIX 
                        that winds up returning NULL pointers.
08/12/98	Added read/write of save files under file requester
                        control for wave.
10/12/98	Added search signals widget and dynamic alias
                        creation to GTKWave.
11/12/98	Added discard buttons and tidied up the button 
                        distribution on top of the main screen so
                        buttons don't "stretch" on wide desktops.
12/12/98	Replaced deprecated MenuFactory handler in menu.c
                        with an ItemFactory one.
14/12/98	Added the "Show-Change" window and also fixed the
                        GTK_CAN_DEFAULT gadgets so they look correct. 
15/12/98	Added tree search signals widget.  This may not work
                        properly in versions of GTK < 1.1.7.
17/12/98	Added named marker support.
18/12/98	Changed "zoom to fit" to "zoom to best fit."
19/12/98	Added postscript printer support.
19/12/98	Cleaned up signal name clipping in generated PS files.
20/12/98	Now clip everything to letter sized paper so we don't
                        get overspray on trace renderings.
21/12/98	Adjusted gray darkness of nontrace lines as they
                        show up ok on ghostview but not on a 
                        real PS printer.
22/12/98	Added Waveform Display Trace user interface and
                        mutual exclusion with add/delete ops, but
                        haven't implemented the actual trace
                        code yet.
23/12/98	Signal values in waveform panel now will compress
                        with a trailing "+" sign if the value won't
                        fit in its box (instead of being blank).
                        Same goes for the postscript.c code.     
24/12/98	Added expand/combine functions.
25/12/98	Fixed expand/combine so that reverse in selected
                        traces works.  Invert doesn't and won't due
                        to the way traces are stored.
25/12/98	Added an "Are you sure?" requester for the quit
                        function.  The only function left is the
                        pattern search.
                        Merry Christmas!
28/12/98	Added forward search.  Reverse search is still
                        unimplemented.
28/12/98	Now do an automatic zoomfit when the viewer comes
                        up if the aet<400 cycles in length.
31/12/98	Finished GTKWave.  Ver-1.0.0 is now out!
08/01/99	Ver, Gen, Cyco, and GTKWave are now GPL'd for all
                        you Open Source fans out there.
12/01/99	Cyco now uses a new network traversal algorithm so
                        it's much faster now.
12/01/99	Added loop detection and now automatically drive      
                        unsourced nets to zero in cyco.  Removed
                        bug that caused the highest depth gate
                        to receive a depth of zero (below lowest).
13/01/99	Fixed cyco so it now can determine combinational
                        logic that is dependent on latch output.
14/01/99	Fixed cyco so it also backtraces on dangling nets as     
                        their value wouldn't get updated as
                        the earlier fix only backtraced outputs.
15/01/99	Cyco now can accept files from stdin, so it's now 
                        possible to set up cyco pipes.
15/01/99	Broke out alloca defines into its own separate file
                        alloca.h for wave.  If you have any peculiar
                        alloca behavior on your system, you can
                        fix it there.  Thanks to Stefan Petersen for
                        alerting me to compile problems in Solaris.
17/01/99	Added the remaining Ver generated gate types to
                        cyco.  Don't forget that cyco is a two
                        state simulator.  The gate behaviors have
                        been modified accordingly.
18/01/99	Fixed the hpaned sizing bug in GTKWave.
22/01/99	Received vcd file format info from John Sheahan.  
                        Thanks, John!
23/01/99	Added support for vcd files.  See examples/vcd for an
                        example.
23/01/99	Removed bug that caused PasteBuffer() to forget to
                        set the traces.last.
23/01/99	Added support for gzipped AETs and VCDs.  Requires
                        zcat in your path.
25/01/99	Updatet widget_set_usize() code for signalwindow.
25/01/99	Added support for reading gzip compressed save files.
25/01/99	Fixed problem with leading '$' in identifiers in VCD   
                        loading. '$end' works as an identifier, too
                        now.
25/01/99	Switched to using "gzip -cd" rather than "zcat" for
                        the gzip decompressor because AIX defaults
                        to appending a .Z to the filename in zcat
                        if not already present.
26/01/99	Mutiple nets can now be mapped to the same identifier
                        as per the VCD spec.
27/01/99	Minor speedup on redraws for extremely dense traces.
                        This code can be optimized further.
01/02/99	Applied patch from Udi Finkelstein that fixes
                        bugs with VCD identifiers that have '[', ':',
                        and ']' in them.  Thanks!
01/02/99	Added wrappers around malloc/calloc/free in
                        vcd.c that do sanity testing.
02/02/99	Fixed datatypes throughout so that TimeType values 
                        are used rather than "int" values.  TimeType
                        vals are defined in analyzer.h as 64-bits.
                        This should provide for some very large
                        traces.
03/02/99	Updated Zoom and Zoom Best Fit such that they  
                        decrease exponentially when the zoom value
                        is negative.  This makes zooming very
                        fast now.  If finer granularity is required,
                        zoom values can still be entered via a
                        requester.
04/02/99	Fixed bug with truncation of TimeType to an integer
                        in the "From:" timeentry requester.
04/02/99	Made default loader in GTKWave VCD.    
04/02/99	Fixed stray ints that should be TimeType values in
                        aet.c, vcd.[c|h].
05/02/99	Autocoalescing of signal search trees into
                        bitvectors is now supported!
08/02/99	Relaxed VCD parser so it can handle signal defs where
                        size>1 bit and the range is implicitly
                        defined as [size-1:0].
09/02/99	Added support for .gtkwaverc files (searched first in
                        the current directory then the effective user's
                        home directory).
10/02/99	Fixed botched decimal vector displays (extraneous "d"
                        from an incorrect sprintf)
10/02/99	Speeded up draw_vptr_trace() code for rendering values
                        in trace boxes..old version used an iterator  
                        and skipped on to the end.  Not good for
                        traces in the million cycle range.
12/02/99	Added #defines for the win32 version of GTK, courtesy
                        of Udi Finkelstein.  So I guess it now really
                        looks like GTKWave finally supports the evil
                        empire.  <g>
16/02/99	Added support for escaped identifiers in the VCD loader.
16/02/99	Added hier_delimeter .gtkwaverc variable.
16/02/99	Found misplaced *100 in vcd.c that was wreaking havoc.
                        Will get rid of all the useless scaling in a
                        future minor revision.
18/02/99	Added zoom start/end functions and (mostly) fixed the
                        64-bit time value precision problem.  It still
                        exists with the scrollbar, but the problem
                        shouldn't exist with the hotkeys or the
                        buttons across the top of the screen.
18/02/99	Added a WGL->VCD converter in the examples directory
                        courtesy of John Sheahan.  Thanks!
22/02/99	Removed all stray instances of gint64 and used TimeType
                        instead.  Also fixed printf formatters to
                        reflect the max bit width (see debug.h).
22/02/99	Added show_grid config variable in rc.c.
23/02/99	Removed all *100 /100 timescale references in GTKWave
                        as they don't do anything useful.
23/02/99	Added disable_tooltips config variable in rc.c.
23/02/99	Added anna_compatibility config variable in rc.c which
                        divides aet times by ten so the traces look
                        the same in wave as in anna (default).
24/02/99	Removed thrashing in some vector displays by caching
                        the last partitionwidth for each segment.   
20/03/99	Got back from a long trip..back to GTKWave.  Added
                        centerzooming and the titlebar of the main
                        window now indicates what trace is being
                        looked at.
21/03/99	Oversized columns bring up an hscrollbar in the
                        signal search window now.
21/03/99	Added a toggle option where the maximum time    
                        label can be replaced with a "marker time"
                        one.  Also added the "use_maxtime_display"
                        config variable in rc.c so this can be
                        set as a per-session default value.
23/03/99	Added color config variables to gtkwave and bumped   
                        the rev up to 1.1. (finally!)
29/03/99	Added fixes to handle "parameter" in $var defs
                        in Modelsim VCD files.  Also can handle
                        arbitrarily large tokens in VCD files.
                        (Thanks to John Sheahan for the trace.)
01/04/99	Fixed coredump bug on NULL s->string references
                        in strace.c as well as an infinite hang
                        problem when the primary marker wasn't
                        nailed down and a forward search was
                        initiated.
02/04/99	Removed prototypes to strcpy/strcat in anna's
                        include/defs.h file since the new
                        egcs doesn't like them (they're inlined
                        now).
04/04/99	Fixed bug where the vcd loader would coredump
			if no initial hierarchy (scope) was
			specified.
04/04/99	More patches from Udi Finkelstein applied in
                        order to get Win32 compatibility.
05/04/99	Made the center zoom origin the primary marker    
                        (if present and in the display limits),
                        otherwise the center of the screen
                        is user as the center zoom origin.
19/04/99	Added "use_larger_scale" rc environment var and
                        appropriate menu select options.
19/04/99	Added "constant_marker_update" rc environment var 
                        and appropriate menu select options.
20/04/99	Added "use_roundcaps" rc environment var and
                        appropriate menu select options.
20/04/99	Fixed bug in postscript dumps that caused a dark
                        separator to appear underneath vector   
                        traces.
21/04/99	Added "vector_padding" rc environment var.
21/04/99	Added "do_initial_zoom_fit" rc environment var.
21/04/99	Added "show_base_symbols" rc environment var and
                        appropriate menu select options.
22/04/99	Added zoom value and marker positions to save
                        files.
22/04/99	Added drag and drop of highlighted traces.     
                        Press the right mouse button to cut    
                        out highlighted traces and release it
                        where you want them dropped.
26/04/99	Added visual indicator of drop position for
                        drag and drop.
28/04/99	Now detects glitches in VCD dumps and uses   
                        only the data at the end of the glitch.
28/04/99	Minor speedups.
30/04/99	Added "hier_max_level" rc environment var and
                        appropriate menu select options.
06/05/99	Added yet another signal selection mechanism for
                        a grand total of 3 so far.
09/05/99	Added "autoname_bundles" rc environment var and
                        appropriate menu select options.
09/05/99	Removed selectedtree residency conflict in
                        hiersearch.c.
11/05/99	Updated html documentation with tables to make
                        it easier to understand.
13/05/99	More html updates.
15/05/99	Removed all gcc -Wall warnings from GTKWave.
16/05/99	Added "use_big_fonts" rc variable which enables
                        larger fonts in the wave window.  Thanks
                        to Xiao Zhonghui for the suggestion!
19/05/99	Added "enable_horiz_grid" and "enable_vert_grid"
                        rc environment variables.
19/05/99	Removed "Use 30 Scale" and added a "Use 50 Scale"
                        option instead.
19/05/99	Improved font handling.
19/05/99	Made "big" font less obnoxious in the signal   
                        window.
20/05/99	Eliminated vectorfonts now that ps textscaling
                        is now functional.
20/05/99	Removed any stray parentheses that may sneak
                        into postscript show commands.
20/05/99	Fixed discrepancy between postscript.c and
                        wavewindow.c that caused some mangled
                        printouts.
23/05/99	Now show highlighted signals in postscript dumps.
26/05/99	Added support for compressed symbols in ver
                        generated ivf files.  Cyco currently
                        handles this.  vsim does not.
01/06/99	More changes to postscript.c.
03/06/99	More alloca header incompatibilities found and
                        fixed.
03/06/99	Added ability to drag the wave window around
                        via the wave_scrolling env var and
                        corresponding menu select operations.
03/06/99	Fixed pattern search such that when the marker
                        moves offscreen, the wave window will
                        scroll to be able to display the new
                        marker.
04/06/99	Removed some "noise" in the primary marker
                        when wave scrolling.
04/06/99	Minor tweaks to postscript.c to remove abnormal
                        font stretching.
08/06/99	Modified marker time display such that it now
                        shows deltas off the original mouse
                        click.  Useful for measuring distances.
08/06/99	Some font changes for the named markers.  They
                        were too big when big fonts were in use.
08/06/99	Force a screen redraw now after the lmb is
                        released in the wave window if dynamic
                        resizing is disabled.
10/06/99	Removed bug in postscript.c where aliased
                        signal names with backslashes in them
                        weren't displayed properly.
10/06/99	Added "minimal" print option to the main menu 
                        for use in importing traces to word
                        processors.
11/06/99	Added ability for ver to accept latches with
                        any arbitrary number of input pins.
                        The intent is (output,input[,clock  
                        [,other_controls...]]).  Cyco
                        currently throws away any extraneous
                        pins.
13/06/99	Added ability to have { } expressions as an
                        lvalue in assign statements in ver.
26/06/99	Added error tokens to ver grammar so the first
                        error doesn't stop the parse.
28/06/99	Can now accept vcd/aet files from stdin pipes
                        through use of the -aet or -vcd
                        command line switches.
28/06/99	Added external mechanism (evcd2vcd) for
                        preliminary support of EVCD format
                        traces.  This will be folded into
                        GTKWave in the near future (along
                        with the "official" 1364-99 definition
                        of EVCD and not just LSI's version..)
28/06/99	Hierarchy delimeter defaults to "." for vcd and
                        "/" for aet's now if it's not explicitly
                        set via the "hier_delimeter" rc var.
29/06/99	Added enable_vcd_autosave rc variable which
                        causes the vcd loader to automatically
                        generate a .sav file (vcd_autosave.sav)
                        in the cwd if a save file is not   
                        specified on the command line.  Note
                        that this mirrors the VCD $var defs and   
                        no attempt is made to coalesce split
                        bitvectors back together.
29/06/99	Added native support for EVCD in GTKWave.
30/06/99	Added atomic_vectors rc variable that speeds
                        up vcd loading and takes up less
                        memory.  The downside is that atomic   
                        vectors are treated internally as a
                        single bit and can't be coalesced into
                        larger vectors or split up.
02/07/99	Added bsearch() functionality to symfind in
                        GTKWave and prescan all wildcarded strings
                        for wildcards.  If not present, bsearch()
                        is used rather than an iterative wildcard
                        comparison.  This speeds up ops a lot on
                        computer generated save files that are
                        devoid of wildcards.  When atomic_vectors
                        is used, this really speeds up string ops.
03/07/99	Added support for real numbers in traces and
                        removed bug that rendered atomic vectors
                        invisible if they weren't given a value   
                        at start time.
03/07/99	Removed bug in bits2vec that sometimes crashed   
                        when combining vectors.
04/07/99	Added separate pathnames for instances of       
                        fileselbox that are not related.  This
                        makes the file selectors perform more
                        intuitively.  Happy Fourth of July!
05/07/99	Fixed initial hpane size for when the primary
                        marker comes up because it's specified
                        in the .sav file.  (Now use the signame
                        allocation width rather than full
                        signame+values allocation width.)
08/07/99	Made module items free floating in ver (removed
                        restriction that i/o defs had to be
                        at the top of a module.)
09/07/99	Fixed rendering problem with hptr traces in
                        postscript.c.
12/07/99	Fixed uninitialized pointer bug in wavewindow.c
                        convert_ascii_vec().
13/07/99	Removed compiler warnings from various places.
13/07/99	Added append_vcd_hier rc variable.
13/07/99	Added debugging malloc_2/free_2 functions that
                        are enabled when DEBUG_MALLOC is
                        defined.  This helps in tracking down
                        memory leaks and invalid frees.
13/07/99	Fixed invalid free() of text segment memory in
                        vcd.c that was causing crashes on    
                        UltraSparc.  (Resulted from a bug in
                        the atomic_vectors allocation.)  Thanks 
                        to Richard Geissler for pointing this 
                        problem out to me!
15/07/99	Added Y/On, N/Off options to the .gtkwaverc  
                        value parser that evaluate to 1 and 0
                        respectively.
16/07/99	Profiled GTKWave and optimized the speeds of
                        getch() and get_token() in vcd.c and
                        sigcmp() in bitvec.c.  Note that
                        sigcmp() no longer has infinite   
                        precision for extremely large numbers.
                        To get that behavior back, #define   
                        WAVE_USE_SIGCMP_INFINITE_PRECISION in
                        debug.h (remove the undef).
18/07/99	Added configure script that sets up all the
                        source Makefiles.
18/07/99	Various profiling in wavewindow.c to remove
                        redundant redraws from interleaved
                        GTK events.
18/07/99	Added enable_ghost_marker rc var that lets
                        the user turn on/off the ghost marker
                        during primary marker dragging.
19/07/99	Added vcd_explicit_zero_subscripts rc var
                        that allows normal sig[index] type
                        signal names when set to "no".
19/07/99	Fixed the maximum hierarchy parsing code
                        to handle the above change.
20/07/99	Removed unref to pixmaps if previous width
                        and height were same.  Just keep
                        the old map instead of reallocating
                        a new equal sized one.  This is now
                        done both for the signal and wave
                        windows.
20/07/99	Fixed some atomic_vector stuff that was
                        crashing under AIX because the   
                        allocated vector buffer was too small.
21/07/99	Added vcdscan--the vcd loader ripped out of
                        gtkwave and used for the purpose of
                        generating statistics on vcd/evcd
                        files.
22/07/99	Excluded traces have values excluded now also.
22/07/99	Fixed the end_time calculation such that it
                        is the maximum of all the times
                        encountered in a vcd/evcd file
                        rather than just the current value.
                        This is to keep vcd/evcd files that
                        are truncated from being unreadable.
22/07/99	Yet another fix to the postscript signal width
                        routine.
22/07/99	Added the ps_maxveclen rc environment var so
                        signal=value strings on the left hand
                        side of a printout don't consume the
                        whole printout.
23/07/99	Added support for 64-bit signed/unsigned
                        decimal values in the wave display.
23/07/99	Changed 'u' undefined values to more
                        traditional 'Z' verilog ones.  The
                        four levels of logic displayable
                        are "01XZ" in GTKWave now.
25/07/99	Added "use_nonprop_fonts" rc variable and
                        enabled screen update functions
                        that allow accelerated redraws of
                        the signalwindow that can be done
                        because the font width is constant.
27/07/99	More minor postscript.c changes.
27/07/99	Fixed uninitialized pointer bug in the      
                        vcd_sortfacs() function in vcdscan.c.
                        Thanks to Pat Berge for finding
                        this one!
27/07/99	More acceleration has been added to the
                        trace rendering routines.  To
                        disable it, in debug.h define    
                        WAVE_TRACE_OPT_DISABLE.
28/07/99	Started to recode the hptr/vptr trace rendering routines.
                        The optimizations recently introduced caused some
                        problems, so the best way to do this is to
                        start from scratch.  Vectors are reverted to
                        unaccelerated.  Single traces have been recoded
                        and are accelerated.
29/07/99	Removed coredump bugs in hptr acceleration found when
                        excluded traces are displayed.
30/07/99	New accelerated rendering engine for vectors, fixed
                        postscript bug (needed end+1) for hptrs.
                        Bumped up rev to 1.2.0 finally.
03/08/99	Removed initialization bug for wavearea_configure that
                        caused intermittent wave_hscroller initialization
                        failures.
03/08/99	Added "convert_to_reals" rc var that converts incoming
                        integer or parameter $var types into double float
                        numbers.  Note that the implication of this is
                        that you will only have 56 bits of mantissa so
                        this may not always be what you want.  However,
                        it does ensure that integers and parameters will
                        never be displayed in hexadecimal format.
03/08/99	Added "page_divisor" rc variable that allows fractional
                        (1/x) page scrolls.  Legal values for x are
                        1 to 100 inclusive.
04/08/99	Made page_divisor fractional.  Values equal to and
                        over 1.0 are taken as 1/x and values equal to
                        and less than 1.0 are taken literally.  (i.e.,
                        2 gives a half-page scroll and .67 gives 2/3)
14/08/99	Paul Stravers added behavioral always statements to Ver.
                        Cyco has been revamped to support this.  Please
                        see line-cyco.v in examples.
17/08/99	Bugfixes in grammar for ==/!= statements.
17/08/99	Added fifo example that uses behavioral extensions.
23/08/99	Integrated Paul's case/endcase, and parameter extensions
                        into the main distribution.
23/08/99	Minor bugfix in VCDScan's signal print routine.  (Printed
                        some signals before their hierarchy delimeters
                        were substituted back.)
24/08/99	Integrated infinite recursion patch for case/endcase.
24/08/99	Integrated patch for improved parameter handling
                        (parameter [3:1] foo = 5) and checks for
                        output ports of gates and components that are 
                        connected to a reg.
25/08/99	Integrated patch for get/set generation in Cyco.  Use
                        the -i option to enable it.
26/08/99	Added -m option to Cyco which generates levelized  
                        netlists intended for use with a forthcoming
                        multivalue cycle simulator.
30/08/99	Added Csim to the main distribution.  Check out the
                        fifo_csim example to see how it works.
30/08/99	Added support for negedge latches to VER, CYCO, and CSIM.
31/08/99	Made tokenizer in CSIM faster by using bsearch() instead.
01/09/99	Added -pica switch for vsim compatibility on wire/buf
                        family gates.  (VER doesn't generate $z headers
                        on those gates by default now.)
01/09/99	Fixed TRI gate generation in VER (for CSIM).
02/09/99	Minor CSIM bugfixes.
02/09/99	Integrated patches to fix CSIM StkFac[X] dyslexia.
02/09/99	Provide accurate register counts in VER now.
02/09/99	Updated cyco such that it won't backpropagate temp
                        signal names, only real ones.
03/09/99	Added -a option to cyco.  Aliased nets are now
                        allowed in cyco/csim.
03/09/99	Added ability to handle strings in VCD files. (Not a 
                        1364 feature, but can be compiled in.)
03/09/99	Had needle and haystack reversed for temp sig bubble
                        compare for wireopt().
05/09/99	Fixed buffer overflow in aet().
05/09/99	Added #aet2 presorted hint in CSIM for GTKWave.
05/09/99	Fixed what caused that buffer overflow in CSIM.
06/09/99	Added ability to handle time unit descriptors for all
                        time prompts and displays.
06/09/99	Fixed missing check for tims.last on wave draws that
                        caused overdraws when tims.end>tims.last.
09/09/99	Added +/- behavioral operators to ver, cyco, csim.
                        Note the decent speed increase in lines-cyco!
10/09/99	Added more examples to the html documentation.
10/09/99	Fixed order of operations that was neglected from
                        some recent additions.
10/09/99	Made '!' function properly unary reduce in ver.
10/09/99	Added && and || to the structural grammar.
12/09/99	Made zoom values inside of GTKWave gdoubles so that
                        "zoom fit" works more or less perfect now.
12/09/99	Fixed bug where the small line above the marker
                        wasn't always copied on right scrolls.
12/09/99	Now allow user to enter non-integer zoom amounts. 
14/09/99        Fixed compile error that AIX cc complains about but
                        not gcc.
14/09/99	Fixed problem with VCD buses caused by unpredictable
                        behavior of linux's bsearch() [AIX is fine].
15/09/99	Integrated preprocessor and multiple file handling
                        additions/patches into the VER sourcecode.
                        Thanks, Paul!
15/09/99	Used %g to format zoom values in GTKWave rather than
                        %f since it's more readable.
20/09/99	Integrated Paul's -F compiler option and his various
                        preprocessor additions. (ifdef/else/endif)
21/09/99	Removed various -Wall gcc warnings in VER.
24/09/99	Added the long-awaited "drag-zoom" feature.  If you
                        hold the 3rd mouse button down and drag it,
                        wherever you release it defines a "zoom window"
                        that lets you zoom into screen areas much like
                        HP wave analyzers let you do.  Neat!
26/09/99	Updated VER, GEN, VSIM, CSIM so they will run under 
                        RedHat on the Alpha EV6.
26/09/99	Changes to make Tru-64's cc happy.
26/09/99	Removed expected error count in ver.y since it's a  
                        GNU bison-only feature.
26/09/99	Removed more compiler warnings.
30/09/99	Updated math_csim example.
02/10/99	Grabbed multiplier example from http://www.eecs.umich.edu/
                        ~mhansen/imodels/ISCAS_HLM.html
02/10/99	Made the drag-scroll speed slow down to a more human
                        speed in GTKWave.
02/10/99	Added traffic light example from mhansen.
02/10/99	Fixed bug in bits2vector() in GTKWave that caused the LSB
                        of a wave not to be considered for combining..
                        very nasty bug.
04/10/99	Removed reference to double declaration of pnt return type
                        for bits production rule in ver.y that only yacc
                        on Solaris discovers. 
08/10/99	Fixed bug that caused the Set Max Hier to crash when
                        blank traces are present.
12/10/99	Integrated Paul's fix in behave.c for append_read_sigs()
                        [traces back to the drivers of a signal].
16/10/99	Added ability for the VER parser to recognize spaces embedded
                        in numbers after the leading '[base] descriptor.
16/10/99	Added GPL banners to all applicable sourcecode.  (ANNA and
                        VSIM are excluded.)
16/10/99	Fix in wave for signal names like x[3].z[4].a[7:0].  The
                        hierarchy names were not parsing correctly before.
21/10/99	Finally added the requested "Open New Viewer" menu option.
                        (Unix only.)           
01/11/99	Added cone extraction in CYCO for use with C models.  At
                        the current time, its use can be regarded as merely
                        academic.  (It's used to force independent logic
                        cones to get grouped together in the C code which
                        theoretically should improve locality of reference.)
05/11/99	Integrated Paul's VER async set-reset detection on latches
                        into the main distribution.  CYCO/CSIM don't
                        support this yet, but they will sometime in the
                        future.
05/11/99	Added fix to async set-reset code in behave.c to handle
                        assigns to vectors of latches.
08/11/99	Integrated Udi Finkelstein's rewrite of the postscript.c
                        code into GTKWave.
10/11/99	Started work on making the print system more flexible
                        from a user/GUI standpoint (support alternate sizes    
                        and formats).
12/11/99	Integrated Paul's ABEL generation code for CYCO into the 
                        main distribution.
12/11/99	Fixed bug in GTKWave where dragzoom caused incorrectly
                        scaled signal name widths in printouts if the
                        marker wouldn't be nailed down afterwards.
14/11/99	Put in a stub for MIF generation in renderopt.c for when
                        the code *is* available in order to keep from
                        logjamming the rest of the distro.
15/11/99	Added des encryptor example from Chris Eilbeck's
                        (chris@yordas.demon.co.uk) freely distributable
                        desencode.vhdl.  This requires a *lot* of
                        RAM to flatten!
15/11/99	Integrated bugfix to behavioral assigns (big endian PPC
                        style signal directions would unintentionally
                        get reversed).
15/11/99	Integrated Paul's additions (-W -x) to CYCO.
16/11/99	Integrated Udi's preliminary MIF output driver.
                        There *are* some bugs in it.  You have been
                        warned.
19/11/99	Made center zooms the default behavior since that's what
                        most people use anyway.
19/11/99	Updated MIF driver so that text scaling works more-or-
                        less the same as it does for the PS driver.
20/11/99	Added support for LATCH_SR and LATCH_SR_N in CSIM.  Note
                        that the current CSIM methodology does *not* 
                        support latch clock pins that are the Q pins of
                        other latches.  Keep this in mind.  LATCH_SR
                        and LATCH_SR_N are supported in CYCO C models 
                        also.
24/11/99	Integrated Paul's netlist optimization additions
                        and ABEL fixes to CYCO.
28/11/99	Integrated VER CASE statement fix.
28/11/99	Swapped S/R pins in CYCO/CSIM as they were reversed.
28/11/99	Integrated more netlist optimization additions (strength
                        reduction) and bugfixes.
28/11/99	Fixed make_alias() in extract.c such that in->out
                        wires wouldn't get aliased and mess up CSIM.
02/12/99	Modified des example into des and des_csim examples.
                        Note that both require quite a bit of memory to
                        compile and build.
02/12/99	Fixed facname generation so that chars that should be 
                        escaped for strings in the facs[] are escaped.
02/12/99	Added -nf option which removes the facs[] array entirely 
                        in CYCO C models.
02/12/99	Added -s option which splits combinatorial logic blocks
                        into 100 line segments so GCC can compile them 
                        with -O2 turned on.
03/12/99	Integrated combinatorial feedback loop detection
                        fix for VER.  (Previously it maxxed out at
                        50 levels of logic.)
06/12/99	Fixed refresh bug in GTKWave where if you nailed down
                        the marker then clicked the hslider, the hslider
                        moved but the wave window didn't update.
                        (tims.timecache was stale)
07/12/99	Added standard X11 color name parsing capability to 
                        GTKWave (e.g., "dark olive green" now works just
                        as well as 550B2F.)
07/12/99	Refresh fix was bogus..backed out to previous revision.
                        This is going to take some thinking...
08/12/99	Found that the refresh bug was the configure event's
                        fault for the wavearea.
10/12/99	Actually the "real" fix seems to be both 07/12+08/12's
                        combined!
10/12/99	Fixed some code in bitvec.c that blatantly casts pointers
                        to ints.  This doesn't work on architectures like
                        the alpha where pointers are larger than ints!
                        This wasn't seen before because the return codes
                        were thrown away in all the calls.  *whew*
11/12/99	Integrated into the main distribution the VER update of 
                        Paul's that supports blocking v. nonblocking 
                        behavioral assignment statements.
12/12/99	Loop tracing updates to yesterday's addition.
14/12/99	Fixes to loop watchdog code from 12/12. 
16/12/99	More of Paul's grammar/function updates to VER.  
16/12/99	Added left_justify_sigs rc environment variable to GTKWave
                        and added the appropriate menu->view options.
17/12/99	Added shift-clicking of signals in the signalarea.  First
                        click on one signal.  If you hold shift and click
                        on another signal, all the signals between the
                        original one and the shifted one will have their
                        highlight status changed to that of the original
                        one.
19/12/99	More of Paul's grammar/function updates to VER.  Thanks 
                        for all of this!
22/12/99	Added "zoom_pow10_snap" rc variable and appropriate
                        menu toggle via shift-pause in the view
                        submenu.
30/12/99	Fixed negative size allocation of memory in behave.c.
                        This caused RH6.1's glibc to crash.
01/01/00	Moved menufactory stuff in GTKWave over to itemfactory
                        since it provides for more flexible things such
                        as togglebuttons, etc. in menus.
03/01/00	Added gdk_window_raise() so that any windows that need
                        attention in GTKWave that may be in the background
                        are automatically raised to the foreground.
04/01/00	Added use_full_precision rc variable and appropriate menu
                        option that toggles this.  When active, time     
                        values aren't rounded down to match the ticks
                        per pixel resolution on screen.  Turn this  
                        feature off if you want GTKWave to behave as it
                        did previously.
13/01/00	Added (+) descriptor to hierarchy search items that have
                        children.  This brings its appearance more in line
                        with the tree descriptor.
14/01/00	Fix for win32 compiles.  It turned out to be an enum
                        that got out of sync for w9x.
14/01/00	Fixed PasteBuffer() traces.last assignment bug.
14/01/00	Added '!' (NOT) prefix for regexps that inverts the
                        match's pass/fail.
14/01/00	Added use_scrollbar_only rc variable that removes the
                        shift, page, fetch, and discard buttons from
                        the top of the viewer.
14/01/00	Added $vcdclose support to get GTKWave in line with
                        1364-2000.
20/01/00	Added FV to the distribution.  It's a fast text viewer.
                        Basically, it's an uncompleted text editor I
                        started working on but never got past the view
                        mode.
21/01/00	Added maxdata compiler flag to the Makefile(.in) for
                        GTKWave.  This is necessary for viewing large
                        traces under AIX.  You *must* copy this to the
                        CFLAGS by hand if you need it!
23/01/00	Added ability for GTKWave to handle .zip files since
                        gzip can handle them.  (Was mostly a file
                        extension recognition thing.)
23/01/00	Added a "block" memory allocator to GTKWave's vcd.c
                        [histent_calloc()] that speeds up VCD file loads
                        by a couple of percent (ca. 5%) since it cuts down   
                        on many calls to calloc[_2]().
24/01/00	Profiled vcd.c and speeded up vcd loads about 20% by     
                        inlining getch() and optimizing it to assume
                        that we'll most likely get a hit rather than EOF.
25/01/00	Removed str_match routines and replaced them with POSIX
                        regular expression stuff from regex.h.  This
                        allows for more powerful searches.
25/01/00	Extracted regex.c/regex.h from glibc 2.1.2 so that
                        compilers lacking glibc can use them.
25/01/00	Added WRange and WStrand regexes to searching.
26/01/00	Added fix to vcd.c that handles parameters that specify
                        32 bits as a blanket bitlen for any length
                        parameter (i.e., finsim).
26/01/00	Fixes for win32 compiles that were broken from regex
                        additions.
26/01/00	Added "hier_grouping" rc variable and appropriate menu
                        toggle item that allows the user to tailor the
                        "Tree Search" and "Hierarchy Search" widgets   
                        such that they group all of the hierarchies
                        first then all the signals last when enabled.
                        This makes navigating through hierarchies
                        much faster.
29/01/00	Renamed some of the duplicate statics floating around
                        in search.c/treesearch.c for "entry" since they
                        may mess up some optimizing compilers.
29/01/00	Null string for regex bundling produces "<Vector>" as
                        a name now rather than simply bailing.  This is
                        to get the behavior in line with the other
                        search requestors.
29/01/00	Fixed potential buffer overrun problem in markerbox.c.
03/02/00	Changed main.c in GTKWave such that missing .sav files as
                        specified on the command line don't cause the
                        viewer to die but instead give a warning.  This
                        keeps exit(0) from being annoying on large VCD   
                        loads.
11/02/00	Fixed bug in GTKWave that afflicts X11 in AIX when the
                        viewer is running remote.  X11 would generate
                        events that would make the viewer think that the
                        user was scrolling the wavewindow when the mouse
                        would move beyond the wavewindow left or right
                        side. 
03/03/00	Stephen Robinson informed me of the correct semantics
                        of alloca: i.e., the memory is freed upon
                        return, not when the ending brace is encountered.
                        Added his patch to vcd.c which greatly reduces
                        memory requirements on VCD files with large
                        symbol tables.  (No more stack blowout on
                        Linux boxes.)
04/03/00	Added support for "comment" traces.
24/03/00	Fixed fgetmalloc() such that it can handle carriage
                        returns in lines.  (Needed for win32)
25/03/00	Reduced memory requirements for atomic_vectors slightly 
                        from elimination of useless narray[i] mallocs.
03/04/00	Added beginning of auto-vector regeneration for when
                        the vcd file has the vectors in split bit
                        format.
04/04/00	Implemented auto-vector regeneration (aka autocoalesce)
			and added vcd_mti example for testing it.
04/04/00	Added SetVCDendian() to csim so that auto-vector 
                        regeneration can be guided as ivf files don't
                        indicate vector direction.
04/04/00	Fixed bug in viewer that didn't update the "markertime"
                        field when save files were loaded.
05/04/00	Fixed unitialized rootv pointer in the vcd coalesce.
05/04/00	Added search for var declarations after enddefinition.
                        This is to keep the viewer from crashing on
                        traces that have multiple var chunks.
06/04/00	Added ability to handle multiple $enddefinition chunks
                        in the same vcd file rather than complaining
                        that there's nothing that can be done about it.
                        This is to enhance compatibility with Icarus.
06/04/00	Revamped CSIM's VCD generation such that the simtime
                        (wallclock date and time) is prepended to the
                        dumpfile.
13/04/00	Added vcddiff to main distribution.
17/04/00	Integrated Matthew Reilly's 64-bit alpha fixes into the
                        main distribution.  Thanks!
18/04/00	Fixed compiler bug in ver that caused infinite recursion
                        crashes in link_to_null_branches().  This occurs
                        when you write to a latch in an always block in
                        two unrelated if() statements in some cases.  It's
                        still broken for those odd cases, but doesn't
                        crash the compiler.
24/04/00	Added "force_toolbars" option to the wave viewer that
                        allows the menus and buttons to be rendered
                        as toolbars.  By default this is off.
25/04/00	Added check in all the vcd loaders that automatically
                        set the mintime to zero if a dumpvars is
                        encountered since Verilog-XL doesn't seem to emit  
                        a time=0 value.
25/04/00	Added "autocoalesce_reversal" and appropriate menu
                        items that reverse the direction that
                        autocoalescing takes place in.  This is to
                        accommodate simulators such as Verilog-XL that
                        seem to output 0..x bit ordering regardless of
                        the original vector direction in the .v file.
26/04/00	Fixed bug in autocoalesce for signal search regexp that
                        would incorrectly internally deselect an
                        autocoalesced signal but leave it untouched in
                        the clist widget.
16/05/00	Fixed bug in CTree by properly implementing it.     
20/07/00	Added nogrow/noshrink policy to various small requester  
                        windows in GTKWave to keep the user from
                        stretching the buttons out of their proper
                        placements.
22/12/00	Fixed bug in vcd.c that would cause the viewer to crash
                        under certain conditions if the hierarchy would
                        have multiple dumps of the same exact signal.
                        The names are now resolved by prepending $DUPx
                        to the hierarchy (where x=0, 1, 2, etc).
22/12/00	Added full autocoalesce support to the hierarchy, tree,
                        and regex searches such that if autocoalesce is
                        active, you won't get a stranded version of
                        a [] bitvector (i.e., exploded vector) on a
                        search.  This makes more sense.
23/12/00	Added alt_hier_delimeter parameter that allows the vcd
                        parser to break down multiple implicit hierarchies
                        such as when various models are combined and the
                        output symbols in the new model contain slashes
                        as well as standard vcd hierarchy.  Use
                        'alt_hier_delimeter /' in .gtkwaverc to fix this.
26/12/00	Added trace alphabetizer.
26/12/00	Added ability to drag and drop in a prepend mode if the
                        mouse cursor is above the 1st displayable trace.
27/12/00	Added mark/clear ability in pattern search that converts
                        the time vertical markers to be rendered whenever
                        a specific condition is true.  This is handy for
                        being able to view every condition where a pattern
                        evaluates true (i.e., upclock on clk when xyz is
                        high) en masse.
09/01/01	Added user selectable fonts which override all other
                        ones for the signal and wave windows.  Use
                        rc variables of this format:
                        fontname_signals -b&h-*-*-r-*-*-16-*-*-*-*-*-*-*
                        fontname_waves   -b&h-*-*-r-*-*-13-*-*-*-*-*-*-*
                        You can get font names from xfontsel.  Note
                        that the only restriction is that the signal
                        font must be at least as tall as the wave font.
                        Additionally, if you use fonts that are exceedingly
                        large, things may not render properly.  (e.g., time
                        overlap values in the timebar.)
13/01/01	Added "Time Warp" that lets you shift signals +/- with
                        respect to their real time.  This is handy for
                        viewing signals or doing pattern searches on  
                        signals that do not come active the same clock
                        cycle.
16/01/01	Fixed bug in VCD loader that wouldn't properly handle
                        RCS identifiers embedded in VCD version IDs.
21/01/01	Fixed "square boxes" problem with misc-fixed fonts on XF4
                        by using courier instead.  Thanks to an accelerated
                        X driver, GTKWave on nVidia with XF4 is very fast!
08/03/01	Added additional "prop"page sizes for printing.   Their
                        intended use is for 90 degree rotations in
                        documentation.
08/03/01	Bugfix in print.c that fixes problem where all the traces
                        under a timeshifted trace would move if there
                        is a blank trace following the last timeshifted
                        one.
08/03/01	Bugfix that would cause missing font errors for named
                        traces (when you specify your own fonts.)
30/03/01	Integrated midline for hi-z and ASCII data options for
                        traces patches from Paul Campbell
                        (paul@verifarm.com).  Thanks!
13/05/01	Enhanced hash algorithm for symbol builds in the viewer
                        such that it can handle stranded vectors better.   
                        Made hash table considerably larger.        
13/05/01	Chanced fac sort algorithm to heapsort as it works better
                        with traces (e.g., IBM MVLSIM AETS) that are already
                        sorted.  Have successfully run AETs converted to
                        VCD that have 170000 symbols (with many times
                        greater physical nets).
19/05/01	Cut down regex search return to 10000 entries as the gtk  
                        clist seems to do some sort of n-squared traversal
                        as it walks every entry for a set/clear.
19/05/01	Added texsim and mvlsim aet converters in experimental. In
                        the standalone distribution of gtkwave, they are
                        installed by default.
19/05/01	Brought win9x port up to speed and ifdefed all anti-windows
                        friendly code so the source compiles under windows
                        without errors.  Also now provide a ppro optimized
                        gtkwave for windows binary off one of the subpages.
26/05/01	Found ancient buffer overrun in main.c of the viewer that
                        is triggered if you change the name of the viewer
                        argv[0] to a value that tickles the memory allocator
                        "just right".
06/06/01	Fixed big endian bug in CSIM on Unstick().
06/06/01	Converted CYCO to use red-black trees for flattened syms.
06/06/01	Made flattened sym hash size larger in VER.
07/09/01	Added string macros to GEN (see examples/test5).
21/09/01	Fixed bug in VER that generated wire assign LHS nets with
                        a bitstrand of -1.
22/09/01	Added SetVCDremoveNonvectorZeroBits() to CSIM.
24/09/01	Added compressed identifiers to CYCO when generating MVL 
                        CSIM models to cut down on model file size.
27/09/01	Added support for px and snr flags in VER.  Note that
                        parameterized modules are faked but function for 
                        what I used them for at work.
27/09/01	Fixed CYCO crash for gates missing IO ports.
29/09/01	Removed crash in vbpp when accepting files from stdin.
30/09/01	Added vpp_file/vpp_line directives in vpp to replace 
                        vpp_source.  Also modified VER to be able to accept and
                        process these directives.
30/09/01	Updated "encountered modules" statistic in VER so it
                        reflects the reduced count from -snr.
01/10/01	Made library handling more robust.  Eliminated library keyword 
                        and now use -a to analyze to a library and a series
                        of -l flags to specify libraries to use.
08/10/01	Bugfix in gtkwave on T_STRING rule that fixes crashes for
                        when Icarus would write out VCD files with an   
                        experimental, seemingly not VCD compliant structure.
01/11/01	Added true expand/combine capability to GTKWave.
02/11/01	Added support for MVLSIM AETs (versions 2, 6, 7) to GTKWave.
                        Note that parallel instance models are not supported.
                        Old-style AET support has been removed--you'll have
                        to use anna for than anymore.
06/11/01	Now support parameterized component instantiations in VER.
22/11/01	Added LXT dumpfile support to GTKWave and CSIM.
28/11/01	Added LXT support for compressed clock waveforms.
25/12/01	Updated LXT writer so integer writes of one bit can be
                        clock compressed if possible.
28/12/01	Updated CSIM to handle LXT unload NULL pointer catch.
28/12/01	Updated CYCO with integer port access functions for I/O
                        ports less than 33 bits wide.
28/12/01	Added STKFAC capability to c model CYCO models.
31/12/01	Integrated VPP with VER.
31/12/01	Integrated VPP with Vertex.  Vertex development has started up
                        once again.
02/01/02	Replaced -l option with XL-like -y one.
03/01/02	Added -D and +incdir+ options to VER.
07/01/02	Added +libext+ option to VER.
08/01/02	Added -class to CYCO for c++ class generation.  This generates
                        files with your classname.C/.H.  
12/01/02	Fixed VPP so it can handle unterminated comments
12/01/02	Fixed +libext+ and +incdir+ for multiple plusargs.
13/01/02	Modified include path selection in +incdir+.
13/01/02	Cleaned up +define+ so it actually puts the symbols in the
                preproc.c symbol table.
16/01/02	Fixed VPP so it doesn't preprocess inside comments.  This is
                        a bug introduced from the unterminated comment fix.
20/01/02	Added BDD to the experimental directory.  CYCO now generates
                        files for use with it via the -bdd command line
                        switch.  Currently this is all unsupported and
                        highly experimental.
23/01/02	Fixed one-off bug with bitblasted vector coalescing in LXT
                        files with GTKWave.
02/02/02	Added yyfilename to behave.c's error reporting in VER.
14/02/02	Fixed comment processing preprocessor bug.
10/03/02	Changed lxt_write.c/.h to MIT license.
13/03/02	Changed CYCO to use splay trees for symbol tables rather than
                        red-black trees.
15/03/02        Fixed extract.c in CYCO to handle cases of SUBC gates with
                        two inputs.
16/03/02        Fixed problem with strtok used in pragma declarations in
                        the lexer since it was causing trouble under linux
                        in the parser (strdup the correct value).
21/03/02	Added tempsmashing to the c code generation in CYCO.  This
                        greatly increases performance for models with many
                        gates with a fanout of one.  Use the -ts flag to
                        disable this optimization.
24/03/02	More variable removal for tempsmashing.
26/03/02	Added varreduct scheduling to CYCO.  Use -nvr flag to disable.
28/03/02	Added -tgcc to CYCO for converting AND/OR ops to muxes.
30/03/02        Added -fm alternate mux semantics in CYCO for c files.
04/04/02	Various minor bugfixes to GTKWave's VCD reader for AIX,
                        detection of mangled range IDs.
10/04/02	Extended LXT timestamps to 64-bits.  This occurs dynamically 
                        as needed.
06/06/02	Fix for VER compiler hang with cpu6502.v example in behave.c.
03/08/02	Added option in CSIM for stick before get ordering (removes
                        need for postlatch evaluation).
22/09/02	Fixed comment after ifdef bug in vpp.
28/09/02        Added 24-way parallel CSS decryptor sim example.  Data files
                        not included.
07/10/02	Added preprocessor to Vertex.  Stripped VPP one from it.
08/10/02	Modified DLG regexs in Vertex to use gperf keywords in order
                        to cut down on the size of scan.c.
13/10/02	Added proper support for string constants in Vertex.
13/10/02	Added case insensitive module path option -yi to Vertex.
28/10/02	Applied patch to gtkwave for pattern search marker count.
31/12/02	Added dictpact heuristic to lxt_write and gtkwave.
08/02/03        Added new version of GTKWave with linear LXT support.
16/02/03	Added blackout regions to LXT and GTKWave.
07/03/03	Added new version of GTKWave with faster VCD loading.
06/07/03        Added new version of GTKWave which supports saving pattern
                        mark search patterns.

06jul03 bybell@linux-workshop.com / bybell@nc.rr.com