Splitting and extracting specific modules from VPD or VCD dump

vcs
#1

Synopsys VCS has a nifty utility called vcsplit that lets you do 2 useful things

  1. Extract and create a new VPD/VCD with specific modules or a scope from a larger VPD/VCD
  2. Extract a time window and create a new VPD/VCD

This is how you use it.

vcsplit [-o output_file] [-scope selected_scope_or_signal] 
    [-include include_file] [-min min_time] [-max max_time]
    [-ignore ignore_file] input_file

To extract just one scope - you can specify it on the command line like this

vcsplit -o output.vpd -scope tb_top.dut.mod_inst.blk_inst input.vpd

To extract multiple scopes - first create a scopefile.txt file with one scope per line, like this:

# scopefile.txt
tb_top.dut.controller_inst.arb_inst
tb_top.dut.hash_inst

Then provide the above scopefile as input to vcsplit

vcsplit -o output.vpd -include scopefile input.vpd

Exclude scopes
Similar to -include, you can provide a scope list to exclude, using the -ignore option.