• 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. Need to promote pins to one level Above

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 126
  • Views 17827
  • 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

Need to promote pins to one level Above

sathisha
sathisha over 14 years ago
Hi, Is there any way to get the pins to top level by using the below hierarchy cells. Thanks, Sathisha
  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    If you're trying to place pins at a higher level directly over an instance of the lower level, you can do that with the Pin Placer in Virtuoso Layout Suite XL (in IC61X):

    Placing a Pin on a Lower-level Instance Terminal
    To place a pin directly onto its corresponding instance terminal at a lower
    level of the design hierarchy,
    1. From the layout window menu bar, choose Place - Pin Placement. The Pin
    Placement form is displayed.
    2. Select the pin from the pin table.
    3. Choose None from the Edge cyclic field.
    4. Choose Floating from the Location cyclic field.
    5. Click Apply. The pin you selected is placed over its corresponding instance
    terminal in the layout window.

    This requires the pins to exist in your layout - but that would happen provided that you had a schematic wiring them up and had done a "gen from source" in Layout XL.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sathisha
    sathisha over 14 years ago
    Hi Andrew, Main problem here is the schematics are not done with cadence it's viewdraw editor, but the layout is done by using virtuoso and its a compiler. all the leaf cells hierarchy will done by using the lower hierarchy cells. In each level placing pins is difficult Is there any way to bring the pins from lower level. Thanks, Sathisha
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    Not sure I know of a way of doing this without writing some SKILL code to do it. It's a fairly specific requirement (there's the Propagate Net command but that doesn't create pins).

    I managed to cheat with only a minimal amount of SKILL code by doing the following:

    1. Place the instance at 0:0
    2. Use Connectivity->Nets->Propapage Nets and hit the "Set All Net Names to Terminal Name"
    3. Use this line of SKILL in the CIW:

      foreach(net cv~>nets dbCreateTerm(net net~>name "inputOutput"))

    4. Use File->Load Physical View and pick the master (that you instantiated) as the source. Then hit the "None" button and turn on "Pins" within "Load Pins and Update Nets"

    That does it - but requires you to place the instance at 0:0.

    It wouldn't be terribly difficult to copy the pins however. I just threw this together (not thoroughly tested - I only tested it quickly in IC614):

    procedure(ABpropagateInstancePins(@optional (inst car(geGetSelSet())))
    let((newNet newTerm newFig newPin cv)
    cv=inst~>cellView
    foreach(terminal inst~>master~>terminals
    newNet=dbMakeNet(cv terminal~>net~>name)
    newTerm=dbCreateTerm(newNet terminal~>name terminal~>direction)
    foreach(pin terminal~>pins
    newPin=nil
    ; the or part in the next line is to try to handle both OA and CDB
    ; because in OA you can have more than one fig per pin
    foreach(fig pin~>figs || list(pin~>fig)
    newFig=dbCopyFig(fig cv inst~>transform)
    if(newPin then
    dbAddFigToPin(newPin newFig)
    else
    newPin=dbCreatePin(newNet newFig nil newTerm)
    )
    )
    )
    )
    t
    ))

    You should be able to select an instance and then call this function, and it will create pins over all the pins within the instance.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sathisha
    sathisha over 14 years ago
    I tried the way u have explained but when I use

    Use Connectivity->Nets->Propapage Nets

    It says no instances are selected, even though I have selected the instances.

    I am not sure, whether I am missing any steps.

    --Sathisha
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    Sathisha,

    The only way I can get that message is if I don't have any instances selected.  Are you sure you have instances (rather than shapes) selected?

    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