Home > Community > Forums > PCB SKILL > Centering Clines Within BGA

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Centering Clines Within BGA 

Last post Mon, Jun 16 2014 2:45 PM by eddieb1. 18 replies.
Started by eddieb1 07 Feb 2014 03:18 PM. Topic has 18 replies and 4420 views
Page 1 of 2 (19 items) 1 2 Next >
Sort Posts:
  • Fri, Feb 7 2014 3:18 PM

    • eddieb1
    • Top 500 Contributor
    • Joined on Thu, Jul 17 2008
    • Posts 20
    • Points 340
    Centering Clines Within BGA Reply

     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

    Filed under: ,
    • Post Points: 20
  • Tue, Feb 18 2014 11:28 PM

    • PRASH36
    • Top 200 Contributor
    • Joined on Tue, Apr 3 2012
    • BANGLORE, Karnataka
    • Posts 39
    • Points 855
    Re: Centering Clines Within BGA Reply

    Hi

    Route--->Custom smooth (Enable only Cline segs on find window)  option may working for you,if u set the Spacing constraints values properly.

     

    Regards

    Prashanth

    • Post Points: 20
  • Wed, Feb 19 2014 12:55 PM

    • eddieb1
    • Top 500 Contributor
    • Joined on Thu, Jul 17 2008
    • Posts 20
    • Points 340
    Re: Centering Clines Within BGA Reply

     Thanks Prashanth for the feedback.

    Yes, I can use this option IF the BGA pitch is the same on all vias. However in my design I have different bga pitch so using different setting will be very difficult. I was looking for a code where the pitch (distance) between vias is used to place clines mid-center.

     

    Eddie

    • Post Points: 5
  • Tue, Jun 10 2014 2:04 PM

    • eddieb1
    • Top 500 Contributor
    • Joined on Thu, Jul 17 2008
    • Posts 20
    • Points 340
    Re: Centering Clines Within BGA Reply

     Experts, any idea?

     

     

    • Post Points: 20
  • Tue, Jun 10 2014 2:18 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 738
    • Points 16,055
    Re: Centering Clines Within BGA Reply

    Just thinking out loud... manipulating your grids and using axlShoveItems and could be a way to go.

    i.e. Set your grid origin to the first via and the grid spacings to what you need between that and the next via. Then use axlShoveItems (gridded) to move the clines.

    Might work but I'm sure that there are plenty of alternative methods. 

    Dave Elder, Tait Communications
    • Post Points: 20
  • Tue, Jun 10 2014 2:27 PM

    • eddieb1
    • Top 500 Contributor
    • Joined on Thu, Jul 17 2008
    • Posts 20
    • Points 340
    Re: Centering Clines Within BGA Reply

     Thanks Dave for the repl.

    Reading through the material, I thought of that too along wih axlPathOffset. But I wasn't sure it would work. In any case do you have a sample code that I play with?

     I sure would like to see if I can move one cline in between two vias using the code you've suggested using.

    Eddie

     

    • Post Points: 20
  • Tue, Jun 10 2014 2:36 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 738
    • Points 16,055
    Re: Centering Clines Within BGA Reply
    I don't have any existing code but I'll see if I can knock up a few lines to test the idea and get you started.
    Dave Elder, Tait Communications
    • Post Points: 20
  • Tue, Jun 10 2014 2:43 PM

    • eddieb1
    • Top 500 Contributor
    • Joined on Thu, Jul 17 2008
    • Posts 20
    • Points 340
    Re: Centering Clines Within BGA Reply

     Thanks Dave!

     Can't wait to see it.

     BTW - I tried the one that's in the Glossing Controler > Center lines between pads. It didn't work and made things worst as it moved the clines loop around pads and made them longer. It also introduced new errors by crossing clines.

     

    Eddie.

    • Post Points: 20
  • Tue, Jun 10 2014 3:46 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 738
    • Points 16,055
    Re: Centering Clines Within BGA Reply

    Well, this code sort of works. However it's not of much use to you without a lot of work. I'm only handling a single cline. You will need to use complex grid settings for multiple clines.

    defun( DE_BGAClineCentre (via1, via2, clineSeg)

    via1xy = via1 ->xy

    via2xy = via2 ->xy

     

    ; Set grids:

    layer = clineSeg ->layer

    grid = axlDBGridGet(layer)

    originalGrid = copy(grid)

    grid ->xOrigin = car(via1xy)

    grid ->yOrigin = cadr(via1xy)

    if(axlGeoEqual(car(via1xy), car(via1xy)); I'm assuming that the vias are on orthogonal locations. Otherwise this method will not work.

    then grid ->yGrids = axlDistance(via1xy, via2xy) / 2.0; The shoved cline needs to be centered on the y grid

    else grid ->xGrids = axlDistance(via1xy, via2xy) / 2.0; The shoved cline needs to be centered on the x grid

    )

    axlDBGridSet(grid)

     

    ; Shove the cline segment

    shoveMode = 0

    cornerType = 45

    gridded = 1

    params = list(shoveMode cornerType gridded)

    axlShoveSetParams(params)

    axlShoveItems(list(clineSeg))

     

    ;Restore the original grid.

    axlDBGridSet(originalGrid)

    Dave Elder, Tait Communications
    • Post Points: 20
  • Tue, Jun 10 2014 3:56 PM

    • eddieb1
    • Top 500 Contributor
    • Joined on Thu, Jul 17 2008
    • Posts 20
    • Points 340
    Re: Centering Clines Within BGA Reply

     Thanks Dave.

     

    It's a start. I'll give a whirl and let you know if it's something I can use.

    BTW, is there a function when vias in diagonal formation, as in staggered formation?

     

    Eddie.

     

    • Post Points: 20
  • Wed, Jun 11 2014 4:43 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 738
    • Points 16,055
    Re: Centering Clines Within BGA Reply
    Yes, it's only a start - and then just an idea.

    It would be possible to use the same method for (45 degree) staggered vias but the grid calculations would get slightly more complicated
    Dave Elder, Tait Communications
    • Post Points: 20
  • Thu, Jun 12 2014 8:09 AM

    • eddieb1
    • Top 500 Contributor
    • Joined on Thu, Jul 17 2008
    • Posts 20
    • Points 340
    Re: Centering Clines Within BGA Reply

     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

    • Post Points: 20
  • Thu, Jun 12 2014 9:25 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 738
    • Points 16,055
    Re: Centering Clines Within BGA Reply

    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 

    Dave Elder, Tait Communications
    • Post Points: 20
  • Mon, Jun 16 2014 1:00 PM

    • eddieb1
    • Top 500 Contributor
    • Joined on Thu, Jul 17 2008
    • Posts 20
    • Points 340
    Re: Centering Clines Within BGA Reply

     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.

     

    • Post Points: 35
  • Mon, Jun 16 2014 1:35 PM

    • Randy R
    • Top 50 Contributor
    • Joined on Wed, Jul 16 2008
    • Dupont, WA
    • Posts 192
    • Points 3,025
    Re: Centering Clines Within BGA Reply
    They won't work for centering existing clines, but if you're creating the clines then using Scribble or Snake might help.
    Good Day, R².
    • Post Points: 20
Page 1 of 2 (19 items) 1 2 Next >
Sort Posts:
Started by eddieb1 at 07 Feb 2014 03:18 PM. Topic has 18 replies.