• 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. Allegro X PCB Editor
  3. Help Needed for Quickplace using Skill/Script

Stats

  • Replies 8
  • Subscribers 160
  • Views 5662
  • Members are here 0
More Content

Help Needed for Quickplace using Skill/Script

vramanan
vramanan over 16 years ago

Hi Guys

 This is my intention

A script that will

1.Go and place all the symbols w.r.to its Schematic page number

2. Draw a dynamic rectangle around the placed symbols

3. Place a Text indicating the Page #

 I understand that I can do a script/skill  combination to do this

I can go around finding the exact numbers of pages by just giving a number and looping through it

 I see that the quickplace will create a log  which has xy for the placed symbols, I could use it to determine the Rectangle size

 

Any ideas/suggestions are welcome, I am willing to code and share it in the forum

 

If my above idea sounds viable, I need some pointers on reading a text file using skill

regards

Venkata

 

  • Cancel
  • Sign in to reply
Parents
  • vramanan
    vramanan over 15 years ago

     Hi Guys

    I am not showing off but I have completed a Skill script that would help in quickly placing huge amount of components within a minute

    and also will help in tracking their parents w.r.to it's page / parent hierarchy etc...

    I have attached the presentation I did to my company, due to the amount of work involved , the time I spent as well some confidentiallity issues I can't post the entire code.

     

    But this post might give some Ideas how it is done and what else is possible

    Here is what I do in the skill file

    1. Get all the component definition

    2. Identify the logical path property

    3. Parse it such that you create groups of different hierarchy and Pages

    4. Once you have the list of all the hierarchies create lists for individual pages and their underlying components

    5. Now place them with respect to their pages/hierarchies

    6. calculate the new locations 

    7. For tracking their parent's assign properties on the symbol level and use the treeview interface to highlight them

     

    I can give little bit more clues on the placement logic. search in google of 2D bin packing  

    although I used a variation of this logic

    Basically I pre-sorted all the components w.r.to their size (you can either use place bound or pin count clue :-)!!!) on the individual pages

    then I sort all the pages within a given hierarchy w.r.to their size and sort all the hierarchies w.r.to their size

     

    Now I start on a given point and place the first component, since I pre-sorted it I am positive that the next member in that page is either same size or smaller than the first one.

    Now I place the second one and compare its extends with my pre-defined Page box if it fits I place it or i place it on the next row.

    This continues so-on and so forth for pages and hierarchies

     I have attached the presentaion which will give you some ideas how it looks

     I can answer your questions and give more info on the techniques but unfortunately I won't be able to post the entire code

    I appreciate the understanding of this matter

    Good Luck

    regards

    Venkata

     

     

    Infinera_PCB_QuickPlace_Tool.pdf
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • vramanan
    vramanan over 15 years ago

     Hi Guys

    I am not showing off but I have completed a Skill script that would help in quickly placing huge amount of components within a minute

    and also will help in tracking their parents w.r.to it's page / parent hierarchy etc...

    I have attached the presentation I did to my company, due to the amount of work involved , the time I spent as well some confidentiallity issues I can't post the entire code.

     

    But this post might give some Ideas how it is done and what else is possible

    Here is what I do in the skill file

    1. Get all the component definition

    2. Identify the logical path property

    3. Parse it such that you create groups of different hierarchy and Pages

    4. Once you have the list of all the hierarchies create lists for individual pages and their underlying components

    5. Now place them with respect to their pages/hierarchies

    6. calculate the new locations 

    7. For tracking their parent's assign properties on the symbol level and use the treeview interface to highlight them

     

    I can give little bit more clues on the placement logic. search in google of 2D bin packing  

    although I used a variation of this logic

    Basically I pre-sorted all the components w.r.to their size (you can either use place bound or pin count clue :-)!!!) on the individual pages

    then I sort all the pages within a given hierarchy w.r.to their size and sort all the hierarchies w.r.to their size

     

    Now I start on a given point and place the first component, since I pre-sorted it I am positive that the next member in that page is either same size or smaller than the first one.

    Now I place the second one and compare its extends with my pre-defined Page box if it fits I place it or i place it on the next row.

    This continues so-on and so forth for pages and hierarchies

     I have attached the presentaion which will give you some ideas how it looks

     I can answer your questions and give more info on the techniques but unfortunately I won't be able to post the entire code

    I appreciate the understanding of this matter

    Good Luck

    regards

    Venkata

     

     

    Infinera_PCB_QuickPlace_Tool.pdf
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
Cadence Guidelines

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