# 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).*