generic_bga module#
Generic hex-grid BGA component used by the design.
Physical BGA properties (rows, cols, pitch, ball diameter, signal row pairs) are canonical here, alongside the component definition itself. Signal-pair lanes start one row above the bottom edge and repeat up the row axis. Each lane uses adjacent P/N rows, and each deeper lane shifts one column over. The row gaps alternate to compensate for the hex column stagger.
- class HexBGADecorated(num_rows: int, num_cols: int, ball_diameter: float, pitch: float, center_col: float | None = None)[source]#
Bases:
BGADecoratedBGA with alternate-column vertical offset for hex close-packed layout.
Columns with odd index are shifted down by half the vertical pitch; column spacing is
pitch * sqrt(3)/2, so nearest-neighbor ball centers sit at exactlypitchin every direction.
- class HexBGA(*args, **kwargs)[source]#
Bases:
A1,AlphaDictNumbering,HexBGADecoratedHex-staggered BGA with A1-corner alpha/dict pad numbering.
- class GenericHexGridBGA[source]#
Bases:
ComponentHex-grid BGA exposing diff-pair lanes per signal row pair.
lanes[pair_index][lane_index]is theDiffPairfor a given signal row pair and column slot. The flat ordering of pairs isSIGNAL_ROW_PAIRS; the column slots within a pair aresignal_cols_for_pair(pair_index).- reference_designator_prefix: str | None = 'U'#
Reference designator prefix for this component. This will be used to generate a unique reference designator for each component of the same type.
Note
This field is a required data point for matching components between builds. If this value changes (including changing from unset to set), it will be treated as a new component, even if nothing else changes.
- lanes: list[list[DiffPair]] = [[DiffPair(), DiffPair(), DiffPair()], [DiffPair(), DiffPair(), DiffPair()], [DiffPair(), DiffPair(), DiffPair()], [DiffPair(), DiffPair(), DiffPair()]]#
- GND = [Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port(), Port()]#
- landpattern = HexBGA(num_rows=21, num_cols=8, pitch=1.0, ball_diameter=0.5, center_col=3.0).pad_config(SMDPadConfig(copper=Ellipsis, soldermask=Ellipsis, paste=Ellipsis)).package_body(RectanglePackage(height=Toleranced(0.9, 0.1, 0.1), width=Toleranced(8.5, 0, 0), length=Toleranced(22.5, 0, 0)))#