Generating FSDB Waveforms with VCS, IES, and Questa for Verdi Debugging
The Verdi debug platform consumes Fast Signal Database (FSDB) files to provide full-featured waveform analysis, source browsing, schematic views, and FSM bubble diagrams. These FSDB files can be produced by the major simulation engines. Below are the integration recipes for Synopsys VCS, Cadence IES (irun), and Mentor QuestaSim, followed by a single Verdi invocation to load the resulting database.
1. Synopsys VCS Flow (UCLI Dumping)
Compilation
Compile the design with the Novas PLI table and shared library. The example assumes environment variable VERDI_HOME is set.
vcs -sverilog -debug_acc+all -LDFLAGS -rdynamic -full64 \
-P ${VERDI_HOME}/share/PLI/VCS/${PLATFORM}/novas.tab \
${VERDI_HOME}/share/PLI/VCS/${PLATFORM}/pli.a \
-f tb_top.f \
+vcs+lic+wait \
-l com_vcs.log
Simulation
Run the compiled simv executable in UCLI mode. The Tcl script configures FSDB dumping and then triggers execution.
./simv +ntb_random_seed=${SEED} \
-ucli -i ./tcl/setup_dump.tcl \
+fsdb+autoflush \
-l sim_vcs.log
UCLI Control Script (./tcl/setup_dump.tcl)
global env
fsdbDumpfile "$env(WAVE_NAME).fsdb"
fsdbDumpvars 0 "tb_top"
run
2. Cadence IES Flow (NCSIM Interface)
Elaboration
irun is used in two-step mode. The first pass elaborates the design snapshot.
irun -elaborate -access +r \
-f tb_top.f \
-top tb_top \
-licqueue \
-l com_irun.log
Simulation with Dumping
The -R flag reuses the previously elaborated snapshot. Dumping commands are passed via -input.
irun -R \
-input ./tcl/setup_dump_ies.tcl \
+fsdb+autoflush \
-licqueue \
-l sim_irun.log
Tcl Dump Script (./tcl/setup_dump_ies.tcl)
global env
call fsdbDumpfile "$env(WAVE_NAME).fsdb"
call fsdbDumpvars 0 "tb_top"
run
quit
Note: Cadence requires
callbefore each FSDB command, and an explicitquitto end the simulation cleanly.
3. Mentor QuestaSim Flow
Library Creaiton & Compilation
Create the work library, map it, and compile the source files.
vlib work
vmap work work
vlog -64 -sv +acc \
-f tb_top.f \
-l com_questa.log
Simulation with the FLI Shared Object
The -pli switch loads the Novas FLI library. A Tcl DO file controls dumping.
vsim -64 -batch \
-pli ${VERDI_HOME}/share/PLI/MODELSIM/${PLATFORM}/novas_fli.so \
work.tb_top \
-do ./tcl/setup_dump_questa.tcl \
+fsdb+autoflush \
-l sim_questa.log
DO Script (./tcl/setup_dump_questa.tcl)
global env
fsdbDumpfile "$env(WAVE_NAME).fsdb"
fsdbDumpvars 0 "tb_top"
run -all
quit -sim
4. Loading the FSDB in Verdi
Once the simulation produces the FSDB file, open it with Verdi, referencing the original file list for source code and design hierarchy.
verdi \
-sv \
-nologo \
-f tb_top.f \
-ssf wave_database.fsdb
Adjust the -ssf argument to point to the actual waveform file generated by the chosen simulator.