Agentic PrimitivesAP

Study reproduced ·

Reproducing Johnson, Biegelsen and Moyer 1981: interface states and the Pb centre removed by low-temperature anneals and atomic deuterium

Johnson, Biegelsen and Moyer 1981: the sample and the timing of its process history as the paper states them, our encoding beside them item by item, the simulation in ISL, and how far it lands from the paper's numbers (2 within, 3 off, 8 not modelled).

Richard Pedersen · Agentic Trust Labs · Rich Canvas

One of the [studies we reproduced](/writing/interface-studies-reproduced) for [Questions we need Emily to answer](/writing/questions-for-emily-testing-a-theory-of-the-interface), the companion to [the essay](/writing/testing-a-theory-of-the-interface-with-an-ontology). Generated by `scripts/reproduce_studies.py` from `reproductions/johnson_1981.py`. Every value from the paper was read by an AI agent and has not been checked by a person; the sample and history were re-read from the PDF alone by a second agent that had not seen our earlier transcription.

The study and why we depend on it

N. M. Johnson, D. K. Biegelsen and M. D. Moyer, “Low-temperature annealing and hydrogenation of defects at the Si-SiO2 interface”, J. Vac. Sci. Technol. 19, 390-394 (1981).

One of the two papers the Quantum ESPRESSO calculation of Si• + ½H₂ → Si–H bears on most directly. It measures the interface spin centre (Pb, the dangling bond the calculation models) and the interface states on the same (111) oxide, after 15 min anneals in vacuum with and without aluminium, and after atomic deuterium. Its central result is that the Pb centre goes at a lower temperature (below 300 °C with aluminium) than the characteristic interface-state peak (above 400 °C), so Pb is not the peak. The project held only five sentences of it as unverified text values; nothing was scored against it before this page.

How well can this study be reproduced?

Low. The oxidation is stated by temperature, gas and thickness only (1000 °C, dry O2, 94 to 219 nm, no post-oxidation anneal, “rapidly cooled”); no oxidation time, no clean, no cooling rate. The anneals are stated (15 min in vacuum at each temperature; 400 °C 15 min and 450 °C 60 min for the capacitors), but not the vacuum pressure, the ramps, or whether the isochronal series is one specimen annealed in turn. The two hydrogen sources that drive the result, hydrogen released by the aluminium and atomic deuterium from a remote plasma, are described qualitatively: no flux, no pressure, no hydrogen content. The spin density is in arbitrary units except one absolute value (about 6×10¹¹ cm⁻² as oxidized).

Sample described1 of 6 properties we need are stated and encoded the same
History described2 of 8 steps are stated and encoded the same; 2 are stated by the paper and absent from our history; 3 are ours because the paper is silent
Timing0 of 2 simulated steps have a stated duration; 3 of 3 other steps have none; 6 timing gaps listed below
How the results are givenFigures only, except four sentences in the text (60% reduction at 400 °C; complete removal at 450 °C; onset of spin loss at 250 °C with Al and 400 °C without; 6×10¹¹ spins cm⁻² as oxidized). Fig. 1 and Fig. 2 read by eye here
Repeatability stated by the authorsNot stated; no error bars
Internal consistencyFair. The capacitors (116 nm) and the ESR wafers (200 nm) have different oxides. The text says “approximately 60%” for the 400 °C anneal; Fig. 1 reads 6.7 to 2.9×10¹² at the peak, 57%. Without aluminium and without hydrogen, a vacuum anneal above 500 °C removes the spin signal, which the paper does not explain and which runs opposite to Stesmans and Afanas'ev 1996
Is our model independent of this paper's data?Yes. The trap-density program was found and fitted on Vitkavage 1990, and its hydrogen barriers (passivation 1.66 eV, release 2.56 eV with 1.2×10¹² s⁻¹) are Brower's as quoted by Stesmans and Afanas'ev 1996; the equilibrium program is computed (Quantum ESPRESSO) and not fitted. Neither has seen this paper
Outcome2 of 13 numbers within tolerance

The grade is ours and is about the paper as a source for simulation, not about the quality of the experiment: high means the sample, every step and its timing are stated well enough that a simulation needs no choices of ours; moderate that some choices are ours and are listed; low that the result depends on choices the paper does not constrain.

The sample and its history, played back

The sample is drawn from the simulation: layer heights and the read-outs are what the ISL programs compute at each moment of the history. Steps the language cannot state (a clean, a metallization, a measurement) are on the clock and marked as recorded, not simulated.

SiAl 100 nm
Step 1 of 5 · recorded, not simulated
Pre-oxidation clean (not described)
temperature 25 °C
elapsed 0 s of 2 h 30 min
timing in the paper: not stated. not stated

not stated

The simulation at this moment
oxide thickness0 nm116
interface state density at midgap2.97×10¹¹ cm⁻² eV⁻¹2.50×10¹²
interface state density at 0.30 eV above the valence band– cm⁻² eV⁻¹6.60×10¹²
share of dangling bonds left uncapped at equilibrium (computed)– 1
right column: the paper, at the end of the history
CleanOxidation2.33 hCool10 minMetalDLTS10000 °CThe same history to true scale (2 h 30 min simulated). Steps with no stated duration take no width.Temperature through the history. Step widths grow with the logarithm of duration; the bar under each step is how well our encoding matches the paper.
Drag the sample to turn it. Click the clock to move through the history.Layer heights are the simulated thicknesses, drawn to one scale within the film; the substrate is cut short.

Does our sample and history match the paper's?

Left: the paper's own words, with the page of the PDF. Right: what we simulate. 3 same, 4 approximated, 5 assumed, 2 not in ours.

✓3 same≈4 approximated?5 assumed✕2 not in ours
Sample: what the paper saysWhat we simulate
Substrate
“The substrates were boron doped for p-type conductivity.” “(111)-oriented single-crystal silicon”
PDF p. 1
✓same
FAMILY: Si_Planar; ORIENTATION: Si111; DOPING: p_type_boron (recorded; no program reads it)
Capacitor substrate
“MOS capacitors fabricated on p-type epitaxial silicon, with degenerately doped (p+) substrates”
PDF p. 2
≈approximated
SUBSTRATE: p_epi_on_p_plus (recorded; no program reads it)
Epitaxial layer thickness and doping not stated.
ESR wafers
“For ESR measurements both surfaces of (111)-oriented silicon wafers were polished and oxidized.”
PDF p. 2
≈approximated
one interface
ESR counts both faces; the paper's spin density is per cm² of interface, presumably halved.
Oxide
116 nm (Fig. 1), 2000 Å (Fig. 2), 94 nm (Figs 5, 6), 219 nm (Fig. 4); dry O2 at 1000 °C, no post-oxidation anneal
PDF p. 1-4
?assumed
the 1965 growth law from bare silicon, time chosen for the thickness
Clean
not stated
PDF p. 1
?assumed
CLEAN: not_stated
Gate
aluminium, rf-induction evaporation, 1000 Å on the ESR wafers
PDF p. 1, p. 3
≈approximated
FILM: Al (recorded); EVENT Metal
No program reads a metal film or the hydrogen it releases.
History: what the paper saysWhat we simulate
Pre-oxidation clean (not described)
not stated
PDF p. 1
?assumed
CLEAN: not_stated
Dry oxidation at 1000 °C to 116 nm, no post-oxidation anneal
“Silicon-dioxide thin films were grown on (111)-oriented single-crystal silicon by furnace oxidation in dry O2 at 1000°C.” Fig. 1: “116 nm SiO2”
PDF p. 1, p. 2
?assumed
RUN Oxidation DURATION 8400 TEMP 1000->1000 AMBIENT dry_O2
Temperature and gas are stated; the time is not. Ours is the time the predictor's 1965 growth law needs for 116 nm at 1000 °C (2.3 h); the alignment searches it against the thickness.
Rapid cool to room temperature in the furnace gas
“The oxides did not receive a high-temperature postoxidation anneal and were rapidly cooled to room temperature in the furnace ambient.”
PDF p. 1
?assumed
RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2
“Rapidly” and “in the furnace ambient” are the paper's; the 10 min straight fall to 25 °C is ours.
Aluminium by rf-induction evaporation (MOS gate)
“Capacitors with the MOS structure were formed by vacuum evaporating aluminum with an rf-induction heated source. This evaporation source does not introduce radiation damage in the SiO2 layer”
PDF p. 1
✓same
not in our history: no program reads a metal film
Aluminium matters to this paper as a hydrogen source (the sinter releases hydrogen, p. 1); the language cannot say that, see the variant.
Current-transient DLTS, hole emission, σp = 5×10⁻¹⁴ cm² assumed
“the analysis assumed the value of 5 X 10^-14 cm2 for the hole capture cross section”; “Near the silicon midgap the DLTS measurement is influenced by minority-carrier … processes”
PDF p. 2
✓same
the observables Dit and Dit at 0.30 eV
The paper marks the curves near midgap as unreliable (dashed above about 0.62 eV).
Isochronal series
Fig. 2: “Vacuum Anneals (15 min)” at 30 to 600 °C, with Al, without Al, and after atomic D
PDF p. 3
≈approximated
one history per temperature, a single anneal each
Whether one specimen was annealed in sequence is not stated; in sequence the time at temperature would add up.
SIMS deuterium series
Figs 3-6: 94 and 219 nm oxides, deuteration at 25, 100, 230 °C for 30 min; post-deuteration vacuum anneals 15 min to 600 °C
PDF p. 3, p. 4
✕not in ours
not reproduced
No program has a hydrogen or deuterium concentration in the oxide.
Molecular deuterium control
“no accumulation was detected in oxides annealed under identical conditions in molecular deuterium”
PDF p. 3
✕not in ours
not reproduced
Only SIMS; the spin density after molecular D2 is not given.

The timing of the history

Time is counted from the start of the first simulated step. A step the language cannot state takes no simulated time; where the paper gives its duration, the duration is in the last column. Stated means the paper gives the duration; partly stated that it gives a bound or a range; not stated; assumed that the duration in our history is ours.

MOS capacitor, 116 nm, as oxidized

#StepStarts atLastsEnds atTemperatureRateGasIs the timing in the paper?
1Pre-oxidation clean (not described)0 snot simulatednot stated. not stated
2Dry oxidation at 1000 °C to 116 nm, no post-oxidation anneal0 s2 h 20 min2 h 20 min1000 → 1000 °Chelddry_O2not stated; assumed. Not stated; implied by the 116 nm thickness
3Rapid cool to room temperature in the furnace gas2 h 20 min10 min2 h 30 min1000 → 25 °C-1.62 °C/sdry_O2not stated; assumed. “rapidly”, no rate given
4Aluminium by rf-induction evaporation (MOS gate)2 h 30 minnot simulatednot stated
5Current-transient DLTS, hole emission, σp = 5×10⁻¹⁴ cm² assumed2 h 30 minnot simulatednot stated

Simulated time in this history: 2 h 30 min.

Across the samples

SampleOxidationCoolVacuumAnnealAtomicDeuteriumTotal
MOS capacitor, 116 nm, as oxidized2 h 20 min at 1000 °C10 min at 1000→25 °C––2 h 30 min
MOS capacitor, 116 nm, vacuum anneal 400 °C 15 min2 h 20 min at 1000 °C10 min at 1000→25 °C15 min at 400 °C–2 h 45 min
MOS capacitor, 116 nm, vacuum anneal 450 °C 60 min2 h 20 min at 1000 °C10 min at 1000→25 °C1 h 00 min at 450 °C–3 h 30 min
ESR wafer, 200 nm, with aluminium, vacuum 275 °C 15 min6 h 00 min at 1000 °C10 min at 1000→25 °C15 min at 275 °C–6 h 25 min
ESR wafer, 200 nm, with aluminium, vacuum 300 °C 15 min6 h 00 min at 1000 °C10 min at 1000→25 °C15 min at 300 °C–6 h 25 min
ESR wafer, 200 nm, with aluminium, vacuum 325 °C 15 min6 h 00 min at 1000 °C10 min at 1000→25 °C15 min at 325 °C–6 h 25 min
ESR wafer, 200 nm, without aluminium, vacuum 425 °C 15 min6 h 00 min at 1000 °C10 min at 1000→25 °C15 min at 425 °C–6 h 25 min
ESR wafer, 200 nm, without aluminium, vacuum 475 °C 15 min6 h 00 min at 1000 °C10 min at 1000→25 °C15 min at 475 °C–6 h 25 min
ESR wafer, atomic deuterium at 230 °C, then vacuum 600 °C 15 min6 h 00 min at 1000 °C10 min at 1000→25 °C15 min at 600 °C30 min at 230 °C6 h 55 min

Timing the paper does not give

  • Oxidation time for every oxide (116, 200, 94, 219 nm at 1000 °C): not stated.
  • Cooling after oxidation: “rapidly cooled to room temperature in the furnace ambient”, no rate or time.
  • Vacuum anneals: heat-up, cool-down and pressure not stated; only the 15 or 60 min hold.
  • Whether the isochronal anneals of Fig. 2 are on one specimen in sequence or one specimen per temperature: not stated.
  • Atomic deuteration of the ESR specimens: “identical conditions” to the SIMS specimens, whose Fig. 5 legend gives 30 min; D flux, chamber pressure and plasma power not stated.
  • Time between oxidation, aluminium evaporation and the anneals; how and when the aluminium was removed before ESR.

What the second reading changed

  • The project had no stored recipe for this paper: five sentences in data/primary_sources/johnson_biegelsen_moyer_1981_jvst_19_390/text_values_agent_read_UNVERIFIED.csv, no dataset, no script. Those five values agree with this reading.
  • That file reads “onset of spin-centre loss with aluminium … 250 C”; Fig. 2 shows the with-Al density still at 1.0 at 250 °C and falling between 275 and 350 °C. 250 °C is where the fall begins, not where it is half done.
  • The library note says the paper concerns “the dangling-bond centre removed by low-temperature anneals”. The removal without aluminium and without hydrogen above 400 °C in vacuum is in the paper (p. 2) and is unexplained there; it is opposite to Stesmans and Afanas'ev 1996, where a vacuum anneal of hydrogen-passivated (111) at 480-640 °C brings Pb back.
  • The as-oxidized Pb density here, about 6×10¹¹ cm⁻² (p. 2), is eight times below the natural Pb density Stesmans and Afanas'ev give for a similar (111) dry oxide after full dissociation, 4.7×10¹² cm⁻². Johnson's wafers were not annealed to dissociate hydrogen before measurement, so part of their Pb may have been hydrogen-passivated as grown; the paper does not say.
  • The evaluations/atomistic record lists this paper as giving a barrier for passivation or dissociation. It gives none: it reports temperatures at which signals disappear, in 15 min isochronal anneals, with no rate or activation energy.

Their terms and ours

The paper saysWe writeKind in our vocabularyNote
interface spin center; trivalent silicon defect bonded to three silicon atoms; g = 2.0015N_Pb (trap-density program, internal); N_free (equilibrium program)STATE; quantity density-of-dangling-bondsThe trap-density program reports N_Pb only through Dit = c_mid·N_Pb; the equilibrium program reports the share N_free. Neither reports a spin density in cm⁻².
spin density (arbitrary units)share of dangling bonds left uncapped (computed)observable Normalized_PbCompared as a share of the level before the loss; the paper's absolute scale is given only for the as-oxidized wafer.
interface-state distribution, characteristic peak 0.3 eV above EvDit_at_0p30eV_above_Evobservable (target: trap_density)The predictor gives a spectrum only after a hydrogen step (the shape of one Vitkavage curve).
interface states near midgap (DLTS, dashed)Ditobservable (target: trap_density)The paper warns that DLTS near midgap includes minority-carrier processes.
postmetallization anneal (PMA) in vacuoRUN VacuumAnneal … AMBIENT vacuuma RUN; process factor hydrogen-anneal (by the paper's mechanism) or inert-anneal (by its gas)The ontology has no way to say a step in vacuum delivers hydrogen from a film.
anneal in atomic deuterium (remote plasma)RUN AtomicDeuterium … AMBIENT vacuum (stand-in)no ambientMissing: an atomic hydrogen ambient with a flux.
aluminum overlayer releases hydrogen during sinter(none)no statementVariant: written as forming gas.
rapidly cooled in the furnace ambientRUN Cool … AMBIENT dry_O2a RUNRate not stated.
deuterium accumulation at the interface (SIMS)(none)no observableNo program carries hydrogen in the oxide.

The simulation in our language

Each sample is one history file: a SAMPLE and a CONTROL_TRAJECTORY. This is the whole input; run it with PYTHONPATH=. python -m isl_harness.predict <file>.

MOS capacitor, 116 nm, as oxidized

# MOS capacitor, 116 nm, as oxidized
SAMPLE Johnson_M0 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
    SUBSTRATE: p_epi_on_p_plus
    FILM: Al_gate
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 8400 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 3360..13440
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    EVENT Metal KIND metallization TIMING assumed                # Aluminium by rf-induction evaporation (MOS gate)
    EVENT DLTS KIND measurement TIMING assumed                   # Current-transient DLTS, hole emission, σp = 5×10⁻¹⁴ cm² assumed
}

MOS capacitor, 116 nm, vacuum anneal 400 °C 15 min

# MOS capacitor, 116 nm, vacuum anneal 400 °C 15 min
SAMPLE Johnson_M400 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
    SUBSTRATE: p_epi_on_p_plus
    FILM: Al_gate
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 8400 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 3360..13440
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    EVENT Metal KIND metallization TIMING assumed                # Aluminium by rf-induction evaporation (MOS gate)
    RUN VacuumAnneal DURATION 900 TEMP 400->400 AMBIENT vacuum TIMING stated
    EVENT DLTS KIND measurement TIMING assumed                   # Current-transient DLTS, hole emission, σp = 5×10⁻¹⁴ cm² assumed
}

MOS capacitor, 116 nm, vacuum anneal 450 °C 60 min

# MOS capacitor, 116 nm, vacuum anneal 450 °C 60 min
SAMPLE Johnson_M450 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
    SUBSTRATE: p_epi_on_p_plus
    FILM: Al_gate
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 8400 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 3360..13440
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    EVENT Metal KIND metallization TIMING assumed                # Aluminium by rf-induction evaporation (MOS gate)
    RUN VacuumAnneal DURATION 3600 TEMP 450->450 AMBIENT vacuum TIMING stated
    EVENT DLTS KIND measurement TIMING assumed                   # Current-transient DLTS, hole emission, σp = 5×10⁻¹⁴ cm² assumed
}

ESR wafer, 200 nm, with aluminium, vacuum 275 °C 15 min

# ESR wafer, 200 nm, with aluminium, vacuum 275 °C 15 min
SAMPLE Johnson_A275 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
    FILM: Al_100nm
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 21600 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 8640..34560
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    EVENT Metal KIND metallization TIMING assumed                # Aluminium by rf-induction evaporation, 1000 Å
    RUN VacuumAnneal DURATION 900 TEMP 275->275 AMBIENT vacuum TIMING stated
    EVENT Strip KIND etch TIMING assumed                         # Aluminium removed
    EVENT ESR KIND measurement TIMING assumed                    # ESR of the interface spin centre, g = 2.0015, B normal to the interface
}

ESR wafer, 200 nm, with aluminium, vacuum 300 °C 15 min

# ESR wafer, 200 nm, with aluminium, vacuum 300 °C 15 min
SAMPLE Johnson_A300 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
    FILM: Al_100nm
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 21600 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 8640..34560
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    EVENT Metal KIND metallization TIMING assumed                # Aluminium by rf-induction evaporation, 1000 Å
    RUN VacuumAnneal DURATION 900 TEMP 300->300 AMBIENT vacuum TIMING stated
    EVENT Strip KIND etch TIMING assumed                         # Aluminium removed
    EVENT ESR KIND measurement TIMING assumed                    # ESR of the interface spin centre, g = 2.0015, B normal to the interface
}

ESR wafer, 200 nm, with aluminium, vacuum 325 °C 15 min

# ESR wafer, 200 nm, with aluminium, vacuum 325 °C 15 min
SAMPLE Johnson_A325 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
    FILM: Al_100nm
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 21600 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 8640..34560
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    EVENT Metal KIND metallization TIMING assumed                # Aluminium by rf-induction evaporation, 1000 Å
    RUN VacuumAnneal DURATION 900 TEMP 325->325 AMBIENT vacuum TIMING stated
    EVENT Strip KIND etch TIMING assumed                         # Aluminium removed
    EVENT ESR KIND measurement TIMING assumed                    # ESR of the interface spin centre, g = 2.0015, B normal to the interface
}

ESR wafer, 200 nm, without aluminium, vacuum 425 °C 15 min

# ESR wafer, 200 nm, without aluminium, vacuum 425 °C 15 min
SAMPLE Johnson_N425 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 21600 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 8640..34560
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    RUN VacuumAnneal DURATION 900 TEMP 425->425 AMBIENT vacuum TIMING stated
    EVENT ESR KIND measurement TIMING assumed                    # ESR of the interface spin centre, g = 2.0015, B normal to the interface
}

ESR wafer, 200 nm, without aluminium, vacuum 475 °C 15 min

# ESR wafer, 200 nm, without aluminium, vacuum 475 °C 15 min
SAMPLE Johnson_N475 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 21600 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 8640..34560
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    RUN VacuumAnneal DURATION 900 TEMP 475->475 AMBIENT vacuum TIMING stated
    EVENT ESR KIND measurement TIMING assumed                    # ESR of the interface spin centre, g = 2.0015, B normal to the interface
}

ESR wafer, atomic deuterium at 230 °C, then vacuum 600 °C 15 min

# ESR wafer, atomic deuterium at 230 °C, then vacuum 600 °C 15 min
SAMPLE Johnson_D600 {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: not_stated
    DOPING: p_type_boron
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING assumed                        # Pre-oxidation clean (not described)
    RUN Oxidation DURATION 21600 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed VARY duration 8640..34560
    RUN Cool DURATION 600 TEMP 1000->25 AMBIENT dry_O2 TIMING assumed VARY duration 60..3600
    RUN AtomicDeuterium DURATION 1800 TEMP 230->230 AMBIENT vacuum TIMING bound
    RUN VacuumAnneal DURATION 900 TEMP 600->600 AMBIENT vacuum TIMING stated
    EVENT ESR KIND measurement TIMING assumed                    # ESR of the interface spin centre, g = 2.0015, B normal to the interface
}

Not scored: the paper's value is zero (no spin signal after any vacuum anneal up to 600 °C), which a relative tolerance cannot score. The trap-density program's release, which is Brower's (Ed 2.56 eV, 1.2×10¹² s⁻¹, as cited by Stesmans 1996), gives 84% of the sites back after 15 min at 600 °C from a passivated start; the paper sees none.

The programs the predictor ran on these histories: experiments/deal_qss/two_equilibria.isl.template, experiments/vitkavage_dit/oxide_growth.isl.template, scripts/search_growth.py (structure generated from the grammar), scripts/search_trap_density.py (structure generated from the grammar).

The model itself, scripts/search_trap_density.py, as it is written. Every equation the simulation uses is in this text; the runtime holds no physics.

#!/usr/bin/env python3
"""
Structure search for midgap trap density on planar silicon (Vitkavage 1990), with and without the hydrogen anneal.
What the measurements show before any model: the forming-gas anneal lowers the density 5 to 8 times on (100) but 10 to
29 times on (110), and on (110) the unannealed density does not fall with time at 1000 C while the annealed one does.
The grammar asks which structure accounts for that:
    one_population          sites relax with time at temperature; hydrogen caps them at one rate (the form used so far)
    orientation_passivation the same, with the hydrogen rate fitted for each orientation
    two_populations         a second population set at oxidation, per orientation, that hydrogen removes and time does not
    two_populations_T       the same, with the second population depending on oxidation temperature
Every candidate is an ISL program (kinds Relaxation and Passivation). Since 11 November every candidate also carries Brower's hydrogen
kinetics: the passivation rate changes with temperature by E_f = 1.66 eV about 400 C (where it is fitted), and capped sites release their
hydrogen at k_d0 exp(-E_d / kT) with E_d = 2.56 eV and k_d0 = 1.2e12 /s. Every scored anneal is at 400 C, where the release is negligible
(about 1e-8 /s), so the fit is unchanged; the history now matters (a hot step after the anneal brings Pb back). Split, fixed here: the 900 C recipes and the
8 h recipes are held out; everything else is fitted. (The earlier split held out the (511) orientation; a structure
with a number per orientation cannot be scored that way, so the split was changed and that is recorded here.)
The structure is chosen on training rows only: most passed, then fewest parameters, then smallest training error.
Output: evaluations/trap_density_search_report.json
"""
import json
import math
import os
import sys
import numpy as np
from scipy.optimize import least_squares
from isl_harness.isl_runtime import ISLRuntime
from scripts import run_vitkavage_dit as d
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
REPORT = os.path.join(ROOT, "evaluations", "trap_density_search_report.json")
K_B, T_REF = 8.617333262e-5, 1173.15
STRUCTURES = ("one_population", "orientation_passivation", "two_populations", "two_populations_T")
ORIENTATIONS = ("100", "110", "111", "511")
# name: (start, low, high)
BASE = {"log_N_born": (12.0, 10.5, 13.5), "log_N_floor": (11.3, 9.5, 12.5), "log_k_ref": (-4.0, -7.0, -1.0), "E_r": (2.0, 0.0, 4.0), "log_k_H": (-2.0, -4.0, 0.0)}

def parameters(structure): p = dict(BASE) if structure == "orientation_passivation": p.update({f"log_h_{o}": (0.0, -1.5, 1.5) for o in ORIENTATIONS[1:]}) if structure.startswith("two_populations"): p.update({f"log_B_{o}": (11.0, 9.0, 12.5) for o in ("100", "110", "511")}) # (111) has no unannealed measurement, so its second population cannot be fitted if structure.endswith("_T"): p["E_B"] = (0.5, 0.0, 2.0) return p

def program(structure, row, sha): o, two = row["orientation"], structure.startswith("two_populations") runs = [f" RUN Oxidation DURATION {row['t_ox_hr'] 3600.0:.1f} TEMP {row['T_ox_C']:.1f}->{row['T_ox_C']:.1f} AMBIENT dry_O2"] if row["anneal"] == "PMA": runs.append(" RUN PostMetalAnneal DURATION 1800.0 TEMP 400.0->400.0 AMBIENT forming_gas_H2") second = f""" STATE N_B {{ UNIT: cm^-2; INITIAL: B_unit exp(ln10 log_B) exp((E_B / k_B) (1 / T_ox - 1 / T_ref)); MIN: 0; MAX: 1.0e15 }} STATE N_BH {{ UNIT: cm^-2; INITIAL: 0; MIN: 0; MAX: 1.0e15 }} PARAMETER log_B {{ VALUE: 11.0; UNIT: 1; STATUS: fitted }} PARAMETER E_B {{ VALUE: 0.0; UNIT: eV; STATUS: fitted }} PARAMETER T_ox {{ VALUE: {row['T_ox_C'] + 273.15:.2f}; UNIT: K; STATUS: sourced; SOURCE: the temperature of the oxidation step in this recipe }} PARAMETER B_unit {{ VALUE: 1.0; UNIT: cm^-2; STATUS: constant }} # No source resolves how fast hydrogen removes this population; it is gone after the 30 min anneal in every sample. Its rate is given the # temperature dependence of Pb passivation (E_f), an assumption; no release of this population is written, since no source measures one. PARAMETER k_HB {{ VALUE: 1.0; UNIT: atm^-1 s^-1; STATUS: hypothesis }} OPERATOR F_SecondPopulationPassivation : Passivation {{ CONSERVATION: N_B + N_BH = const EQUATION: d(N_B)/dt = -k_HB exp(-(E_f / k_B) (1 / T - 1 / T_H)) p_H2 N_B EQUATION: d(N_BH)/dt = k_HB exp(-(E_f / k_B) (1 / T - 1 / T_H)) p_H2 N_B }}""" if two else "" return f"""# GENERATED by scripts/search_trap_density.py. Structure: {structure}. A candidate from the grammar; every rate and level is fitted. SAMPLE Wafer_{o}_{row['anneal']}_{row['T_ox_C']:.0f}C_{str(row['t_ox_hr']).replace('.', 'p')}h {{ FAMILY: Si_Planar; ORIENTATION: Si{o} }} STATE N_Pb {{ UNIT: cm^-2; INITIAL: g_or N_unit exp(ln10 log_N_born); MIN: 0; MAX: 1.0e15 }} STATE N_SiH {{ UNIT: cm^-2; INITIAL: 0; MIN: 0; MAX: 1.0e15 }} CONTROL T {{ UNIT: K }} CONTROL p_H2 {{ UNIT: atm }} PARAMETER log_N_born {{ VALUE: 12.0; UNIT: 1; STATUS: fitted }} PARAMETER log_N_floor {{ VALUE: 11.0; UNIT: 1; STATUS: fitted }} PARAMETER log_k_ref {{ VALUE: -4.0; UNIT: 1; STATUS: fitted }} PARAMETER E_r {{ VALUE: 2.0; UNIT: eV; STATUS: fitted }} PARAMETER log_k_H {{ VALUE: -2.0; UNIT: 1; STATUS: fitted }} PARAMETER log_h {{ VALUE: 0.0; UNIT: 1; STATUS: fitted }} PARAMETER g_or {{ VALUE: {d.G_OR[o]}; UNIT: 1; STATUS: sourced; SOURCE: Vitkavage, Irene and Massoud, ONR TR 34 (1990), Table VIII, ratio of silicon surface atom density to (100) }} PARAMETER c_mid {{ VALUE: 1.0; UNIT: eV^-1; STATUS: hypothesis }} PARAMETER N_unit {{ VALUE: 1.0; UNIT: cm^-2; STATUS: constant }} PARAMETER rate_unit {{ VALUE: 1.0; UNIT: s^-1; STATUS: constant }} PARAMETER H_unit {{ VALUE: 1.0; UNIT: atm^-1 s^-1; STATUS: constant }} PARAMETER T_ref {{ VALUE: {T_REF}; UNIT: K; STATUS: constant }} PARAMETER ln10 {{ VALUE: 2.302585092994046; UNIT: 1; STATUS: constant }} PARAMETER k_B {{ VALUE: 8.617333262e-5; UNIT: eV K^-1; STATUS: constant }} # Hydrogen and the Pb centre, from Brower's measurements as quoted by Stesmans and Afanas'ev 1996 (p. L505-L506). The passivation rate is fitted # at T_H, the 400 C of every scored anneal, so E_f sets only how it changes away from 400 C. The release (HPb -> Pb + H) is Brower's, prefactor and # energy both; Stesmans and Afanas'ev adopt the same prefactor without fitting it, so their release data stay an independent test. PARAMETER E_f {{ VALUE: 1.66; UNIT: eV; STATUS: sourced; SOURCE: Brower 1988 as quoted by Stesmans and Afanas'ev 1996 J. Phys. Condens. Matter 8 L505 p. L505, activation energy of Pb + H2 -> HPb + H }} PARAMETER T_H {{ VALUE: 673.15; UNIT: K; STATUS: constant }} PARAMETER E_d {{ VALUE: 2.56; UNIT: eV; STATUS: sourced; SOURCE: Brower 1990 as quoted by Stesmans and Afanas'ev 1996 J. Phys. Condens. Matter 8 L505 p. L506, activation energy of HPb -> Pb + H }} PARAMETER k_d0 {{ VALUE: 1.2e12; UNIT: s^-1; STATUS: sourced; SOURCE: Brower 1990 as quoted and adopted unfitted by Stesmans and Afanas'ev 1996 J. Phys. Condens. Matter 8 L505 p. L506, prefactor of HPb -> Pb + H }}{second} CONTROL_TRAJECTORY History {{ {chr(10).join(runs)} }} OPERATOR F_Relaxation : Relaxation {{ EQUATION: d(N_Pb)/dt = -rate_unit exp(ln10 log_k_ref) exp(-(E_r / k_B) (1 / T - 1 / T_ref)) (N_Pb - g_or N_unit exp(ln10 log_N_floor)) }} OPERATOR F_HydrogenPassivation : Passivation {{ CONSERVATION: N_Pb + N_SiH = const EQUATION: d(N_Pb)/dt = -H_unit exp(ln10 (log_k_H + log_h)) exp(-(E_f / k_B) (1 / T - 1 / T_H)) p_H2 N_Pb EQUATION: d(N_SiH)/dt = H_unit exp(ln10 (log_k_H + log_h)) exp(-(E_f / k_B) (1 / T - 1 / T_H)) p_H2 N_Pb }} OPERATOR F_HydrogenRelease : Passivation {{ CONSERVATION: N_Pb + N_SiH = const EQUATION: d(N_Pb)/dt = k_d0 exp(-E_d / (k_B T)) N_SiH EQUATION: d(N_SiH)/dt = -k_d0 exp(-E_d / (k_B T)) N_SiH }} OBSERVATION_MODEL Obs_Dit_Midgap {{ TARGET: Dit; UNIT: cm^-2 eV^-1; EQUATION: Dit = c_mid * ({'N_Pb + N_B' if two else 'N_Pb'}) }} EVALUATION_CONTRACT Contract {{ FROZEN: true DATASET: data/derived/vitkavage_1990_dit_midgap.csv DATASET_DIGEST: sha256:{sha} SPLIT: search TARGET: Dit = {row['Dit']:.4g} +/- {d.CONTRACT_TOLERANCE} rel }} """

def overrides(structure, x, names, orientation): v = dict(zip(names, [float(a) for a in x])) ov = {k: v[k] for k in BASE} ov["log_h"] = v.get(f"log_h_{orientation}", 0.0) if structure.startswith("two_populations"): ov["log_B"] = v.get(f"log_B_{orientation}", 0.0) # (111): no second population can be fitted; it is left out (zero is 1 per cm2) ov["E_B"] = v.get("E_B", 0.0) return ov

def split_of(row): return "holdout" if row["T_ox_C"] == 900 or row["t_ox_hr"] == 8.0 else "train"

def evaluate(structure): rows, sha = d.load_rows() pars = parameters(structure) names = list(pars) rts = [] for r in rows: rt = ISLRuntime() rt.parse_isl_source(program(structure, r, sha)) rts.append(rt) meas = np.array([r["Dit"] for r in rows]) train = [i for i, r in enumerate(rows) if split_of(r) == "train"] def predict(x, idx): out = [] for i in idx: try: out.append(next(iter(rts[i].execute_isl_evaluation(parameter_overrides=overrides(structure, x, names, rows[i]["orientation"]), base_dir=ROOT)["receipt"]["results"].values()))["pred"]) except Exception: out.append(float("nan")) return np.array(out) def residuals(x): p = predict(x, train) return np.where(np.isfinite(p) & (p > 0), np.log(np.maximum(p, 1.0) / meas[train]) / 0.10, 30.0) rng, best = np.random.default_rng(7), None lo, hi = [pars[n][1] for n in names], [pars[n][2] for n in names] for x0 in [[pars[n][0] for n in names]] + [[float(rng.uniform(a, b)) for a, b in zip(lo, hi)] for _ in range(5)]: f = least_squares(residuals, x0=x0, bounds=(lo, hi), diff_step=1e-2, max_nfev=60) if best is None or f.cost < best.cost: best = f pred = predict(best.x, range(len(rows))) samples = [{"orientation": r["orientation"], "anneal": r["anneal"], "T_ox_C": r["T_ox_C"], "t_ox_hr": r["t_ox_hr"], "split": split_of(r), "measured": r["Dit"], "predicted": float(p), "passed": bool(abs(p - r["Dit"]) <= d.CONTRACT_TOLERANCE * r["Dit"])} for r, p in zip(rows, pred)] out = {"structure": structure, "n_fitted": len(names), "fitted": dict(zip(names, [float(v) for v in best.x])), "samples": samples} for split in ("train", "holdout"): sel = [s for s in samples if s["split"] == split] err = [abs(s["predicted"] - s["measured"]) / s["measured"] for s in sel] out[split] = {"n": len(sel), "passed": sum(s["passed"] for s in sel), "within_25_percent": int(sum(e <= 0.25 for e in err)), "median_error": round(float(np.median(err)), 3)} return out

def run(workers=1): if workers > 1: import multiprocessing with multiprocessing.Pool(workers) as pool: results = pool.map(evaluate, STRUCTURES) else: results = [evaluate(s) for s in STRUCTURES] key = lambda r: (-r["train"]["passed"], r["n_fitted"], r["train"]["median_error"]) results.sort(key=key) report = {"what": "Structure search for midgap trap density on planar silicon, Vitkavage 1990. Candidates come from a grammar.", "data_verification": "Agent-transcribed values; four values ruled on by the project owner. Unverified otherwise.", "split": "held out: the 900 C recipes and the 8 h recipes; fitted: the rest. Changed from the earlier split (which held out (511)) because some structures have a number per orientation.", "selection_rule": "most training targets passed, then fewest parameters, then smallest training error; held-out scores are not used to choose", "selected": {k: v for k, v in results[0].items() if k != "samples"}, "ranking": [{k: v for k, v in r.items() if k != "samples"} for r in results], "samples_of_each": {r["structure"]: r["samples"] for r in results}} with open(REPORT, "w") as f: json.dump(report, f, indent=1) return report

if __name__ == "__main__": rep = run(int(sys.argv[sys.argv.index("--workers") + 1]) if "--workers" in sys.argv else 1) for r in rep["ranking"]: print(f" {r['structure']:26s} parameters {r['n_fitted']:2d} train {r['train']['passed']:2d}/{r['train']['n']} (25%: {r['train']['within_25_percent']}, median {r['train']['median_error']})" f" held-out {r['holdout']['passed']:2d}/{r['holdout']['n']} (25%: {r['holdout']['within_25_percent']}, median {r['holdout']['median_error']})") ```

Our simulation against the paper

2 within, 3 off, 8 not modelled of 13 numbers. Tolerance is stated per row; nothing was fitted for this page.

✓2 within tolerance✕3 outside∅8 not modelled
simulation below the paper ← 0 → simulation above the paper-100%-50%0%+50%+100%MOS capacitor, 116 nm, as oxidizedinterface state density at 0.30 eV above Ev (DLTS)no program · paper 6.60×10¹² cm⁻² eV⁻¹∅ not modelledMOS capacitor, 116 nm, as oxidizedinterface state density near midgap, 0.55 eV (DLTS)ours 1.06×10¹¹ · paper 2.50×10¹² cm⁻² eV⁻¹✕ outside (-96%)MOS capacitor, 116 nm, as oxidizedoxide thicknessours 115 · paper 116 nm✓ within tolerance (-1.0%)MOS capacitor, 116 nm, vacuum anneal 400 °C 1…interface state density at 0.30 eV above Ev (DLTS)no program · paper 2.55×10¹² cm⁻² eV⁻¹∅ not modelledMOS capacitor, 116 nm, vacuum anneal 400 °C 1…interface state density near midgap, 0.55 eV (DLTS)ours 1.06×10¹¹ · paper 1.30×10¹² cm⁻² eV⁻¹✕ outside (-92%)MOS capacitor, 116 nm, vacuum anneal 450 °C 6…interface state density at 0.30 eV above Ev (DLTS)no program · paper 3.50×10¹¹ cm⁻² eV⁻¹∅ not modelledMOS capacitor, 116 nm, vacuum anneal 450 °C 6…interface state density near midgap, 0.55 eV (DLTS)ours 1.06×10¹¹ · paper 7.40×10¹¹ cm⁻² eV⁻¹✕ outside (-86%)ESR wafer, 200 nm, with aluminium, vacuum 275…spin density (Pb), share of the level before the lossno program · paper 0.85 (Fig. 2 units)∅ not modelledESR wafer, 200 nm, with aluminium, vacuum 300…spin density (Pb), share of the level before the lossno program · paper 0.42 (Fig. 2 units)∅ not modelledESR wafer, 200 nm, with aluminium, vacuum 300…oxide thicknessours 201 · paper 200 nm✓ within tolerance (+0.6%)ESR wafer, 200 nm, with aluminium, vacuum 325…spin density (Pb), share of the level before the lossno program · paper 0.14 (Fig. 2 units)∅ not modelledESR wafer, 200 nm, without aluminium, vacuum …spin density (Pb), share of the level before the lossno program · paper 0.83 (Fig. 2 units)∅ not modelledESR wafer, 200 nm, without aluminium, vacuum …spin density (Pb), share of the level before the lossno program · paper 0.37 (Fig. 2 units)∅ not modelled
The pale green band is the tolerance. Bars past ±100% are cut and carry their value.
Sample and historyQuantityThe paperOur simulationDifferenceVerdictWhat the program's own evaluation saysWhere in the paper
MOS capacitor, 116 nm, as oxidizedinterface state density at 0.30 eV above Ev (DLTS)6.60e+12 cm⁻² eV⁻¹no programnot modelled (±15%)no programFig. 1, PDF p. 2, read by eye at 0.30 eV (the characteristic peak is at about 0.3 eV)
MOS capacitor, 116 nm, as oxidizedinterface state density near midgap, 0.55 eV (DLTS)2.50e+12 cm⁻² eV⁻¹1.06e+11 cm⁻² eV⁻¹-96%off (±15%)outside the tested scopeFig. 1, PDF p. 2, read by eye at 0.55 eV, the last solid part of the curve before the dashed region the paper calls unreliable
MOS capacitor, 116 nm, as oxidizedoxide thickness116 nm115 nm-1%within (±10%)supported within scopeFig. 1 legend, PDF p. 2: “116 nm SiO2”
MOS capacitor, 116 nm, vacuum anneal 400 °C 15 mininterface state density at 0.30 eV above Ev (DLTS)2.55e+12 cm⁻² eV⁻¹no programnot modelled (±15%)no programFig. 1, PDF p. 2, read by eye at 0.30 eV (the characteristic peak is at about 0.3 eV)
MOS capacitor, 116 nm, vacuum anneal 400 °C 15 mininterface state density near midgap, 0.55 eV (DLTS)1.30e+12 cm⁻² eV⁻¹1.06e+11 cm⁻² eV⁻¹-92%off (±15%)outside the tested scopeFig. 1, PDF p. 2, read by eye at 0.55 eV, the last solid part of the curve before the dashed region the paper calls unreliable
MOS capacitor, 116 nm, vacuum anneal 450 °C 60 mininterface state density at 0.30 eV above Ev (DLTS)3.50e+11 cm⁻² eV⁻¹no programnot modelled (±28.6%)no programFig. 1, PDF p. 2, read by eye at 0.30 eV (the characteristic peak is at about 0.3 eV)
MOS capacitor, 116 nm, vacuum anneal 450 °C 60 mininterface state density near midgap, 0.55 eV (DLTS)7.40e+11 cm⁻² eV⁻¹1.06e+11 cm⁻² eV⁻¹-86%off (±15%)outside the tested scopeFig. 1, PDF p. 2, read by eye at 0.55 eV, the last solid part of the curve before the dashed region the paper calls unreliable
ESR wafer, 200 nm, with aluminium, vacuum 275 °C 15 minspin density (Pb), share of the level before the loss0.85 (Fig. 2 units)no programnot modelled (±10%)no programFig. 2, PDF p. 3, read by eye; arbitrary units in which the level before the loss is 1 (the as-oxidized point at 30 °C reads 0.86)
ESR wafer, 200 nm, with aluminium, vacuum 300 °C 15 minspin density (Pb), share of the level before the loss0.42 (Fig. 2 units)no programnot modelled (±10%)no programFig. 2, PDF p. 3, read by eye; arbitrary units in which the level before the loss is 1 (the as-oxidized point at 30 °C reads 0.86)
ESR wafer, 200 nm, with aluminium, vacuum 300 °C 15 minoxide thickness200 nm201 nm+1%within (±10%)supported within scopeFig. 2 legend, PDF p. 3: “SiO2: 2000Å”
ESR wafer, 200 nm, with aluminium, vacuum 325 °C 15 minspin density (Pb), share of the level before the loss0.14 (Fig. 2 units)no programnot modelled (±21.4%)no programFig. 2, PDF p. 3, read by eye; arbitrary units in which the level before the loss is 1 (the as-oxidized point at 30 °C reads 0.86)
ESR wafer, 200 nm, without aluminium, vacuum 425 °C 15 minspin density (Pb), share of the level before the loss0.83 (Fig. 2 units)no programnot modelled (±10%)no programFig. 2, PDF p. 3, read by eye; arbitrary units in which the level before the loss is 1 (the as-oxidized point at 30 °C reads 0.86)
ESR wafer, 200 nm, without aluminium, vacuum 475 °C 15 minspin density (Pb), share of the level before the loss0.37 (Fig. 2 units)no programnot modelled (±10%)no programFig. 2, PDF p. 3, read by eye; arbitrary units in which the level before the loss is 1 (the as-oxidized point at 30 °C reads 0.86)

Aligning the simulation: what the unstated things would have to be

Every step whose timing or temperature the paper leaves open carries a range in the history above (VARY). scripts/align_study.py searched those ranges against the paper's numbers through the same predictor, first one unknown at a time, then all together. No parameter a program declares fitted was touched. There are no held-out samples here: the unknowns were chosen on the same numbers they are scored on, so the aligned score is an upper bound, not a test.

UnknownWhat the paper saysRange searchedThe reproduction usedBest aloneScore at the reproduction's valueBest score alone
Dry oxidation at 1000 °C to 116 nm, no post-oxidation anneal: duration (mos)Not stated; implied by the 116 nm thickness3360 to 13440 s8400 s8400 s2 of 13 within tolerance, median error 85.7%2 of 13 within tolerance, median error 85.7%
Rapid cool to room temperature in the furnace gas: duration (mos)“rapidly”, no rate given60 to 3600 s600 s60 s (flat: the data do not constrain it)2 of 13 within tolerance, median error 85.7%2 of 13 within tolerance, median error 85.6%
Dry oxidation at 1000 °C to 200 nm, no post-oxidation anneal: duration (esr)Not stated; implied by the 116 nm thickness8640 to 34560 s21600 s21600 s2 of 13 within tolerance, median error 85.7%2 of 13 within tolerance, median error 85.7%
Rapid cool to room temperature in the furnace gas: duration (esr)“rapidly”, no rate given60 to 3600 s600 s600 s (flat: the data do not constrain it)2 of 13 within tolerance, median error 85.7%2 of 13 within tolerance, median error 85.7%

Together: Oxidation duration 8400 s (was 8400); Cool duration 60 s (was 600); Oxidation duration 21600 s (was 21600); Cool duration 600 s (was 600).

As reproduced: 2 of 13 within tolerance, median error 85.7%. Aligned: 2 of 13 within tolerance, median error 85.6%.

Choices of program or material property, each scored on its own and on top of the aligned history:

VariantAloneWith the aligned history
aluminium as a hydrogen source, written as forming gas during its anneal2 of 13 within tolerance, median error 97.9%2 of 13 within tolerance, median error 97.9%
atomic deuterium written as molecular hydrogen (pure H2)2 of 13 within tolerance, median error 85.7%2 of 13 within tolerance, median error 85.6%
both stand-ins2 of 13 within tolerance, median error 97.9%2 of 13 within tolerance, median error 97.9%

Four unknowns were declared: the oxidation time and the cool after oxidation, each shared within one batch (the 116 nm capacitor oxide and the 200 nm ESR oxide). Three variants try the only ways the language has to put hydrogen where the paper puts it: the aluminium written as forming gas during its anneal, the atomic deuterium written as molecular H₂, and both. No sample is held out: the unknowns were chosen on the same 13 numbers they are scored on, so the aligned count is an upper bound.

As reproduced: 2 of 13 within tolerance (median error 85.7%). Aligned: 2 of 13 (85.6%). The two are the oxide thicknesses, and the oxidation times were set from the predictor's own growth law for those thicknesses, so neither is a test. No number about interface states or Pb is reproduced, as stated or aligned.

The unknowns. The thicknesses pin the oxidation times at the values assumed (2.3 h for 116 nm, 6 h for 200 nm at 1000 °C). Over its range the oxidation time moves the trap-density program's as-oxidized density between about 7×10¹⁰ and 1.9×10¹¹ cm⁻² eV⁻¹, 13 to 35 times below the paper's DLTS, so no value brings a row within tolerance. No program changes Pb or interface states in a 15 or 60 min vacuum anneal at 275 to 475 °C (the trap program's relaxation has a rate of about 2×10⁻¹⁰ s⁻¹ at 475 °C). The cool after oxidation is flat.

Aluminium as forming gas (2 of 13, median 97.9%). The interface-state spectrum appears, at a twentieth of the paper's level after 400 °C (1.1×10¹¹ against 2.55×10¹² cm⁻² eV⁻¹ at 0.30 eV; the trap program removes 32% there, the temperature its H₂ rate was fitted at) and at a four-thousandth after 450 °C for 60 min (9.3×10⁷ against 3.5×10¹¹: at 450 °C Brower's 1.66 eV makes the rate 7.2 times faster and it removes 99.94%). Before any anneal the program has 1.1×10¹¹ cm⁻² eV⁻¹ near midgap where the paper's DLTS has 2.5×10¹² at 0.55 eV. On the ESR wafers the equilibrium program leaves 3×10⁻⁸ to 3×10⁻⁷ of the Pb uncapped at 275 to 325 °C (and would at 30 °C); the paper has 0.85, 0.42 and 0.14. The trap program, whose H₂ rate is fitted at 400 °C and carries Brower's 1.66 eV away from it, removes 0.06%, 0.26% and 1.1% of its sites at 275, 300 and 325 °C. Its rate rises by a factor of 4.1 to 4.6 per 25 °C, which is the shape the measured fall from 0.85 to 0.14 over 50 °C needs, but 15 min in forming gas (0.1 atm H₂) is 180 to 330 times too slow to give it (in rate, against −ln of the measured shares). That is the paper's point: the aluminium supplies atomic hydrogen, which caps Pb without the 1.66 eV of H₂ dissociating at the bond.

Atomic deuterium as H₂. Nothing scored changes (the deuterated sample's value is zero and is not scored). The history runs: after 30 min at 230 °C the equilibrium program has Pb capped (equilibrium share 10⁻⁹), as the paper finds; the paper also says molecular deuterium under the same conditions put no deuterium at the interface, so this is the right answer by a route the paper rules out. The trap program agrees with the paper's control instead: at 230 °C its H₂ rate is 6×10⁻⁵ of the 400 °C value and it caps 0.06% of its sites. Then 15 min at 600 °C in vacuum: the equilibrium program's placeholder rate gives 26% of the Pb back; the trap program's release, Brower's measured dissociation (2.56 eV, 1.2×10¹² s⁻¹, quoted by Stesmans 1996), gives 84% back from a passivated start (40 min in H₂ at 405 °C, then this anneal: 5.1×10⁶ to 4.5×10¹⁰ of 5.3×10¹⁰ cm⁻² eV⁻¹); Stesmans's own fit with its spread gives 53%. The paper sees none.

Against the computed reaction energies. This paper measures no rate and no activation energy, only temperatures at which signals go in 15 min. Its three hydrogen results set against the Quantum ESPRESSO numbers: (1) Atomic deuterium removes Pb at 230 °C. Capping by a free atom is downhill by the full bond energy, 3.54 eV (slightly more for Si–D, whose zero-point energy is smaller), with no barrier needed: consistent. (2) Molecular hydrogen from the aluminium removes Pb only between 250 and 350 °C. Capping from H₂ is downhill by 1.28 eV, so equilibrium is not what holds it back below 250 °C (equilibrium leaves 10⁻¹⁷ uncapped at 30 °C); a barrier is. (3) After deuteration, 600 °C does not bring Pb back. Equilibrium in vacuum is all uncapped, so this, too, is kinetic, and it is slower than any dissociation rate in the literature the project holds. The equilibrium bound is consistent with every Pb density this paper reports and decides none of them.

Heating and cooling transitions (section below). The four assumed heat-up and cooling scenarios leave the count at 2 of 13; the cold-furnace ramp moves 3 of 13 numbers by more than 2% (the thickness and the as-oxidized trap density, through the extra time near 1000 °C), the hot push none. The paper's anneals are short and at 250 to 600 °C, where no program here has anything that responds to a ramp.

✓2 within tolerance✕3 outside∅8 not modelled
simulation below the paper ← 0 → simulation above the paper-100%-50%0%+50%+100%MOS capacitor, 116 nm, as oxidizedinterface state density at 0.30 eV above Ev (DLTS)no program · paper 6.60×10¹² cm⁻² eV⁻¹∅ not modelledMOS capacitor, 116 nm, as oxidizedinterface state density near midgap, 0.55 eV (DLTS)ours 1.06×10¹¹ · paper 2.50×10¹² cm⁻² eV⁻¹✕ outside (-96%)MOS capacitor, 116 nm, as oxidizedoxide thicknessours 115 · paper 116 nm✓ within tolerance (-1.3%)MOS capacitor, 116 nm, vacuum anneal 400 °C 1…interface state density at 0.30 eV above Ev (DLTS)no program · paper 2.55×10¹² cm⁻² eV⁻¹∅ not modelledMOS capacitor, 116 nm, vacuum anneal 400 °C 1…interface state density near midgap, 0.55 eV (DLTS)ours 1.06×10¹¹ · paper 1.30×10¹² cm⁻² eV⁻¹✕ outside (-92%)MOS capacitor, 116 nm, vacuum anneal 450 °C 6…interface state density at 0.30 eV above Ev (DLTS)no program · paper 3.50×10¹¹ cm⁻² eV⁻¹∅ not modelledMOS capacitor, 116 nm, vacuum anneal 450 °C 6…interface state density near midgap, 0.55 eV (DLTS)ours 1.06×10¹¹ · paper 7.40×10¹¹ cm⁻² eV⁻¹✕ outside (-86%)ESR wafer, 200 nm, with aluminium, vacuum 275…spin density (Pb), share of the level before the lossno program · paper 0.85 (Fig. 2 units)∅ not modelledESR wafer, 200 nm, with aluminium, vacuum 300…spin density (Pb), share of the level before the lossno program · paper 0.42 (Fig. 2 units)∅ not modelledESR wafer, 200 nm, with aluminium, vacuum 300…oxide thicknessours 201 · paper 200 nm✓ within tolerance (+0.6%)ESR wafer, 200 nm, with aluminium, vacuum 325…spin density (Pb), share of the level before the lossno program · paper 0.14 (Fig. 2 units)∅ not modelledESR wafer, 200 nm, without aluminium, vacuum …spin density (Pb), share of the level before the lossno program · paper 0.83 (Fig. 2 units)∅ not modelledESR wafer, 200 nm, without aluminium, vacuum …spin density (Pb), share of the level before the lossno program · paper 0.37 (Fig. 2 units)∅ not modelled
The pale green band is the tolerance. Bars past ±100% are cut and carry their value.

2 within, 3 off, 8 not modelled of 13 numbers with the aligned settings.

SampleQuantityThe paperAs reproduced aboveAlignedDifferenceVerdictHow
MOS capacitor, 116 nm, as oxidizedinterface state density at 0.30 eV above Ev (DLTS)6.60e+12 cm⁻² eV⁻¹no programno programnot modelled (±15%)chosen on these numbers
MOS capacitor, 116 nm, as oxidizedinterface state density near midgap, 0.55 eV (DLTS)2.50e+12 cm⁻² eV⁻¹1.06e+111.06e+11-96%off (±15%)chosen on these numbers
MOS capacitor, 116 nm, as oxidizedoxide thickness116 nm115114-1%within (±10%)chosen on these numbers
MOS capacitor, 116 nm, vacuum anneal 400 °C 15 mininterface state density at 0.30 eV above Ev (DLTS)2.55e+12 cm⁻² eV⁻¹no programno programnot modelled (±15%)chosen on these numbers
MOS capacitor, 116 nm, vacuum anneal 400 °C 15 mininterface state density near midgap, 0.55 eV (DLTS)1.30e+12 cm⁻² eV⁻¹1.06e+111.06e+11-92%off (±15%)chosen on these numbers
MOS capacitor, 116 nm, vacuum anneal 450 °C 60 mininterface state density at 0.30 eV above Ev (DLTS)3.50e+11 cm⁻² eV⁻¹no programno programnot modelled (±29%)chosen on these numbers
MOS capacitor, 116 nm, vacuum anneal 450 °C 60 mininterface state density near midgap, 0.55 eV (DLTS)7.40e+11 cm⁻² eV⁻¹1.06e+111.06e+11-86%off (±15%)chosen on these numbers
ESR wafer, 200 nm, with aluminium, vacuum 275 °C 15 minspin density (Pb), share of the level before the loss0.85 (Fig. 2 units)no programno programnot modelled (±10%)chosen on these numbers
ESR wafer, 200 nm, with aluminium, vacuum 300 °C 15 minspin density (Pb), share of the level before the loss0.42 (Fig. 2 units)no programno programnot modelled (±10%)chosen on these numbers
ESR wafer, 200 nm, with aluminium, vacuum 300 °C 15 minoxide thickness200 nm201201+1%within (±10%)chosen on these numbers
ESR wafer, 200 nm, with aluminium, vacuum 325 °C 15 minspin density (Pb), share of the level before the loss0.14 (Fig. 2 units)no programno programnot modelled (±21%)chosen on these numbers
ESR wafer, 200 nm, without aluminium, vacuum 425 °C 15 minspin density (Pb), share of the level before the loss0.83 (Fig. 2 units)no programno programnot modelled (±10%)chosen on these numbers
ESR wafer, 200 nm, without aluminium, vacuum 475 °C 15 minspin density (Pb), share of the level before the loss0.37 (Fig. 2 units)no programno programnot modelled (±10%)chosen on these numbers

What alignment cannot fix. Hydrogen that does not come from the gas. The paper's two hydrogen sources, the aluminium film during a vacuum anneal and atomic deuterium from a remote plasma, cannot be written. Every program here reads hydrogen only as p_H2 in the gas. Forming gas as a stand-in gives the equilibrium program hydrogen everywhere at once with no temperature threshold, and gives the trap program Brower's 1.66 eV for H₂, which puts its threshold near 400 °C instead of the paper's 250 °C. A metal film that releases hydrogen and an ambient of atomic hydrogen are both missing.

One release barrier, and rates for H₂ only. The trap program's passivation rate is fitted at one temperature (400 °C, Vitkavage) and carries Brower's 1.66 eV away from it; its release is Brower's single barrier (2.56 eV, 1.2×10¹² s⁻¹). The equilibrium program's rate is a placeholder. After atomic deuterium the paper sees no Pb return at 600 °C, where Brower's single barrier returns 84% and Stesmans's spread of barriers (σ = 0.105 eV) still 53%: neither a spread of release barriers, which the program also lacks, nor anything the program has explains it; a slower Si–D release or deuterium held nearby would have to.

Interface states are not Pb here. The paper's central result is that Pb goes 100 to 150 °C below the 0.3 eV peak. Both programs make interface states out of one population of dangling bonds (the trap program's second population is set to nothing on (111)), so they cannot separate them. The paper's DLTS values are also 20 times the trap program's as-oxidized density; the program was found on another laboratory's (111) wafers measured after forming gas, and on unannealed (111) it is outside its fitted range.

Vacuum that removes Pb. Without aluminium and without hydrogen in the gas the spin signal goes between 400 and 525 °C. In Stesmans 1996 a vacuum anneal of passivated Pb brings it back above 480 °C. No program here has a source of hydrogen inside the oxide, or a vacuum that is not pure, that could do what Johnson sees.

What our language and ontology cannot yet say

  • An ambient of atomic hydrogen. “Annealing … in atomic deuterium at 230 °C” downstream of a plasma has no word. It needs a species (H or D atoms) with a flux or an arrival rate at the surface (cm⁻² s⁻¹) rather than a partial pressure, since the atoms recombine on the walls; e.g. AMBIENT atomic:D FLUX 1e15. With it, a kinetic program could cap Pb at the rate atoms arrive at the interface, which this paper shows happens at 25 to 230 °C (Fig. 5).
  • A film as a hydrogen source. The aluminium releases hydrogen during the anneal; the same anneal without it does nothing below 400 °C. A FILM Al { RELEASES: H } on the sample, read by hydrogen programs as a source term during any RUN, would let a post-metallization anneal in vacuum or nitrogen be written as what it is. The ontology has process factor hydrogen-anneal for a gas, nothing for a film.
  • Isotopes. Deuterium is written as hydrogen or not at all. D2 in the gas list (and D in the atomic ambient) with masses carried into the zero-point energy (a computed ph.x number with deuterium masses) and into any rate prefactor would let the paper's “not regained up to 600 °C” be compared with Si–H dissociation rates on the right basis.
  • A kinetic hydrogen program (see also Stesmans 1996): the trap program now has passivation from H₂ with Brower's 1.66 eV and release with Brower's 2.56 eV, sourced, not computed. This paper's with-Al series needs a passivation by atomic hydrogen besides, and its deuterated series a release slower than Brower's. Both barriers can be computed on the H100 with neb.x, from the relaxed cluster for H₂ + Pb and from a (111)/SiO₂ slab for dissociation into a bound site; the Stesmans page gives the plan.
  • Spin density as an observable, with its units. Fig. 2 is in arbitrary units with one absolute anchor (6×10¹¹ cm⁻² as oxidized). A target Pb_spin_density in cm⁻² with a declared normalization (RELATIVE TO <case>) would let both programs be scored on Pb directly instead of on a share.
  • A series on one sample. Whether the isochronal anneals of Fig. 2 are one specimen annealed in turn is not stated. The language cannot write either reading as one statement; REPEAT over temperatures with an observation after each pass would, and an alignment could then treat the reading as a variant.
  • Interface states at an energy without a hydrogen step. The trap program reports a spectrum only after hydrogen, from the shape of one annealed curve. The as-oxidized (111) peak at 0.3 eV, 6.7×10¹² cm⁻² eV⁻¹, here and in Vitkavage, has no program at all.

With heating and cooling transitions

No paper we hold states how its wafers heated up or cooled down. The project owner specified scenarios for one Vitkavage wafer (isl_harness/vitkavage_transitions.py); isl_harness/thermal_transitions.py applies the same numbers to every sample here: a heat-up in nitrogen before the first furnace step (a hot push of 1 to 5 min, or a cold-furnace ramp of 60 to 120 min), the owner's radiative cooling knots after the last furnace step or after the paper's own pull (fast, or every time multiplied by 5), and ramps around an anneal at 300 to 500 °C. The paper's own steps are kept as written. All transitions are assumptions, written in the history with TIMING assumed.

HistoryWithin toleranceMedian errorChanged numbers
as the paper states it (above)2 of 1385.7%
heat-up A (hot push), fast cooling2 of 1385.8%0 of 13 moved by more than 2%
heat-up A (hot push), slow cooling2 of 1385.8%0 of 13 moved by more than 2%
heat-up B (cold-furnace ramp), fast cooling2 of 1386.1%3 of 13 moved by more than 2%
heat-up B (cold-furnace ramp), slow cooling2 of 1386.1%3 of 13 moved by more than 2%

The paper's own conclusions

The paper statesWhat we find
A vacuum anneal of the capacitor at 400 °C for 15 min lowers the 0.3 eV peak by about 60%; 450 °C for 60 min removes it (p. 2, Fig. 1)No program changes the interface states in a vacuum anneal at 400-450 °C: the trap-density program's relaxation is negligible there and its hydrogen step needs hydrogen in the gasnot reproduced
With aluminium the Pb signal falls between 250 and 350 °C (15 min); without aluminium between 400 and 525 °C (p. 2, Fig. 2)Without a hydrogen step no program reports Pb. Written with the aluminium as forming gas, the equilibrium program removes Pb at every temperature including 30 °C; the trap program, whose H₂ rate carries Brower's 1.66 eV, removes 0.06%, 0.26% and 1.1% of its sites at 275, 300 and 325 °C, 180 to 330 times too slow: the aluminium supplies atomic hydrogen, which H₂ in the gas does not stand fornot reproduced
Pb goes below 300 °C, the interface-state peak above 400 °C: Pb is not the characteristic peak (p. 4-5)Both programs tie the interface states to the same population of dangling bonds; the separation cannot appearnot in the program
Atomic deuterium at 230 °C removes Pb, and vacuum anneals up to 600 °C do not bring it back (p. 2)The language cannot write atomic deuterium. Written as molecular hydrogen at 230 °C, the equilibrium program caps Pb and its assumed rate returns 26% of it at 600 °C; the trap program caps almost none (0.06%), its H₂ rate at 230 °C being 6×10⁻⁵ of its 400 °C value. From a passivated start the trap program's release (Brower's) returns 84% in 15 min at 600 °Cpartly
Deuterium accumulates at the interface after atomic but not molecular deuterium, and stays to above 500 °C (Figs 3-6)No program carries hydrogen in the oxidenot in the program

What we would like Emily to check

  1. Without aluminium and without any hydrogen in the gas, the spin signal disappears in vacuum between 400 and 525 °C (Fig. 2). Is the hydrogen already in a 200 nm dry oxide (from the furnace or the rapid cool) enough to cap 6×10¹¹ cm⁻² of Pb? Or was the 1981 vacuum poor enough to supply water?
  2. Stesmans and Afanas'ev see the opposite in a diffusion-pumped vacuum (≤4×10⁻⁷ Torr): Pb returns above 480 °C. Is the difference the starting state (passivated or not), the vacuum, or the oxide?
  3. After atomic deuterium the spin signal stays away after 15 min at 600 °C, while Brower's dissociation rate (2.56 eV, 1.2×10¹² s⁻¹), which the trap-density program uses, would bring most of it back (84%). Would Si–D dissociate that much more slowly than Si–H, or does the atomic-deuterium exposure do more than cap Pb?
  4. Is 6×10¹¹ cm⁻² a usual as-oxidized Pb density for (111) at 1000 °C with no post-oxidation anneal, against Stesmans's 4.7×10¹² after dissociation?