• 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. VLS-XL Assign instance pin to net - automatically create...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 130
  • Views 4172
  • 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

VLS-XL Assign instance pin to net - automatically create net on clicked target?

caver456
caver456 over 8 years ago

For this case, we are starting with a layout mostly done in L that has pcells but has no nets at all.

In XL, when using Connectivity -> Nets -> Assign to assign an instance pin to a net, the desired target (i.e. the second thing that it prompts you to click) is a shape or another instance terminal that has no net.  In other words, "we want to connect this pin on this pcell resistor to this other simple connectivity-free piece of metal over here."  Apparently, in the Assign command, the target has to be (a shape or via on) an existing net.

While VLS does make it easy to assign a net to the target before running Assign (set the net property on the target shape/via, or add a label and Extract Layout, etc), in this case, we don't really care what VLS thinks the net name is - we just want to see the flight and drag lines.

Is there a way to have Assign automatically create an arbitrary net with a unique net name on the clicked target, which would get rid of the need to take steps to make sure the target is a net before running Assign?

  • Cancel
Parents
  • Marc Heise
    Marc Heise over 8 years ago
    Hi,

    I can't understand the motivation behind doing that. It's a lot of effort to build a connectivity out of nothing in the layout space, basically negating the
    intention of Layout XL to provide semi automation and doing layout with much less effort. You may have reasons.

    Maybe it's easier and faster to manually build the schematic? Place your pins and devices ( ignore parameters to speed it up ) and wire them. Do the binding
    to the layout. If the devices are bound you can update the schematic parameters from the layout source.

    For creating nets out of thin air:
    Can you do SKILL? I can't provide a complete solution but give some pointers.

    You basically need a routine to:
    1. get the selected shape and test if there is a net allready ( shape=car(geGetSelSet()); if !shape~>nets ... )
    2. if there is no net/netTerm, you need to create a new one in the db ( net = dbCreateNet(cv "B") ; netTerm = dbCreateTerm(net net~>name "inputOutput") )
    ofcourse you have to make sure the new netname does not exist already.
    3. add the shape to the net and make it sticky ( dbAddFigToNet(shape net) shape~>lxStickyNet=t )

    Kind regards,
    Marc
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Marc Heise
    Marc Heise over 8 years ago
    Hi,

    I can't understand the motivation behind doing that. It's a lot of effort to build a connectivity out of nothing in the layout space, basically negating the
    intention of Layout XL to provide semi automation and doing layout with much less effort. You may have reasons.

    Maybe it's easier and faster to manually build the schematic? Place your pins and devices ( ignore parameters to speed it up ) and wire them. Do the binding
    to the layout. If the devices are bound you can update the schematic parameters from the layout source.

    For creating nets out of thin air:
    Can you do SKILL? I can't provide a complete solution but give some pointers.

    You basically need a routine to:
    1. get the selected shape and test if there is a net allready ( shape=car(geGetSelSet()); if !shape~>nets ... )
    2. if there is no net/netTerm, you need to create a new one in the db ( net = dbCreateNet(cv "B") ; netTerm = dbCreateTerm(net net~>name "inputOutput") )
    ofcourse you have to make sure the new netname does not exist already.
    3. add the shape to the net and make it sticky ( dbAddFigToNet(shape net) shape~>lxStickyNet=t )

    Kind regards,
    Marc
    • 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