• 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. Can not update pcell masters

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 143
  • Views 14456
  • 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 not update pcell masters

Ilya Temnikov
Ilya Temnikov over 10 years ago

Hello

When I want to redraw all the masters of pcells I do something like this:

foreach(c dbGetOpenCellViews()

when(c->isParamCell

dbPurge(c)

)

)

And Virtuoso regenerates all the pcell masters

But I've got a library that contains python pcells. And this doesn't work here after pcell updates. I see that the supermaster is updated but the instance continues to behave like there were no any changes. The changes take effect after Virtuoso reloading only.

The question is how to force Virtuoso to redraw python pcell masters without reloading Virtuoso session? 

  • Cancel
  • Ilya Temnikov
    Ilya Temnikov over 10 years ago
    As I understand there are Python procedures loaded in the session somehow and they must be reloaded. But how to reload Python procedures in Cadence Virtuoso session? How Virtuoso does this initially? Just Tell me how the Python interpreter works in Cadence please
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago
    You might be better off asking Synopsys this. Cadence does not support non-SKILL pcells and we do not provide the software needed to enable Python pcells. Regards, Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ilya Temnikov
    Ilya Temnikov over 10 years ago
    Ok. But maybe there is a possibility to change an environment of current Virtuoso process? For example if I execute sh("export my=1") from CIW commant line then it starts a new process and of course if i try to execute getShellEnvVar("my") it returns "nil". But I want this to return "1". Is there any possibility to change the current Virtuoso environment?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ilya Temnikov
    Ilya Temnikov over 10 years ago
    Or maybe it is possible to force the initialization process when open a layout each time? I mean when contexts are loading, le.cxt and so on. Virtuoso does it once when open a layout first time and then skips this step when open next layouts. So how to force this initialization process?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    These last two posts to the thread are asking completely different questions to the original question. The sh("export my=1") doesn't work because the shell is a child process and setting its environment will not affect the environment of the parent process; that's how Unix works. You can instead use setShellEnvVar("my=1") to set it within the current process. I'm not sure how this will help you solve the original question though. As for context loading, all that does is incrementally load the state of the SKILL engine - and there is no means to re-load a context. Even if there was it wouldn't help you with your original question - that is asking how to get the Python code to get reloaded and that is under the control of the Python PCell interpreter (which is from Synopsys and I can't help you with that because I have no access to it).

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ilya Temnikov
    Ilya Temnikov over 10 years ago
    I'm just trying to find a solution to reload Python functions in Virtuoso environment. I've found that pcells get updated in the moment of first access to the cellview (when le.cxt and others loading). So it means that something runs in this part besides the contexts loading (I don't want to load the contexts of course) . So I want to try to reproduce this initialization to update the pcells. What is going on in this part excluding the contexts loading?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago
    This (as I keep saying) is under the control of the Python pcell OA plugin which is not a Cadence tool and so the precise mechanism for loading the source code is a function of how that plugin works. Since this plugin is from Synopsys, you would be better off asking them. I have no access to it (not the documentation or the software) so that makes it very hard to answer here. Regards, Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago
    Put another way, the PCell interpreter kicks in when the cellView is loaded into memory. SKILL pcells re-evaluate when the PCell is purged and reloaded so the fact that your non-SKILL pcells don't behave this way must be something to do with how the Python pcell plugin works. Maybe there is a way, but you'll need to ask the people who provide it. Regards, Andrew
    • 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