• 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. Question on OCEAN standalone evaluation

Stats

  • Locked Locked
  • Replies 15
  • Subscribers 145
  • Views 20711
  • 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

Question on OCEAN standalone evaluation

trdastidar
trdastidar over 13 years ago

Hi,

Got a question on OCEAN scripts (same applies to artil as well)

I have an ADE L state, from which I save the OCEAN script, and then run it. It runs fine.

Suppose, there is a calculator function in this OCEAN script, which looks like this:

gain_1 = value(dB20(mag(v("/outp" ?result "ac-ac"))) 1)

plot( gain_1 ?expr '( "gain_1" ) )

Now, suppose I want to run the calculator function again (with possibly some modifications). Since the simulation is already run, I remove the entire top part of the OCEAN script, and replace it with a call to openResults, like below:

openResults( "results.psf" ) ; Replace "results.psf" with the actual path of the PSF directory

I run the OCEAN script, but it fails, with the following error:

> WARNING (OCN-6054): The output '/outp' you selected does not exist. Type outputs() to see the list

Now comes the funny part. I change the calculator expression to the following:

gain_1 = value(dB20(mag(v("outp" ?result "ac-ac"))) 1)

That is, I removed the "/" character in the signal name. The script now runs fine!

Could anyone tell me why this happens? I know the workaround for it, but would like to understand why that workaround is necessary at all.

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    When you refer to a signal name in one of the access functions (e.g. v(), i(), etc), then if the name starts with a "/" it is a name using the schematic namespace. If it doesn't begin with a slash, it is in the netlist namespace. In the schematic namespace, the names have / as the hierarchy delimiter, and will ultimately need to be mapped to whatever name was actually used in the netlist and then saved into the result database. In order to do this mapping, the ADE netlisters save some additional information in the map and amap directories in the netlist directory. This information is then consulted to do the same mapping when somebody wants to access a result signal using the output database. However, for that to work, the results access has to know where the map directories are. This can be done if the simulation is run from OCEAN or ADE, by virtue of a line in the runObjFile which tells it where the "netlistDir" is. In the absence of this, I think it assumes it is in ../netlist. However, if this mapping data is missing, it cannot do the mapping and hence cannot see signals using the source database namespace.

    If you omit the slash, it's always using the netlist name and so that will work regardless of whether the mapping directories are present. However, you do need to then know how any name was mapped - this mapping can happen due to illegal characters, spectre keywords and so on that have been used.

    In your specific example, outp on the schematic ended up as outp in the netlist, so it was relatively straightforward to resolve.

    Regards,

    Andrew. 

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

    When you refer to a signal name in one of the access functions (e.g. v(), i(), etc), then if the name starts with a "/" it is a name using the schematic namespace. If it doesn't begin with a slash, it is in the netlist namespace. In the schematic namespace, the names have / as the hierarchy delimiter, and will ultimately need to be mapped to whatever name was actually used in the netlist and then saved into the result database. In order to do this mapping, the ADE netlisters save some additional information in the map and amap directories in the netlist directory. This information is then consulted to do the same mapping when somebody wants to access a result signal using the output database. However, for that to work, the results access has to know where the map directories are. This can be done if the simulation is run from OCEAN or ADE, by virtue of a line in the runObjFile which tells it where the "netlistDir" is. In the absence of this, I think it assumes it is in ../netlist. However, if this mapping data is missing, it cannot do the mapping and hence cannot see signals using the source database namespace.

    If you omit the slash, it's always using the netlist name and so that will work regardless of whether the mapping directories are present. However, you do need to then know how any name was mapped - this mapping can happen due to illegal characters, spectre keywords and so on that have been used.

    In your specific example, outp on the schematic ended up as outp in the netlist, so it was relatively straightforward to resolve.

    Regards,

    Andrew. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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