• 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. [Spectre] multiple dynamic parameters ?

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 124
  • Views 19399
  • 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

[Spectre] multiple dynamic parameters ?

skylink
skylink over 5 years ago

Hi Andrew,

We are running under IC6.1.7-64b.500b.14, ADE-XL.
I have a very accurate transient simulation to perform (with less than 0.1ps accuracy) but I am drowned into simulation noise, even with errpreset=conservative. Unfortunately due to high time constants the circuit I am simulating is quite long to stabilize to its steady-state and it would be cumbersome to run a long simulation with ultra-accurate settings; so I would need to (FOR INSTANCE):
- firstly run a pre-transient phase with relaxed settings, such as for instance errpreset=liberal + maxstep=20ns, during let's say 500ns
- after 500ns dynamically change errpreset to conservative AND maxstep=0.1ps for let's say 100ns.

My problem is I do not know how to change multiple dynamaic parameters errpreset+maxstep (weirdly if I remember well I could do that in the past, but not anymore with this Cadence version...), so I have to choose either errpreset or maxstep, but not both at the same time; unfortunally it is not accurate enough for me.

Andrew proposed this workaournd in the Cadence forum here:
community.cadence.com/.../changing-a-group-of-parameters-using-dynamic-parameter-option-available-in-tran
...But, it does not work for me.
Here is what I do (following what Andrew suggests):
- create a .scs file with the exact following syntax:
myset paramset {
time errpreset maxstep
0 liberal 20e-9
500n conservative 0.1e-12
}

- import it in Model Library Setup


- in the Options button on the tran form, >Misc tab. >additionalParams field > paramset=myset

...but I get the following error:
Error found by spectre during hierarchy flattening.
ERROR (SPECTRE-16124): `myset' parameter set was not defined.

Could you please show me the way to change multiple dynamic parameters in my simulation?

Thanks a lot in advance for your help.

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

    You're a little unlucky - one ISR later (IC6.1.7 ISR15) and the UI supports paramset directly for the dynamic parameters on the transient form. So that's the simplest solution...

    However, what you've done ought to have worked. Check the spectre log file and make sure it's actually read your paramset.scs file. Since you said you're using ADE XL, but the screenshot shows ADE L - is it that your test is not set up correctly? Or is it that you have corner files defined and so this model file in the test setup is not being read? It should be obvious from the spectre log - it lists all the files read at the top of the spectre log file.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    You're a little unlucky - one ISR later (IC6.1.7 ISR15) and the UI supports paramset directly for the dynamic parameters on the transient form. So that's the simplest solution...

    However, what you've done ought to have worked. Check the spectre log file and make sure it's actually read your paramset.scs file. Since you said you're using ADE XL, but the screenshot shows ADE L - is it that your test is not set up correctly? Or is it that you have corner files defined and so this model file in the test setup is not being read? It should be obvious from the spectre log - it lists all the files read at the top of the spectre log file.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • skylink
    skylink over 5 years ago in reply to Andrew Beckett

    It is ADE-XL, but the screenshot you see was just a satellite ADE-L window of ADE-XL (one ADE-XL test window).

    A workmate has just done the following successful test:
    - he has named his .scs file myset.scs instead of paramset.scs ; don't know if it really changes something
    - instead of importing the path in Model Library form, he has added it in "Definition Files" list.
    - his EXACT myset.scs syntax is
    myset paramset {
    time [\tab] errpreset [\tab] maxstep
    0 [\tab] liberal [\tab] 1n
    900p [\tab] conservative [\tab] 10p
    }

    I haven't tried it yet, and do not know exactly what has exactly made the stuff work.

    Best regards.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skylink
    skylink over 5 years ago in reply to skylink

    and I indeed do my simulation in a corner (specified in ADE-XL).

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to skylink

    The filename or the tabs don't matter - it's almost certainly the fact that you have corners setup and these are then overriding the files specified in the model library setup in the test. The definition files entries are still used though. So you either can add the file via the corners in ADE XL or as a definition file. Or better still use a slightly newer subversion of IC617 or even iC618 and then you won't need to do this at all.

    BTW, in general adjusting maxstep to control accuracy is a very poor way of controlling accuracy (it's usually quite expensive and there are nearly always better ways). So I would suggest contacting customer support so that we can investigate in more detail your specific needs and come up with a better solution (I mainly tend to use maxstep to force enough points when trying to get an oscilator to start and it's not normally the best approach for other situations).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago in reply to Andrew Beckett

    Dear skylink,

    I was going to post a comment when I just saw Andrew's comment - which is exactly along the lines of what I was planning to add!

    skylink said:

    I have a very accurate transient simulation to perform (with less than 0.1ps accuracy) but I am drowned into simulation noise, even with errpreset=conservative. Unfortunately due to high time constants the circuit I am simulating is quite long to stabilize to its steady-state and it would be cumbersome to run a long simulation with ultra-accurate settings; so I would need to (FOR INSTANCE):....My problem is I do not know how to change multiple dynamaic parameters

    I am not sure exactly what type of circuit you are simulating  where you are posing to the use of a dynamic time step. However, you are describing a system that is characterized by what is called a "stiff" set of differential equations. In essence, the dynamic range of its time constants is quite large. Each time you change the maximum integration timestep or the accuracy settings of your simulation at some time in the simulation, it will behave as a unit step in the solution. Hence, you will introduce a new time constant characteristic of your largest time constant. It may be a small step in magnitude, but will none the less, impact the time to a steady-state solution.

    I have a lot of experience with simulations of stiff differential equations, and do not personally find adjusting the accuracy parameters of the simulation as the simulation progresses an efficient means of approaching the steady-state solution faster. With some details about the type of circuit you are tackling, skylink, perhaps I , or the many experts who monitor the forum, might provide some alternatives. Of course, if you would prefer to contact customer support, as Andrew also suggested, that is fine too.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skylink
    skylink over 5 years ago in reply to ShawnLogan

    Hi ShawnLogan,

    Thanks a lot for these clear explanations!

    I am simulating a clocking circuit containing huge time constants (AC couplings) that takes ages to stabilize; and I need a very accurate stabilization as I am measuring delays of a couple of picoseconds; furthermore there is a lot of calculation noise before a long simulation time.

    Unknown said:
    I have a lot of experience with simulations of stiff differential equations, and do not personally find adjusting the accuracy parameters of the simulation as the simulation progresses an efficient means of approaching the steady-state solution faster. With some details about the type of circuit you are tackling, skylink, perhaps I , or the many experts who monitor the forum, might provide some alternatives. Of course, if you would prefer to contact customer support, as Andrew also suggested, that is fine too.

    You are right, I have finally decided to keep the same conservative setting as I saw the "step" you mention, and this does not help at all.

    Thanks again,

    bye

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago in reply to skylink

    Dear skylink,

    Thank you for your additional information on your circuit - and thank you for letting me know you saw the same "step" behavior!

    skylink said:
    I am simulating a clocking circuit containing huge time constants (AC couplings) that takes ages to stabilize; and I need a very accurate stabilization as I am measuring delays of a couple of picoseconds; furthermore there is a lot of calculation noise before a long simulation time.

    You may already be doing this, or perhaps have tried it already, but have you tried using an initial condition (ic command) to assign the initial voltage(s) on the node of the terminal(s) of the AC  coupling capacitor(s) whose voltage must settle to a value determined by the input clock? In essence, the thought is that since the steady-state voltage on the "output" terminal of the AC coupling capacitor will be determined by the number and frequency of the "input" clock signal transitions on its opposite terminal, it will take some time for its voltage to arrive at a value close to its steady-state DC value. By imposing an initial condition on this node voltage (not a nodeset), this may reduce the settling time to its steady-state value.

    Good luck skylink, you have a challenging circuit to simulate!

    Shawn

    • 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