• 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 SKILL
  3. Ocean Script Error

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 15426
  • 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

Ocean Script Error

Adam86
Adam86 over 13 years ago

 When I try loading my ocean script below:

ocnWaveformTool( 'wavescan )
simulator( 'spectre )
design(     "/home/aalsaafi/simulation/working17-7/spectre/schematic/netlist/netlist")
resultsDir( "/home/aalsaafi/simulation/working17-7/spectre/schematic" )
path( "/CMC/kits/IBM_PDK/cmrf8sf/relDM/Spectre/models" )
modelFile(
    '("/CMC/kits/IBM_PDK/cmrf8sf/V1.6.2.4DM/Spectre/models/allModels.scs" "")
)
analysis('tran ?stop "10u"  ?errpreset "moderate"  )
option(    'dochecklimit  "no"
)
saveOption( 'useprobes "yes" )
saveOption( 'currents "selected" )
temp( 27 )
out=outfile( "/home/aalsaafi/simulation/working17-7/myResults.txt" "w")
run()
results()
selectResult( 'tran )
outputs()
fprintf(out "%s\t%5.2f\t%10.2f\n" VT("(/Vout_tran")))
close(out)

 simulation goes fine till it reaches the following error:

*Error* fprint/sprint: format spec. incompatabile with data-nil

<<<Stack Trace>>>

fprintf(out "%s\t%5.2f\t%10.2f\n" VT("(/Vout_tran")))

 Has this error came across anyone?

 Thanks

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Several things wrong here:

    1. Almost certainly there's no node in the circuit called "(/Vout_tran" - you probably meant:
      VT("/Vout_tran")
      So it will be returning nil as the first argument after the format string to fprintf
    2. The fprintf is expecting three slots - a string, and two floating point numbers. You're only passing one VT() call, which will produce a waveform. So that's almost certainly not what you want.
    3. There are too many close parentheses on the fprintf line
    4. Maybe you just want to use ocnPrint(?output out VT("/Vout_tran"))

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Adam86
    Adam86 over 13 years ago

    Thanks Andrew

    Now I get this error

    *Error* close: argument #1 should be an I/O port (type template ="p")-nil

    <<<Stack Trace >>>

    close(out)

     The purpose of writng that script is to be able to get the data into matlab

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

    I would expect that to happen if you don't have a node called Vout_tran - because VT("/Vout_tran") will produce nil, and then ocnPrint(?output .. nil) will write nothing.

    So you should check what outputs() gives - does it list the node you're expecting? Get the script to do:

    pprint(outputs())
    newline()

    Note there's also a spectre toolbox for Matlab available in the MMSIM hierarchy - this means you can directly read the simulation results using the cds_srr() function in Matlab.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Adam86
    Adam86 over 13 years ago

     Sorry for botheing..

     I get this error now:

    *Error* close: argument #1 should be an I/O port (type template ="p")-nil 

    <<<Stack Trace>>>

     I'm using Cadence 5.1.41

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

    Given that I can't see the current state of your script, it's rather hard to debug! I've no idea what you've actually changed it to. All that the error tells me is that you're passing nil to the close() function, and that's wrong - the variable shouldn't be nil..

    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