INTRO
=====

This is the documentation for the .vcd file format, the Value Change Dump, used by wavefile viewers such as gtkwave.
The main documentation is at http://en.wikipedia.org/wiki/Value_change_dump or here: http://www.beyondttl.com/vcd.php

LABELS
======

* If no labels are given, then the bits are labelled Bit_23 ... Bit_0, all bits are included in the file.
* If -L list  is given on the command-line, then only certain bits are output here, and they are appropriately labelled.
* If the keyword "#vcdlabels" is used in the file, it has the same effect as -L.  (-L overrides #vcdlabels)



FILE FORMAT
===========

This contains a header section, followed by some data. There is no footer.
My comments are using // on the far right.  Note that '$' is literal in VCD.
Note that we don't actually know the startup state, hence initial x.



$date
   Date text. For example: November 11, 2009.				//The date.
$end
$version
   VCD generator tool version info text.				//Info about pb_parse
$end
$comment
   Any comment text.							//Info on the original source file
$end
$timescale 1ps $end							//Pulseblaster tick (usually 10ns)
$scope module logic $end						//Module name (free choice)
$var wire 1 A data_valid $end						//Variable definitions.
$var wire 1 B en $end							//  wire 1    means  a single-bit wide "bus"
$var wire 1 C rx_en $end						//  The compact identifier A-F is the shortname for it; any printable ASCII chars are allowed.
$var wire 1 D tx_en $end						//  data_valid, en, rx_en  etc are the labels for these wires.
$var wire 1 E empty $end
$var wire 1 D underrun $end
$upscope $end
$enddefinitions $end							//End definitions
$dumpvars								//Begin dump of initial variable state. Must list all of them.
xA
xB									//  Anything beginning with 0,1,x is a logic state. We usually use 0 or 1.
xC									//  '1D' means 'identifier D is in state 1'
xD
xE
xF
$end									//End dump of initial state.
#0									//Anything beginning with # is a timestamp, in timescale units.
0A
1B
0C
1D
0E
0F
#2211									//Only the variables that change state need to be listed.
0D									//This provides some run-length-encoding.
#2296
1A
#2302
0A
#2303
