• 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. Ordered ball array?

Stats

  • Replies 6
  • Subscribers 162
  • Views 14963
  • Members are here 0
More Content

Ordered ball array?

LSIpkgCad
LSIpkgCad over 16 years ago

Does anyone have any ideas or code to step through the ball array of a package in APD in order, from the lowest to the highest?  Eventually, I need to build a color-coded matrix of the balls in an external design system but getting the ordered info would go a long way in getting me there.

THANKS!!

  • Sign in to reply
  • Cancel
  • oldmouldy
    oldmouldy over 16 years ago

    This could be done outside of the tool, no idea how to do this in APD itself, maybe SKILL?

    I guess you mean by "step through in order" that, for example, A10 should come after A9 and not after A1, and so on? This is called a "natural sort", try your favourite search engine for "natural sort code" and you should get a bunch of source code examples, then "simply" adapt one of these for your specific needs.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Tyler
    Tyler over 16 years ago

    The 16.2 version of APD include a "symbol spreadsheet" command (File->Export->Symbol Spreadsheet) which will write a tab-delimited file representing the ball grid array in a spreadsheet-type view, where the cell represents the pin's position in array. This may be helpful, depending on the final result you are aiming for

    If not, the previous suggestion of grabbing code off the web for a natural sort is probably the best one, as skill doesn't have that sort type built in that I've seen.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • LSIpkgCad
    LSIpkgCad over 16 years ago

    Tyler,oldmouldy...

    Thanks for the response!  I just tried 16.2 and that "symbol spreadsheet will give me a start."  One follow-up question... any idea how to get the max pin/ball from the db (in SKILL)??  Thanks!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • kerchunk
    kerchunk over 16 years ago

     Aye, to paraphrase a famous quote from the USA's president 42 "It all depends on what your definition of what 'lowest to highest' is.

    Seriously tho, if the pins of your BGA are laid out on a nice grid pattern then it's easy to populate a table of concentric rings of pins keyed on value of ring ( innermost to outermost) based on xy position. Then you just iterate through each pin in each key's list and set them to the various colors you want.

     

    HTH,

    Chris Walters

    local Cadence guru

    () 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • aCraig
    aCraig over 16 years ago

    Here's a code snippet to get a list of the balls in the bga. It assumes you are correctly setting the component class to "IO" and requires the attached algorithm for sorting in "natural order ". If you want the output to be an ASIC file change .xls to .txt.

     Craig

     

    defun(pinlist ()
    let((bga pins port)

      foreach(cmp axlDBGetDesign()->components
        when(equal(cmp->class "IO")
          bga = cmp
        )
      )
      port = outfile("pinlist.xls")
      pins=foreach(mapcan pin bga->pins
      list(pin->number))
      pins=sort(pins 'CAL_strnatcmp)
      foreach(pin pins
        fprintf(port "%s\n" pin)
      )
      drain(port)
      close(port)
      t

    )) 

    calStrNatCmp.zip
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
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