• 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. Centering Clines Within BGA

Stats

  • Replies 18
  • Subscribers 160
  • Views 20108
  • Members are here 0
More Content

Centering Clines Within BGA

eddieb1
eddieb1 over 11 years ago

 Hello experts,

Is there a function that I can use to center only the clines inside the BGA area?

If so how do go I about it?

For instance, what skill code can I use to shove/move single clines or dual clines in between (or in the middle of) the BGA vias?

  - where if there are two clines in between vias, the air gap is 1x or 2x of the trace width.

Below is a simple illustration:

 

Single cline centered in between BGA vias:

o I o I o I o

Dual CLine centered in between BGA vias::

o IxI o IxI o

 

Where:

o = via

I = Cline

x = air gap between two clines.

 Note:

In some areas of the BGA, the vias are in-line while in some areas (at the periphery) the via pitch is mixed, that is a combination of 10mm and 8mm  - stagered pitch.

 Thanks,

Eddie

  • Sign in to reply
  • Cancel
  • eddieb1
    eddieb1 over 11 years ago

     Hi Dave,

    I can't seem to get the code to work. Not sure why.

    In any case, I found a code that might work but it also needs modification.

    It's a code for replacing pins. As shown below I replaced all the functions and sprintf texts to get it to work. Unfortunately I'm stuck as how to make the  axlShoveItems function work in conjucntion with the grid. Maybe you can take a look at it if there's somthing that can be done to make it work.

    So far here's what the code can do:

    1. Allows you to select cline segments.

    2. Lets you know how many segments was selected

    3. Opens up a dialog window to select the dabase shape_symbols (I was thinking of creating a grid setting as a shape symbol.

    4. Reports how segments we're moved.

     

     

    ;;#####################################################################################################
    axlCmdRegister( "cntrLn" `Cntr_lns ?cmdType "general")
    (defun Cntr_lns ()
      (let (mypopup cnt msg CLINES2center cntr_with grid_name mark)
        (setq mypopup
          (axlUIPopupDefine nil
                    (list (list "Done" 'axlFinishEnterFun)
                      (list "Cancel" 'axlCancelEnterFun))
                    )  
          );setq
         axlUIWPrint(nil "Pick or window the clines needed to be centered then RMB > Done or Cancel.")
        (axlUIPopupSet mypopup)
        (axlClearSelSet)
        (axlSetFindFilter ?enabled `("NOALL" "CLINESEGS") ?onButtons `("CLINESEGS"))
        (axlSelect ?groupMode t)
        (setq cnt axlGetSelSetCount())
        (sprintf msg "Do you want to Center the %d CLINE_SEGS?. Make sure that that you're using the correct GRID or else the clines will not be centered" cnt)
           (if (axlUIYesNo msg) then
          (setq CLINES2center (axlGetSelSet))
          axlClearSelSet()
          (setq cntr_with (axlUIDataBrowse 'SHAPE_SYMBOL '(EXAMINE_DATABASE DATABASE_FIXED RETRIEVE_OBJECT) "Shape_Symbol" t))
          (setq grid_name (car cntr_with))


         (setq ldbid (axlShoveItems CLINES2center))<-- here's the funtion. Not sure what to do from here on.

         (if (length ldbid) != cnt then
          (sprintf msg "WARNING: Centered only %d out of %d CLINES.\n\nCheck for FIXED property or add the correct grid setting to the database (current grid list) then retry" (length ldbid) cnt)
          axlUIConfirm(msg)
          else
          (sprintf msg "Info: Centered %d out of %d clines." (length ldbid) cnt)
          axlUIConfirm(msg)
          );
          );if
        (axlClearSelSet)
        (axlFinishEnterFun)
        );let
      );defun 

     

     

     Thanks,

    Eddie

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • eDave
    eDave over 11 years ago

    Hi Eddie,

    This isn't trivial. It will require a reasonable programming effort. I could do this but it would take me several hours and I would need a reference design to ensure I was actually meeting your requirement.

    You need to set your shove parameters. You need to be shoving using the gridded option.

    The key is to set the grid up correctly. On a staggered grid this will be fun and probably not possible if the vias are not on a 45 degree grid.

    Dave 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • eddieb1
    eddieb1 over 11 years ago

     Hi Dave,

    I sent you a board file that I just created in Allegro Editor 16.6. I hope it helps.

    It has few clines so as not complicate the board since the bga is a satagered pitch via.

     

     

    Thanks again Dave.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Randy R
    Randy R over 11 years ago
    They won't work for centering existing clines, but if you're creating the clines then using Scribble or Snake might help.
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • eDave
    eDave over 11 years ago

    Hi Eddie,

    If you want to know whether my suggested method would be possible with this design, my answer is yes, probably. Substantial coding would be required. For a one-off exercise it may be quicker to "gloss" this by hand. However, I'm sure that the layout experts out there with familiarity with constraint regions and the glossing tools would recommend that you use the existing inbuilt Allegro tools.

    Dave 

    • 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