• 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 15194
  • 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
Parents
  • 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
Reply
  • 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
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