NAME

Verilog::VCD::Writer - VCD waveform File creation module.

VERSION

version 0.004

SYNOPSIS

use Verilog::VCD::Writer;

my $writer = Verilog::VCD::Writer->new(timescale=>'1 ns',vcdfile=>"test.vcd");
$writer->addComment("Author:Vijayvithal");

my $top = $writer->addModule("top"); # Create toplevel module
my $TX  = $top->addSignal("TX",7,0); #Add Signals to top
my $RX  = $top->addSignal("RX",7,0);

my $dut = $writer->addModule("DUT");  #Create SubModule
$dut->dupSignal($TX,"TX",7,0); #Duplicate signals from Top in submodule
$dut->dupSignal($RX,"RX",7,0);

$writer->writeHeaders(); # Output the VCD Header.
$writer->setTime(0); # Time 0
$writer->addValue($TX,0); # Record Transition
$writer->addValue($RX,0);
$writer->setTime(5); # Time 1ns
$writer->addValue($TX,1);
$writer->addValue($RX,0);

DESCRIPTION

This module originated out of my need to view the <Time,Voltage> CSV dump from the scope using GTKWave.

This module provides an interface for creating a VCD (Value change Dump) file.

Please see examples/serial.pl for a complete example

new (timescale=>'1ps',vcdfile=>'test.vcd',date=>DateTime->now());

The constructor takes the following options

  • timescale: default is '1ps'

  • vcdfile: default is STDOUT, if a filename is given the VCD output will be written to it.

  • Date: a DateTime object, default is current date.

writeHeaders()

This method should be called after all the modules and signals are declared. This method outputs the header of the VCD file

addModule(ModuleName)

This method takes the module name as an input string and returns the corresponding Verilog::VCD::Writer::Module object.

setTime(time)

This module takes the time information as an integer value and writes it out to the VCD file.

addValue(Signal,Value)

This method takes two parameters, an Object of the type Verilog::VCD::Writer::Signal and the decimal value of the signal at the current time. This module prints the <Signal,Value> information as a formatted line to the VCD file

METHODS

addComment(comment)

Adds a comment to the VCD file header. This method should be called before writeHeaders();

flush()

Flushes the output buffer.

AUTHOR

Vijayvithal Jahagirdar<jvs@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Vijayvithal.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.