• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Functional Verification
  3. forcing the creation of a vcd file

Stats

  • Locked Locked
  • Replies 14
  • Subscribers 67
  • Views 32010
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

forcing the creation of a vcd file

freitas
freitas over 13 years ago

Hello,

How do I instruct simvision to force the creation of a vcd file?

I am trying to create tcl script to dump signals into a vcd file and then immediately post-process this very vcd.

These are the two lines I want to run in sequence from a ncsim tcl script : 

simvision -submit "database export $my_signals -format vcd -name my_vcd.vcd"

file copy my_vcd.vcd ${my_dir}/myvcd.vcd

The problem that I am experiencing is that simvision seems to postpone the creation of the vcd file. Therefore, at the moment the second line is executed the vcd file is not yet available.

I get the following error:

ncsim> *E,TCLERR: error copying "driver.vcd": no such file or directory

However, if I run the two lines separately (i.e., not in a script) it works.So It seems that I have to force the creation of the vcd, but I don't know how.

I would appreciate your help.

Thanks!

 

 

  • Cancel
  • StephenH
    StephenH over 13 years ago

    I expect the problem is that because the "simvision -submit" just passes the request to the simvision process, ncsim carries on executing Tcl commands before simvision even processes the request.

    How about getting SimVision to execute the file copy as well, as part of the same command?

    ncsim> simvision -submit "database export $my_signals -format vcd -name my_vcd.vcd ; file copy my_vcd ${my_dir}/myvcd.vcd"

    Alternatively, why not just set a probe straight into a VCD file?
    NCSim lets you open multiple waveform databases and set multiple probe commands, either into the same database or different ones.

    ncsim> database -open my_vcd -vcd -into ${my_dir}/myvcd.vcd 
    ncsim> probe -create -database my_vcd $my_signals

      

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 13 years ago
    Hello Freitas.

    Try putting the file copy through SimVision as well. I think the issue
    you face is that the "simvision -submit" just passes the request to
    SimVision then carries on in ncsim without waiting for the result.
    So, this might work:

    ncsim> simvision -submit "database export $my_signals -format vcd -name
    my_vcd.vcd ; file copy ${my_dir}/my_vcd.vcd"

    Perhaps you could also generate the probe natively in VCD?

    ncsim> database -open my_vcd -vcd -into $my_dir/my_vcd.vcd
    ncsim> probe -create -database my_vcd $my_signals

    This would not stop you also opening a SHM database and probing other
    signals int he same run, for interactive debug.

    Steve.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • freitas
    freitas over 13 years ago

    Voila! It works!! thanks a lot!

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sumeet Shresth
    Sumeet Shresth over 12 years ago

    Hi Stephen,

     

    I am trying to create the VCD for the system verilog varible being defined as struct using the following command:

    probe -create -vcd bench.ydec_i -depth all

    but I am facing the issue showing the following error:

     ncsim: *E,DBOBBD: Cannot create VCD probe for bench.ydec_i.

    I am using the simvision 10.20-s105

     

    Regards,

    Sumeet Shrestha 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 12 years ago

    Hi Sumeet.

    The VCD format itself doesn't support complex types like structs, which is why ncsim is telling you it cannot probe the object. As an aside, you may want to try the command "nchelp ncsim DBOBBD" at your Linux prompt to see a detailed explanation of the error message.

    Unless you absolutely require VCD format you'd do better to use the native SHM format because it supports structs, classes and other types that VCD cannot. In addition it's faster than VCD and takes a lot less disk space...

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sumeet Shresth
    Sumeet Shresth over 12 years ago

    Hi Stephen,

     Thanks for the reply.

     I strictly need it to be in VCD format as I am passing this file to analog team so that they can use is to see if there is any problem in the signal change and in the signal itself. Also we use it in the tester to test the chip.

     If there is any way around to probe the struct in VCD? Is is possible to have an externally defined wire and assign the struct value to the wire?

     Regards,

    Sumeet Shrestha  

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 12 years ago
    Yes, I expect that assigning the important struct members to wires, then probing those wires would work.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sumeet Shresth
    Sumeet Shresth over 12 years ago
    Thanks, I will try that.... will let you know once I am done by tomorrow . Thanks a lot. Regards, Sumeet Shrestha
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sumeet Shresth
    Sumeet Shresth over 12 years ago

    Hi Stephen,

     

    Assiging it to the wire, worked.

     

    Thanks!

    Sumeet Shrestha 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • rkaur9
    rkaur9 over 3 years ago in reply to StephenH

    Hi Stephen,

     i tried above command but it gives error " my_dir not found"

     sim: *E,TCLERR: can't read "my_dir": no such variable.
    xcelium> xmsim: *E,TCLERR: can't read "my_signals": no such variable.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information