// file: flvc2104_rev__2__basic_structure.txt // // date: 30-Aug-2015 Original UltraScale Geometry // date: 29-Jan-2016 Rev 2 UltraScale Geometry // // // REV_2 of the FLVC2104 // -------------------------- // // // The intent of this REV_2 is described in aaa_readme_rev_2.txt // // // The overall orientation of this Rev 1 component geometry // is pin A1 in the North West corner, i.e. the standard // Xilinx view for this part. // // pin #1 corner --> A1 ... A46 // . . // . . // . . // BF1 ... BF46 // // // // The 46x46 array has 2116 pins but the flvc2104 package // does not have 3 pins in each corner. Thus there are // 2104 pins on this fpga package. 2116 - 12 = 2105. // // // A1, A2 ... A45, A46 // B1 B46 // . . // . . // . . // . . // BE1 BE46 // BF1, BF2 ... BF45, BF46 // // // Pin/Pad Stack names used in the FLVC2104 Geometry // // BGA_2104_SMD_PAD # SMD Pad Only on the Mentor PAD_1 layer // // BGA_2104_PAD_LONG_VIA_N # Pad on PAD_1 and via to the North // BGA_2104_PAD_LONG_VIA_NNE # Pad on PAD_1 and via to the North-North-East // BGA_2104_PAD_LONG_VIA_NE # Pad on PAD_1 and via to the North-East // BGA_2104_PAD_LONG_VIA_FNE # Pad on PAD_1 and via to the Far-North-East // BGA_2104_PAD_LONG_VIA_ENE # Pad on PAD_1 and via to the East-North-East // // BGA_2104_PAD_LONG_VIA_E # Pad on PAD_1 and via to the East // BGA_2104_PAD_LONG_VIA_ESE # Pad on PAD_1 and via to the East-South-East // BGA_2104_PAD_LONG_VIA_SE # Pad on PAD_1 and via to the South-East // BGA_2104_PAD_LONG_VIA_FSE # Pad on PAD_1 and via to the Far-South-East // BGA_2104_PAD_LONG_VIA_SSE # Pad on PAD_1 and via to the South-South-East // // BGA_2104_PAD_LONG_VIA_S # Pad on PAD_1 and via to the South // BGA_2104_PAD_LONG_VIA_SSW # Pad on PAD_1 and via to the South-South-West // BGA_2104_PAD_LONG_VIA_SW # Pad on PAD_1 and via to the South-West // BGA_2104_PAD_LONG_VIA_FSW # Pad on PAD_1 and via to the Far-South-West // BGA_2104_PAD_LONG_VIA_WSW # Pad on PAD_1 and via to the West-South-West // // BGA_2104_PAD_LONG_VIA_W # Pad on PAD_1 and via to the West // BGA_2104_PAD_LONG_VIA_WNW # Pad on PAD_1 and via to the West-North-West // BGA_2104_PAD_LONG_VIA_NW # Pad on PAD_1 and via to the North-West // BGA_2104_PAD_LONG_VIA_FNW # Pad on PAD_1 and via to the Far-North-West // BGA_2104_PAD_LONG_VIA_NNW # Pad on PAD_1 and via to the North-North-West // // // The tag "LONG" is referring to a via traversing all layers // while we may later use some "SHORT" vias traversing only the high speed layers // // The NNE, ENE, ESE, SSE, SSW, WSW, WNW, NNW padstacks are used for the // outer pins to pull their vias 0.3 mm further away from the periphery. // The via is offset from the SMD pad by 0.8 mm in one cardinal direction // (either X or Y) and offset by 0.5 mm in the other. // // The FNE, FSE, FSW, FNW padstacks are used for the corner pins // to pull their vias 0.3 mm further away from the periphery in both x and y // The via is offset from the SMD pad by 0.8 mm in both the X and Y directions. // // The N, W, S, E tags are for pin/pad stacks that have their via // offset in one of the cardinal direction by 0.8 mm. // // The NE, NW, SE, SW tags are for pin/pad stacks that have their via // via offset by 0.5 mm in both the X and Y directions to put the via // right in the center of the 4 surounding SMD pads. // //---------------------------------------------------------------------------- // // Introduction $abort_enable = @false; $$lock_windows(@on) ; $$snap_diagonal(@off) ; $$snap_orthogonal(@off) ; //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // // BGA_2104_SMD_PAD SMD Pad Only Pin/Pad Stack $$create_pin("BGA_2104_SMD_PAD", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$BGA_2104_SMD_PAD']); $$point_mode(@vertex); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); $$circle( "PAD_1", 0.000, 0.000, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.000, 0.000, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.000, 0.000, 0.40, 0.0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_N Pin PadStack Pad with a Via 0.80mm to the North // ----------------------=== ----- // When using the BGA_2104_PAD_LONG_VIA_N 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_2104_PAD_LONG_VIA_N pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_N"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_N'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "BREAKOUT_1", 0.000, -0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.000, -0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.000, -0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.000, -0.800, 0.000, 0.000] ); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_E Pin PadStack Pad with a Via 0.80mm to the East // ----------------------=== ---- // When using the BGA_2104_PAD_LONG_VIA_E 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_2104_PAD_LONG_VIA_E pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value $$create_pin("BGA_2104_PAD_LONG_VIA_E"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_E'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "BREAKOUT_1", -0.800, 0.000, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.800, 0.000, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.800, 0.000, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.800, 0.000, 0.000, 0.000] ); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_S Pin PadStack Pad with a Via 0.80mm to the South // ----------------------=== ----- // When using the BGA_2104_PAD_LONG_VIA_S 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_2104_PAD_LONG_VIA_S pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_S"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_S'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "BREAKOUT_1", 0.000, 0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.000, 0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.000, 0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.000, 0.800, 0.000, 0.000] ); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_W Pin PadStack Pad with a Via 0.80mm to the West // ----------------------=== ---- // When using the BGA_2104_PAD_LONG_VIA_W 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_2104_PAD_LONG_VIA_W pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value $$create_pin("BGA_2104_PAD_LONG_VIA_W"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_W'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "BREAKOUT_1", 0.800, 0.000, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.800, 0.000, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.800, 0.000, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.800, 0.000, 0.000, 0.000] ); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_NE Pin PadStack Pad with a Via 0.7071mm to the North-East // ----------------------==== ---------- // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_NE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.500 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_NE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_NE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", -0.500, -0.500, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.500, -0.500, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.500, -0.500, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.500, -0.500, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_SE Pin PadStack Pad with a Via 0.7071mm to the South-East // ----------------------==== ---------- // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_SE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.500 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_SE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_SE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", -0.500, 0.500, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.500, 0.500, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.500, 0.500, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.500, 0.500, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_SW Pin PadStack Pad with a Via 0.7071mm to the South-West // ----------------------==== ---------- // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_SW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.500 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_SW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_SW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", 0.500, 0.500, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.500, 0.500, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.500, 0.500, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.500, 0.500, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_NW Pin PadStack Pad with a Via 0.7071mm to the North-West // ----------------------==== ---------- // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_NW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.500 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_NW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_NW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", 0.500, -0.500, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.500, -0.500, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.500, -0.500, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.500, -0.500, 0.000, 0.000] ); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_FNE Pin PadStack Pad with a Via 1.1314mm to the Far-North-East // -----------------------==== -------------- // When using the BGA_2104_PAD_LONG_VIA_FNE 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_2104_PAD_LONG_VIA_FNE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_FNE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_FNE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", -0.800, -0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.800, -0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.800, -0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.800, -0.800, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_FSE Pin PadStack Pad with a Via 1.1314mm to the Far-South-East // -----------------------==== -------------- // When using the BGA_2104_PAD_LONG_VIA_FSE 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_2104_PAD_LONG_VIA_FSE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_FSE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_FSE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", -0.800, 0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.800, 0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.800, 0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.800, 0.800, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_FSW Pin PadStack Pad with a Via 1.1314mm to the Far-South-West // -----------------------==== -------------- // When using the BGA_2104_PAD_LONG_VIA_FSW 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_2104_PAD_LONG_VIA_FSW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_FSW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_FSW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", 0.800, 0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.800, 0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.800, 0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.800, 0.800, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_FNW Pin PadStack Pad with a Via 1.1314mm to the Far-North-West // -----------------------==== -------------- // When using the BGA_2104_PAD_LONG_VIA_FNW 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_2104_PAD_LONG_VIA_FNW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_FNW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_FNW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", 0.800, -0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.800, -0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.800, -0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.800, -0.800, 0.000, 0.000] ); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_NNE Pin PadStack Pad with a Via 0.9434mm to the North-North-East // -----------------------==== ---------------- // aka with a NE via shifted further North // When using the BGA_2104_PAD_LONG_VIA_NNE 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_2104_PAD_LONG_VIA_NE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_NNE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_NNE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", -0.500, -0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.500, -0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.500, -0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.500, -0.800, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_SSE Pin PadStack Pad with a Via 0.9434mm to the South-South-East // -----------------------==== ---------------- // aka with a SE via shifted further South // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_SE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_SSE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_SSE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", -0.500, 0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.500, 0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.500, 0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.500, 0.800, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_SSW Pin PadStack Pad with a Via 0.9434mm to the South-South-West // -----------------------==== ---------------- // aka with a SW via shifted further South // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_SW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_SSW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_SSW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", 0.500, 0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.500, 0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.500, 0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.500, 0.800, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_NNW Pin PadStack Pad with a Via 0.9434mm to the North-North-West // ----------------------==== ---------------- // aka with a NW via shifted further North // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_NW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.800 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_NNW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_NNW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", 0.500, -0.800, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.500, -0.800, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.500, -0.800, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.500, -0.800, 0.000, 0.000] ); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_ENE Pin PadStack Pad with a Via 0.9434mm to the East-North-East // -----------------------==== --------------- // aka with a NE via shifted further East // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_NE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.500 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.500 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_ENE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_ENE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", -0.800, -0.500, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.800, -0.500, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.800, -0.500, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.800, -0.500, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_ESE Pin PadStack Pad with a Via 0.9434mm to the East-South-East // -----------------------==== --------------- // aka with a SE via shifted further East // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_SE pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value plus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.500 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_ESE"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_ESE'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", -0.800, 0.500, 0.40, 0.0); $$circle( "SOLDER_MASK_1", -0.800, 0.500, 0.50, 0.0); $$circle( "PASTE_MASK_1", -0.800, 0.500, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [-0.800, 0.500, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_WSW Pin PadStack Pad with a Via 0.9434mm to the West-South-West // -----------------------==== --------------- // aka with a SW via shifted further West // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_SW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value minus 0.500 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_WSW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_WSW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", 0.800, 0.500, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.800, 0.500, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.800, 0.500, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.800, 0.500, 0.000, 0.000] ); //---------------------------------------------------------------------------- // BGA_2104_PAD_LONG_VIA_WNW Pin PadStack Pad with a Via 0.9434mm to the West-North-West // ----------------------==== --------------- // aka with a NW via shifted further West // When using the BGA_2104_PAD_LONG_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_2104_PAD_LONG_VIA_NW pin padstack // COMPONENT_PIN_DEFINITION X value = bga pad X value minus 0.800 mm. // COMPONENT_PIN_DEFINITION Y value = bga pad Y value plus 0.500 mm. $$create_pin("BGA_2104_PAD_LONG_VIA_WNW"); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$BGA_2104_PAD_LONG_VIA_WNW'] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [0.3, 0.0]); $$circle( "SIGNAL", 0.000, 0.000, 0.61, 0.0); $$circle( "POWER", 0.000, 0.000, 0.85, 0.0); $$circle( "BREAKOUT_1", 0.800, -0.500, 0.40, 0.0); $$circle( "SOLDER_MASK_1", 0.800, -0.500, 0.50, 0.0); $$circle( "PASTE_MASK_1", 0.800, -0.500, 0.40, 0.0); $$path( "BREAKOUT_1", 0.150, , [ 0.800, -0.500, 0.000, 0.000] ); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // Now start the actual description of the FLVC2104 Rev 2 $$create_component("FLVC_2104_Geom", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'CO$FLVC_2104_Geom']); $$point_mode(@vertex); $$attribute( "COMPONENT_HEIGHT", "1.20", , @scale , , [0.0, 0.0] ); // // Component Outline // $$initial([ 24.0, 24.0 ], , @nosnap ); $$terminal([ -24.0, 24.0 ]); $$terminal([ -24.0, -24.0 ]); $$terminal([ 24.0, -24.0 ]); $$terminal([ 24.0, 24.0 ]); $$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale ); // Horizontal Lines $$path( "SILKSCREEN_1", 0.25 , , [-23.00, 24.25, 23.00, 24.25] ); $$path( "SILKSCREEN_1", 0.25 , , [-23.00, -24.25, 23.00, -24.25] ); // Vertical Lines $$path( "SILKSCREEN_1", 0.25 , , [-24.25, 23.00, -24.25, -23.00] ); $$path( "SILKSCREEN_1", 0.25 , , [ 24.25, 23.00, 24.25, -23.00] ); // Diagonal Line $$path( "SILKSCREEN_1", 0.25 , , [-23.00, 24.25, -24.25, 23.00] ); $$text( "SILKSCREEN_1", "A1", -27.0, 23.0, 2.5, @BC, 0, 0.7, 0.25, "std", "None", 0.0, 0.0 ); $$text( "SILKSCREEN_1", "^$ref", 0.0, 26.0, 2.5, @BC, 0, 0.7, 0.25, "std", "None", 0.0, 0.0 ); // Setup the Local Fiducial Marks // // Place Local Fiducial Marks at: // the "pin #1" corner i.e. pin "A1" // and at the other 3 corners. $$circle( "PAD_1", 24.50, 24.50, 1.0, 0.0); $$circle( "SOLDER_MASK_1", 24.50, 24.50, 1.3, 0.0); $$circle( "PAD_1", 24.50, -24.50, 1.0, 0.0); $$circle( "SOLDER_MASK_1", 24.50, -24.50, 1.3, 0.0); $$circle( "PAD_1", -24.50, 24.50, 1.0, 0.0); $$circle( "SOLDER_MASK_1", -24.50, 24.50, 1.3, 0.0); $$circle( "PAD_1", -24.50, -24.50, 1.0, 0.0); $$circle( "SOLDER_MASK_1", -24.50, -24.50, 1.3, 0.0); // // Define a default Pad-Stack // $$attribute( "COMPONENT_DEFAULT_PADSTACK", "BGA_2104_SMD_PAD"); // // Now setup all of the pins in the FLVC2104 Geometry //