looking for - value change dump - format

S

Schüle Daniel

Guest
Hello all,

I am looking for the definition of vcd format
I wrote a simple simulator for digital nets
and I am now trying to extend it to make it
output a vcd file. (eg to be viewed with gtkwave)

I guess I won't need to understand/use all
options of this format since my variables are
all of type wire 1 bit wide. I would appreciate
examples how to log changes on such variables.


Regards, Daniel
 
On Sun, 22 Oct 2006 14:53:38 +0200, Schüle Daniel
<uval@rz.uni-karlsruhe.de> wrote:

Hello all,

I am looking for the definition of vcd format
I wrote a simple simulator for digital nets
and I am now trying to extend it to make it
output a vcd file. (eg to be viewed with gtkwave)

I guess I won't need to understand/use all
options of this format since my variables are
all of type wire 1 bit wide. I would appreciate
examples how to log changes on such variables.


Regards, Daniel
Google is your friend:

http://www.google.com/search?hl=en&lr=&q=+format+value+change&btnG=Search

Take a look at the first link.
 
Hi,

[...]
Google is your friend:

http://www.google.com/search?hl=en&lr=&q=+format+value+change&btnG=Search

Take a look at the first link.
Of course I did google search on my own
I found this page too but it didn't help me much
there are no explanations how constructs suppose to work
for example what does the following do?
$dumpon x*@ 0*# x*$ b1 (k $end

it looks cryptic yes, like perl :)
but what are the meanings of @,#,$ and where are the timing informations
of a happened change

I would appreciate it very much if someone could give me some pointers
to more (maybe simpler) examples

Regards, Daniel
 
This link can be helpful for you:

http://www-ee.eng.hawaii.edu/~msmith/ASICs/HTML/Verilog/LRM/HTML/15/ch15.2.htm

Regards,
-Alex

Schüle Daniel wrote:
Hi,

[...]

Google is your friend:

http://www.google.com/search?hl=en&lr=&q=+format+value+change&btnG=Search

Take a look at the first link.

Of course I did google search on my own
I found this page too but it didn't help me much
there are no explanations how constructs suppose to work
for example what does the following do?
$dumpon x*@ 0*# x*$ b1 (k $end

it looks cryptic yes, like perl :)
but what are the meanings of @,#,$ and where are the timing informations
of a happened change

I would appreciate it very much if someone could give me some pointers
to more (maybe simpler) examples

Regards, Daniel
 
Schüle Daniel wrote:

I would appreciate it very much if someone could give me some pointers
to more (maybe simpler) examples
VCD files aren't complicated. Those weird symbols you see are base-95
encoded handles for the signal identifiers. In the value change
section they will match the corresponding encoded handle in the $var
statements. Everything else should appear straightforward: lines with
'#' as the first char indicate time values, lines with 'b' are
multi-bit value changes, and lines with '0', '1', 'x', 'z' followed by
an encoded handle are single-bit value changes.

If you want to wrap your head around it more, go to
ftp://metalab.unc.edu/pub/linux/apps/circuits/ and look at libvcddump,
specifically the fprintf statements using context->handle. The
libvcddump code is MIT licensed so you don't need to be concerned with
licensing issues if you simply want to call the library code within
your own program.

BTW, note that if you're only using gtkwave for now, you don't have to
be concerned at first with doing scope/upscope but can simply generate
flat earth signal names from your simulator. That might save you work
of generating a proper hierarchy.

You can also look at the dumper in Icarus.

-Tony

p.s.: I just noticed that gtkwave currently dies on the example vcd
emitted by libvcddump so you'll have to use --legacy at the command
line in order to use the old loader which can handle uninitialized
nets. This will be fixed in 3.0.15.
 

Welcome to EDABoard.com

Sponsor

Back
Top