• 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. How to trigger call-back procedure when changing cell-name...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 16390
  • 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 trigger call-back procedure when changing cell-name of existing instance?

Sheppy
Sheppy over 9 years ago

Hello,

I am developing a PDK containing various components (p-cells with call-back procedures). The designers using it at this moment, are performing the following steps to create large test-layouts, with lots and lots of nearly identical devices:

  1. Create a layout with many instances of a PMOS transistor, varying parameters like width, length, gate-drian space, gate-source space, etc.
  2. Copy this layout to a new cell
  3. Perform a search-and-replace and changing all cell-names from PMOS to NMOS

In an other PDK, this works, all parameters that need an update (like for instance a parameter called Device Info) are updated, but others, like width and length, remain as is. Thus creating a new layout with virtually no effort. So what clearly happens is that a cell-name change triggers the p-cell to update certain parameters.

When they try to do this with my p-cells, it doesn't work. All parameter names are identical (as is in the other PDK), but after the cell-name change the value of all parameters remain teh same. An example:

The parameter called DeviceInfo contains the following for the PMOS: Standard Low Voltage P-Channel MOS Device
After changing the cell-name, it should be updated to: Standard Low Voltage N-Channel MOS Device

However, this update does not happen.

Now is my question: how do I make my devices behave identical to the other PDK?

How do I trigger the call-back procedure to update, if necessary, the parameters of the p-cell?

With kind regards,

Sjoerd

  • Cancel
Parents
  • Sheppy
    Sheppy over 9 years ago

    Hi Andrew,

    Thank you for your reply.

    I understand your answer and this has always been how I have been doing schematics/layout and how I was taught to use Cadence when I started "a long time ago" at Philips Electronics (many years before it became NXP...).

    Having said that, I see the advantage of doing it "the wrong way". We're in the process of developing a new process node, and to characterize / evaluate a group of new devices, one large schematic/layout is generated manually, and then by select-all or search-replace devices are being swapped. This schematic/layout contains hundreds of devices. So my new question is:

    • Is it possible to set a trigger which calls a certain procedure once OK or APPLY has been clicked in the properties form?

    I know many triggers can be set within Cadence (i.e. upon opening a viewer), so is this possible? And as a more general question:

    • Is there a support document that lists all triggers that are available in Cadence (Virtuoso)?

    In stead of going this way, do you advice me to write custom code to automatically swap components? This would be easy to do, since a certain type of NMOS is always swapped with a similar type of PMOS: a PMOS_50 always replaces a NMOS_50, PMOS_85 replaces NMOS_85, and so on. In total there are 10 types, so the code is not difficult to write (might even be possible to use abConvertComponentParamsHier() to do the trick).

    Final question for this reply:

    • Is abInvokeCdfCallbacks/CCFinvokeCdfCallbacks the same as CCSinvokeCdfCallbacks (code I got years ago to fix an issue with instantiating p-cells from within an other p-cell)?

    Thanks in advance,


    With kind regards,

    Sjoerd

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Sheppy
    Sheppy over 9 years ago

    Hi Andrew,

    Thank you for your reply.

    I understand your answer and this has always been how I have been doing schematics/layout and how I was taught to use Cadence when I started "a long time ago" at Philips Electronics (many years before it became NXP...).

    Having said that, I see the advantage of doing it "the wrong way". We're in the process of developing a new process node, and to characterize / evaluate a group of new devices, one large schematic/layout is generated manually, and then by select-all or search-replace devices are being swapped. This schematic/layout contains hundreds of devices. So my new question is:

    • Is it possible to set a trigger which calls a certain procedure once OK or APPLY has been clicked in the properties form?

    I know many triggers can be set within Cadence (i.e. upon opening a viewer), so is this possible? And as a more general question:

    • Is there a support document that lists all triggers that are available in Cadence (Virtuoso)?

    In stead of going this way, do you advice me to write custom code to automatically swap components? This would be easy to do, since a certain type of NMOS is always swapped with a similar type of PMOS: a PMOS_50 always replaces a NMOS_50, PMOS_85 replaces NMOS_85, and so on. In total there are 10 types, so the code is not difficult to write (might even be possible to use abConvertComponentParamsHier() to do the trick).

    Final question for this reply:

    • Is abInvokeCdfCallbacks/CCFinvokeCdfCallbacks the same as CCSinvokeCdfCallbacks (code I got years ago to fix an issue with instantiating p-cells from within an other p-cell)?

    Thanks in advance,


    With kind regards,

    Sjoerd

    • 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