• 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. layout pin creation after binding the devices between schematic...

Stats

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

layout pin creation after binding the devices between schematic and layout

Inas Mohammed
Inas Mohammed over 8 years ago

Hello,

I bind between a schematic and its layout using the bndAddInstsBindingByName and lxSetConnRef. So i can select both the nets and the instances between the schematic and layout.

How can i create the pins to be connected and also use the connectivity to place the pins for each instance in the layout using skill script

Thanks

Regards,

Inas

  • Cancel
Parents
  • Inas Mohammed
    Inas Mohammed over 8 years ago

    Thanks Andrew for this detailed reply.

    But for me any word can bring me down or up specially for something i'm struggling to get familiar with it in a very small time.

    Anyway, i'll try to explain what i want again in more details.

    1) I have a schematic like in the following snap shot:

    2)  A layout pattern generated from a skill script ( this layout has the instances mentioned in the above schematic and the rest of some dummies are not put in the schematic)

    3) I want to bind the above schematic with this layout using this script

    procedure(bind_inst(schCV layCV instList)

    lxSetConnRef("sch_lay_binding" "CM_UPPER" layCV "CELLVIEW")

    foreach(instName instList

           bndRemoveInstBindingByName(schCV instName)

              foreach(inst setof(x layCV~>instances strncmp(x~>name instName 2) == 0)
                   bndRemoveInstBindingByName(layCV inst~>name)
                   bndAddInstsBindingByName(schCV instName layCV inst~>name)
            )

    )
    lxUpdateComponentsAndNets(schCV layCV
    ?initCreateInstances nil
    ?initDoStacking nil
    ?initDoFolding nil
    ?initCreatePins t
    ?initGlobalNetPins nil
    ?initCreatePadPins nil
    ?initCreateBoundary nil
    ?initCreateSnapBoundary nil
    ?initCreateMTM nil
    ?deleteUnmatchedInsts nil
    ?deleteUnmatchedPins nil
    ?updateReplacesMasters nil
    ?updateWithMarkers nil
    ?updateNetsOnly t
    ?updateLayoutParameters t
    ?extractSchematic t )

    )
    bind_inst(dbOpenCellViewByType("sch_lay_binding" "CM_UPPER" "schematic")
    dbOpenCellViewByType("sch_lay_binding" "CM_UPPER" "layout_test") '("M7" "M6" "M9"))

    What i got in the CIW after running it shown in the following snap shot, the only instances are bound but no pins created. 


     

    Questions:

    1) Why the pins are not created despite mentioning that option "TRUE" in the lxUpdateCompnentsAndNets?

    2) If these options are not written so their default values are "TRUE", correct?

    Help Request:

    1) need to know what should i modify in my script in order to Create the pins with their labels on M1 with purpose pin for both the pin and its label?

    2) Since the instances in the layout are bound to schematic so the connectivity for each instance in the layout are known 

    example: for M7

    "inst~>instTerms~>net~>name
    ("IREF" "VDD" "IREF" "VDD")"

    So i need to make use of this information + pins created from the previous step and place the appropriate pins for source, drain, gate for each instance (multiplier) in the layout as i need to connect them virtually.

    how can i do that in my case?

    I hope i made it so clear.

    Thanks

    Regards,

    Inas

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Inas Mohammed
    Inas Mohammed over 8 years ago

    Thanks Andrew for this detailed reply.

    But for me any word can bring me down or up specially for something i'm struggling to get familiar with it in a very small time.

    Anyway, i'll try to explain what i want again in more details.

    1) I have a schematic like in the following snap shot:

    2)  A layout pattern generated from a skill script ( this layout has the instances mentioned in the above schematic and the rest of some dummies are not put in the schematic)

    3) I want to bind the above schematic with this layout using this script

    procedure(bind_inst(schCV layCV instList)

    lxSetConnRef("sch_lay_binding" "CM_UPPER" layCV "CELLVIEW")

    foreach(instName instList

           bndRemoveInstBindingByName(schCV instName)

              foreach(inst setof(x layCV~>instances strncmp(x~>name instName 2) == 0)
                   bndRemoveInstBindingByName(layCV inst~>name)
                   bndAddInstsBindingByName(schCV instName layCV inst~>name)
            )

    )
    lxUpdateComponentsAndNets(schCV layCV
    ?initCreateInstances nil
    ?initDoStacking nil
    ?initDoFolding nil
    ?initCreatePins t
    ?initGlobalNetPins nil
    ?initCreatePadPins nil
    ?initCreateBoundary nil
    ?initCreateSnapBoundary nil
    ?initCreateMTM nil
    ?deleteUnmatchedInsts nil
    ?deleteUnmatchedPins nil
    ?updateReplacesMasters nil
    ?updateWithMarkers nil
    ?updateNetsOnly t
    ?updateLayoutParameters t
    ?extractSchematic t )

    )
    bind_inst(dbOpenCellViewByType("sch_lay_binding" "CM_UPPER" "schematic")
    dbOpenCellViewByType("sch_lay_binding" "CM_UPPER" "layout_test") '("M7" "M6" "M9"))

    What i got in the CIW after running it shown in the following snap shot, the only instances are bound but no pins created. 


     

    Questions:

    1) Why the pins are not created despite mentioning that option "TRUE" in the lxUpdateCompnentsAndNets?

    2) If these options are not written so their default values are "TRUE", correct?

    Help Request:

    1) need to know what should i modify in my script in order to Create the pins with their labels on M1 with purpose pin for both the pin and its label?

    2) Since the instances in the layout are bound to schematic so the connectivity for each instance in the layout are known 

    example: for M7

    "inst~>instTerms~>net~>name
    ("IREF" "VDD" "IREF" "VDD")"

    So i need to make use of this information + pins created from the previous step and place the appropriate pins for source, drain, gate for each instance (multiplier) in the layout as i need to connect them virtually.

    how can i do that in my case?

    I hope i made it so clear.

    Thanks

    Regards,

    Inas

     

    • 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