• 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. Adexl - dynamically stop transient run on event trigger

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 125
  • Views 4144
  • 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

Adexl - dynamically stop transient run on event trigger

firebolt
firebolt over 2 years ago

I tried to use MDL control as mentioned in support link here. It works fine for event tigger but not for additonal 10us delay. Please help here.

tran_autostop.mdl file contents:

alias measurement tran_autostop
{
export real rise2
run tran
rise1=risetime(sig=V(clk_en), initval=0, inittype='y, finalval=1.8, finaltype='y, theta1=10, theta2=90)
rise2=rise1+10E-6
}
run tran_autostop

Trasient Options > Misc

Test > right click options > MDL Control

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

    You're lucky that I responded to this given that the MDL script is in Comic Sans. That's a cardinal sin (I probably should state that in the forum guidelines!). Just kidding...

    If you read the documentation (Spectre Circuit Simulator Measurement Description Language Reference), in the section on autostop, it says:

    Only functions that determine specific events, such as delay and event measurements, can cause an automatic stop.

    Well, your rise2=rise1+10e-6 is not going to create an event. It's just an addition. Even if it did create an event, it's adding 10u to the rise time, not the time at which the rise time was measured. You also didn't declare rise1 in your MDL code either. I think you want something like this:

    alias measurement tran_autostop
     {
        export real rise1
        real tcross
        real clkDel
    
        run tran
        rise1=risetime(sig=V(clk_en), initval=0, inittype='y, finalval=1.8, finaltype='y, theta1=10, theta2=90)
        // find the time at which the risetime was measured - 90% of the finalval
        tcross=cross(sig=V(clk_en), dir='rise, thresh=0.9*1.8)
        // measure something 10us later
        clkDel=V(clk_en)@(tcross+10u)
      }
    
    run tran_autostop

    This will run for 10us beyond the point at which the rise time was measured (I tested it). The @ is an event operator, and is measuring the clk_en signal 10u after the time of the crossing.

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • firebolt
    firebolt over 2 years ago in reply to Andrew Beckett

    Thanks Andrew. It's working. My first mistake was adding 10u to risetime to stop simualtion. That's not correct. tcross is correct one. Operator @ really helped me. Sorry about font, I will stick to default one.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • firebolt
    firebolt over 2 years ago in reply to Andrew Beckett

    Thanks Andrew. It's working. My first mistake was adding 10u to risetime to stop simualtion. That's not correct. tcross is correct one. Operator @ really helped me. Sorry about font, I will stick to default one.

    • 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