ViennaPS teaching example · updated

A simplified TSV traveler

Follow one simplified TSV cross-section from mask opening to polish. Saved ViennaPS simulations show what each step changes, what can fail, and what to measure.

This is a teaching model. Real TSV flows include more films, cleaning steps, and process controls.

What the current evidence says

The software can carry and measure geometry across the simplified traveler. It has not yet found or validated a complete TSV process window.

Improve the etchKeep the focused straight-wall region. Treat floor shape as the next separate objective.
Reduce copper void riskEstablish continuous deep seed and measured floor-faster-than-wall growth before adding more copper.
Finish the travelerResolve copper topology first. Then tune CMP using field clearance, plug loss, and stop loss together.

Practical next step: calibrate the model with split-wafer profile and growth measurements. Until then, the controls teach simulated mechanisms but do not define gas flow, plating current, or polish settings.

What we are modeling

A through-silicon via (TSV) is a vertical electrical connection through silicon. This model covers the steps that form its copper plug.

  1. 1. Open the mask
  2. 2. Etch the silicon
  3. 3. Coat the walls
  4. 4. Prepare for copper
  5. 5. Fill with copper
  6. 6. Polish the surface
Six major steps in the simplified TSV process A mask opening becomes a deep silicon via. The walls receive a liner and barrier with seed. Copper fills the opening before the surface is polished flat. Open mask Etch silicon Add liner Barrier + seed Fill copper Polish
The cross-section changes after each step.
Mask Silicon Liner Barrier + seed Copper
Inside this modelThe temporary mask is removed after etching. The liner is deposited next.
Later in fabricationWafer thinning exposes the bottom of the via. Wiring then completes the connection.
The model checks

Geometry and continuity

  • Shape and layer coverage
  • Voids and material connections
Outside this model

Fab settings and reliability

  • Gas flow, plating current, and polish pressure
  • Adhesion and stress; resistance and wafer behavior

PRESCRIBED GEOMETRY CONTROL · MEASUREMENT CHECK

How the measurement code checks a known geometry

The scripted control gives the measurement code one clear passing example: continuous layers, no resolved 2D void, and a connected plug after ideal planarization. This shows that the checks can recognize those simulated features. It does not show that a real fabrication tool would produce them.

Five simulated TSV cross-sections from etch through polish.
The gray tails below the floor come from the simulation boundary. They are not physical tips.

Stress-test the void measurement

These prescribed shapes test whether the code distinguishes an open cavity, a trapped void, and a joined copper region.

This is not process tuning. The surface speed is deliberately prescribed to create two different geometric outcomes.

Prescribed test shape
The browser renders saved surface nodes and edges. It does not invent intermediate shapes. Open the checkpoint data.
StepWhat happensPurpose in fabrication
1. Open the maskA pattern marks where the hole will be made.Sets the via's position and width.
2. Etch the siliconA deep hole is cut into the silicon.Creates the via and shapes its walls.
3. Coat the wallsAn insulating liner covers the inside surface.Keeps copper electrically isolated from silicon.
4. Prepare for copperA barrier and copper seed layer are added.The barrier slows copper migration. The seed gives plating a conductive surface.
5. Fill with copperCopper fills the coated hole.Creates the vertical electrical path.
6. Polish the surfaceExtra copper above the via is removed.Leaves a flat surface and a copper plug.

These known shapes test the geometry measurements. They do not show that a physical TSV recipe will produce the same result.

How the software works

ViennaPS is a process simulator. It calculates how material boundaries move under a chosen model. It does not emulate the control software of a specific fabrication tool.

ViennaPS stores each material interface as a level set. A process model supplies a local growth or removal speed. Some models use prescribed rates. Particle models instead trace many simulated paths, estimate where particles reach the surface, and use sticking or reflection rules to turn that arrival flux into surface motion.

The level-set solver advances the interfaces for the requested duration. The resulting geometry becomes the input to the next TSV step. Measurements such as depth, width, coating thickness, voids, and connectivity provide feedback for the next tested settings.

The ViennaPS process loop The current material geometry, model controls, and duration enter a process call. The call updates the geometry. Measurements guide the next tested model settings. Equipment calibration remains outside this loop. Current geometry Materials and boundaries Model + controls Rates, sticking, direction Duration How long the model runs ps.Process(...) .apply() Moves the boundaries Updated geometry Next-step input Measure Check and save Measurements guide the next tested model settings
Each step changes the material boundaries. build_screening_traveler.py runs the steps in sequence and records the measurements.
What the model provides

Geometry under declared rules

  • Surface motion from the selected rate or particle-transport model.
  • Material handoffs between simulated process steps.
  • Geometry measurements at the chosen grid and sampling settings.
What still needs calibration

A real equipment recipe

  • Gas flow, pressure, power, current, chemistry, or polishing settings.
  • Coefficients matched to wafer measurements.
  • Reactor-scale, electrical, thermal, stress, and full-wafer effects not included by the chosen models.

This tutorial uses a 2D trench-like surrogate. A cylindrical 3D via can change particle access and whether a void is truly connected.

Follow the saved results in process order

Mask → dry etch → liner → barrier → seed → copper → polish.

Each panel replays saved simulation output. The controls select an existing case; the browser does not rerun ViennaPS or invent a shape. A deterministic control lineage exists, but these sensitivity panels are not one calibrated candidate recipe. Open the saved step data.

Current handoff status: improve the etch floor, deep film coverage, and copper model before running a new end-to-end candidate.

Choosing a ray count for faster experiments

More rays mean more sampled particle paths and more computation. They do not automatically make every measured result more stable.

This is a numerical-setting search, not etch-process tuning. It compares five ray counts while holding the grid and process inputs fixed.

Takeaway: increasing rays mainly increased runtime in these saved cases. It did not steadily reduce run-to-run variation. Grid spacing changed the etched geometry enough that it must be checked separately.

The plots report runtime, repeat-to-repeat spread, and movement between ray levels. No ray count is treated as the correct answer.

Five ray counts on three etched shapes

Each shape was run with three random streams at 250, 500, 750, 1,000, and 2,000 rays. The grid and process inputs stay fixed within each shape.

Median wall time. Lower is faster.
Standard deviation across three random streams for the selected shape.
Median absolute movement from the previous ray level. It is not error against truth.

Choosing a grid spacing

Grid spacing controls how finely the profile is represented. Across a 0.30-wide opening, the four saved settings provide about 120, 60, 30, or 15 cells. More cells can resolve smaller shape changes, but they cost more time. This older study changes only the grid for one recipe; it does not identify a universally correct grid.

Typical saved wall time. The run count is shown below each setting. Lower is faster.

Read the two plots together: the left shows how the selected measurement moves; the right shows the runtime cost. Points are saved simulations from one research machine. Lines only connect tested settings.

What this study supports

The focused discovery data used grid spacing 0.0025 and 500 rays. These settings produced useful profiles quickly, but they are not approved as the general exploration setting. Phase B separately found categorical changes at 500 rays on a grid-0.005 panel. The two saved 500-to-1,000 comparisons below are observational; they do not confirm the published candidate.

Coarser gridGrid 0.0025 ran 3.6–5.0× faster than 0.00125 in two settings. Some measurements still moved, so this is local evidence only.
More rays1,000 rays took 2.0–2.3× longer than 500 in two pairs. It did not establish 1,000 as a confirmed setting.
Too coarseGrid 0.005 changed the selected width profile enough that this study stopped using it.

Next action: freeze and run a candidate-specific numerical check before choosing exploration and confirmation settings. These paired movements are not errors against ground truth. Open the focused observational review.

Citable five-level review and source hashes

Equipment controls, model controls, and feedback

Geometry inputs define the starting shape. Model inputs control simulated surface motion. Neither is a calibrated machine recipe.

StepEquipment controlsPhysical effectViennaPS representationMeasurement feedback
MaskFocus and dose; bake and develop; resist coatChanges opening size, height, and taperStarting opening geometryTop and bottom opening width; mask height
Silicon etchGas timing and flow; pressure; source power; bias; temperatureChanges removal, wall protection, and ion directionEffective rates, sticking, directionality, and durationDepth; top, middle, and bottom width; bow and scallop
LinerPrecursor exposure; pressure; temperature; plasmaChanges growth rate and transport into the viaDeposition amount, sticking, and source distributionField, wall, and floor thickness; continuity and opening
Barrier + seedTarget power; pressure; substrate bias; collimation; timeChanges arrival direction and deep coverageDeposition amount and arrival-direction fractionRegional thickness, continuity, and remaining opening
Copper fillCurrent waveform; additives; chemistry; temperature; agitationChanges suppression and floor-versus-wall growthCandidate transport and kinetic ratesOpen and sealed voids; seam history; copper above the surface
PolishPressure and speed; slurry; endpoint and overpolishChanges removal rate and material selectivityRemoval amount and relative material ratesField clearance; plug recess; stop loss; connectivity

Numerical settings: grid spacing sets geometric resolution. Ray count controls Monte Carlo sampling noise. A random seed selects a reproducible ray sample. None is a fab knob.

Qualitative influence only: the two middle columns are not a conversion table. Equipment settings change the physical process. Mapping them to model inputs requires measurements from a specific tool.

Shown in the tutorialMask geometry; six etch controls; liner dose and sticking; barrier/seed dose and directionality; reduced copper transport; CMP amount and selectivity.
Implemented but not fully shownMask erosion, breakthrough etch, reflection angle, model-family choices, additional copper coefficients, and height-dependent CMP.
Needs tool calibrationGas flow, pressure, power, bath chemistry, current waveform, pad conditions, and their mapping into model coefficients.

Coverage: the page teaches the main wired controls, not every ViennaPS input. Omitted controls need their own evidence before they become tutorial sliders.

How a model becomes useful for a real tool

The conversion is learned from wafer data. It is not read from the ViennaPS input value.

1. Split recipesVary a small set of pressure, power, gas, timing, or temperature controls.
2. Measure profilesRecord depth, widths, sidewall shape, floor shape, and repeat variation.
3. Fit model controlsFind the ViennaPS inputs that reproduce those measured profiles.
4. Test unseen recipesCheck the fitted mapping on wafer recipes that were not used for fitting.
5. Use within rangeOptimize only inside the calibrated recipe and geometry range.

Smart calibration: screen many candidate controls first. Fit only the influential ones. Use repeated measurements and hold back some recipes for validation. Report prediction error instead of calling the fit exact. This ViennaPS project has not yet received the wafer data needed to perform that calibration.

What a good etch result must report

A clean-looking outline is not enough. Keep the required measurements separate so one good number cannot hide another failure.

QuestionMeasurementsStatus here
Did it reach the intended depth?DepthCompared with an assumed teaching target
Did the width stay controlled?Top, middle, bottom, and minimum widthMeasured on both walls
Are the walls straight and balanced?Taper, bow, necking, scallop, and left/right symmetryMeasured; not calibrated fab limits
Is the base acceptable?Floor peak-to-valley, center relief, symmetry, and unresolved extremaDiagnostic only; still needs qualification
Can the result be trusted numerically?Measurement availability, repeats, grid check, and higher-ray movementScoped to the tested region

Important: the dashed rectangle is a teaching reference, not a fabrication specification. The current focused result has good depth and walls, but its rounded or uneven floor remains open work.

Where the etch measurements come from

The lines below are drawn over one saved ViennaPS profile. They show what depth and top, middle, and bottom width mean.

Saved ViennaPS profile. Lines show where each measurement is taken. Measurement definitions and evidence details.

Viewer scope: each sensitivity panel below uses its own controlled starting shape. Changing one panel does not change the next. No continuous passing traveler is claimed.

Step 1: Screen six dry-etch controls

Each line is one saved run in which six model controls changed together.

This 18-run design samples combinations efficiently instead of testing every possible combination. Select a line or scrub through the runs. The browser shows the exact saved profile; it does not interpolate or rerun ViennaPS.

The purpose is broad screening: identify which controls move depth, width, wall shape, and floor shape enough to deserve a smaller follow-up study. Initial etch time, passivation sticking, and ion reflection angle were held fixed. Cycle count, mask geometry, and mask erosion remain separate studies.

Action: inspect the nominated control pairs below. These rankings are descriptive because each combination has one random stream. Add repeats before treating a ranking as stable.

Open all 18 profiles, measurements, model settings, and source-row citations.

Step 2: Inspect four corners of a selected control pair

Saved sensitivity · one stream per case · not DOE · model units

Choose a factor pair, then inspect the four saved simulated profiles.

Choose two controls nominated for follow-up. Their four corners are low × low, low × high, high × low, and high × high. This makes the pair easier to interpret than the six-control screen. Each corner has one random stream, so it is visual sensitivity evidence, not a confirmed interaction estimate.

Equipment controlsPlasma and surface stateViennaPS model controlsSimulated profileGeometry measurements

Action: if a pair brackets a useful profile, add centre points and repeats inside that box. Then tune the smaller region and confirm the promoted setting independently.

Open the exported profiles and citations. The browser does not interpolate between the four sampled combinations.

Watch the via deepen over repeated etch cycles

Scrub through seven replayed checkpoints from one 500-ray run with a fixed random seed. Each frame shows the profile after a complete etch/passivation cycle.

The final frame matches the saved native checkpoint. There is no browser interpolation. Open the replay data and citations.

Step 3: Tune and repeat the promising region

Ion arrival direction and directional removal were changed together across nine saved settings.

Select a setting to view the exact simulated profile. The center was run three times. Other cells have one run, so they show direction but not repeatability.

Result: the repeated center stays near the target depth and its walls remain close to vertical.

Next action: optimize and repeat the floor-shape measurement separately. The saved floors remain rounded or uneven, so this is not yet the final etch profile.

Open all 12 raw profiles and source-row citations.

Explore copper filling

Copper can trap a void when the opening closes before the center fills.

Advanced: failure modes and tuning details

Potential failureAn opening that is too wide, too narrow, or tapered.
Machine controlsFocus and dose; bake and develop; resist coat.
ViennaPS controlsOpening width, mask height, and taper.
Possible downsideThe opening must expose enough silicon while protecting the surrounding surface.
Potential failureWrong depth, bowed walls, or a narrow neck.
Machine controlsSF6/C4F8 timing and flow; pressure; source power; bias; cycles.
ViennaPS controlsCycle count; phase times; effective rates; sticking; directionality.
Possible downsideFaster removal can deepen the via but make its walls harder to control.
Potential failureA thin floor coating or a narrowed opening.
Machine controlsPrecursor exposure; purge; pressure; temperature; plasma.
ViennaPS controlsDeposition amount and particle sticking.
Possible downsideMore coating improves thickness but leaves less room for copper.
Potential failureA thin or disconnected coating near the floor.
Machine controlsTarget power; pressure; substrate bias; collimation; time.
ViennaPS controlsDeposition amount and arrival-direction fraction.
Possible downsideBetter deep coverage can also narrow the copper opening.
Potential failureA center seam, trapped void, or early mouth closure.
Machine controlsCurrent waveform; additives; chloride; temperature; agitation.
ViennaPS controlsCandidate suppressor transport and floor-versus-wall growth.
Possible downsideMore wall growth closes the mouth sooner.
Potential failureCopper left on top or a recessed plug.
Machine controlsPressure and speed; slurry; endpoint; polish time.
ViennaPS controlsRemoval amount and relative material rates.
Possible downsideMore removal clears the surface but can cut into the plug.

What the saved experiments show

These are measured boundary examples. They are not yet full process-margin maps.

What the transport-based copper run shows

The coarse grid reports 97.4% copper by area and an opening-connected cavity. The last merger is only about two grid cells wide, so that topology is not accepted as converged.

All layers and model controls stay fixed. Scrub through eleven saved checkpoints.

Decision: nearly full by area, but not a confirmed fill. No resolved sealed void is detected at this checkpoint.

How to resolve it: rerun the same case with smaller grid cells and more checkpoints near closure. Call it void-free only if the cavity disappears without an unresolved merger and the result agrees at the two finest settings. Call it a void only if a sealed region persists with several cells across its smallest dimension.

Next process study: measure floor and wall growth across additive, current-waveform, and seed splits. Use those data to calibrate the growth model before extending copper time.

Core ViennaPS call used by this candidate model
params = ps.CopperSuppressionFillParams()
params.suppressorStickingProbability = sticking
params.suppressorSourcePower = source_power
model = ps.CopperSuppressionFill(params)
ps.Process(geometry, model, checkpoint_interval).apply()
See the complete parameter setup and checks
These are replayed surfaces from one reviewed coarse 2D run. Open the replay data and citations.

What the sampled copper settings show

Bottom-up fill needs less suppressor and faster copper growth at the floor.

Choose a depth and measurement. Then select one of the 21 saved transport samples. This is not a fitted response surface or a fill simulation.

Takeaway: every sampled suppressor ratio is at least 1.021. Bottom-up filling needs the floor to receive less suppressor than the lower wall, which means a ratio below 1.

Action: stop expanding this same two-control path. Calibrate a broader model using additive, current-waveform, and seed experiments.

Coupled inputs: adsorption strength was set to 0.25 divided by sticking in every case. The map therefore tests a held-product path, not two independent copper controls.

Via geometry
What to measure

Lower is better for suppressor transport. A ratio of 1.00 means equal flux at the floor and lower wall.

TUTORIAL

Explore the repository

The published guide and its derived JSON can be inspected after cloning the public repository.

git clone https://github.com/haomingkoo/ViennaPS-HBM.git
cd ViennaPS-HBM
python3 -m http.server 8000

Then open http://localhost:8000/explainer.html.

Read tsv_process.py on GitHub to see the process functions.

Reproduction: the public repository includes the tutorial data and selected native checkpoints. Rebuilding every historical campaign still requires external native artifacts identified by recorded hashes.

DATA

See the saved simulation output

The guide is built from checked-in JSON. Use it to inspect the values behind the plots and claims.

The phase-one download is retained only to audit withdrawn measurements and conclusions. Selected current checkpoints are public. Some large historical artifacts remain hash-referenced only.

WORKFLOW

A measure-run-update workflow

Every step needs a target and a measurement before its output moves downstream.

1. Define successChoose the target and the measurement that can detect failure.
2. Measure each stepCheck opening width and etch depth. Then check layer coverage, fill voids, and polish clearance.
3. Test both outcomesUse one known failure and one prescribed passing control.
4. Carry geometry forwardGive downstream comparisons the same upstream shape.
5. Repeat and mapControl random seeds. Then map where results change from pass to fail.
6. Update the modelChange the model when more tuning cannot represent the needed physics.

CD means critical dimension. Measure the etched via at three locations: top, middle, bottom.

SOURCES

How the sources shaped this lesson

Each source answers a different teaching question.

ViennaPS process API
Explains how this simulation changes a surface over time.
ViennaPS simulation domain
Explains how material geometry and interfaces are represented.
NIST TSV metrology
Explains why via shape, coating coverage, and copper voids must be checked.
NIST bottom-up Cu model
Explains why copper must grow in the right order to avoid a trapped void.
TU Wien Bosch simulation paper
Shows how Monte Carlo ray transport and level sets can evolve an etched profile.
IEEE TSV scallop study
Explains why etched-wall roughness can matter to later dielectric and barrier behavior.
ECS copper superfilling review
Explains accelerator-driven bottom-up copper growth and why simple conformal filling can pinch off.
Constrained search method
Motivates learning from expensive simulations while keeping pass/fail requirements separate.

The sources guide the lesson. They do not turn this simulation into a fab recipe.