• 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. Example Ocean measurement file in ADEXL

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 15395
  • 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

Example Ocean measurement file in ADEXL

BradW
BradW over 11 years ago

I'm trying to create an ADEXL measurement using an Ocean script and I'm not having a lot of luck.  I've been trying to find a simple example but I've yet to see one in the manual or online.  

Right now I'm just trying to get something very simple to work.  For example, I have a regular measure expression 

if(((VAR("trace0") == 0) && (VAR("trace1") == 0)) 4 0)

which works just fine.  If I take this code and plug it into a file and then tell it to use this file as an Ocean script I get an "eval err".  Is there some special format I need to use within the ocean script to get it to work with ADEXL?

 I'm presently using IC6.1.5-64b.500.132

 

Thanks



  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    The normal method would be for the first line of your OCEAN script to "advertize" the names of the outputs that it is going to produce using:

    axlAddOutputs('("myOut1" "myOut2"))

    Then you add the code to do all your computation, and when each output is ready, you can then do:

    axlOutputResult(if(((VAR("trace0") == 0) && (VAR("trace1") == 0)) 4 0) "myOut1")

    It is also possible to call axlOutputResult without a name and then that's the result of the script - useful if your script is only going to return one thing.

    Hopefully that helps!

    Regards,

    Andrew.

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

    Thanks Andrew,  

     That got me going but I have a couple follow on questions

     

    1.  Is there any way to use intermediate values calculated in other ADEXL measures inside the script?  It seems I have to redo all the calcs if I want their results available. 
    2. When I include the script location in ADEXL it copies the script to another path and then updates the path.  Is there any way to make it keep the original reference?  Took me a while to figure out why my changes weren't being evaluated.
    3. More of a comment than question, but if you put a name in the Output in ADEXL where you are evaluating the script then that value can't be used for an actual variable name.  When would you ever want a name for the step that evaluates the script?  Seems like it shouldn't be possible.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • aplumb
    aplumb over 11 years ago
    The approach I use to keep the code elsewhere, i.e. in a CVS/Git/SVN revision controlled hierarchy, is to use a SKILL load() operation to pull it into the Ocean script output wrapper file. Since pre-declaring axlAddOutputs() isn't necessary any more, it's possible to dynamically generate axlOutputResult() outputs algorithmically. The main limitation you'll run into however, is that any axlOutputResult() statements *not* found in the Ocean script wrapper won't show up in your Outputs Setup as dependent/grayed-out outputs. They'll only appear at simulation-evaluation time. Hope this helps! Andrew.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    To answer Brad's questions:

    1. You should be able to use calcVal("outputName") to reference an output computed previously outside the OCEAN script. I've not checked - but I believe this works (I think I've tried it before)
    2. You can control this with the following cdsenv:
      adexl.gui copyMeasurementScripts boolean nil
      or from SKILL: envSetVal("adexl.gui" "copyMeasurementScripts" 'boolean nil)
      The default is t, but with nil it leaves them at the original location
    3. If you use axlOutputResult(value) - i.e. with no second argument, it outputs it to the row of the script - so naming it would make sense then. This is useful for when you only have one output from your measurement script.

    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