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.
|
|