// // File: hub_fpga_heat_sink // // Original Date: 12-Jan-2016 // Current Rev: 2-Jan-2017 // // // This is the geometry for the Heat Sink for the // Hub Module XCVU125-1FLVC2104I FPGA. // // // // This file also contains the STD_4_40_SCREW_PIN // pad-stack geometry. ------------------ // // // // This heat sink may be made from ATS Part No: ATS-EXL1-254-R0 // material. // // Currently I'm drawing this as a 120 mm x 120 mm square design. // // The ATS Part No: ATS-EXL1-254-R0 material is in a mix of // English and metric units. This geometry will be metric. // // From reading the ATS-EXL1-254-R0 data sheet: // // Overall Height is: 10 mm // Base Thickness is: 2 mm // This gives the Fin height of: 8 mm // Width is: 100 mm // Fin spacing: 2.05 mm (space between fins ?) // Number of fins: 40 (100mm/40 = 2.5mm) // Length of bar stock material: 254 mm // // // This geometry will be made with the fins vertical in Y // just as the part will be placed on the Hub circuit board. // // The 0,0 of this geometry is in the center of the heat sink. // // For now the center of the Hub's FPGA will be in the center // of this heat sink. // // This geometry will need to be placed in the Comps file // with the option that allows it to overlap other components. // // The 4-40 Drill Holes are not yet fully understood: // // - I'm placing 4 pinch mounting screws with one at the // center of each edge and located about 12 mm from // the FPGA's edge. // // - I'm placing 3 movement control screws at 3 of the // corners and putting them 5mm back from the corner. // // - It would be nice to aligned the screws along the // vertical gaps between the heat-sink fins. // // - Springs are used to control force in the 4 pinch // screws right around the FPGA. // // // Note that these 7 mounting screws are electrical pins // on this heat-sink component. A couple of these will be // tied to the Hub's signal ground plane through 100 Ohm // resistors. // // // // - 4-40 Button Head Screw Dimensions: // // Diameter of Threaded Section: 2.8 mm // Diameter of the Screw Head: 5.3 mm // Thickness of the Screw Head: 1.5 mm // // - The dimensions of the terminal pin pad-stack for // this screw are: // // Drill Hole Diameter: 3.0 mm // Pad Diameter: 6.0 mm // Solder Mask Opening Diameter: 6.2 mm // Plane Relief Diameter: 4.0 mm // Silkscreen circle Diameter: 9.0 mm // // - This is terminal pin pad-stack name: STD_4_40_SCREW_PIN // // // Heat Sink for the Hub UltraScale Virtex FPGA $abort_enable = @false; $$lock_windows(@on) ; $$snap_diagonal(@off) ; $$snap_orthogonal(@off) ; //---------------------------------------------------------------------------- // // Terminal Pad-Stack: STD_4_40_SCREW_PIN // $$create_pin("STD_4_40_SCREW_PIN", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$STD_4_40_SCREW_PIN']); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [ 3.00, 0.0 ]); $$circle( "PAD", 0.0, 0.0, 6.00, 0.0 ); $$circle( "SIGNAL", 0.0, 0.0, 6.00, 0.0 ); $$circle( "SOLDER_MASK", 0.0, 0.0, 6.20, 0.0 ); $$circle( "POWER", 0.0, 0.0, 4.00, 0.0 ); // Draw a Keep-Out circle of 4.50 mm radius. $$circle( "SILKSCREEN_1", 0.0, 0.0, 9.00, 0.20 ); $$circle( "SILKSCREEN_2", 0.0, 0.0, 9.00, 0.20 ); // Draw a hex nut based on 0.25" across flats. $$path( "SILKSCREEN_1", 0.20, , [ 0.00, 3.67, -3.17, 1.83 ]); $$path( "SILKSCREEN_1", 0.20, , [ -3.17, 1.83, -3.17, -1.83 ]); $$path( "SILKSCREEN_1", 0.20, , [ -3.17, -1.83, 0.00, -3.67 ]); $$path( "SILKSCREEN_1", 0.20, , [ 0.00, -3.67, 3.17, -1.83 ]); $$path( "SILKSCREEN_1", 0.20, , [ 3.17, -1.83, 3.17, 1.83 ]); $$path( "SILKSCREEN_1", 0.20, , [ 3.17, 1.83, 0.00, 3.67 ]); //---------------------------------------------------------------------------- $$create_component("HEAT_SINK_HUB", @replace); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'CO$HEAT_SINK_HUB'] ); $$point_mode(@vertex); $$attribute( "COMPONENT_LAYOUT_TYPE", "surface"); $$attribute( "COMPONENT_LAYOUT_SURFACE", "both"); $$attribute( "COMPONENT_HEIGHT", "", , @scale , , [ 10.0, 0.0 ]); $$attribute( "COMPONENT_NOT_IN_BOM" ); // // Component Placement Outline for the Hub FPGA Heat-Sink // $$initial([ -10.00, -10.00 ], , @nosnap ); $$terminal([ -10.00, 10.00 ] ); $$terminal([ 10.00, 10.00 ] ); $$terminal([ 10.00, -10.00 ] ); $$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale ); $$template_line_style( @Solid ); // // The full Basic Outline appears only on CONFORMAL_MASK // $$path( "CONFORMAL_MASK", 0.20, , [ -60.0, 60.0, 60.0, 60.0 ]); $$path( "CONFORMAL_MASK", 0.20, , [ -60.0, -60.0, 60.0, -60.0 ]); $$path( "CONFORMAL_MASK", 0.20, , [ -60.0, 60.0, -60.0, -60.0 ]); $$path( "CONFORMAL_MASK", 0.20, , [ 60.0, 60.0, 60.0, -60.0 ]); // Draft of what a Fin in the Center made with 5 Vertical lines //$$path( "CONFORMAL_MASK", 0.20, , [ 0.78, 50.0, 0.78, -50.0 ]); //$$path( "CONFORMAL_MASK", 0.20, , [ 0.39, 50.0, 0.39, -50.0 ]); //$$path( "CONFORMAL_MASK", 0.20, , [ 0.00, 50.0, 0.00, -50.0 ]); //$$path( "CONFORMAL_MASK", 0.20, , [ -0.39, 50.0, -0.39, -50.0 ]); //$$path( "CONFORMAL_MASK", 0.20, , [ -0.78, 50.0, -0.78, -50.0 ]); // // The 4 corners of the heat sink appear on the top Silkscreen // //top-left //$$path( "SILKSCREEN_1", 0.20, , [ -60.0, 60.0, -60.0, 55.0 ]); //$$path( "SILKSCREEN_1", 0.20, , [ -60.0, 60.0, -55.0, 60.0 ]); //top-right //$$path( "SILKSCREEN_1", 0.20, , [ 60.0, 60.0, 60.0, 55.0 ]); //$$path( "SILKSCREEN_1", 0.20, , [ 60.0, 60.0, 55.0, 60.0 ]); //bottom-left //$$path( "SILKSCREEN_1", 0.20, , [ -60.0, -60.0, -60.0, -55.0 ]); //$$path( "SILKSCREEN_1", 0.20, , [ -60.0, -60.0, -55.0, -60.0 ]); //bottom-right //$$path( "SILKSCREEN_1", 0.20, , [ 60.0, -60.0, 60.0, -55.0 ]); //$$path( "SILKSCREEN_1", 0.20, , [ 60.0, -60.0, 55.0, -60.0 ]); // Reference Designator is on the SILKSCREEN_1 Layer // but is not turned on. //$$text( "SILKSCREEN_1", "^$ref", 0.0, 0.0, 1.7, @CC, 0, 0.7, 0.20, "std", "None", 0.0, 0.0 ); // // The component pins // // // The mounting screws for this heat-sink are electrical pins // on this component. There are 4 mounting screws in close to // the BGA to clamp the heat-sink to the top of the FPGA. // There are 3 more mounting screws out at the perimeter of // heat-sink to act as Position Control Screws to limit the // motion of the heat-sink if something pushes against it. // The 4 Clamp Screws $$attribute( "COMPONENT_PIN_DEFINITION", "1", , @scale , , [ 35.00, 25.50 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "1, STD_4_40_SCREW_PIN"); $$attribute( "COMPONENT_PIN_DEFINITION", "2", , @scale , , [ 35.00, -25.50 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "2, STD_4_40_SCREW_PIN"); $$attribute( "COMPONENT_PIN_DEFINITION", "3", , @scale , , [ -35.00, 25.50 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "3, STD_4_40_SCREW_PIN"); $$attribute( "COMPONENT_PIN_DEFINITION", "4", , @scale , , [ -35.00, -25.50 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "4, STD_4_40_SCREW_PIN"); // The 3 Perimeter Position Control Screws //$$attribute( "COMPONENT_PIN_DEFINITION", "5", , @scale , , [ -55.00, 55.00 ]); //$$attribute( "COMPONENT_PADSTACK_OVERRIDE", "5, STD_4_40_SCREW_PIN"); //$$attribute( "COMPONENT_PIN_DEFINITION", "6", , @scale , , [ -55.00, -55.00 ]); //$$attribute( "COMPONENT_PADSTACK_OVERRIDE", "6, STD_4_40_SCREW_PIN"); //$$attribute( "COMPONENT_PIN_DEFINITION", "7", , @scale , , [ 55.00, -55.00 ]); //$$attribute( "COMPONENT_PADSTACK_OVERRIDE", "7, STD_4_40_SCREW_PIN");