• 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. Global optimization over several corners - question

Stats

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

Global optimization over several corners - question

akeady
akeady over 6 years ago

Hi,

I'm using Global Optimization in ADE Assembler and would like to change what appears to be the default behaviour.

I have a number of corners - 3, in the present case.   For each corner, I have a single Figure Of Merit (FOM) calculated, which is to be minimised.

So, for each iteration I get 3 FOMs - as an example, I got 83.97, 83.88 and 84.68 from a recent run.

The optimization tool seems to work on the average of these numbers.   I would like, instead, to optimise away the highest number.

E.g. the settings ranked best from the run mentioned had FOMs of 81.96, 81.35, 87.   I'd prefer the case with FOMs 83.97, 83.88, 84.48 to be ranked higher.

I can't see an option to change the way this works.   I could do some things like generate a new FOM2 = (FOM - 80)*(FOM-80) and that would favour the one I want for this case at least, but is there a built-in way?

Thanks,

Aidan.

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

    Hi Aidan,

    The cost function is trying to minimise all of them with equal weighting, so that's probably going to have an effect along the lines of what you've observed.

    One possibility would be to add another measurement which has evalType of "corners" which is something like:

    peakToPeak(calcVal("FOM" "THETEST") ?overall t)

    and then specify that this should be < some acceptable limit (say <1 in or case). That would mean that another goal is to minimise the spread of across the corners (I suggested using a less than spec rather than minimise, because you may want it to work harder to minimise the FOM goal than just meet an acceptable spread).

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • akeady
    akeady over 6 years ago in reply to Andrew Beckett

    Actually, Andrew, from your example, I see what to do - I really want to minimise the highest FOM over corners.

    So, I'm trying ymax(calcVal("FOM") ?overall t) - lower FOMs are better in my world - I think this will do what I want.

    I didn't know the evalType corners!

    Thanks,

    Aidan.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • akeady
    akeady over 6 years ago in reply to Andrew Beckett

    Actually, Andrew, from your example, I see what to do - I really want to minimise the highest FOM over corners.

    So, I'm trying ymax(calcVal("FOM") ?overall t) - lower FOMs are better in my world - I think this will do what I want.

    I didn't know the evalType corners!

    Thanks,

    Aidan.

    • 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