HASL
/ˈhæsəl/
n. "Hot air solder leveling PCB finish dipping copper in molten SnPb/SAC305 then shearing excess via air knives unlike flat ENIG."
HASL, short for Hot Air Solder Leveling, immerses bare copper pads/traces in 250°C Sn63Pb37 or SAC305 bath followed by dual hot air knives (400°C, 50psi) shearing excess leaving 25-250μin uneven solder—protects Cu oxidation while ensuring reflow solderability for through-hole/SMT. Contrasts ENIG's atomically flat Au cap by creating solder protrusions (1-2mils high) problematic for 0.3mm BGA but cost-effective ($0.01/ft²); lead-free variant uses higher-melting SAC305 requiring 30°C hotter reflow profiles.
## Key Characteristics - Solder Thickness 25-250μin uneven topography from air knife shear angle. - Leaded 63/37 SnPb 183°C liquidus; Lead-free SAC305 217°C demands hotter profiles. - Air Knives dual opposed 400°C/50psi remove 95% excess solder in 50ms pass. - Shelf Life 12+ months; unlimited rework cycles as solder renews itself. - Cost Leader $0.01-0.02/ft² vs ENIG 5x premium.
-- HASL process monitor for PCB fab SPC
-- Tracks solder thickness uniformity post air knife
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity hasl_monitor is
port (
clk : in std_logic;
rst_n : in std_logic;
thickness_um : in integer range 0 to 500; -- XRF measurement μin
pass_fail : out std_logic
);
end entity;
architecture behavioral of hasl_monitor is
constant HASL_MIN : integer := 25; -- μin IPC-2221
constant HASL_MAX : integer := 250;
signal thickness_valid : std_logic := '0';
begin
process(clk, rst_n)
begin
if rst_n = '0' then
thickness_valid <= '0';
elsif rising_edge(clk) then
if thickness_um >= HASL_MIN and thickness_um <= HASL_MAX then
thickness_valid <= '1';
else
thickness_valid <= '0';
end if;
end if;
end process;
pass_fail <= thickness_valid;
end architecture;
Conceptually, HASL sacrifices ENIG planarity for infinite reworkability—solder volume renews itself across 10x thermal cycles while SerDes QSFP28 escapes HASL unevenness via land grid; lead-free SAC305 trades 5% higher dinoise for RoHS while wave-soldering THT survives HASL bridges that plague PAM4 BGAs backhauling Bluetooth piconets on budget fab runs.
ENIG
/ˈiː nɪdʒ/
n. "Electroless nickel immersion gold PCB surface finish protecting copper pads via Ni barrier + thin Au unlike HASL solder."
ENIG, short for Electroless Nickel Immersion Gold, plates 3-6μm mid-phosphorus nickel barrier over exposed copper followed by 0.05-0.2μm immersion gold—prevents Sn diffusion creating brittle Cu3Sn while ensuring wire bondability and solder wettability for BGA/LGA fine-pitch. Contrasts HASL's uneven tin-lead by providing flat coplanar surface ideal for SerDes 224Gbps transceivers where black pad (Ni-P hypercorrosion) risks assembly yield; Pd activator catalyzes electroless Ni without current.
Key Characteristics: Ni Barrier Layer 3-7μm 6-9% phosphorus prevents Cu-Sn diffusion, blocks oxidation. - Immersion Au Cap 0.05-0.23μm self-limits via Ni displacement, protects Ni 12+ months. - Black Pad Risk hypercorrosion at Ni/Au interface from excess P; mitigated by pH control. - IPC-4552 Spec Ni 120-240μin, Au 2.5-5μin; wire bond >30g force guaranteed. - Lead-Free Compliant RoHS alternative to HASL for BGA/ENIG fine-pitch 0.3mm.
-- ENIG process control parameters for PCB fab
-- Typical production recipe for SerDes HDI boards
library ieee;
use ieee.std_logic_1164.all;
package enig_params is
constant NI_THICKNESS_MIN : integer := 120; -- μin IPC-4552A
constant NI_THICKNESS_MAX : integer := 240;
constant AU_THICKNESS_MIN : integer := 3; -- μin
constant AU_THICKNESS_MAX : integer := 8;
constant NI_P_CONTENT : real := 0.07; -- 7% mid-P for ductility
constant BATH_PH_MIN : real := 4.5; -- Hypercorrosion control
constant BATH_PH_MAX : real := 5.2;
type pcb_zone_array is array (0 to 3) of integer;
constant ZONE_THICKNESS : pcb_zone_array := (150, 140, 155, 145);
function check_enig_ok (ni_um, au_um : integer; p_percent : real)
return boolean is
begin
return (ni_um >= NI_THICKNESS_MIN and ni_um <= NI_THICKNESS_MAX) and
(au_um >= AU_THICKNESS_MIN and au_um <= AU_THICKNESS_MAX) and
(p_percent > 0.06 and p_percent < 0.09);
end function;
end package;
Conceptually, ENIG sandwiches Cu-Ni-Au sandwich protecting SerDes QSFP-DD 400G transceivers from Sn whisker shorts while enabling flip-chip C4 bumps—Ni barrier blocks Cu electromigration into solder joints while Au ensures zero-oxide wetting during reflow. Hypercorrosion avoided via hypophosphite reduction balance; contrasts OSP organics by surviving 3x reflow cycles for PAM4 PHYs backhauling Bluetooth 240GHz aggregators on ENIG-clad 2.5D interposers.