• 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. Virtuoso ADEGXL: SKILL function falltime(...)

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 15191
  • 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

Virtuoso ADEGXL: SKILL function falltime(...)

Eberhard2010
Eberhard2010 over 13 years ago

Hello Virtuoso SKILL Programmers,

I m using the ADEGXL for measuring delay, power, slewrate of some digital blocks like NAND2 NOR2 a.s.o.

As it is described in the Manual of the SKILL function fallTime, it can be applied e.g.:

wavelet=fallTime(v("/Y" ?result "tran-tran") 0.9 nil 0 nil 90 10 t "time")

=> srrWave:0x188ac0a0

 

For falltime 0.9V=VDD 0V=GND 10%-90% and multiple occurencies, i got this object.

I my transient simulation the Output Y of my circuit falls at multiple times, so the fallTime is unfortuenatly displayed as a waveform.

Now I want to know how a get the exact values out of this object "srrWave:0x188ac0a0". I mean, when the fall is detected, how often is a fall deteced, what is the outcome for each fall case seperately a.s.o.

 

Also the functionality "export results" excludes waveforms, so I have no chance to get this values out here.

Can I somehow modify the print-method for "export results" to get my desired values?

 

As this is a very common issue, I guess there's a very easy solution for it. But I don't get it yet. Maybe someone can help me out?

Kind Regards Eberhard2010

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    BTW, I think you probably want the 90 and 10 arguments the other way around (according to the documentation) - but anyway, that's not the point here.

    There's not really a way to make a waveform get flattened into the ADE XL output table. You can send the expression from the calculator to a table, and then export that.

    The other alternative is to write an OCEAN script measurement in ADE XL, and then ocnPrint the results into a file, maybe.

    Probably best to contact customer support, so it can be discussed with you in more detail, and then if needed an enhancement request can be filed.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Eberhard2010
    Eberhard2010 over 13 years ago
    Dear Andrew,

    1)
    thanks for your mail.
    2)
    I dont think 10%<->90% is exchanged as it's a product of the Analysis Calculator XL (should be skill syntax). However for RiseTime it's the other way round.
    GUI for FallTime:
    Initial Value:0.9V
    Final Value: 0V
    Percent High:90%
    Percent Low:10%
    => fallTime(v("/Y" ?result "tran-tran") 0.9 nil 0 nil 90 10 t "time" )

    3)
    The issue of these tables you mentioned is that they show the fallTime just for one sweep parameter. But I've multiples and also multiple corners. Manual export of the tables is also not nice due to much data.
    4)
    In the mean time, i found something like:

    wavelet2=fallTime(v("/Y" ?result "tran-tran") 0.9 nil 0 nil 90 10 t "cycle")
    wavelet3=value(value(wavelet2 'Cload 5e-16) 'slope_vec 0.02695948)
    print(value(wavelet3 'cycle 1))

    If I loop over the sweep variables, I should get all I need. I will write a skill procedure to dump the values in a file.

    5)
    ocnPrint!!! is really brilliant, I like it ;-) Thanks.
    ocnPrint("test.txt" wavelet2)

    6)
    As I'm phd student at a university we re not really able to access customer support. I was lucky to post something in Cadence Forum. Maybe you have a hint for me. You know a dedicated skill forum where I can ask these kind of question?

    7)
    I'm very interested in Cadence EDA/ OpenAccess/ ParameterVariation-Aware-Simulation. You know if there are any internships at Cadence ADE / Ocean development center?

    Thanks so much for your help. It 's very nice of you to take time and answer so "simplistic" questions to me :-)

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

    Hi Eberhard,

    2) Actually you have the initial and final values back to front, so that compensates for it. According to the docs, and the defaults in the UI, the order would normally be 10 and 90. Still, never mind, it works...

    3) In recent enough versions of IC615, the tables should handle parametric data, AFAIK.

    6) This is the right forum. However, remember that it's manned by volunteers (from Cadence and from the community) and so there's no guaranteed response - we just do this in our spare time.

    7) I'm not aware of anything right now, but maybe you could send a direct message to Patrick Haspel (you should be able to find him as a member on the community) - he's responsible for our European University Programme.

    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