bga module#

The BGA Landpattern Generator#

BGA (Ball Grid Array) packages use an array of solder balls on the bottom surface instead of peripheral leads. This module provides generators for creating BGA landpatterns with customizable grid configurations.

The BGA landpattern has three entry points:

  • BGA: Complete generator with A1 alphanumeric numbering (rows A-Z, columns 1-N, e.g., .p['A1'], .p['B3'])

  • BGADecorated: With silkscreen but no numbering scheme

  • BGABase: Basic pads only

Constructor Parameters:

num_rows: Number of rows in the ball grid (vertical) num_cols: Number of columns in the ball grid (horizontal) ball_diameter: Diameter of solder balls (typical: 0.3-0.6mm) pitch: Center-to-center spacing between balls (typical: 0.4-1.27mm)

>>> from jitx import Component, Port
>>> from jitxlib.landpatterns.generators.bga import BGA
>>>
>>> class MyBGA(Component):
...     # 10x10 BGA = 100 balls
...     pins = {f'{chr(65+r)}{c+1}': Port() for r in range(10) for c in range(10)}
...     def __init__(self):
...         self.landpattern = BGA(
...             num_rows=10,
...             num_cols=10,
...             ball_diameter=0.4,  # 0.4mm balls
...             pitch=0.8,          # 0.8mm pitch
...         )

Note

BGA packages require careful PCB design for routing escape paths. Consider via-in-pad or dog-bone patterns for dense arrays.

class BGABase(num_rows: int, num_cols: int, ball_diameter: float, pitch: float | tuple[float, float])[source]#

Bases: GridPlannerMixin, GridPadShapeGeneratorMixin, GridLandpatternGenerator

BGA Landpattern Generator Base

Parameters:
class BGADecorated(*args, **kwargs)[source]#

Bases: SilkscreenOutline, Pad1Marker, ReferenceDesignatorMixin, ExcessCourtyard, BGABase

class BGA(*args, **kwargs)[source]#

Bases: A1, AlphaDictNumbering, BGADecorated

BGA Landpattern Generator