Home
  • Products
  • Solutions
  • Support
  • Company

This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  • Products
  • Solutions
  • Support
  • Company
Community Custom IC Design Instance within a cell as parameter
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

Instance within a cell as parameter

stephbur
stephbur over 3 years ago

I have a hard time describing what I want in few words, which also makes it very hard to search for it.

I have a base-cell that already contains a number of subcells. To this cell I also need to add a preamplifier, which I have several versions of.

Currently I manually create many new cells, with base-cell and preamp1, base-cell and preamp2, ... and so on.

What I would like is to have a single instance that I can place sometimes with preamp1, sometimes with preamp2 etc., passing the desired preamp as a parameter.

Is functionality like that available, perhaps using SKILL?

I am thankful for any pointers where to look for or what SKILL functions I should look into.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    One approach would be using a hierarchical pcell, but before suggesting that I'd like to understand whether this is for schematics or layout? If it's for schematics, there may be an easier way that doesn't involve needing to write SKILL code or use a PCell development tool such as PCell Designer.

    Andrew

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

    It would be for both schematics and layout. The cells themselvesdon't have to parametrizable though, only which instance is placed needs to be parameterized.

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

    Hi Andrew

    For the layout I got an easy solution (see below).  What kind of functions would I need to use to make something similar for schematic?

    And another thing that bothers me: Like this the preamp is "outside/on top" of the base cell, while semantically it belongs to  an analog chain within the base cell. Is it possible and/or advidsable to have hybrid cells? I.e. Cells that are partially SKILL code and partially "traditional"  manual layout?

    pcDefinePCell(
    list(ddGetObj("mylib") "mycell" "layout")
    ((preamp_id "int" 1))
    let( ()
    tfId = techGetTechFile(ddGetObj("mytechnology"))
    base = dbOpenCellViewByType("motic_puc" "base" "layout")
    pcInstp = dbCreateParamInst(pcCellView base "base" (0:0) "R0")
    case( preamp_id
    (1
    preamp = dbOpenCellViewByType("r4s" "preamp_a" "layout")
    pcInstp = dbCreateParamInst(pcCellView preamp "preamp" (0:0) "R0")
    )
    (2
    preamp = dbOpenCellViewByType("r4s" "preamp_b" "layout")
    pcInstp = dbCreateParamInst(pcCellView preamp "preamp" (0:0) "R0")
    )
    (3
    preamp = dbOpenCellViewByType("r4s" "preamp_c" "layout")
    pcInstp = dbCreateParamInst(pcCellView preamp "preamp" (0:0) "R0")
    )
    )
    );let
    );Define PCell
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 8306
  • Members are here 0

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