CommunityForums PCell Designer Inheritance in the Pcell Designer

Stats

  • State Verified Answer
  • Locked Locked
  • Replies 7
  • Subscribers 6
  • Views 11414
  • 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

Inheritance in the Pcell Designer

TobiasMrks
TobiasMrks over 3 years ago

I have some trouble understanding the concepts of inheritance in the PCell Designer.

In my example, I have a base cell and a test cell. Now I want to inherit parameters from the base cell in all my other cells.

So what I do now in the test cell is  to set  in Device -> Edit device type -> Inherits to base

Now I have in the test cell in different cellviews (schematic, symbol, layout). Each a PCell. I want to inherit from one view but this does not seem to be possible. 
It seems that the schematic cellview always needs a schematic cellview to inherit from and so on.

Is it possible to let the cell test and its schematic, symbol and layout cellview inherit from the same cell with a single cellview?

Best regards

Tobias

  • Cancel
  • Andrew Beckett
    0 Andrew Beckett over 3 years ago

    Hi Tobias,

    I don't believe this is possible currently. I'll check, but perhaps you could outline what exactly you want to inherit from the base cell into multiple different view types? Just trying to understand what common information (methods etc) you might share across different view types.

    Regards,

    Andrew.

    • Cancel
    • Up 0 Down
    • Cancel
  • TobiasMrks
    0 TobiasMrks over 3 years ago in reply to Andrew Beckett

    Hi Andrew,

    My main use case would be sharing a common data structure or method for instance creation inside my layout and schematic Pcell, to ensure consistency.

    Additionally, it makes things easier if I have to change some parameter of instances inside my Pcell.

    I would only have to change one "file" rather than keeping two views consistent manually.

    Best regards

    Tobias

    • Cancel
    • Up 0 Down
    • Cancel
  • Andrew Beckett
    +1 Andrew Beckett over 3 years ago in reply to TobiasMrks

    Hi Tobias,

    There's a way of doing this, as it turns out. Normally when you specify where you inherit from on the Edit Device Type (Edit Class) form, you specify just the cell name. However, you can also specify the class name which would allow you to do exactly what you're wanting.

    So find out the class name from the parent pcell by using File->Export to File and saving the SKILL++ code. At the top of this file you'll see something like:

    (defclass pcdUser_NmosDemo24_topclass (pcdxPCell)
      ((libName @initform "NmosDemo24")
        (cellName @initform "topclass")
        (viewName @initform "layout")
        (cellViewType @initform "maskLayout")
        (_interactive @initform nil)))

    The class name I've highlighted in red above. It will be different depending on the view type of the top class.

    Then in the pcell you're creating which inherits from this (in my case a schematic view where the top was a layout), enter that class name instead of the cell name:

    Regards,

    Andrew

    • Cancel
    • Up +2 Down
    • Cancel
  • TobiasMrks
    0 TobiasMrks over 3 years ago in reply to Andrew Beckett

    Hi Andrew,

    I already tried it like this. And worked with this solution in the beginning.

    The problem with this solution is that the explicit class name will not be changed in the Pcell deploy step resulting in a not working deployed library.

    In your example, if I want to deploy NmosDemo24  into another library lets say Nmos24.

    Best regards

    Tobias

    • Cancel
    • Up 0 Down
    • Cancel
  • Andrew Beckett
    0 Andrew Beckett over 3 years ago in reply to TobiasMrks

    Hi Tobias,

    This is not the ultimate solution - it's a workaround for now until we make this cleaner, and I recognise that it has limitations as you say.

    Andrew.

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

    Hi Tobias,

    I filed a change request, CCR 2100834 to provide a way to specify both the cell and view you're inheriting from.

    Andrew.

    • Cancel
    • Up +1 Down
    • Cancel
  • TobiasMrks
    0 TobiasMrks over 3 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you a lot.

    • Cancel
    • Up 0 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.