• 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. Custom IC Design
  3. Reading signals directly from transient analysis using ...

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 126
  • Views 6766
  • 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

Reading signals directly from transient analysis using "psf" command with data in SST2 format

vivkr
vivkr over 12 years ago

 Hi,

I usually write out signals out of the transient analysis data using the "psf" command built into spectre. This is faster than using ocnPrint and simpler. 

I suddenly see the following error now:

"./psf/tran.tran.trn":1,2: Error 35, syntax error found, header table missing

Is anyone familiar with this? I have been using MMSIM 10.11.235 which works well for me for a while and have been able to write out waves using this command so far. The Spectre command line in my log file looks like this:

/cte/tools/cds/MMSIM/10.11.235/tools.lnx86/spectre/bin/64bit/spectre  \
        input.scs +escchars +log ../psf/spectre.out -format sst2 -raw  \
        ../psf ++aps +mt=8 +lqtimeout 900 -maxw 5 -maxn 5

 I don't see anything different from the usual scenario, although I am not sure whether I was using the +sst2 option in the past or +psfbin. I suspect that "psf" does not work in this case. 

 Would anyone know what utility I would need to use to get hold of the data now?

Thanks,

Vivek

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Vivek,

    The "psf" command only supports PSF format (not SST2).

    Why are you writing it out in the first place - i.e. where are you taking the data to (I want to clarify in case it affects my answer).

    Regards,

    Andrew.

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

     Hi Andrew,

    Thanks for responding. I typically write out the signals to a text file in order to do postprocessing on these outside the Cadence design environment. I've got various scripts that run checks on the data generated this way from multiple runs. 

    I usually have the +psfbin option enabled but I realized that it was missing in one of my longer runs and so I have the data all in SST2 format. As you pointed out, "psf" does not support this and so I am unable to read the waves.

    I do recall vaguely that there was another utility which could be used to read the data in this case instead of "psf". I just don't recall what it was called, having (almost) never used it.

    Regards,

    Vivek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Vivek,

    You could read them into Matlab using the spectre toolbox for Matlab. There is no command line utility for reading SST2 files as far as I know (you can read them ViVA or simvision and export them to CSV though).

    Regards,

    Andrew.

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

     Just a note Andrew and Vivek,

     

    I also used the command line psf to read psf data. It is incredibly fast however it does not work, as you stated correctly Andrew, for SST2 data. I looked into the issue and found I could use simvisdbutil. This is also very fast - faster than an ocean script using fprint() and faster than ocnPrint(). I benchmarked the three and found it significantly faster. The syntax to create a file called "clkbp_clkbm_200k.csv" sampled at 1 ps from 0 to 1 ns from database tran.tran.trn follows. I did need to update the version as the optional "period" - which specifies the timestep - was not available in the original version I used. I am sure it is updated now,

    simvisdbutil tran.tran.trn -overwrite -output ./clkbp_clkbm_200k.csv -csv -timeunits s -period 1ps -range 0:1ns

     

    I just checked and this tool is still available it appears. I hope this helps Vivek!

     

    Shawn

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

    Shawn,

    Thanks a lot! This is exactly what I was looking for.

    Regards,

    Vivek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

     Vivek,

    Apologies - I forgot about this utility, partly because I was focused on giving you something from the IC stream (simvisdbutil comes from the INCISIV stream).

    Regards,

    Andrew.

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

    > Apologies - I forgot...

    Hi Andrew,

     Although I am not Vivek, I must comment that you should not even think about an apology! You have helped countless number of people - and no one can have all the facts at their beckon call all the time. It is amazing to me (anyway) how much you do have at your fingertips! The fact that others can "chip in" occasionally is one of the advantages I find of the forum medium.

    Thank you for all your help and guidance!

    Shawn

     

    PS - I hope this is not beyond the scope of this forum! If it is, my apologies this time!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ddave
    ddave over 11 years ago

     Hi Andrew,

    I really need your help. I saw this forum and the discussion about simvisdbutil. I can easily readt my spectre sst2 simulation result and export it to Matlab if my signals are net voltages. However for terminal currents, I have been unable to get it to work.

    Take a look at the commandline below:

    simvisdbutil -csv -timeunits s -overwrite -output /home/a0282908/Junk/simulation.csv -signal simMF_BG_SUP.V12.p_$flow /sim/BQ50001_OA_DS/a0282908/Latest/sim/simMF_BG_SUP/ams/config_ams/psf

    I get this message: flow: Undefined variable.

     I then tried this

    simvisdbutil -csv -timeunits s -overwrite -output /home/a0282908/Junk/simulation.csv -signal simMF_BG_SUP.V12.p_\$flow /sim/BQ50001_OA_DS/a0282908/Latest/sim/simMF_BG_SUP/ams/config_ams/psf

    and got this

    simvisdbutil: *F,BDSIGNM: The signal name on the following line was not found:
            "simMF_BG_SUP.V12.p_".

    I then tried this

     simvisdbutil -csv -timeunits s -overwrite -output /home/a0282908/Junk/simulation.csv -signal simMF_BG_SUP.V12.p /sim/BQ50001_OA_DS/a0282908/Latest/sim/simMF_BG_SUP/ams/config_ams/psf

     and got this again

    simvisdbutil: *F,BDSIGNM: The signal name on the following line was not found:
            "simMF_BG_SUP.V12.p

     

     

    My question is this: what is the correct syntax using simvisdbutil to extract device terminal currents from an sst2 database and export it to a .csv file for futher post processing?

     

    Also another question is: are there any other shell prompt  commandline functions to export signals from cadence spectre to a .csv file or.matlab file. I know the VIVA gui can export signals to .csv, but I want to be able to script that process for post processing automation.

     

    Your response to this incredibly burning question would be highly appreciated.

    Regards

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    I found the easiest way was to surround the signal names with single quotes to prevent the shell from evaluating the "$" characters as variables:

     simvisdbutil -csv -timeunits s -overwrite -output play.csv -signal 'PLL_160MHZ_sim.I0.sink_$flow' -signal 'PLL_160MHZ_sim.I3.VCO_CLK' -signal 'PLL_160MHZ_sim.I7.sink_$flow' simulation/PLL_160MHZ_sim/ams/config/psf

    No need to escape anything that way.

    Sorry it took so long to answer (this dropped off my list) - if it was "incredibly burning" the right thing to do would have been to contact customer support at http://support.cadence.com (so hopefully you did that).

    Kind Regards,

    Andrew.

    • 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