• 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 SKILL
  3. How to determine if an instance is a frozen p-cell?

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 9895
  • 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

How to determine if an instance is a frozen p-cell?

Byron Caloz
Byron Caloz over 3 years ago

I would am looking into a skill script to freeze parameterized cells (p-cells) and another to unfreeze them.

Freezing should be relatively easy...just find a instance of a p-cell, determine a name for it, then run leFreezeInst.  (determining a unique name may be difficult, but it needs to be the same name applied with each freeze-unfreeze cycle if no parameters were changed).

However, unfreezing without warning messages requires a way to determine if an instance is a frozen pcell.

One could run leUnfreezeInst on any non-pcell and disregard WARNING LE-105622 Unable to find enough information to unfreeze this instance.

Clearly leUnfreezeInst knows what information is required to unfreeze.

Attempted to determine what leUnfreezeInst is using:  inst->??  but I didn't see anything useful.  Am I missing something?

Did see a script from Cadence to unfreeze instances, but it doesn't look as if it checks for anything: just runs leUnfreezeInst.

Looking for skill to find the information that is used to unfreeze an instance!

  • Cancel
Parents
  • AurelBuche
    AurelBuche over 3 years ago

    Hi,

    Not sure if this will help you but the following Support article has a code snippet using freeze / unfreeze functions

    SKILL script to freeze pcell instance to stop pcell evaluation and unfreeze it later

    Even though this is not the best way to do it, you could ignore the warnings with a brutal call to muffleWarnings

    (Which is available since 6.1.8 if I remember correctly, otherwise you could write a similar macro which redirects woport to /dev/null and catches buffered warnings using getWarn)

    Cheers

    Aurélien

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

    The information is stored in a hidden (private) property which I don't want to state here as it might well change in future (that's why it's hidden).

    It would make sense to contact customer support to ask for a function, something like: leIsInstFrozen(instId) as an enhancement.

    So for now, the approach suggested by Aurélien is likely to be the cleanest:

    muffleWarnings(leUnfreezeInst(instId))

    which will return t if successful, and nil if it wasn't "thawed". 

    Andrew

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

    The information is stored in a hidden (private) property which I don't want to state here as it might well change in future (that's why it's hidden).

    It would make sense to contact customer support to ask for a function, something like: leIsInstFrozen(instId) as an enhancement.

    So for now, the approach suggested by Aurélien is likely to be the cleanest:

    muffleWarnings(leUnfreezeInst(instId))

    which will return t if successful, and nil if it wasn't "thawed". 

    Andrew

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

    Thank you!  I was unaware of muffleWarnings.  That may come in handy for other situations as well.  

    • 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