VHDL, verilog, design, verification, scripts, ...
Email: bknpk@hotmail.com Phone: +972-54-7649119



 

ASIC/FPGA Design and Verification Out Source Services

Exporting simvision TRN to VCD

  1. In this page I will show how to convert simvision TRN wave data base to VCD.

  2. The motivation is to minimize to use of "license consuming" CAD software.

  3. The tests, which I run at work, are quite long. Some may run several hours. So I use GUI only for the first steps of program bring-up and switch to batch mode for the rest of the debug process.

  4. While the test runs and after it completes, I need to inspect the results. One way is to analyze waves. I use the free GTK wave viewer wherever possible.

  5. I noticed that when the NC simulator is instructed to generate waves, in VCD format, from the TCL file, the simulation is slowed down dramatically.

  6. At the verilog test-bench I use:


  7. initial begin
      $shm_open ("lli.shm", , , , 1900, 0); //incremental size of 1.9G
    //$shm_probe(tb.dut.i_lo_proc_top.i_losl_top, "AMSC");//current and below
      $shm_probe(tb.dut.i_lo_proc_top.i_losl_top, "ASC");//current and below
      $shm_probe(tb, "A");
    end


    From tcl the data base can be split into incremental size by using the following command:
    database -open waves -incsize 1900M

  8. So I generate TRN. To convert to VCD during and after run, from the command line, I use the following script:

  9. #!/bin/bash
    #1 vcd output file
    #2 trn input file
    cad simvisdbutil -vcd -OUTPUT $1 -OVERWRITE $2

  10. If you need only a few signals out of a TRN files, to keep your VCD small in size, do the following:


  11. #!/bin/bash

    simvisdbutil -vcd -OUTPUT gtk.vcd -OVERWRITE ncsim.shm/ncsim.trn \
    -signal pm_tb.dut.arm_div8_clk \
    -signal pm_tb.dut.arm_div8_clk \
    -signal pm_tb.dut.chn2_e2_paddr \
    -signal pm_tb.dut.chn2_e2_penable \
    -signal pm_tb.dut.chn2_e2_pwrite \
    -signal pm_tb.dut.chn2_e2_psel \
    -signal pm_tb.dut.chn2_e2_pready \
    -signal pm_tb.dut.chn2_e2_pwdata \
    -signal pm_tb.dut.chn2_e2_prdata \
    -signal pm_tb.dut.arm_div8_clk \
    -signal pm_tb.dut.chn2_e1_paddr \
    -signal pm_tb.dut.chn2_e1_penable \
    -signal pm_tb.dut.chn2_e1_pwrite \
    -signal pm_tb.dut.chn2_e1_psel \
    -signal pm_tb.dut.chn2_e1_pready \
    -signal pm_tb.dut.chn2_e1_pwdata \
    -signal pm_tb.dut.chn2_e1_prdata \
    -signal pm_tb.dut.arm_dcsu_clk_out \
    -signal pm_tb.dut.core_dcsu_clk_out \
    -signal pm_tb.dut.mddr_dcsu_clk_out \
    -signal pm_tb.dut.sddr_dcsu_clk_out \
    -signal pm_tb.dut.arm_dcsu_lock \
    -signal pm_tb.dut.core_dcsu_lock \
    -signal pm_tb.dut.mddr_dcsu_lock \
    -signal pm_tb.dut.sddr_dcsu_lock

    ls gtk.vcd && gzip gtk.vcd
    ls gtk.vcd.gz && \mv -f gtk.vcd.gz ~/Junk

    If you use VCS, you can convert VPD to VCD in this way:
    vpd2vcd inter.vpd inter.vcd


Home

An extension to the example from cadance of producer consumer.

SD slave with Samsung (k9f1208) flash (vhdl project).






Search This Site


Feedback This Site




new pages on this site