Grouping nets in VCD file

K

Kevin Neilson

Guest
When I use the $dumpvars instruction to capture a bus and run the
simulation in Modelsim, the bus is broken into individual nets in the
VCD file. Is there some way to make Modelsim treat it as a bus? I
can't find anything in the documentation. As an example, I see this in
the VCD:

$var wire 1 F s_mimo_d1q_data [7] $end
$var wire 1 G s_mimo_d1q_data [6] $end
$var wire 1 H s_mimo_d1q_data [5] $end
$var wire 1 I s_mimo_d1q_data [4] $end
$var wire 1 J s_mimo_d1q_data [3] $end
$var wire 1 K s_mimo_d1q_data [2] $end
$var wire 1 L s_mimo_d1q_data [1] $end
$var wire 1 M s_mimo_d1q_data [0] $end

whereas I'd rather see the equivalent:
$var wire 8 F s_mimo_d1q_data [7:0] $end

I want to parse this myself and having the bus treated as a bus will
make this simpler, as well as making the file size much smaller.
-Kevin
 
On Jul 17, 7:28 pm, Kevin Neilson
<kevin_neil...@removethiscomcast.net> wrote:

I want to parse this myself and having the bus treated as a bus will
make this simpler, as well as making the file size much smaller.
The file size quite possibly won't be smaller. I have the same simrun
from icarus (which does what you want) and NC (which bitblasts like
MTI) and the file size is 600MB vs 100MB in favor of NC. A lot
depends on the type of data generated by your sim model.

As far as parsing the data and having the bus treated as a bus, I
should have the capability to generate such VCD files from one of the
helper apps in the next version of gtkwave. The capability already
exists; it just isn't turned on by default.

-t
 
On Jul 17, 7:28 pm, Kevin Neilson
<kevin_neil...@removethiscomcast.net> wrote:

whereas I'd rather see the equivalent:
$var wire 8 F s_mimo_d1q_data [7:0] $end
Grab gtkwave out of sourceforge cvs (see the http://home.nc.rr.com/gtkwave/
website). Convert the file to vzt using "vcd2vzt file.vcd file.vzt",
then convert back to vcd:

19:/tmp> vzt2vcd core1_rtl.vzt -c >core1_rtl_new.vcd
VZTLOAD | 2670611 facilities
VZTLOAD | Total value bits: 1566096
VZTLOAD | Read 2 block headers OK
VZTLOAD | [0] start time
VZTLOAD | [2405000] end time
VZTLOAD |
VZTLOAD | 2295594 facilities (after vectorization)
VZTLOAD | 10969 complex vectors synthesized
VZTLOAD | 25815 complex aliases synthesized
VZTLOAD |

There could be bugs with this but preliminary tests seem to show it
working for me.

-Tony
 
bybell@gmail.com wrote:
On Jul 17, 7:28 pm, Kevin Neilson
kevin_neil...@removethiscomcast.net> wrote:

I want to parse this myself and having the bus treated as a bus will
make this simpler, as well as making the file size much smaller.

The file size quite possibly won't be smaller. I have the same simrun
from icarus (which does what you want) and NC (which bitblasts like
MTI) and the file size is 600MB vs 100MB in favor of NC. A lot
depends on the type of data generated by your sim model.

As far as parsing the data and having the bus treated as a bus, I
should have the capability to generate such VCD files from one of the
helper apps in the next version of gtkwave. The capability already
exists; it just isn't turned on by default.

-t
Yeah, it depends on the type of data on the bus. If only one or two
bits change at the same time, the broken-out version will be smaller.

Actually, part of the problem was that with some other viewers I was
trying, if the bus was broken up in the VCD, it was broken up in the
display. But GTKWave seems to pull the bits together automatically for
the display.

But thanks for the conversion facility; I may need to use that, because
I also want to bring VCD into my SysGen viewer.
-Kevin
 

Welcome to EDABoard.com

Sponsor

Back
Top