// // // 28-FEB-2023 Pad-Via Stack Definitions for 0.8 mm BGA Package // // // // This geometry file holds the BGA Pad - Dog_Bone - Via // Stack Definitions for the 0.8 mm pitch BGA packages // used on the Disco-Kraken board. // // This is a BGA package with 0.8 mm pitch and 0.?? mm balls. // // // Pin/Pad Stack names: // // BGA_08_SMD_PAD # SMD Pad Only on the Mentor PAD_1 layer // // BGA_08_PAD_VIA_NE # Pad on PAD_1 and via to the North-East // BGA_08_PAD_VIA_SE # Pad on PAD_1 and via to the South-East // BGA_08_PAD_VIA_SW # Pad on PAD_1 and via to the South-West // BGA_08_PAD_VIA_NW # Pad on PAD_1 and via to the North-West // // // The NE, NW, SE, SW tags are for pin/pad stacks that have their via // via offset by 0.4 mm in both the X and Y directions to put the via // right in the center of the 4 surounding SMD pads. // // The WIDE version of these pin/pad stacks have a wider dog-bone. // // BGA_08_WIDE_DOG_PAD_VIA_NE # Pad on PAD_1 and via to the North-East Wide Dog-Bone // BGA_08_WIDE_DOG_PAD_VIA_SE # Pad on PAD_1 and via to the South-East Wide Dog-Bone // BGA_08_WIDE_DOG_PAD_VIA_SW # Pad on PAD_1 and via to the South-West Wide Dog-Bone // BGA_08_WIDE_DOG_PAD_VIA_NW # Pad on PAD_1 and via to the North-West Wide Dog-Bone // // //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // // // This is a geometry for a BGA with a 0.80 mm pitch. // ------- // // For all of the BGA Ball SMD Pads: // // BGA Pad Land 0.38 mm in diameter // BGA Pad Solder Mask Opening 0.48 mm in diameter // BGA Pad Solder Paste Mask 0.38 mm in diameter // // For all Power, Ground, and normal I/O pin Vias: // // Via Drill Hole 0.23 mm in diameter // Via Pad Land 0.45 mm in diameter // Via Solder Mask Opening 0.35 mm in diameter // Via Plane Relief 0.65 mm in diameter // Dog-Bone Width 0.20 mm Narrower for High-Speed signals // Wider for the Power and Ground pins // // --> edge of BGA pad to solder mask 0.050 mm // --> clearance between adjacent pads 0.151 mm // --> narrowest point of Solder Mask 0.151 mm // --> Via donut width around drill hole 0.110 mm // --> Via drill edge to plane clearance 0.210 mm // --> Via drill hole edge to solder mask 0.060 mm // --> edge of Via pad to solder mask 0.050 mm // --> width of Gnd/Pow Web between vias 0.150 mm // --> allowed width of inner escape traces 0.150 mm // // --> Via drill edge to 0.15 trace clearance 0.210 mm // Note this matches drill edge to plane clearance // // //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // BGA_08_SMD_PAD SMD Pad Only Pin/Pad Stack // -------------- ------------ $$create_pin("BGA_08_SMD_PAD", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$BGA_08_SMD_PAD']); $$point_mode(@vertex); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); $$circle( "PAD_1", 0.000, 0.000, 0.38, 0.0); $$circle( "SOLDER_MASK_1", 0.000, 0.000, 0.48, 0.0); $$circle( "PASTE_MASK_1", 0.000, 0.000, 0.38, 0.0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // // // // Now the 4 NORMAL pin pad stacks NE, SE, SW, NW // -------- // // //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // BGA_08_PAD_VIA_NE Pin PadStack Pad with a Via 0.565685 mm to the North-East // --------------==== ---------- // When using the BGA_08_PAD_VIA_NE pin padstack you must instance it with a // $$attribute( "COMPONENT_PIN_DEFINITION", ... // that has X,Y values shifted from the actual bga pad location. // // Specifically when using the BGA_08_PAD_VIA_NE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.400 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.400 mm. $$create_pin("BGA_08_PAD_VIA_NE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_08_PAD_VIA_NE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.23, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.45, 0.0); $$circle( "POWER", 0.000, 0.000, 0.65, 0.0); $$circle( "SOLDER_MASK", 0.000, 0.000, 0.35, 0.0 ); $$circle( "BREAKOUT_1", -0.400, -0.400, 0.38, 0.0); $$circle( "SOLDER_MASK_1", -0.400, -0.400, 0.48, 0.0); $$circle( "PASTE_MASK_1", -0.400, -0.400, 0.38, 0.0); $$path( "BREAKOUT_1", 0.200, , [-0.400, -0.400, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_08_PAD_VIA_SE Pin PadStack Pad with a Via 0.565685 mm to the South-East // --------------==== ---------- // When using the BGA_08_PAD_VIA_SE pin padstack you must instance it with a // $$attribute( "COMPONENT_PIN_DEFINITION", ... // that has X,Y values shifted from the actual bga pad location. // // Specifically when using the BGA_08_PAD_VIA_SE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.400 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.400 mm. $$create_pin("BGA_08_PAD_VIA_SE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_08_PAD_VIA_SE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.23, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.45, 0.0); $$circle( "POWER", 0.000, 0.000, 0.65, 0.0); $$circle( "SOLDER_MASK", 0.000, 0.000, 0.35, 0.0 ); $$circle( "BREAKOUT_1", -0.400, 0.400, 0.38, 0.0); $$circle( "SOLDER_MASK_1", -0.400, 0.400, 0.48, 0.0); $$circle( "PASTE_MASK_1", -0.400, 0.400, 0.38, 0.0); $$path( "BREAKOUT_1", 0.200, , [-0.400, 0.400, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_08_PAD_VIA_SW Pin PadStack Pad with a Via 0.565685 mm to the South-West // --------------==== ---------- // When using the BGA_08_PAD_VIA_SW pin padstack you must instance it with a // $$attribute( "COMPONENT_PIN_DEFINITION", ... // that has X,Y values shifted from the actual bga pad location. // // Specifically when using the BGA_08_PAD_VIA_SW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.400 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.400 mm. $$create_pin("BGA_08_PAD_VIA_SW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_08_PAD_VIA_SW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.23, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.45, 0.0); $$circle( "POWER", 0.000, 0.000, 0.65, 0.0); $$circle( "SOLDER_MASK", 0.000, 0.000, 0.35, 0.0 ); $$circle( "BREAKOUT_1", 0.400, 0.400, 0.38, 0.0); $$circle( "SOLDER_MASK_1", 0.400, 0.400, 0.48, 0.0); $$circle( "PASTE_MASK_1", 0.400, 0.400, 0.38, 0.0); $$path( "BREAKOUT_1", 0.200, , [ 0.400, 0.400, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_08_PAD_VIA_NW Pin PadStack Pad with a Via 0.565685 mm to the North-West // --------------==== ---------- // When using the BGA_08_PAD_VIA_NW pin padstack you must instance it with a // $$attribute( "COMPONENT_PIN_DEFINITION", ... // that has X,Y values shifted from the actual bga pad location. // // Specifically when using the BGA_08_PAD_VIA_NW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.400 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.400 mm. $$create_pin("BGA_08_PAD_VIA_NW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_08_PAD_VIA_NW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.23, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.45, 0.0); $$circle( "POWER", 0.000, 0.000, 0.65, 0.0); $$circle( "SOLDER_MASK", 0.000, 0.000, 0.35, 0.0 ); $$circle( "BREAKOUT_1", 0.400, -0.400, 0.38, 0.0); $$circle( "SOLDER_MASK_1", 0.400, -0.400, 0.48, 0.0); $$circle( "PASTE_MASK_1", 0.400, -0.400, 0.38, 0.0); $$path( "BREAKOUT_1", 0.200, , [ 0.400, -0.400, 0.000, 0.000] ); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // // // // Now the 4 WIDE DOG-BONE pin pad stacks NE, SE, SW, NW // --------------- // // //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // BGA_08_WIDE_DOG_PAD_VIA_NE Pin PadStack Pad with a Via 0.565685 mm to the North-East // -----------------------==== ---------- // When using the BGA_08_WIDE_DOG_PAD_VIA_NE pin padstack you must instance it with a // $$attribute( "COMPONENT_PIN_DEFINITION", ... // that has X,Y values shifted from the actual bga pad location. // // Specifically when using the BGA_08_WIDE_DOG_PAD_VIA_NE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.400 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.400 mm. $$create_pin("BGA_08_WIDE_DOG_PAD_VIA_NE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_08_WIDE_DOG_PAD_VIA_NE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.23, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.45, 0.0); $$circle( "POWER", 0.000, 0.000, 0.65, 0.0); $$circle( "SOLDER_MASK", 0.000, 0.000, 0.35, 0.0 ); $$circle( "BREAKOUT_1", -0.400, -0.400, 0.38, 0.0); $$circle( "SOLDER_MASK_1", -0.400, -0.400, 0.48, 0.0); $$circle( "PASTE_MASK_1", -0.400, -0.400, 0.38, 0.0); $$path( "BREAKOUT_1", 0.300, , [-0.400, -0.400, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_08_WIDE_DOG_PAD_VIA_SE Pin PadStack Pad with a Via 0.565685 mm to the South-East // -----------------------==== ---------- // When using the BGA_08_WIDE_DOG_PAD_VIA_SE pin padstack you must instance it with a // $$attribute( "COMPONENT_PIN_DEFINITION", ... // that has X,Y values shifted from the actual bga pad location. // // Specifically when using the BGA_08_WIDE_DOG_PAD_VIA_SE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.400 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.400 mm. $$create_pin("BGA_08_WIDE_DOG_PAD_VIA_SE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_08_WIDE_DOG_PAD_VIA_SE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.23, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.45, 0.0); $$circle( "POWER", 0.000, 0.000, 0.65, 0.0); $$circle( "SOLDER_MASK", 0.000, 0.000, 0.35, 0.0 ); $$circle( "BREAKOUT_1", -0.400, 0.400, 0.38, 0.0); $$circle( "SOLDER_MASK_1", -0.400, 0.400, 0.48, 0.0); $$circle( "PASTE_MASK_1", -0.400, 0.400, 0.38, 0.0); $$path( "BREAKOUT_1", 0.300, , [-0.400, 0.400, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_08_WIDE_DOG_PAD_VIA_SW Pin PadStack Pad with a Via 0.565685 mm to the South-West // -----------------------==== ---------- // When using the BGA_08_WIDE_DOG_PAD_VIA_SW pin padstack you must instance it with a // $$attribute( "COMPONENT_PIN_DEFINITION", ... // that has X,Y values shifted from the actual bga pad location. // // Specifically when using the BGA_08_WIDE_DOG_PAD_VIA_SW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.400 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.400 mm. $$create_pin("BGA_08_WIDE_DOG_PAD_VIA_SW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_08_WIDE_DOG_PAD_VIA_SW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.23, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.45, 0.0); $$circle( "POWER", 0.000, 0.000, 0.65, 0.0); $$circle( "SOLDER_MASK", 0.000, 0.000, 0.35, 0.0 ); $$circle( "BREAKOUT_1", 0.400, 0.400, 0.38, 0.0); $$circle( "SOLDER_MASK_1", 0.400, 0.400, 0.48, 0.0); $$circle( "PASTE_MASK_1", 0.400, 0.400, 0.38, 0.0); $$path( "BREAKOUT_1", 0.300, , [ 0.400, 0.400, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_08_WIDE_DOG_PAD_VIA_NW Pin PadStack Pad with a Via 0.565685 mm to the North-West // -----------------------==== ---------- // When using the BGA_08_WIDE_DOG_PAD_VIA_NW pin padstack you must instance it with a // $$attribute( "COMPONENT_PIN_DEFINITION", ... // that has X,Y values shifted from the actual bga pad location. // // Specifically when using the BGA_08_WIDE_DOG_PAD_VIA_NW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.400 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.400 mm. $$create_pin("BGA_08_WIDE_DOG_PAD_VIA_NW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_08_WIDE_DOG_PAD_VIA_NW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.23, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.45, 0.0); $$circle( "POWER", 0.000, 0.000, 0.65, 0.0); $$circle( "SOLDER_MASK", 0.000, 0.000, 0.35, 0.0 ); $$circle( "BREAKOUT_1", 0.400, -0.400, 0.38, 0.0); $$circle( "SOLDER_MASK_1", 0.400, -0.400, 0.48, 0.0); $$circle( "PASTE_MASK_1", 0.400, -0.400, 0.38, 0.0); $$path( "BREAKOUT_1", 0.300, , [ 0.400, -0.400, 0.000, 0.000] ); //---------------------------------------------------------------------------- //----------------------------------------------------------------------------