# Semiconductor device fabrication ## Microsim ### Live player <div class="microsim-player"> <iframe src="https://editor.p5js.org/sciencenibber/full/kPAyXdn0U" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> </div> <div class="microsim-fallback"> <img src="Microsims/thumbs/Semiconductor_device_fabrication.png" alt="Semiconductor_device_fabrication microsim poster" style="width:100%;border:1px solid #4445;border-radius:6px;"> <p><em>Live microsim (desktop) · <a href="https://editor.p5js.org/sciencenibber/sketches/kPAyXdn0U">open sketch in the p5.js editor</a></em></p> </div> **Editor URL:** https://editor.p5js.org/sciencenibber/sketches/kPAyXdn0U **Description (100 words):** An 8-station [[Block_diagram|block diagram]] lays out a modern CMOS fab as a serpentine process chain: wafer load-lock, photolithography, plasma etch, ion implant, rapid thermal anneal, CVD/PECVD deposition, CMP planarize, and metallize/package. Each station is shaded by its per-wafer helium demand (orange = heavy, amber outline = some, grey = none); yellow wafer tokens slide arrow-by-arrow through the chain. Three sliders drive throughput in wafers per hour, He recovery fraction, and technology node from 180 nm down to 3 nm. The vertical bar on the right tracks bulk-cylinder He inventory: it stays full at high recovery and reddens as it drains when recovery is low. ```js // ===================================================================== // Semiconductor_device_fabrication.js -- Wikitube microsim // Article: Semiconductor_device_fabrication // en.wikitube.io/wiki/Semiconductor_device_fabrication // Room: Helium Pattern: G (block diagram / // system flow / // process chain) // --------------------------------------------------------------------- // Idea: render a modern CMOS fab as the 8-station process chain that // it physically is. The reader sees wafer "tokens" flow through the // chain in serpentine order, with each station coloured by whether // helium is consumed there and how much. // // Wafer-in --> Lithography --> Etch --> Implant // clean EUV 13.5 nm plasma RIE beamline // load-lock reticle scan He backside He purge // He purge (no He) cooling (vent) // // | // Final test v // <-- Metallization <-- CMP <-- Deposition <-- Anneal // He leak test chemical CVD / PECVD rapid thermal // packaging mechanical He carrier He ambient // planarize gas (option) // (no He) // // Two stations consume **a lot** of helium: Etch (backside wafer // cooling on the electrostatic chuck) and Deposition (PECVD carrier // and dilution). Three more consume **some**: load-lock purge, // implant beamline vent, anneal ambient, final leak test. // Photolithography and CMP consume essentially **none**. // // The canonical equation tying helium to fab yield is the gap- // conductance heat-transfer law for backside cooling: // // q = h_g * (T_chuck - T_wafer) with h_g ~ k * p_He // // In the molecular-flow regime (gap < mean free path), the heat- // transfer coefficient h_g is linear in helium pressure p_He. He-4 // has the highest molecular thermal conductivity of any gas in this // regime, which is why every plasma etch tool in the world flows He // underneath the wafer at 5-20 Torr -- nothing else cools fast // enough to keep photoresist intact during a high-power etch. // // Three sliders drive the diagram: // * throughput -- wafers/hour entering the fab (0..200) // * he_recovery -- closed-loop He recovery fraction (0..1) // * tech_node -- 180 nm .. 3 nm, recolours station "He demand" // since smaller nodes need MORE He per wafer // (more plasma steps, more PECVD layers) // // An "He inventory" gauge on the right tracks bulk-cylinder stock: // // dM/dt = M_recovered - M_vented // // where M_vented = M_used * (1 - he_recovery). Without recovery the // tank drains; with full recovery it holds steady; that contrast is // the visual punchline of the CHIPS-Act argument for closed-loop // helium in U.S. fabs. // // Visual layout (720 x 520 canvas): // * top-left: HUD title (TITLE 22pt) + URL subtitle (12pt dim) // * top-right: control hints // * y=110-260: top row (4 upstream stations, left-to-right) // * y=290-380: bottom row (4 downstream stations, right-to-left) // * right edge: He inventory gauge (vertical bar, 30 px wide) // * y=410-490: sliders + slider labels // * bottom-right: canonical gap-conductance equation // // Conventions (Wikitube Betterfire Standard v0): // * single ARTICLE constant at the top, single quotes // * p5.disableFriendlyErrors = true to keep editor console clean // * non-ASCII (Greek mu, dot-bullet, arrows, en-dash) lives in // COMMENTS ONLY; every text() string literal is ASCII // * Energy-room palette (P5_JS_EDITOR section 4): dark BG, // HOT/COLD tones, STRUCT grey, TRAJ accent // * every createSlider call has .position(x, y).size(w) // ===================================================================== const ARTICLE = 'Semiconductor_device_fabrication'; const TITLE = ARTICLE.replace(/_/g, ' '); p5.disableFriendlyErrors = true; // ----- Energy room palette (P5_JS_EDITOR section 4) ------------------ const BG = 18; const FG = 240; const DIM = [240, 240, 240, 140]; const HOT = [220, 110, 60]; // warm orange: heavy He demand const WARM = [200, 140, 80]; // medium He demand const COLD = [60, 130, 220]; // recovered He flow const STRUCT = [120, 130, 150]; // structural grey (no He) const TRAJ = [240, 220, 80]; // yellow tokens (wafers) const SCRATCH = [120, 120, 120, 90]; // dim grid / scratch const VENT = [220, 100, 100]; // red: vented He // ----- He demand classes (per-wafer, dimensionless) ------------------ // HEAVY = backside cooling or PECVD carrier; SOME = purge / ambient; // NONE = no helium consumed at this station. const HE_HEAVY = 1.00; const HE_SOME = 0.20; const HE_NONE = 0.00; // ----- Technology-node scaling --------------------------------------- // Smaller node => more plasma + PECVD steps per wafer => more He. // Values are multipliers on the per-station HE_* base demands. const NODES = [ { label: '180 nm', mult: 0.45 }, { label: '90 nm', mult: 0.65 }, { label: '45 nm', mult: 0.85 }, { label: '14 nm', mult: 1.10 }, { label: '7 nm', mult: 1.40 }, { label: '3 nm', mult: 1.80 } ]; // ----- He inventory tank (arbitrary units: full cylinder = 100) ------ const STOCK_MIN = 0; const STOCK_MAX = 100; const STOCK_INIT = 80; // ----- Sliders (created in setup) ------------------------------------ let throughputSlider; // wafers / hour, 0..200 let recoverySlider; // He recovery fraction, 0..1 let nodeSlider; // index into NODES // ----- Live state ---------------------------------------------------- let stock = STOCK_INIT; // He inventory (arbitrary 0..100) let tokens = []; // animated wafer tokens let tSinceWfr = 0; // accumulator for wafer spawn let heFlux = 0; // running ema of total He consumption // ----- Stations (block-diagram coords) ------------------------------- // Eight stations in serpentine order. The 'he' field is one of // HE_HEAVY / HE_SOME / HE_NONE -- this drives the box colour and the // per-wafer He charge for the inventory model. const STATIONS = [ // Top row: upstream, left-to-right { id: 'load', x: 30, y: 110, w: 150, h: 70, label: 'Wafer load-lock', sub: 'He purge, vacuum prep', he: HE_SOME }, { id: 'litho', x: 200, y: 110, w: 150, h: 70, label: 'Photolithography', sub: 'EUV 13.5 nm scan', he: HE_NONE }, { id: 'etch', x: 370, y: 110, w: 150, h: 70, label: 'Plasma etch', sub: 'He backside cooling', he: HE_HEAVY }, { id: 'imp', x: 540, y: 110, w: 140, h: 70, label: 'Ion implant', sub: 'beamline, He vent', he: HE_SOME }, // Bottom row: downstream, right-to-left (so chain snakes) { id: 'anneal', x: 540, y: 290, w: 140, h: 70, label: 'Rapid thermal anneal', sub: 'He ambient (option)', he: HE_SOME }, { id: 'dep', x: 370, y: 290, w: 150, h: 70, label: 'CVD / PECVD deposition', sub: 'He carrier and diluent', he: HE_HEAVY }, { id: 'cmp', x: 200, y: 290, w: 150, h: 70, label: 'CMP planarize', sub: 'slurry polish (no He)', he: HE_NONE }, { id: 'pkg', x: 30, y: 290, w: 150, h: 70, label: 'Metallize and package', sub: 'He leak test (mass-spec)', he: HE_SOME } ]; // ----- Arrow connectivity (process chain) ---------------------------- // Each arrow connects two stations in the serpentine order. The // vertical link from 'imp' down to 'anneal' is the row turn. const ARROWS = [ { from: 'load', to: 'litho' }, { from: 'litho', to: 'etch' }, { from: 'etch', to: 'imp' }, { from: 'imp', to: 'anneal' }, // vertical drop { from: 'anneal', to: 'dep' }, { from: 'dep', to: 'cmp' }, { from: 'cmp', to: 'pkg' } ]; // ===================================================================== // setup() // ===================================================================== function setup() { createCanvas(720, 520); pixelDensity(2); textFont('system-ui'); textAlign(LEFT, TOP); // Sliders: docked along the bottom in two columns. throughputSlider = createSlider(0, 200, 120, 5); throughputSlider.position(40, 430); throughputSlider.size(180); recoverySlider = createSlider(0, 100, 30, 1); recoverySlider.position(40, 462); recoverySlider.size(180); nodeSlider = createSlider(0, NODES.length - 1, 3, 1); nodeSlider.position(330, 462); nodeSlider.size(140); } // ===================================================================== // draw() // ===================================================================== function draw() { background(BG); // Read sliders once per frame. const throughput = throughputSlider.value(); // wafers/hour const recovery = recoverySlider.value() / 100; // 0..1 const nodeIdx = nodeSlider.value(); const node = NODES[nodeIdx]; // ---- Update He inventory ---------------------------------------- // Per-wafer He charge = sum of (he * node.mult) across stations. // Vented fraction = (1 - recovery). Token cadence drives flow rate. const dt = Math.min(deltaTime / 1000, 0.05); let perWaferHe = 0; for (const s of STATIONS) perWaferHe += s.he * node.mult; // Scale to a flux: throughput (wafers/hour) -> wafers/second. const wafersPerSec = throughput / 3600; const heUsed = perWaferHe * wafersPerSec; // units/sec used const heVented = heUsed * (1 - recovery); // Inventory drains by vented fraction; recovered He stays in tank. // Inflow is a small constant top-up to simulate fresh-He delivery, // tuned so the steady-state at full recovery sits near 80. const heTopUp = 0.30; // delivery rate stock += (heTopUp - heVented * 3.0) * dt; // scale for visibility stock = constrain(stock, STOCK_MIN, STOCK_MAX); // Smooth a running estimate of total He flow for the readout. heFlux = lerp(heFlux, heUsed, 0.08); // ---- Spawn wafer tokens at throughput-proportional cadence ------ tSinceWfr += deltaTime; // 200 wafers/hr -> one every 18s in real time; here we accelerate // by 100x so 200 w/hr -> one every 180 ms (readable, not frenetic). const cadence = throughput > 1 ? 36000 / throughput : 99999; if (tSinceWfr > cadence) { tSinceWfr = 0; spawnWafer(); } // ---- Draw the diagram ------------------------------------------- drawStations(node); drawArrows(); drawWafers(dt); drawHeGauge(); drawSliderLabels(throughput, recovery, node); drawHUD(); } // ===================================================================== // Stations (block diagram boxes) // ===================================================================== function drawStations(node) { push(); for (const s of STATIONS) { // Box colour by He demand class * node multiplier. const eff = s.he * node.mult; let fillC, strokeC; if (eff >= 0.80) { fillC = [HOT[0], HOT[1], HOT[2], 180]; strokeC = HOT; } else if (eff >= 0.15) { fillC = [WARM[0], WARM[1], WARM[2], 150]; strokeC = WARM; } else { fillC = [STRUCT[0], STRUCT[1], STRUCT[2], 70]; strokeC = STRUCT; } stroke(...strokeC); strokeWeight(1.5); fill(...fillC); rect(s.x, s.y, s.w, s.h, 6); // Label + sublabel. noStroke(); fill(FG); textAlign(CENTER, CENTER); textSize(13); text(s.label, s.x + s.w / 2, s.y + 22); fill(...DIM); textSize(10); text(s.sub, s.x + s.w / 2, s.y + 44); // Tiny He-demand pip in the lower-right corner of the box. drawHePip(s.x + s.w - 14, s.y + s.h - 12, eff); } pop(); } // Small triangle / square / dot in lower-right of each station // indicating per-wafer He demand. Heavy = filled square, some = open // square, none = a dim dash. function drawHePip(px, py, eff) { push(); noStroke(); if (eff >= 0.80) { fill(...HOT); rect(px - 5, py - 5, 10, 10, 1); } else if (eff >= 0.15) { noFill(); stroke(...WARM); strokeWeight(1.2); rect(px - 5, py - 5, 10, 10, 1); } else { fill(...DIM); rect(px - 5, py - 1, 10, 2, 1); } pop(); } // ===================================================================== // Arrows // ===================================================================== function drawArrows() { push(); noFill(); stroke(...STRUCT); strokeWeight(1.2); for (const a of ARROWS) { const [x1, y1, x2, y2] = arrowAnchors(a); drawArrowLine(x1, y1, x2, y2); } pop(); } function arrowAnchors(a) { const A = stationById(a.from); const B = stationById(a.to); // Vertical row-turn from implant down to anneal. if (a.from === 'imp' && a.to === 'anneal') { return [A.x + A.w / 2, A.y + A.h, B.x + B.w / 2, B.y]; } // Same-row horizontal arrows; direction follows x ordering. if (A.y === B.y) { if (A.x < B.x) { return [A.x + A.w, A.y + A.h / 2, B.x, B.y + B.h / 2]; } else { return [A.x, A.y + A.h / 2, B.x + B.w, B.y + B.h / 2]; } } return [A.x + A.w / 2, A.y + A.h / 2, B.x + B.w / 2, B.y + B.h / 2]; } function drawArrowLine(x1, y1, x2, y2) { line(x1, y1, x2, y2); const ang = Math.atan2(y2 - y1, x2 - x1); const ah = 8; push(); translate(x2, y2); rotate(ang); noStroke(); fill(...STRUCT); triangle(0, 0, -ah, -ah / 2, -ah, ah / 2); pop(); } // ===================================================================== // Animated wafer tokens // ===================================================================== // Each token represents one wafer (or a small batch). It progresses // through the chain by hopping arrow-to-arrow. While on an arrow it // has a 0..1 progress; on arrival, it advances to the next arrow // until it falls off the end. function spawnWafer() { tokens.push({ arrowIdx: 0, t: 0 }); } function drawWafers(dt) { push(); noStroke(); const speed = 0.45; // arrow fraction per second for (const tok of tokens) { tok.t += speed * dt; while (tok.t >= 1 && tok.arrowIdx < ARROWS.length - 1) { tok.t -= 1; tok.arrowIdx += 1; } if (tok.arrowIdx >= ARROWS.length - 1 && tok.t >= 1) continue; const a = ARROWS[tok.arrowIdx]; const [x1, y1, x2, y2] = arrowAnchors(a); const px = lerp(x1, x2, tok.t); const py = lerp(y1, y2, tok.t); // Wafer = small yellow disc with a darker rim. fill(...TRAJ); circle(px, py, 7); stroke(0, 0, 0, 100); strokeWeight(0.8); noFill(); circle(px, py, 7); noStroke(); } pop(); // GC: drop tokens that have rolled off the last arrow. tokens = tokens.filter(t => !(t.arrowIdx >= ARROWS.length - 1 && t.t >= 1)); } // ===================================================================== // He inventory gauge (right edge) // ===================================================================== function drawHeGauge() { const gx = 690; const gy = 110; const gw = 18; const gh = 260; push(); // Frame noFill(); stroke(...STRUCT); strokeWeight(1.2); rect(gx, gy, gw, gh, 4); // Fill level (cool blue when high; redshifts as it drops) const frac = (stock - STOCK_MIN) / (STOCK_MAX - STOCK_MIN); const fillH = gh * frac; noStroke(); const lowMix = constrain(1 - frac, 0, 1); const fr = lerp(COLD[0], VENT[0], lowMix); const fg = lerp(COLD[1], VENT[1], lowMix); const fb = lerp(COLD[2], VENT[2], lowMix); fill(fr, fg, fb, 200); rect(gx + 1, gy + gh - fillH + 1, gw - 2, fillH - 2, 3); // Numeric readout below the bar fill(FG); textAlign(CENTER, TOP); textSize(10); text(nf(stock, 1, 0) + '%', gx + gw / 2, gy + gh + 6); fill(...DIM); text('He', gx + gw / 2, gy + gh + 20); text('tank', gx + gw / 2, gy + gh + 32); // Ticks stroke(...DIM); strokeWeight(0.8); line(gx, gy, gx + gw, gy); line(gx, gy + gh / 2, gx + gw, gy + gh / 2); pop(); } // ===================================================================== // Slider labels // ===================================================================== function drawSliderLabels(throughput, recovery, node) { push(); noStroke(); // Throughput fill(FG); textAlign(LEFT, BOTTOM); textSize(11); text('Throughput', 40, 428); fill(...DIM); textAlign(LEFT, TOP); textSize(10); text(nf(throughput, 0, 0) + ' wafers / hour', 230, 432); // Recovery fill(FG); textAlign(LEFT, BOTTOM); textSize(11); text('He recovery fraction', 40, 460); fill(...DIM); textAlign(LEFT, TOP); textSize(10); text(nf(recovery * 100, 0, 0) + ' %', 230, 464); // Node selector fill(FG); textAlign(LEFT, BOTTOM); textSize(11); text('Technology node', 330, 460); fill(...TRAJ); textAlign(LEFT, TOP); textSize(11); text(node.label + ' (He x ' + nf(node.mult, 1, 2) + ')', 480, 463); // Flow readout fill(FG); textAlign(LEFT, BOTTOM); textSize(11); text('He demand', 330, 428); fill(...HOT); textAlign(LEFT, TOP); textSize(10); text(nf(heFlux * 60, 1, 2) + ' units / min', 410, 432); pop(); } // ===================================================================== // HUD (title + URL + controls + canonical equation) // ===================================================================== function drawHUD() { push(); // Top-left: title 22pt bright, subtitle 12pt dim. noStroke(); fill(FG); textAlign(LEFT, TOP); textSize(22); text(TITLE, 14, 12); fill(...DIM); textSize(12); text('Wikitube microsim . en.wikitube.io/wiki/' + ARTICLE, 14, 42); // Top-right: control hints. textAlign(RIGHT, TOP); fill(...DIM); textSize(10); text('drag throughput / recovery / node sliders', width - 14, 14); text('boxes redden as He demand rises', width - 14, 26); text('tank drains when recovery is low', width - 14, 38); // Bottom-right: canonical gap-conductance equation. textAlign(RIGHT, BOTTOM); fill(FG); textSize(13); text('q = h_g * (T_chuck - T_wafer), h_g ~ k * p_He', width - 14, height - 6); // Legend strip: HE_HEAVY / HE_SOME / HE_NONE swatches near top // centre so the colour code is self-explanatory. drawLegend(255, 70); pop(); } function drawLegend(lx, ly) { push(); noStroke(); // heavy fill(...HOT); rect(lx, ly, 12, 12, 1); fill(FG); textAlign(LEFT, CENTER); textSize(10); text('He heavy', lx + 16, ly + 6); // some noFill(); stroke(...WARM); strokeWeight(1.2); rect(lx + 90, ly, 12, 12, 1); noStroke(); fill(FG); text('He some', lx + 106, ly + 6); // none fill(...DIM); rect(lx + 180, ly + 4, 12, 4, 1); fill(FG); text('He none', lx + 196, ly + 6); pop(); } // ===================================================================== // Helpers // ===================================================================== function stationById(id) { for (const s of STATIONS) if (s.id === id) return s; return null; } // ===================================================================== // End of Semiconductor_device_fabrication.js -- Wikitube microsim, // Helium room, Pattern G (block diagram / system flow / process // chain). // ===================================================================== ``` ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Semiconductor_device_fabrication.json (2026-07-30T02:09:12Z) --> `1_nm_process` · `4000-series_integrated_circuits` · `6_μm_process` · `AMD` · `Acetone` · `American_Institute_of_Physics` · `AnandTech` · [[Antimony]] · `Applied_Materials` · [[Arsenic]] · `Arsine` · `Asia` · `Atomic_layer_deposition` · `Automatic_test_equipment` · `Autonetics` · `Ball_grid_array` · `Bipolar_junction_transistor` · `Boeing` · `Boule_(crystal)` · `Broadcom` · `Built-in_self-test` · `CMOS` · `California` · `Carl_Frosch` · `Chemical-mechanical_polishing` · `Chemical_vapor_deposition` · `Chih-Tang_Sah` · `Cleanroom` · `Computer_History_Museum` · `Contamination` · [[Copper]] · `Copper_interconnects` · `Crystal_growth` · `Die_(integrated_circuit)` · `Dopant` · `Doping_(semiconductor)` · `Dual_in-line_package` · `Dynamic_random-access_memory` · `EE_Times` · `Electrochemical_Society` · `Electroplating` · `Epitaxy` · `Etching_(microfabrication)` · `Europe` · `ExtremeTech` · `Fairchild_Semiconductor` · `Fan_filter_unit` · `Fin_field-effect_transistor` · `Flash_memory` · `Flip_chip` · `Foundry_model` · `Frank_Wanlass` · `Furnace_anneal` · `GlobalFoundries` · `Hydrofluoric_acid` · `Hydrogen_peroxide` · `Ingot` · `Integrated_circuit` · `Integrated_circuit_design` · `Integrated_circuit_packaging` · `Integrated_device_manufacturer` · `Intel` · `Interconnect_(integrated_circuits)` · `International_Technology_Roadmap_for_Semiconductors` · `Ion_implantation` · `Jean_Hoerni` · `Journal_of_Applied_Physics` · `KLA_Corporation` · `Lam_Research` · [[Lead]] · `List_of_semiconductor_scale_examples` · `MEMS` · `MOSFET` · `Metrology` · `Microcontroller` · `Microfabrication` · `Micrometre` · `Micron_Technology` · `Microprocessor` · `Middle_East` · `Monocrystalline_silicon` · `Moore's_law` · `Multigate_device` · `Nanoelectronics` · `Nitric_acid` · `North_American_Aviation` · `Operating_temperature` · `Oxide` · `Passivation_(chemistry)` · `Phosphine` · [[Phosphorus]] · `Photolithography` · `Photomask` · `Photoresist` · `Physical_vapor_deposition` · `Piranha_solution` · `Planar_process` · `Plasma_etching` · `Pressurization` · `Printed_circuit_board` · `Proceedings_of_the_IEEE` · `Qualcomm` · `RCA_Corporation` · `Random-access_memory` · `Refractive_index` · `STMicroelectronics` · `Samsung_Electronics` · `Scan_chain` · `Self-aligned_gate` · `Semiconductor` · `Semiconductor_Industry_Association` · [[Semiconductor_device]] · `Semiconductor_fabrication_plant` · `Semiconductor_industry` · `Shockley_Semiconductor_Laboratory` · `Silane` · [[Silicon]] · `Silicon_dioxide` · `Silicon_on_insulator` · `Silicon_on_sapphire` · `Solder` · `Soldering` · `Standard_cell` · `Sulfuric_acid` · `TSMC` · `Tape-automated_bonding` · `Texas` · `The_Washington_Post` · `Thermal_oxidation` · `Thermosonic_bonding` · `Three-dimensional_integrated_circuit` · `Through-silicon_via` · [[Tin]] · [[Transistor]] · `Transistor_count` · `Trichloroethylene` · `Trichlorosilane` · [[Tungsten]] · `Tungsten_hexafluoride` · `Ultrapure_water` · `United_States_Environmental_Protection_Agency` · `Wafer-level_packaging` · `Wafer_(electronics)` · `Wafer_bonding` · `Wafer_testing` · [[Wayback_Machine]] · `Wire_bonding` · `World_Economic_Forum` ## From the vault media library !Semiconductor device fabrication thumb.png *Semiconductor Device Fabrication — from the vault's own media holdings, placed 2026-07-09. MTN / Wikitube.io original · CC BY-SA 4.0.* <!-- LOCAL-MEDIA-PASS:END --> > **Room:** [[Helium]] · **Status:** ✅ shipped ## Overview **Semiconductor device fabrication** is the multi-stage photolithographic and chemical process that converts a polished single-crystal **silicon wafer** (or compound semiconductor substrate such as GaAs, GaN, or SiC) into integrated circuits or discrete devices. A modern logic flow at the 3 nm node may comprise **700–1500 sequenced unit steps** organized into recurring blocks: thermal oxidation; **photolithography** (now extreme-ultraviolet at 13.5 nm wavelength); plasma and reactive-ion **etch**; **ion implantation** for dopant placement; rapid thermal **anneal** and [[Diffusion|diffusion]]; chemical-vapor (CVD), atomic-layer (ALD), and physical-vapor (PVD) **deposition**; **chemical-mechanical planarization** (CMP); and [[Copper|copper]] or cobalt **metallization** through back-end-of-line interconnect stacks. The miniaturization trajectory — from the 10 μm node of 1971 to 3 nm in 2022 and 2 nm production in 2025 — is the empirical referent for **Moore's Law**, the observation that [[Transistor|transistor]] count per economically-fabricated die doubles roughly every two years. Fabrication occurs entirely inside **ISO-1 cleanrooms** in fabs costing $10–20 billion each, dominated globally by TSMC, Samsung, and Intel. **Helium** is a pervasive process gas: high-thermal-conductivity backside He cooling stabilizes wafer temperature on electrostatic chucks during plasma etch and PECVD; He [[Leak|leak]]-testing qualifies every vacuum chamber and gas line; He is a carrier and diluent in dry-etch chemistries; and gaseous He is the working fluid of cryopumps that maintain process-tool base pressure. The CHIPS Act of 2022 has driven a U.S. fab build-out conditioned on closed-loop helium recovery. ## See also - Room hub: [[Helium]] - p5.js Editor conventions: P5 JS EDITOR - Wiki root: MAIN --- *Scaffolded by `generative-microsim` from row 91 of the Helium sheet on 2026-05-12T10:25:57Z.* <!-- LOCAL-MEDIA-PASS:START --> <!-- CRAFT-LINK:START g12 --> *Built to the [[WT!P5_js_Microsim_Master_Class|p5.js Master Class]].* <!-- CRAFT-LINK:END --> <!-- SPINEPATH:BEGIN g20 — shortest chain of Wikipedia links between local articles to a Compendium Main article; do not hand-edit inside --> *Connected to the Apex Spine:* Semiconductor device fabrication → [[Silicon_dioxide|Silicon dioxide]] → [[Properties_of_water|Properties of water]] — [[WT!Thury_Hydrodynamics_Compendium|Compendium]] section 6, *Water*. <!-- SPINEPATH:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Semiconductor_device_fabrication) : [Wikitube](https://en.wikitube.io/wiki/Semiconductor_device_fabrication) ## Previous hub tags Tree parent: [[Hydrogen]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*