• 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. Can I pass value between runs in Transient Noise simulation...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 10064
  • 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

Can I pass value between runs in Transient Noise simulation?

delgsy
delgsy over 3 years ago

I am doing transient noise simulation and would like to pass some values from the previous run to the next within one test.
Basically, I need something like calcVal but for transient noise run.
I am also open to any work around.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    Presumably you mean with the "multiple runs" capability? If so, this is not possible. It sounds a rather strange requirement - what are you trying to actually do?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • delgsy
    delgsy over 3 years ago in reply to Andrew Beckett

    Yes, multiple runs, like in this picture.


    I need to simulate noise of a comparator by injecting stair case signal at one input and fix voltage at the other.
    For each step value, I need to read if the output is 1 or 0.
    After running this transient noise multiple times, let's say 1000 runs, I will get how many 1s and 0s I got out of 1000runs.
    At the end, I am expecting an s-curve with y-axis as probablility of 1 and x-axis as the step value.
    I tried to avoid post-processing, so I thought if I can pass values between runs, I can somehow count this 1s for each run.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to delgsy

    It doesn't seem particularly onerous to do this as a post-processing step, and in fact doing that would allow you to do the sweep of the seed (which is all the "multiple runs" does) in ADE instead which would allow the simulations to run in parallel. If you'd set up a dependency between them it would be more complex and limit you to run them sequentially.

    Anyway, it can't really be done right now - I guess you could potentially have a Verilog-A model which read from a file at the beginning and wrote at the end of the transient analysis - but I think it's going to be tricky to get that working properly. Far more complex than just doing this with post-processing (which should be possible in ADE).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • delgsy
    delgsy over 3 years ago in reply to Andrew Beckett
    Andrew Beckett said:
    in fact doing that would allow you to do the sweep of the seed (which is all the "multiple runs" does) in ADE instead which would allow the simulations to run in parallel.

    How can I sweep the seed?
    I have just checked it that I cannot put a variable in the seed.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to delgsy

    Yes, set the Noise Seed to VAR("iter") and then a variable called iter will get created automatically. You have to use the VAR() syntax - there are some fields that do directly allow a variable to be entered, but the standard syntax is to use VAR("varName").

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to Andrew Beckett

    Dear delgsy,

    delgsy said:
    How can I sweep the seed?
    I have just checked it that I cannot put a variable in the seed.

    First, in direct answer to your last question that Andrew answered, Andrew is absolutely correct in that the seed can be a assigned a sweep variable using the syntax VAR("design_variable_for_seed"). I have swept transient noise simulations through seed values using this exact syntax and it works as you desire.

    delgsy said:
    I need to simulate noise of a comparator by injecting stair case signal at one input and fix voltage at the other.
    For each step value, I need to read if the output is 1 or 0.
    After running this transient noise multiple times, let's say 1000 runs, I will get how many 1s and 0s I got out of 1000runs.
    At the end, I am expecting an s-curve with y-axis as probablility of 1 and x-axis as the step value.
    I tried to avoid post-processing, so I thought if I can pass values between runs, I can somehow count this 1s for each run.

    I think your intent is to characterize the noise margin of the comparator under study - i.e - the degree to which it can resolve the difference between the reference voltage on one of its terminals (in your words "the fix voltage at the other terminal" and the applied voltage on its other terminal (in your words "the stair case signal").

    I have two suggestions if I may...

    I think the criteria that the comparator output be a logic "1" or a logic "0" at the d of each transient noise simulation may not provide an accurate assessment of the comparator noise margin.

    Why do I make that statement?

    1. Any real comparator will have a finite gain that will vary with a number of environmental factors (supply voltage, temperature), silicon process, overdrive, and the slope of the input as it crosses the reference voltage at its opposite input. As a result, its propagation delay time will show significant variation as the input signal approaches the reference voltage applied to its other terminal. The propagation delay time may, in fact, exceed the simulation time you choose. In this case, the output signal may not reach its final logic state at the end of your simulation time or may exhibit unstable behavior that will not settle by the end of the simulation. This form of metastable behavior is probably one you are familiar. Hence, collating the number of times the comparator output is classified as a logic "1" or logic "0" at the end of each simulation will not provide a true measure of the noise margin. This same effect occurs when characterizing the set-up and hold-times of a logic gate or flip-flop. An example from a reference I include is shown Figure 1.

    2... and what do I suggest as an alternative criteria?

    a. I might suggest that you alter your methodology to measure the propagation delay time for each simulation.

    b. In lieu of using a stair case function, use a linear ramp whose slope you vary for each set of simulations (include both positive and negative slopes). The use of a staircase function does not show the variation in comparator response with its slope about the reference voltage - which in my experience can be significant.

    As such, you will collect a propagation delay for each transient noise simulation. at input voltages far from the reference, the propagation delay will be relatively constant. Normalize all propagation delay times to this value. The noise margin can then be defined as the range of input voltages whose propagation delay times are no more than, say, 1% or 10% the minimum propagation delay time. There will be a noise margin for each set of transient noise simulations at a specific input slope.

    Please excuse all my words delgsy! However, I did want to alert you to some concerns I have in the interest of saving you time in the long run!

    Shawn

    Figure 1

    definition_setup_hold_times_markovic_2001_sml_083019.pdf

    Please allow me to comment on your proposed methodology in the interest of helping you avoid some unexpected results if I may. Feel free to ignore my comments if you wish!

    I think your intent is to characterize the noise margin of the comparator under study - i.e - the degree to which it can resolve the difference between the reference voltage on one of its terminals (in your words "the fix voltage at the other terminal" and the applied voltage on its other terminal (in your words "the stair case signal").

    I have two suggestions if I may...

    I think the criteria that the comparator output be a logic "1" or a logic "0" at the d of each transient noise simulation may not provide an accurate assessment of the comparator noise margin.

    Why do I make that statement and what do I suggest as an alternative criteria?

    1. Any real comparator will have a finite gain that will vary with a number of environmental factors (supply voltage, temperature), silicon process, overdrive, and the slope of the input as it crosses the reference voltage at its opposite input. As a result, its propagation delay time will show significant variation as the input signal approaches the reference voltage applied to its other terminal. The propagation delay time may, in fact, exceed the simulation time you choose. In this case, the output signal may not reach its final logic state at the end of your simulation time or may exhibit unstable behavior that will not settle by the end of the simulation. This form of metastable behavior is probably one you are familiar. Hence, collating the number of times the comparator output is classified as a logic "1" or logic "0" at the end of each simulation will not provide a true measure of the noise margin. This same effect occurs when characterizing the set-up and hold-times of a logic gate or flip-flop. An example from an example analysis I performed of the set-up and hold-times of a DFF is shown in Figure 1.

    • 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