• 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 SKILL
  3. Binding schematic non leaf instance to corresponding layout...

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 143
  • Views 7454
  • 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

Binding schematic non leaf instance to corresponding layout instance

Dario Tonello
Dario Tonello over 2 years ago

Hello everyone, 

I'm trying to execute something similar to the binding map reported in this article:

https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nYZuEAM&pageName=ArticleContent

My issue is that I can't figure out a way to overcome this error:

*Error* bndReplaceObjectsBinding: (BND-3026): Cannot add binding to instance ’I0’ because it is not a leaf. Binding can only be set between leaf objects in the schematic and layout objects.

Using the menu Connectivity -> Define Device Correspondence  I have no issue binding the two instances but I can't find a way to execute the same thing trough SKILL codes.

I'm using this code in CIW in order to test it: (Layout is opened in VXL and connectivity reference have been set)

        schematic_obj_id = car(geGetSelSet())    

        ; => db_object

        layout_obj_id = car(geGetSelSet()) 

        ; => db_object   

        cphId=cphGetLayoutXLConfig(layout_id)

        ; =>physical_config_id

        cphSetCellPhysicalBinding(cphId schematic_obj_id~>libName  schematic_obj_id~>cellName layout_obj_id~>libName layout_obj_id~>cellName layout_obj_id~>viewName)

        ; => t

        cphSaveConfig(cphId)

        ; => t

        bndReplaceObjectsBinding(schematic_obj_id layout_object_id)

        ; => *Error* bndReplaceObjectsBinding: (BND-3026): Cannot add binding to instance 'I108' because it is not a leaf. Binding can only be set between leaf objects in the schematic and layout objects.

In the actual SKILL code where I'm processing hundreds of instances I'm using the errset functions to execute this procedure only when required:

errset( bndReplaceObjectsBinding(schematic_obj_id layout_object_id) )

when(errset.errset

          cphSetCellPhysicalBinding(cphId schematic_obj_id~>libName schematic_obj_id~>cellName layout_obj_id~>libName layout_obj_id~>cellName layout_obj_id~>viewName)

          cphSaveConfig(cphId)

          bndReplaceObjectsBinding(schematic_obj_id layout_object_id)

          )

I've tried to apply the solution from the support article but the solution it suggests doesn't seem to work for me or most likely I'm doing something wrong, I'm not really familiar with Physical Configuration and how it affects layouts and schematics.

What I'd like to achieve is a script able to set bindings between non leaf items like Connectivity -> Define Device Correspondence does.

I'm using Virtuoso IC6.1.8-64b.500.26

Does anyone know how to overcome this issue?

Also is there a manual which contains the definition of leaf and non leaf instance?

Thanks in advance,

Dario.

 

  • 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