Agentic PrimitivesAP

Study reproduced ·

Reproducing Vitkavage, Irene and Massoud 1990: interface charges on four orientations of silicon

Vitkavage, Irene and Massoud 1990: 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 (8 within, 5 near, 8 off).

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/vitkavage_1990.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

S. C. Vitkavage, E. A. Irene and H. Z. Massoud, “An Investigation of Si-SiO2 Interface Charges in Thermally Oxidized (100), (110), (111), and (511) Silicon”, ONR Technical Report 34 (1990), DTIC ADA231244; journal version J. Appl. Phys. 68, 5262.

This is the challenge's first reference, and the one the organisers say they evaluate first. We hold the technical-report version. From it the graph carries 46 midgap trap densities, 56 fixed-charge values and 6 oxide thicknesses; the trap-density program was found by a structure search on these wafers, and the growth program is scored on its six thicknesses with nothing fitted.

How well can this study be reproduced?

Moderate. The oxidation matrix and the anneal are stated and the electrical values are printed in tables with their spread. What a simulation still has to supply: the wafer's cooling after the pull, whether any tabulated wafer had the nitrogen anneal, and thickness for all but six conditions. The report's tables also disagree with each other in four places.

Sample described1 of 6 properties we need are stated and encoded the same
History described2 of 9 steps are stated and encoded the same; 4 are stated by the paper and absent from our history; 0 are ours because the paper is silent
Timing2 of 3 simulated steps have a stated duration; 5 of 5 other steps have none; 6 timing gaps listed below
How the results are givenElectrical values in printed tables (III, IV, VI, VII) with the maximum spread; oxide thickness only in the running text, for six conditions; no thickness table
Repeatability stated by the authorsYes: under 5% across a wafer and within 10% between identically processed wafers (cleanroom set)
Internal consistencyPoor for a reference: a units header off by ten (Table IV), a dropped zero (Table VII), 1.8 against 1.08 (Table III against II and VI), and text values that differ from the tables. Four needed a ruling from the project owner
Is our model independent of this paper's data?Partly. Growth: nothing fitted. Fixed charge: fitted to another laboratory. Trap density: the program's structure and nine numbers were fitted to these wafers, with (511) and 900 °C held out
Outcome8 of 21 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.

Si
Step 1 of 8 · recorded, not simulated
Pre-oxidation clean
temperature 25 °C
elapsed 0 s of 1 h 30 min 05 s
timing in the paper: partly stated. Only the HF dip (10 s) is timed, and only for the non-cleanroom set

“All wafers were cleaned using the modified RCA cleaning sequences prior to oxidation.”

The simulation at this moment
oxide thickness0 nm50
consumed substrate0 nm
fixed charge1.46×10¹¹ cm⁻²1.70×10¹¹
interface state density at midgap3.65×10¹¹ cm⁻² eV⁻¹5.00×10¹⁰
right column: the paper, at the end of the history
CleanLoadOxidation60 minPull5 sStoreMetalPostMetalAnneal30 minCV10000 °CThe same history to true scale (1 h 30 min 05 s 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, 6 approximated, 6 not in ours.

✓3 same≈6 approximated✕6 not in ours
Sample: what the paper saysWhat we simulate
Substrate
“p-type (100), (110), (111), and (511) silicon wafers with resistivities in the 2-20 Ω-cm range” (cleanroom set)
PDF p. 7
✓same
FAMILY: Si_Planar; ORIENTATION: Si100 | Si110 | Si111 | Si511
Doping
cleanroom: p-type, 2–20 Ω·cm, dopant not named; non-cleanroom: “Lightly boron-doped p-type … 2-5 Ω-cm”
PDF p. 6–7
≈approximated
DOPING: p_type (recorded; no program reads it)
The language has no doping field that a program reads. Resistivity is not carried.
Two sample sets
A non-cleanroom set made at the University of North Carolina and a cleanroom set oxidized at Duke and metallized at MCNC
PDF p. 6–7
≈approximated
one sample family; the thickness dataset marks each row cleanroom or non-cleanroom, the electrical datasets are cleanroom only
Two of our six thicknesses (25 nm and 90 nm) are from the non-cleanroom set, whose clean, doping and oxidation times differ from the wafers the electrical values come from.
Wafer size and device
(100), (111), (511): 4-inch; (110): 3-inch, metallized in a separate run. Guard-ring capacitors, backside contact
PDF p. 7
✕not in ours
not in our sample
The (110) wafers went through a different metallization run from the other three orientations.
Starting surface
RCA then, for the non-cleanroom set, a 10 s concentrated HF dip: no deliberate starting oxide
PDF p. 6
≈approximated
the growth program starts the oxide at the 1965 law's intercept, not at zero
Mobile ions
“1 to 5 × 10^11 cm-2” non-cleanroom against about 1.5 × 10^10 cm-2 cleanroom
PDF p. 9
✕not in ours
not in our sample or programs
History: what the paper saysWhat we simulate
Pre-oxidation clean
“All wafers were cleaned using the modified RCA cleaning sequences prior to oxidation.”
PDF p. 7
≈approximated
CLEAN: RCA on the sample; no operator reads it
The HF dip that ends the clean is stated for the non-cleanroom set only; our vocabulary's RCA does not say HF-last.
Load into the furnace in nitrogen
“The wafers were loaded into a double-walled fused-silica tube of the oxidation furnace in an inert N2 ambient”
PDF p. 6
✕not in ours
not in our history
No duration, temperature or push rate is stated, so it cannot be written as a RUN.
Dry oxidation, 1000 °C, 1 h
Table I gives temperature and time; the gas is only “the oxidizing ambient” under “similar processing conditions”
PDF p. 7, Table I p. 37
≈approximated
RUN Oxidation DURATION 3600 TEMP 1000->1000 AMBIENT dry_O2
Dry O2 with under 6 ppm water is stated for the non-cleanroom set; for the cleanroom set we assume the same.
Fast pull into the endcap, in oxygen
“pulled fast into the endcap in the oxidizing ambient with a pull time shorter than 5 sec”
PDF p. 6
≈approximated
RUN Pull DURATION 5 TEMP 1000->400 AMBIENT dry_O2
The pull time is the paper's. The temperature the wafer reaches is not stated; 400 °C is our assumption. The datasets' recipe for this wafer has no pull step.
Stored in a nitrogen dry box
“Upon cooling, the wafers were stored in a dry box continuously purged with pure nitrogen until all oxidations were completed.”
PDF p. 7
✕not in ours
not in our history
Aluminium evaporated
“A blanket layer of aluminum was evaporated … using a resistively heated evaporator”; guard-ring capacitors by lithography; backside oxide etched
PDF p. 7
✕not in ours
not in our history
Recorded on the source in the library (metal: resistively heated aluminium); no program reads it.
Post-metallization anneal, 400 °C, 30 min, forming gas
“a 30 min post-metallization anneal (PMA) at 400°C in forming gas (FG), consisting of 10% H2 and 90% N2”
PDF p. 7
✓same
RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2
Capacitance-voltage measurement
1 MHz and quasi-static C-V, ramp under 100 mV/s; Qf from the flatband voltage
PDF p. 8
✓same
the observables Nf and Dit
The work-function difference used for Qf is not stated.
Post-oxidation anneal in nitrogen, some wafers
“Some wafers received a post-oxidation anneal (POA) in N2 at the oxidation temperature.” Duration and which wafers are not stated
PDF p. 6
✕not in ours
not in any history
If any tabulated wafer had this anneal, its fixed charge would be lower than a fast-pull wafer's. The report does not say which.

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.

(100), 1000 °C, 1 h, with PMA

#StepStarts atLastsEnds atTemperatureRateGasIs the timing in the paper?
1Pre-oxidation clean0 snot simulatedpartly stated. Only the HF dip (10 s) is timed, and only for the non-cleanroom set
2Load into the furnace in nitrogen0 snot simulatednot stated. No push rate, no time in nitrogen before oxygen, no ramp
3Dry oxidation, 1000 °C, 1 h0 s1 h 00 min1 h 00 min1000 → 1000 °Chelddry_O2stated. Table I. Whether the time counts from loading or from the gas switch is not said
4Fast pull into the endcap, in oxygen1 h 00 min5 s1 h 00 min 05 s1000 → 400 °C-120 °C/sdry_O2partly stated. “shorter than 5 sec” is an upper bound; how long the wafer then cools in the endcap is not given
5Stored in a nitrogen dry box1 h 00 min 05 snot simulatednot stated. “until all oxidations were completed”: days, not given
6Aluminium evaporated1 h 00 min 05 snot simulatednot stated
7Post-metallization anneal, 400 °C, 30 min, forming gas1 h 00 min 05 s30 min1 h 30 min 05 s400 → 400 °Cheldforming_gas_H2stated. 30 min at temperature; ramp up and cool down not given
8Capacitance-voltage measurement1 h 30 min 05 snot simulatednot stated

Simulated time in this history: 1 h 30 min 05 s.

Across the samples

SampleOxidationPullPostMetalAnnealN2_heatup_01N2_heatup_02N2_heatup_03N2_heatup_04N2_heatup_05N2_heatup_06N2_heatup_07N2_heatup_08N2_heatup_09N2_heatup_10N2_heatup_11N2_heatup_12PullTravelO2_cool_01O2_cool_02O2_cool_03O2_cool_04O2_cool_05O2_cool_06FG_heatup_01FG_heatup_02FG_heatup_03FG_heatup_04FG_heatup_05FG_heatup_06FG_heatup_07FG_heatup_08FG_heatup_09FG_heatup_10FG_heatup_11FG_heatup_12FG_cool_01FG_cool_02FG_cool_03FG_cool_04FG_cool_05FG_cool_06FG_cool_07FG_cool_08FG_cool_09FG_cool_10FG_cool_11FG_cool_12Total
(100), 1000 °C, 1 h, with PMA1 h 00 min at 1000 °C5 s at 1000→400 °C30 min at 400 °C–––––––––––––––––––––––––––––––––––––––––––1 h 30 min 05 s
(111), 1000 °C, 1 h, with PMA1 h 00 min at 1000 °C5 s at 1000→400 °C30 min at 400 °C–––––––––––––––––––––––––––––––––––––––––––1 h 30 min 05 s
(100), 1000 °C, 8 h, with PMA8 h 00 min at 1000 °C–30 min at 400 °C15 s at 25→359.494 °C15 s at 359.494→580.006 °C15 s at 580.006→725.377 °C15 s at 725.377→821.211 °C15 s at 821.211→884.389 °C15 s at 884.389→926.038 °C15 s at 926.038→953.495 °C15 s at 953.495→971.596 °C15 s at 971.596→983.529 °C15 s at 983.529→991.395 °C15 s at 991.395→996.581 °C15 s at 996.581→1000 °C5 s at 1000 °C1.5 s at 1000→800 °C3.2 s at 800→600 °C8.3 s at 600→400 °C28 s at 400→200 °C49 s at 200→100 °C3 min 30 s at 100→25 °C15 s at 25→153.652 °C15 s at 153.652→238.464 °C15 s at 238.464→294.376 °C15 s at 294.376→331.235 °C15 s at 331.235→355.534 °C15 s at 355.534→371.553 °C15 s at 371.553→382.114 °C15 s at 382.114→389.075 °C15 s at 389.075→393.665 °C15 s at 393.665→396.69 °C15 s at 396.69→398.685 °C15 s at 398.685→400 °C50 s at 400→271.348 °C50 s at 271.348→186.536 °C50 s at 186.536→130.624 °C50 s at 130.624→93.765 °C50 s at 93.765→69.4658 °C50 s at 69.4658→53.4468 °C50 s at 53.4468→42.8865 °C50 s at 42.8865→35.9246 °C50 s at 35.9246→31.3351 °C50 s at 31.3351→28.3095 °C50 s at 28.3095→26.3149 °C50 s at 26.3149→25 °C8 h 51 min 05 s
(111), 1000 °C, 8 h, with PMA8 h 00 min at 1000 °C5 s at 1000→400 °C30 min at 400 °C–––––––––––––––––––––––––––––––––––––––––––8 h 30 min 05 s
(110), 1000 °C, 1 h, with PMA1 h 00 min at 1000 °C5 s at 1000→400 °C30 min at 400 °C–––––––––––––––––––––––––––––––––––––––––––1 h 30 min 05 s
(511), 1000 °C, 1 h, with PMA1 h 00 min at 1000 °C5 s at 1000→400 °C30 min at 400 °C–––––––––––––––––––––––––––––––––––––––––––1 h 30 min 05 s
(100), 750 °C, 23 h, with PMA23 h 00 min at 750 °C5 s at 750→400 °C30 min at 400 °C–––––––––––––––––––––––––––––––––––––––––––23 h 30 min 05 s
(100), 1000 °C, 1 h, no anneal1 h 00 min at 1000 °C5 s at 1000→400 °C––––––––––––––––––––––––––––––––––––––––––––1 h 00 min 05 s
Non-cleanroom (100), 750 °C, 24 h24 h 00 min at 750 °C5 s at 750→400 °C30 min at 400 °C–––––––––––––––––––––––––––––––––––––––––––24 h 30 min 05 s
Non-cleanroom (110), 1100 °C, 0.5 h30 min at 1100 °C5 s at 1100→400 °C30 min at 400 °C–––––––––––––––––––––––––––––––––––––––––––1 h 00 min 05 s

Timing the paper does not give

  • How long the wafers sat in nitrogen in the furnace before oxygen was admitted, and at what temperature they were loaded.
  • Any ramp: the report describes none, so each oxidation is written as a hold at one temperature for the Table I time.
  • How long a wafer takes to cool in the endcap after the pull, and to what temperature. Our fixed-charge program is sensitive to exactly this interval.
  • The duration of the nitrogen anneal that “some wafers” received.
  • The time between oxidation and metallization (storage in a nitrogen dry box), and between metallization and measurement.
  • The 750, 800 and 900 °C oxidations each have one duration (23, 18 and 4.5 h), chosen to give similar thickness, so temperature and time cannot be told apart in those rows; only at 1000 °C is time varied (1, 2.5, 4, 8 h).

What the second reading changed

  • Every wafer was pulled in under 5 s in the oxidizing gas. The recipe stored with each measurement stops at the end of the oxidation (plus the anneal); the pull is on the source record, not in the history. Written as a step it moves the simulated fixed charge of the (100), 1000 °C, 1 h wafer from 1.46 to 1.58 × 10^11 cm^-2.
  • The report describes two sample sets. Dry oxygen under 6 ppm water, the HF-last clean and boron doping are stated for the non-cleanroom set only; for the cleanroom set, which all our electrical values come from, the gas is never named. Our library records one set of conditions for the source.
  • “Some wafers” had a nitrogen anneal at the oxidation temperature after oxidation. The report gives no duration and does not say which tabulated values, if any, come from them. Our histories have none.
  • The (110) wafers are 3-inch and were metallized in a separate run from the other three orientations, so an orientation comparison involving (110) is also a comparison between two metallization runs.
  • Two of the six thicknesses we score growth on are from the non-cleanroom set (24 h and 0.5 h, not the cleanroom times).

Their terms and ours

The paper saysWe writeKind in our vocabularyNote
Qf, Nf: fixed oxide chargeNfobservable (target: fixed_charge); quantity fixed-chargeQf, Nf and Qss are one observable in the vocabulary.
Dit: interface trap density at midgapDitobservable (target: trap_density); quantity interface-state-densityAfter a PMA it is the separate quantity interface-state-density-after-hydrogen-anneal.
PMA: post-metallization anneal in forming gasRUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2a RUN; process factor hydrogen-anneal
NPMA(no RUN after the pull)absence of a step
forming gas (FG), 10% H2 and 90% N2forming_gas_H2ambientp_H2 = 0.1 atm, p_N2 = 0.9 atm.
dry oxygen … less than 6 ppm of waterdry_O2ambientThe moisture could be written mix:O2=0.999994,H2O=6.0e-6; it is an upper bound and no program reads it.
pulled fast into the endcapRUN Pull DURATION 5 TEMP T->400 AMBIENT dry_O2a RUN; process factor final-annealThe opposite of the factor slow-pull-in-oxygen.
POA: post-oxidation anneal in N2RUN … AMBIENT inert_N2a RUN; process factor inert-annealStated, not used: no duration is given.
(100), (110), (111), (511)ORIENTATION: Si100 …sample field; process factor orientationThe growth program has no constant for (511) and uses (100).
modified RCA cleaningCLEAN: RCAsample field; process factor pre-oxidation-clean
cleanroom / non-cleanroom(none)nearest: process factor laboratoryNo sample field says where a wafer was made.
Qm: mobile ionic charge(none)domain term mobile-ionic-charge, not modelled
oxide thickness (manual ellipsometer)Thicknessobservable (target: layer_thickness)
Qit responding to the high-frequency signal (NPMA)(none)apparent charge, kept apart from NfThe scorecard does not score NPMA charge as fixed charge.

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>.

(100), 1000 °C, 1 h, with PMA

# (100), 1000 °C, 1 h, with PMA
SAMPLE Wafer_100_1000C_1h_PMA {
    FAMILY: Si_Planar
    ORIENTATION: Si100
    CLEAN: RCA
    DOPING: p_type
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 3600 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 1000->400 AMBIENT dry_O2 TIMING bound
    EVENT Store KIND storage TIMING assumed                      # Stored in a nitrogen dry box
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

(111), 1000 °C, 1 h, with PMA

# (111), 1000 °C, 1 h, with PMA
SAMPLE Wafer_111_1000C_1h_PMA {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: RCA
    DOPING: p_type
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 3600 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 1000->400 AMBIENT dry_O2 TIMING bound
    EVENT Store KIND storage TIMING assumed                      # Stored in a nitrogen dry box
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

(100), 1000 °C, 8 h, with PMA

# (100), 1000 °C, 8 h, with PMA
SAMPLE Wafer_100_1000C_8h_PMA {
    FAMILY: Si_Planar
    ORIENTATION: Si100
    CLEAN: RCA
    DOPING: p_type
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TEMP 25 TIMING assumed                # Pre-oxidation clean
    EVENT Load KIND load TEMP 25 TIMING assumed                  # Load into the furnace in nitrogen
    RUN N2_heatup_01 DURATION 15 TEMP 25->359.494 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_02 DURATION 15 TEMP 359.494->580.006 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_03 DURATION 15 TEMP 580.006->725.377 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_04 DURATION 15 TEMP 725.377->821.211 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_05 DURATION 15 TEMP 821.211->884.389 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_06 DURATION 15 TEMP 884.389->926.038 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_07 DURATION 15 TEMP 926.038->953.495 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_08 DURATION 15 TEMP 953.495->971.596 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_09 DURATION 15 TEMP 971.596->983.529 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_10 DURATION 15 TEMP 983.529->991.395 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_11 DURATION 15 TEMP 991.395->996.581 AMBIENT inert_N2 TIMING assumed
    RUN N2_heatup_12 DURATION 15 TEMP 996.581->1000 AMBIENT inert_N2 TIMING assumed
    RUN Oxidation DURATION 28800 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
    # Source TIMING bound: <5 s, PDF p. 6, non-cleanroom set; transfer to this cleanroom wafer is assumed
    RUN PullTravel DURATION 5 TEMP 1000->1000 AMBIENT dry_O2 TIMING assumed
    RUN O2_cool_01 DURATION 1.5 TEMP 1000->800 AMBIENT dry_O2 TIMING assumed
    RUN O2_cool_02 DURATION 3.2 TEMP 800->600 AMBIENT dry_O2 TIMING assumed
    RUN O2_cool_03 DURATION 8.3 TEMP 600->400 AMBIENT dry_O2 TIMING assumed
    RUN O2_cool_04 DURATION 28 TEMP 400->200 AMBIENT dry_O2 TIMING assumed
    RUN O2_cool_05 DURATION 49 TEMP 200->100 AMBIENT dry_O2 TIMING assumed
    RUN O2_cool_06 DURATION 210 TEMP 100->25 AMBIENT dry_O2 TIMING assumed
    EVENT Store KIND storage TEMP 25 TIMING assumed              # Stored in a nitrogen dry box
    EVENT Metal KIND metallization TEMP 25 TIMING assumed        # Aluminium evaporated
    RUN FG_heatup_01 DURATION 15 TEMP 25->153.652 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_02 DURATION 15 TEMP 153.652->238.464 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_03 DURATION 15 TEMP 238.464->294.376 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_04 DURATION 15 TEMP 294.376->331.235 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_05 DURATION 15 TEMP 331.235->355.534 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_06 DURATION 15 TEMP 355.534->371.553 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_07 DURATION 15 TEMP 371.553->382.114 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_08 DURATION 15 TEMP 382.114->389.075 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_09 DURATION 15 TEMP 389.075->393.665 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_10 DURATION 15 TEMP 393.665->396.69 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_11 DURATION 15 TEMP 396.69->398.685 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_heatup_12 DURATION 15 TEMP 398.685->400 AMBIENT forming_gas_H2 TIMING assumed
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    RUN FG_cool_01 DURATION 50 TEMP 400->271.348 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_02 DURATION 50 TEMP 271.348->186.536 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_03 DURATION 50 TEMP 186.536->130.624 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_04 DURATION 50 TEMP 130.624->93.765 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_05 DURATION 50 TEMP 93.765->69.4658 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_06 DURATION 50 TEMP 69.4658->53.4468 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_07 DURATION 50 TEMP 53.4468->42.8865 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_08 DURATION 50 TEMP 42.8865->35.9246 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_09 DURATION 50 TEMP 35.9246->31.3351 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_10 DURATION 50 TEMP 31.3351->28.3095 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_11 DURATION 50 TEMP 28.3095->26.3149 AMBIENT forming_gas_H2 TIMING assumed
    RUN FG_cool_12 DURATION 50 TEMP 26.3149->25 AMBIENT forming_gas_H2 TIMING assumed
    EVENT CV KIND measurement TEMP 25 TIMING assumed             # Capacitance-voltage measurement
}

Thermal scenario A, fast O2 cooling, PMA A. Only the 1000 C/8 h and 400 C/30 min holds are stated; every transition is assumed. The <5 s pull bound comes from the other (non-cleanroom) set. Four scenarios and duration sensitivity: evaluations/vitkavage_transitions/report.json.

(111), 1000 °C, 8 h, with PMA

# (111), 1000 °C, 8 h, with PMA
SAMPLE Wafer_111_1000C_8h_PMA {
    FAMILY: Si_Planar
    ORIENTATION: Si111
    CLEAN: RCA
    DOPING: p_type
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 28800 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 1000->400 AMBIENT dry_O2 TIMING bound
    EVENT Store KIND storage TIMING assumed                      # Stored in a nitrogen dry box
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

(110), 1000 °C, 1 h, with PMA

# (110), 1000 °C, 1 h, with PMA
SAMPLE Wafer_110_1000C_1h_PMA {
    FAMILY: Si_Planar
    ORIENTATION: Si110
    CLEAN: RCA
    DOPING: p_type
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 3600 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 1000->400 AMBIENT dry_O2 TIMING bound
    EVENT Store KIND storage TIMING assumed                      # Stored in a nitrogen dry box
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

(511), 1000 °C, 1 h, with PMA

# (511), 1000 °C, 1 h, with PMA
SAMPLE Wafer_511_1000C_1h_PMA {
    FAMILY: Si_Planar
    ORIENTATION: Si511
    CLEAN: RCA
    DOPING: p_type
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 3600 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 1000->400 AMBIENT dry_O2 TIMING bound
    EVENT Store KIND storage TIMING assumed                      # Stored in a nitrogen dry box
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

(100), 750 °C, 23 h, with PMA

# (100), 750 °C, 23 h, with PMA
SAMPLE Wafer_100_750C_23h_PMA {
    FAMILY: Si_Planar
    ORIENTATION: Si100
    CLEAN: RCA
    DOPING: p_type
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 82800 TEMP 750->750 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 750->400 AMBIENT dry_O2 TIMING bound
    EVENT Store KIND storage TIMING assumed                      # Stored in a nitrogen dry box
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

(100), 1000 °C, 1 h, no anneal

# (100), 1000 °C, 1 h, no anneal
SAMPLE Wafer_100_1000C_1h_NPMA {
    FAMILY: Si_Planar
    ORIENTATION: Si100
    CLEAN: RCA
    DOPING: p_type
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 3600 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 1000->400 AMBIENT dry_O2 TIMING bound
    EVENT Store KIND storage TIMING assumed                      # Stored in a nitrogen dry box
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    EVENT NoAnneal KIND other TIMING assumed                     # No post-metallization anneal (NPMA half)
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

The charge the report tabulates for this half-wafer (3.3 × 10^11 cm^-2) includes interface-trap charge that follows the 1 MHz signal, as the authors say. It is not fixed charge and is not compared.

Non-cleanroom (100), 750 °C, 24 h

# Non-cleanroom (100), 750 °C, 24 h
SAMPLE Wafer_nc_100_750C_24h {
    FAMILY: Si_Planar
    ORIENTATION: Si100
    CLEAN: RCA
    DOPING: p_type_boron
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 86400 TEMP 750->750 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 750->400 AMBIENT dry_O2 TIMING bound
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

Non-cleanroom (110), 1100 °C, 0.5 h

# Non-cleanroom (110), 1100 °C, 0.5 h
SAMPLE Wafer_nc_110_1100C_30min {
    FAMILY: Si_Planar
    ORIENTATION: Si110
    CLEAN: RCA
    DOPING: p_type_boron
}
CONTROL_TRAJECTORY History {
    EVENT Clean KIND clean TIMING bound                          # Pre-oxidation clean
    EVENT Load KIND load TIMING assumed                          # Load into the furnace in nitrogen
    RUN Oxidation DURATION 1800 TEMP 1100->1100 AMBIENT dry_O2 TIMING stated
    RUN Pull DURATION 5 TEMP 1100->400 AMBIENT dry_O2 TIMING bound
    EVENT Metal KIND metallization TIMING assumed                # Aluminium evaporated
    RUN PostMetalAnneal DURATION 1800 TEMP 400->400 AMBIENT forming_gas_H2 TIMING stated
    EVENT CV KIND measurement TIMING assumed                     # Capacitance-voltage measurement
}

The programs the predictor ran on these histories: experiments/atomistic/hydrogen_passivation_equilibrium.isl.template, 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, experiments/vitkavage_dit/oxide_growth.isl.template, as it is written. Every equation the simulation uses is in this text; the runtime holds no physics.

# ==============================================================================
# ISL MODEL: DRY THERMAL OXIDATION OF SILICON (growth sector)
#
# Linear-parabolic (Deal-Grove) growth written as one ISL operator. Nothing is
# fitted to the test data: every parameter keeps the value declared here.
#
# Provenance of the constants: the rate constants are an Arrhenius fit to Table II of
# Deal and Grove (1965), which is for (111) silicon; see scripts/derive_deal_grove_constants.py.
# The orientation factor for other faces is not in that paper and remains a hypothesis.
# Fields in {{braces}} are filled by scripts/run_vitkavage_growth.py.
# ==============================================================================
SAMPLE {sample_id} {{
    FAMILY: Si_Planar
    ORIENTATION: Si{orientation}
}}
# Oxide thickness. The initial value is Deal and Grove's effective starting thickness
# for dry oxygen, which stands in for the fast initial regime their model does not describe.
STATE x_ox {{
    UNIT: cm
    INITIAL: x_i
    MIN: 0
    MAX: 1.0e-3
}}
CONTROL T {{ UNIT: K }}
CONTROL p_O2 {{ UNIT: atm }}
# Parabolic rate constant B = B0 * exp(-E_B / kT).
PARAMETER B0 {{ VALUE: 3.6053e-09; UNIT: cm^2 s^-1; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), Table II, dry oxygen on (111), Arrhenius least-squares fit, table agent-read }}
PARAMETER E_B {{ VALUE: 1.2860; UNIT: eV; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), Table II, dry oxygen on (111), Arrhenius least-squares fit, table agent-read }}
# Linear rate constant B/A on (111) = BA0 * exp(-E_BA / kT).
PARAMETER BA0 {{ VALUE: 2.4265e-01; UNIT: cm s^-1; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), Table II, dry oxygen on (111), Arrhenius least-squares fit, table agent-read }}
PARAMETER E_BA {{ VALUE: 2.0303; UNIT: eV; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), Table II, dry oxygen on (111), Arrhenius least-squares fit, table agent-read }}
# Orientation factor on the linear rate, relative to (111).
PARAMETER r_or {{ VALUE: {r_or}; UNIT: 1; STATUS: hypothesis }}
# Effective initial thickness for dry oxygen.
PARAMETER x_i {{ VALUE: 2.3e-6; UNIT: cm; STATUS: sourced; SOURCE: Deal and Grove, J. Appl. Phys. 36, 3770 (1965), stated intercept 230 +/- 30 angstrom for dry oxygen, agent-read }}
# Both rate constants are proportional to oxidant pressure; the constants above are for 1 atm.
PARAMETER p_ref {{ VALUE: 1.0; UNIT: atm; STATUS: constant }}
PARAMETER k_B {{ VALUE: 8.617333262e-5; UNIT: eV K^-1; STATUS: constant }}
CONTROL_TRAJECTORY {trajectory_id} {{
    RUN Oxidation DURATION {duration_s} TEMP {T_C}->{T_C} AMBIENT dry_O2
}}
# dx/dt = B / (2x + A), with A = B / (B/A).
OPERATOR F_LinearParabolicGrowth : OxideGrowth {{
    EQUATION: d(x_ox)/dt = (p_O2 / p_ref) * B0 * exp(-E_B / (k_B * T)) / (2 * x_ox + B0 * exp(-E_B / (k_B * T)) / (r_or * BA0 * exp(-E_BA / (k_B * T))))
}}
OBSERVATION_MODEL Obs_Oxide_Thickness {{
    TARGET: Thickness
    UNIT: cm
    EQUATION: Thickness = x_ox
}}
# Silicon consumed by the oxide grown in this recipe: 0.44 of its thickness, by the ratio of molar volumes.
OBSERVATION_MODEL Obs_Consumed_Silicon {{
    TARGET: Consumed_substrate
    UNIT: cm
    EQUATION: Consumed_substrate = 0.44 * (x_ox - x_i)
}}
EVALUATION_CONTRACT {contract_id} {{
    FROZEN: true
    DATASET: data/derived/vitkavage_1990_thickness.csv
    DATASET_DIGEST: sha256:{dataset_sha256}
    SPLIT: test
    TARGET: Thickness = {target} +/- {tolerance} rel
}}

Our simulation against the paper

8 within, 5 near, 8 off of 21 numbers. Tolerance is stated per row; nothing was fitted for this page.

✓8 within tolerance≈5 within twice the tolerance✕8 outside
simulation below the paper ← 0 → simulation above the paper-100%-50%0%+50%+100%(100), 1000 °C, 1 h, with PMAoxide thicknessours 57.9 · paper 50 nm≈ within twice the tolerance (+16%)(100), 1000 °C, 1 h, with PMAfixed chargeours 1.58×10¹¹ · paper 1.70×10¹¹ cm⁻²✓ within tolerance (-7.1%)(100), 1000 °C, 1 h, with PMAinterface state density at midgapours 7.51×10¹⁰ · paper 5.00×10¹⁰ cm⁻² eV⁻¹✕ outside (+50%)(111), 1000 °C, 1 h, with PMAoxide thicknessours 70 · paper 64 nm✓ within tolerance (+9.3%)(111), 1000 °C, 1 h, with PMAfixed chargeours 4.46×10¹¹ · paper 4.30×10¹¹ cm⁻²✓ within tolerance (+3.7%)(111), 1000 °C, 1 h, with PMAinterface state density at midgapours 8.63×10¹⁰ · paper 1.20×10¹¹ cm⁻² eV⁻¹✕ outside (-28%)(100), 1000 °C, 8 h, with PMAoxide thicknessours 209 · paper 205 nm✓ within tolerance (+2.0%)(100), 1000 °C, 8 h, with PMAfixed charge+107% ▸ours 2.69×10¹¹ · paper 1.30×10¹¹ cm⁻²✕ outside(100), 1000 °C, 8 h, with PMAinterface state density at midgapours 1.93×10¹⁰ · paper 2.20×10¹⁰ cm⁻² eV⁻¹≈ within twice the tolerance (-12%)(111), 1000 °C, 8 h, with PMAoxide thicknessours 238 · paper 240 nm✓ within tolerance (-0.9%)(111), 1000 °C, 8 h, with PMAfixed chargeours 4.46×10¹¹ · paper 3.80×10¹¹ cm⁻²≈ within twice the tolerance (+17%)(111), 1000 °C, 8 h, with PMAinterface state density at midgapours 2.29×10¹⁰ · paper 6.00×10¹⁰ cm⁻² eV⁻¹✕ outside (-62%)(110), 1000 °C, 1 h, with PMAfixed chargeours 1.58×10¹¹ · paper 1.08×10¹¹ cm⁻²✕ outside (+46%)(110), 1000 °C, 1 h, with PMAinterface state density at midgapours 1.05×10¹¹ · paper 7.90×10¹⁰ cm⁻² eV⁻¹✕ outside (+33%)(511), 1000 °C, 1 h, with PMAfixed chargeours 1.58×10¹¹ · paper 1.80×10¹¹ cm⁻²≈ within twice the tolerance (-12%)(511), 1000 °C, 1 h, with PMAinterface state density at midgapours 4.73×10¹⁰ · paper 5.70×10¹⁰ cm⁻² eV⁻¹≈ within twice the tolerance (-17%)(100), 750 °C, 23 h, with PMAfixed charge+297% ▸ours 2.78×10¹¹ · paper 7.00×10¹⁰ cm⁻²✕ outside(100), 750 °C, 23 h, with PMAinterface state density at midgapours 1.14×10¹¹ · paper 1.20×10¹¹ cm⁻² eV⁻¹✓ within tolerance (-5.3%)(100), 1000 °C, 1 h, no annealinterface state density at midgapours 2.61×10¹¹ · paper 2.60×10¹¹ cm⁻² eV⁻¹✓ within tolerance (+0.3%)Non-cleanroom (100), 750 °C, 24 hoxide thicknessours 34.9 · paper 25 nm✕ outside (+39%)Non-cleanroom (110), 1100 °C, 0.5 hoxide thicknessours 84.7 · paper 90 nm✓ within tolerance (-5.9%)
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
(100), 1000 °C, 1 h, with PMAoxide thickness50 nm57.9 nm+16%near (±10%)supported within scopetext, PDF p. 14: 500 Å
(100), 1000 °C, 1 h, with PMAfixed charge1.70e+11 cm⁻²1.58e+11 cm⁻²-7%within (±10%)supported within scopeTable III/VI, PDF p. 39, 42
(100), 1000 °C, 1 h, with PMAinterface state density at midgap5.00e+10 cm⁻² eV⁻¹7.51e+10 cm⁻² eV⁻¹+50%off (±10%)direction onlyTable IV, PDF p. 40
(111), 1000 °C, 1 h, with PMAoxide thickness64 nm70 nm+9%within (±10%)supported within scopetext, PDF p. 14: 640 Å
(111), 1000 °C, 1 h, with PMAfixed charge4.30e+11 cm⁻²4.46e+11 cm⁻²+4%within (±10%)supported within scopeTable III/VI
(111), 1000 °C, 1 h, with PMAinterface state density at midgap1.20e+11 cm⁻² eV⁻¹8.63e+10 cm⁻² eV⁻¹-28%off (±10%)direction onlyTable IV/VII
(100), 1000 °C, 8 h, with PMAoxide thickness205 nm209 nm+2%within (±10%)supported within scopetext, PDF p. 14: 2050 Å
(100), 1000 °C, 8 h, with PMAfixed charge1.30e+11 cm⁻²2.69e+11 cm⁻²+107%off (±10%)supported within scopeTable VI, PDF p. 42
(100), 1000 °C, 8 h, with PMAinterface state density at midgap2.20e+10 cm⁻² eV⁻¹1.93e+10 cm⁻² eV⁻¹-12%near (±10%)direction onlyTable VII, PDF p. 43
(111), 1000 °C, 8 h, with PMAoxide thickness240 nm238 nm-1%within (±10%)supported within scopetext, PDF p. 14: 2400 Å
(111), 1000 °C, 8 h, with PMAfixed charge3.80e+11 cm⁻²4.46e+11 cm⁻²+17%near (±10%)supported within scopeTable VI
(111), 1000 °C, 8 h, with PMAinterface state density at midgap6.00e+10 cm⁻² eV⁻¹2.29e+10 cm⁻² eV⁻¹-62%off (±10%)direction onlyTable VII
(110), 1000 °C, 1 h, with PMAfixed charge1.08e+11 cm⁻²1.58e+11 cm⁻²+46%off (±10%)outside the tested scopeTable II/VI (Table III prints 1.8; ruling 1)
(110), 1000 °C, 1 h, with PMAinterface state density at midgap7.90e+10 cm⁻² eV⁻¹1.05e+11 cm⁻² eV⁻¹+33%off (±10%)direction onlyTable IV/VII
(511), 1000 °C, 1 h, with PMAfixed charge1.80e+11 cm⁻²1.58e+11 cm⁻²-12%near (±10%)outside the tested scopeTable III/VI
(511), 1000 °C, 1 h, with PMAinterface state density at midgap5.70e+10 cm⁻² eV⁻¹4.73e+10 cm⁻² eV⁻¹-17%near (±10%)direction onlyTable IV/VII
(100), 750 °C, 23 h, with PMAfixed charge7.00e+10 cm⁻²2.78e+11 cm⁻²+297%off (±10%)outside the tested scopeTable III (±0.4)
(100), 750 °C, 23 h, with PMAinterface state density at midgap1.20e+11 cm⁻² eV⁻¹1.14e+11 cm⁻² eV⁻¹-5%within (±10%)direction onlyTable IV (printed header 10^11; ruling 2)
(100), 1000 °C, 1 h, no annealinterface state density at midgap2.60e+11 cm⁻² eV⁻¹2.61e+11 cm⁻² eV⁻¹+0%within (±10%)direction onlyTable IV/VII
Non-cleanroom (100), 750 °C, 24 hoxide thickness25 nm34.9 nm+39%off (±10%)outside the tested scopetext, PDF p. 6
Non-cleanroom (110), 1100 °C, 0.5 hoxide thickness90 nm84.7 nm-6%within (±10%)supported within scopetext, PDF p. 6

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

The alignment results below predate the revised (100), 1000 °C, 8 h, PMA thermal history. They use the earlier abbreviated cooling and PMA assumptions and do not validate the new transitions. The revised case uses scenario A with fast cooling; all four prompt-defined scenarios and duration-range checks are recorded in evaluations/vitkavage_transitions/report.json.

The reproduction above fills every gap in the report with an assumption of ours. Here each gap is treated as an unknown and scanned over what a furnace of that kind allows, against every cleanroom value in the report: 6 thicknesses, 28 fixed-charge values after the hydrogen anneal and 46 midgap trap densities (scripts/align_vitkavage.py, report in evaluations/vitkavage_alignment.json). No parameter declared fitted was touched. A tolerance is the larger of 10% and the spread the report prints for that value.

Timing unknowns that the data rule out. Extra time in oxygen before the stated time starts makes thickness worse at once (4 of 6 within tolerance with none, 3 with five minutes, 2 with ten), so the Table I times are times in oxygen at temperature, with no long ramp in oxygen before them. A nitrogen anneal at the oxidation temperature on every wafer makes fixed charge worse at any length from 5 to 60 minutes (median error from 20% to over 30%, simulation then too low), so the tabulated wafers are, as a set, not the wafers that had that anneal. For trap density neither unknown helps, and the hydrogen anneal length is pinned: 25 minutes instead of 30 loses 3 of the 11 passes and 35 minutes loses 7. That last result is not independent, because the program was fitted with 30.

Thickness is a material question, not a timing one. The 1965 law starts every oxide at 23 nm and its constants are for (111). On (100) it runs high for thin oxides (57.9 against 50 nm after one hour at 1000 °C). The thin-oxide law that our structure search found on Massoud's data lands at 51.6 nm for the same wafer and 197.6 against 205 nm after eight hours; Massoud is an author of this report and the cleanroom oxidations were done in his laboratory. With that law on (100) and the 1965 law elsewhere, 5 of 6 thicknesses are within 10% (4 of 6 before), the sixth being the non-cleanroom wafer at 750 °C (20.6 against 25 nm).

Fixed charge: the unknown is one thing per furnace run. All four orientations were oxidized together. At 1000 °C the report's own values for one orientation move between the four runs by 8 to 33% (standard deviation over mean), and three of the four orientations dip together in the 4 h run. A simulation that gives one number for one recipe can match at most two of four such values to 10%. So we inferred one unknown for each run from its (111) wafer, which carries the most charge: either a pull of some seconds in oxygen, or some minutes without oxygen before the pull. The other three wafers of each run, which played no part, then test it. Their median error falls from 58% (stated history) to 28%, and those within twice the tolerance rise from 5 to 10 of 21. The inferred values: pulls of 4 s for the 1 h and 2.5 h runs, effectively instant for the 900 °C and 8 h runs, half a minute without oxygen for the 4 h run, and the equivalent of 30 minutes without oxygen for the 750 and 800 °C runs.

Orientation. The predictor has fixed-charge constants for (100) and (111) only. Until this alignment it silently ran (110) and (511) on the (111) line and they came out three to four times high (272% and 329% median error); run on the (100) line they are 46% and 74% off, and the predictor now does that, labelled outside its tested scope. Deal's 1967 Table II has a (110) line that we had never transcribed; with it (110) is 70% high, worse than treating (110) as (100). On these wafers (110) and (511) carry about as little charge as (100).

✓9 within tolerance≈7 within twice the tolerance✕11 outside
simulation below the paper ← 0 → simulation above the paper-100%-50%0%+50%+100%(100), 750 °C, 24 h (non-cleanroom)oxide thicknessours 20.6 · paper 25 nm≈ within twice the tolerance (-17%)(100), 1000 °C, 1 h (cleanroom)oxide thicknessours 51.6 · paper 50 nm✓ within tolerance (+3.2%)(111), 1000 °C, 1 h (cleanroom)oxide thicknessours 70 · paper 64 nm✓ within tolerance (+9.3%)(100), 1000 °C, 8 h (cleanroom)oxide thicknessours 198 · paper 205 nm✓ within tolerance (-3.6%)(111), 1000 °C, 8 h (cleanroom)oxide thicknessours 238 · paper 240 nm✓ within tolerance (-0.9%)(110), 1100 °C, 0.5 h (non-cleanroom)oxide thicknessours 84.7 · paper 90 nm✓ within tolerance (-5.9%)(100), 750 °C, 23 hfixed charge+210% ▸ours 2.17×10¹¹ · paper 7.00×10¹⁰ cm⁻²✕ outside(511), 750 °C, 23 hfixed chargeours 2.17×10¹¹ · paper 1.60×10¹¹ cm⁻²≈ within twice the tolerance (+36%)(110), 750 °C, 23 hfixed chargeours 2.17×10¹¹ · paper 1.08×10¹² cm⁻²✕ outside (-80%)(100), 800 °C, 18 hfixed chargeours 1.46×10¹¹ · paper 1.60×10¹¹ cm⁻²✓ within tolerance (-8.6%)(511), 800 °C, 18 hfixed charge+631% ▸ours 1.46×10¹¹ · paper 2.00×10¹⁰ cm⁻²✕ outside(110), 800 °C, 18 hfixed chargeours 1.46×10¹¹ · paper 1.90×10¹¹ cm⁻²≈ within twice the tolerance (-23%)(100), 900 °C, 4.5 hfixed chargeours 1.82×10¹¹ · paper 1.30×10¹¹ cm⁻²✕ outside (+40%)(511), 900 °C, 4.5 hfixed charge+203% ▸ours 1.82×10¹¹ · paper 6.00×10¹⁰ cm⁻²✕ outside(110), 900 °C, 4.5 hfixed chargeours 1.82×10¹¹ · paper 1.70×10¹¹ cm⁻²✓ within tolerance (+7.1%)(100), 1000 °C, 1 hfixed chargeours 1.52×10¹¹ · paper 1.70×10¹¹ cm⁻²≈ within twice the tolerance (-10%)(511), 1000 °C, 1 hfixed chargeours 1.52×10¹¹ · paper 1.80×10¹¹ cm⁻²≈ within twice the tolerance (-15%)(110), 1000 °C, 1 hfixed chargeours 1.52×10¹¹ · paper 1.08×10¹¹ cm⁻²✕ outside (+41%)(100), 1000 °C, 2.5 hfixed chargeours 1.52×10¹¹ · paper 1.70×10¹¹ cm⁻²≈ within twice the tolerance (-10%)(511), 1000 °C, 2.5 hfixed chargeours 1.52×10¹¹ · paper 1.20×10¹¹ cm⁻²✕ outside (+27%)(110), 1000 °C, 2.5 hfixed chargeours 1.52×10¹¹ · paper 1.00×10¹¹ cm⁻²✕ outside (+52%)(100), 1000 °C, 4 hfixed chargeours 1.16×10¹¹ · paper 9.00×10¹⁰ cm⁻²✕ outside (+28%)(511), 1000 °C, 4 hfixed chargeours 1.16×10¹¹ · paper 7.00×10¹⁰ cm⁻²✕ outside (+65%)(110), 1000 °C, 4 hfixed chargeours 1.16×10¹¹ · paper 1.20×10¹¹ cm⁻²✓ within tolerance (-3.6%)(100), 1000 °C, 8 hfixed chargeours 1.29×10¹¹ · paper 1.30×10¹¹ cm⁻²✓ within tolerance (-0.9%)(511), 1000 °C, 8 hfixed chargeours 1.29×10¹¹ · paper 1.10×10¹¹ cm⁻²≈ within twice the tolerance (+17%)(110), 1000 °C, 8 hfixed chargeours 1.29×10¹¹ · paper 1.00×10¹¹ cm⁻²✕ outside (+29%)
The pale green band is the tolerance. Bars past ±100% are cut and carry their value.

9 within, 7 near, 11 off of 27 numbers with the aligned settings (the samples used to choose the unknowns are left out).

SampleQuantityThe paperAs reproduced aboveAlignedDifferenceVerdictHow
(100), 750 °C, 24 h (non-cleanroom)oxide thickness25 nm34.920.6-17%near (±10%)thin-oxide law found on Massoud's data
(100), 1000 °C, 1 h (cleanroom)oxide thickness50 nm57.951.6+3%within (±10%)thin-oxide law found on Massoud's data
(111), 1000 °C, 1 h (cleanroom)oxide thickness64 nm7070+9%within (±10%)1965 law, unchanged
(100), 1000 °C, 8 h (cleanroom)oxide thickness205 nm209198-4%within (±10%)thin-oxide law found on Massoud's data
(111), 1000 °C, 8 h (cleanroom)oxide thickness240 nm238238-1%within (±10%)1965 law, unchanged
(110), 1100 °C, 0.5 h (non-cleanroom)oxide thickness90 nm84.784.7-6%within (±10%)1965 law, unchanged
(100), 750 °C, 23 hfixed charge7.00e+10 cm⁻²2.78e+112.17e+11+210%off (±57%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 30 min
(511), 750 °C, 23 hfixed charge1.60e+11 cm⁻²2.78e+112.17e+11+36%near (±25%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 30 min
(110), 750 °C, 23 hfixed charge1.08e+12 cm⁻²2.78e+112.17e+11-80%off (±11%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 30 min
(100), 800 °C, 18 hfixed charge1.60e+11 cm⁻²2.54e+111.46e+11-9%within (±31%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 30 min
(511), 800 °C, 18 hfixed charge2.00e+10 cm⁻²2.54e+111.46e+11+631%off (±100%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 30 min
(110), 800 °C, 18 hfixed charge1.90e+11 cm⁻²2.54e+111.46e+11-23%near (±16%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 30 min
(100), 900 °C, 4.5 hfixed charge1.30e+11 cm⁻²2.06e+111.82e+11+40%off (±15%)run unknown inferred from the (111) wafer of this run: pull 0.25 s
(511), 900 °C, 4.5 hfixed charge6.00e+10 cm⁻²2.06e+111.82e+11+203%off (±33%)run unknown inferred from the (111) wafer of this run: pull 0.25 s
(110), 900 °C, 4.5 hfixed charge1.70e+11 cm⁻²2.06e+111.82e+11+7%within (±18%)run unknown inferred from the (111) wafer of this run: pull 0.25 s
(100), 1000 °C, 1 hfixed charge1.70e+11 cm⁻²1.58e+111.52e+11-10%near (±10%)run unknown inferred from the (111) wafer of this run: pull 4 s
(511), 1000 °C, 1 hfixed charge1.80e+11 cm⁻²1.58e+111.52e+11-15%near (±10%)run unknown inferred from the (111) wafer of this run: pull 4 s
(110), 1000 °C, 1 hfixed charge1.08e+11 cm⁻²1.58e+111.52e+11+41%off (±10%)run unknown inferred from the (111) wafer of this run: pull 4 s
(100), 1000 °C, 2.5 hfixed charge1.70e+11 cm⁻²1.58e+111.52e+11-10%near (±10%)run unknown inferred from the (111) wafer of this run: pull 4 s
(511), 1000 °C, 2.5 hfixed charge1.20e+11 cm⁻²1.58e+111.52e+11+27%off (±10%)run unknown inferred from the (111) wafer of this run: pull 4 s
(110), 1000 °C, 2.5 hfixed charge1.00e+11 cm⁻²1.58e+111.52e+11+52%off (±10%)run unknown inferred from the (111) wafer of this run: pull 4 s
(100), 1000 °C, 4 hfixed charge9.00e+10 cm⁻²1.58e+111.16e+11+28%off (±10%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 0.5 min
(511), 1000 °C, 4 hfixed charge7.00e+10 cm⁻²1.58e+111.16e+11+65%off (±10%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 0.5 min
(110), 1000 °C, 4 hfixed charge1.20e+11 cm⁻²1.58e+111.16e+11-4%within (±10%)run unknown inferred from the (111) wafer of this run: minutes without oxygen 0.5 min
(100), 1000 °C, 8 hfixed charge1.30e+11 cm⁻²1.58e+111.29e+11-1%within (±10%)run unknown inferred from the (111) wafer of this run: pull 0.25 s
(511), 1000 °C, 8 hfixed charge1.10e+11 cm⁻²1.58e+111.29e+11+17%near (±10%)run unknown inferred from the (111) wafer of this run: pull 0.25 s
(110), 1000 °C, 8 hfixed charge1.00e+11 cm⁻²1.58e+111.29e+11+29%off (±10%)run unknown inferred from the (111) wafer of this run: pull 0.25 s

What this does not fix. (100), (110) and (511) below 1000 °C still sit one and a half to three times above the report (for example 2.2 against 0.7 × 10^11 cm^-2 at 750 °C), and no unknown in the history moves them: the steady line we take from Deal 1967 says charge rises as oxidation temperature falls, and on these three orientations Vitkavage's does not. The program was never scored below 900 °C. Trap density after the anneal is 22% high on (110), 28% low on (111) and 17% low on (511) in the median, with (100) within 10%: an orientation dependence of the hydrogen step that the program does not have, and that no timing changes.

How to read the aligned numbers: the thickness change is a choice between two programs we already hold and is not fitted to this report. The run unknowns are inferred from this report's own (111) wafers, so the (111) rows are not in the chart; the 21 rows shown are the test. The inferred “minutes without oxygen” at 750 and 800 °C may equally be the steady line being too high at low temperature; the data here cannot tell those apart.

What our language and ontology cannot yet say

  • Done 10 November: a furnace run shared by several samples. A history may now hold several SAMPLE blocks under one CONTROL_TRAJECTORY, and scripts/align_study.py can share an unknown per run (share = "run"). Still missing: a record in the ontology that measurements came from one run. Before: The result above depends on four wafers having one history. A history file has one SAMPLE; the ontology has no record that measurements came from one run. A BATCH of samples under one CONTROL_TRAJECTORY would let one unknown be declared once and inferred from all of them.
  • Done 10 November: an unknown with a range, as a statement. TIMING bound and VARY duration 0.5..5 now exist and drive the alignment search. Before: “Shorter than 5 sec” had to become DURATION 5. The language needs DURATION 0.5..5 (a bound), and a status on each step's timing (stated, bound, assumed), which on this page is hand-written in Python. Then a scan like this one is a query, not a script.
  • Partly done 10 November: cooling as a law. PROFILE exponential TAU now exists; the charge program still needs a rate that freezes as the wafer cools. Before: A RUN's temperature is linear from start to end. A wafer leaving a furnace cools toward the room with a time constant. Without that, the end temperature of a pull (400 °C) is a cut-off that stands in for physics, and the charge program, whose oxygen rate barely depends on temperature (0.05 eV), keeps moving charge at 100 °C if a cooling step is written.
  • Done 10 November: steps with no duration. EVENT <id> KIND <kind> now records them in place. Still missing: an ontology class a program could read. Before: Clean, load, storage, metallization and measurement are comments in the history. The ontology has no classes for them that a program could read; an EVENT statement with a kind from the vocabulary would at least make them queryable.
  • Sample properties a program can read. Doping, wafer size, starting oxide and sample set are recorded and read by nothing. The starting oxide in particular is a parameter inside the growth program (23 nm) when it is a property of the wafer.
  • Done 10 November: an orientation with no constants. It now runs on the (100) line and is labelled outside the tested scope. Before: (110) and (511) fell back to (111) for fixed charge with a note; the number looked like any other.
  • Partly done 10 November: gas by pressure, not by name. The predictor now reads a gas by its partial pressures. Still open: the thin-oxide program grows oxide in nitrogen because it does not read the oxygen pressure. Before: Writing the stated moisture (mix:O2=0.999994,H2O=6.0e-6) made the fixed-charge program return nothing, because the predictor looks for the name dry_O2. And the thin-oxide program keeps growing oxide during a nitrogen step: it does not read the oxygen pressure.
  • What a measurement is. Fixed charge after a hydrogen anneal, apparent charge without one, and Deal's 1967 charge after 550 °C in nitrogen are three observables in the papers and one in ours. The work-function value behind every fixed charge here is not stated; an observation model for the C-V extraction would carry that assumption.
  • Repeatability as data. The report's run-to-run scatter (up to 33%) is larger than the 10% we score against. A dataset should carry its own repeatability so a contract's tolerance comes from the source.

With Quantum ESPRESSO switched on

The hydrogen step of the trap-density program has a fitted share of sites that the forming-gas anneal does not remove. An atomic calculation can say whether that share is set by how strongly hydrogen binds to a dangling bond. Quantum ESPRESSO (the dm_qe build) computed the energy of Si• + ½H₂ → Si–H for a silicon atom with three silicon back-bonds, the local structure of a Pb centre, on a 14-atom cluster (atomistic/calcs/si_dangling_bond_hydrogen.json; record evaluations/atomistic/si_dangling_bond_hydrogen.json). It ran twice: on the local CPU build and on an H100 on RunPod. The two agree to 0.3 meV in the reaction energy and to 10⁻⁸ Ry in the total energy, and the H100 was about four times faster on the larger cluster.

With the predictor's switch on (ISL_USE_COMPUTED=1 or --computed), the program experiments/atomistic/hydrogen_passivation_equilibrium.isl.template turns that energy, the free energy of hydrogen gas and a zero-point correction (both stated hypotheses) into the share of bonds an anneal would leave uncapped if it reached equilibrium, and multiplies the fitted density before the anneal by it. The fitted predictions do not change; the computed rows are added beside them and labelled as computed.

The numbers do not match, and the mismatch is the result. At equilibrium only about five in a million dangling bonds would stay uncapped at 400 °C in forming gas, which bounds the trap density at 10⁵ to 10⁷ cm⁻² eV⁻¹. Vitkavage measured 1.5 × 10¹⁰ to 1.6 × 10¹¹ after the anneal, four to five orders of magnitude more. What remains after the anneal is therefore not limited by the thermodynamics of the Si–H bond: either thirty minutes at 400 °C is far from equilibrium (a rate question the calculation does not answer), or the remaining traps are not dangling bonds that hydrogen can cap. Either way it supports the two-population form of the trap program, in which one population is not removed by hydrogen.

Limits: a cluster has no oxide around it and no interface strain; the zero-point correction (0.07 eV) and the gas entropy are recalled values marked hypothesis; no barrier was computed. The next calculation is the interface itself: a Si(100)/SiO₂ model with its suboxide transition and a Pb centre in place.

CalculationValueWhere it ranStatus
dE_cap_half_H2: energy of capping the dangling bond from molecular hydrogen, Si* + 1/2 H2 -> SiH; negative means hydrogen stabilizes the bond-1.2838 eVssh NVIDIA H100 80GB HBM3, 595.91.07complete
D_SiH: energy to break the Si-H bond into the dangling bond and a free hydrogen atom3.5429 eVssh NVIDIA H100 80GB HBM3, 595.91.07complete
D_H2: the H2 binding energy: a check on the method, to be compared with about 4.75 eV (well depth, recalled)4.5183 eVssh NVIDIA H100 80GB HBM3, 595.91.07complete
SampleMeasured interface state densityOur fitted programComputed equilibrium boundMeasured over bound
(100), 1000 °C, 1 h, with PMA5.00e+107.51e+101.48e+063.4e+04
(111), 1000 °C, 1 h, with PMA1.20e+118.63e+101.06e+061.1e+05
(100), 1000 °C, 8 h, with PMA2.20e+101.93e+108.85e-072.5e+16
(111), 1000 °C, 8 h, with PMA6.00e+102.29e+102.80e+052.1e+05
(110), 1000 °C, 1 h, with PMA7.90e+101.05e+115.05e+061.6e+04
(511), 1000 °C, 1 h, with PMA5.70e+104.73e+101.57e+063.6e+04
(100), 750 °C, 23 h, with PMA1.20e+111.14e+114.10e+062.9e+04
Non-cleanroom (100), 750 °C, 24 hno measurement on this page1.13e+114.09e+06
Non-cleanroom (110), 1100 °C, 0.5 hno measurement on this page6.56e+103.16e+06

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)8 of 2115.9%
heat-up A (hot push), fast cooling6 of 2127.6%12 of 21 moved by more than 2%
heat-up A (hot push), slow cooling6 of 2131.0%12 of 21 moved by more than 2%
heat-up B (cold-furnace ramp), fast cooling5 of 2125.5%13 of 21 moved by more than 2%
heat-up B (cold-furnace ramp), slow cooling5 of 2130.6%13 of 21 moved by more than 2%

The paper's own conclusions

The paper statesWhat we find
A forming-gas anneal lowers the midgap trap density on every orientationReproduced in direction on every case here (compare the two (100), 1000 °C, 1 h histories)direction right
Fixed charge and trap density order as (111) > (110) > (100) ≈ (511) at 1000 °CFixed charge has constants for (100) and (111) only; (110) and (511) are run with the nearest and labelled outside scopepartly
Oxide thickness after 1 h and 8 h at 1000 °C: 500–640 Å and 2050–2400 Å for (100) and (111)Linear-parabolic growth with the 1965 constants and one orientation ratio that is a hypothesissee the chart

What we would like Emily to check

  1. After a pull of under 5 s the wafer cools in the endcap in oxygen. Is 400 °C a fair temperature for the end of the step in which charge can still move, or should the cooling in the endcap be a second, slower step?
  2. The report says some wafers had a nitrogen anneal after oxidation. Does the journal version say which, and for how long?
  3. For the cleanroom set, is the oxidizing gas the same dry oxygen (under 6 ppm water) as the non-cleanroom set?
  4. Is comparing (110) with the other orientations fair, given the separate metallization run and wafer size?
  5. Is the charge read without a post-metallization anneal ever scored as fixed charge by the organisers?