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/long_2012.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
E. Long, A. Azarov, F. Kløw, A. Galeckas, A. Yu. Kuznetsov and S. Diplas, “Ge redistribution in SiO2/SiGe structures under thermal oxidation: Dynamics and predictions”, J. Appl. Phys. 111, 024308 (2012), doi:10.1063/1.3677987.
Long 2012 is the source the conserved-germanium program follows: “under a pure SiO2 oxide every silicon atom in the oxide came out of the alloy and every germanium atom stayed”, with the paper's N_ox = 2.21 × 10²² cm⁻³ and its fit of the alloy density. It is also the only paper we hold with germanium depth profiles of dry-oxidized SiGe at five temperatures and three times, and its central claim (at a given oxide thickness the profile does not depend on temperature from 800 to 1000 °C) is a direct test of a program in which the oxide thickness alone fixes the germanium dose.
How well can this study be reproduced?
Moderate. Two wafers (80 nm Si0.85Ge0.15 and 70 nm Si0.80Ge0.20 on a 100 nm Si buffer), one gas (dry O2, 1 atm), temperature and time at temperature for every profile, and the oxide thickness printed in every legend. A simulation must supply the furnace push and pull, the starting surface (a native oxide that holds some GeO2) and the RBS depth resolution. The germanium profiles exist only as graphs; Figure 5 is raw counts.
| Sample described | 0 of 5 properties we need are stated and encoded the same |
| History described | 2 of 8 steps are stated and encoded the same; 1 are stated by the paper and absent from our history; 3 are ours because the paper is silent |
| Timing | 1 of 3 simulated steps have a stated duration; 4 of 4 other steps have none; 4 timing gaps listed below |
| How the results are given | Oxide thicknesses printed in the figure legends (ellipsometry); germanium against depth only as Figures 6 and 7 (RBS, read from the graph here); Figure 5 as raw counts; Figure 8 doses as a scatter plot |
| Repeatability stated by the authors | Ellipsometry against RBS: a sample standard deviation of 3.8 nm (PDF p. 3). No repeat oxidations reported |
| Internal consistency | Fair. The 850 °C sample is 75 min and 356 Å in Figures 2-3 but 60 min and 315 Å in Figure 7; the x = 0.15 and x = 0.20 series have near-identical times and thicknesses; the un-oxidized 80 nm layer is about 58 nm wide on the RBS depth scale |
| Is our model independent of this paper's data? | Yes. No program of ours was fitted to these data. The inventory program takes N_ox and the alloy density from this paper (constants, not fitted to its profiles) |
| Outcome | 8 of 26 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.
“Epitaxial layers of Si1XGeX on a 100-nm Si buffer layer were grown on (100)-oriented Si substrates.”; supplied by the NSE-IM2NP team and NanoTecMat platform (acknowledgments, PDF p. 10)
| oxide thickness | 0 nm | 20.4 |
| germanium at the interface | 24.8 % | |
| enriched layer, e-folding depth | 3.03 nm | |
| germanium fraction at 10 nm below the interface | 0.151 | 0.18 |
| germanium fraction at 30 nm below the interface | 0.15 | 0.155 |
| alloy consumed | 0.526 nm |
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. 2 same, 5 approximated, 5 assumed, 1 not in ours.
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.
Si0.85Ge0.15, 900 °C, 25 min
| # | Step | Starts at | Lasts | Ends at | Temperature | Rate | Gas | Is the timing in the paper? |
|---|---|---|---|---|---|---|---|---|
| 1 | Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si | 0 s | not simulated | not stated. Growth method, temperature and time not stated | ||||
| 2 | Native oxide kept | 0 s | not simulated | not stated. Time in air since growth not stated | ||||
| 3 | Into the tube furnace | 0 s | not simulated | not stated. Load temperature, push rate and gas during the push not stated | ||||
| 4 | Push and heat-up (not described) | 0 s | 5 min | 5 min | 600 → 900 °C | +1 °C/s | dry_O2 | not stated; assumed. not stated; 1 to 20 min searched |
| 5 | Dry oxidation, 900 °C, 25 min | 5 min | 25 min | 30 min | 900 → 900 °C | held | dry_O2 | stated. time at temperature stated in the legends; whether it includes the push is not stated |
| 6 | Pull and cool-down (not described) | 30 min | 5 min | 35 min | 900 → 600 °C | -1 °C/s | dry_O2 | not stated; assumed. not stated; 1 to 20 min searched |
| 7 | Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile) | 35 min | not simulated | not stated |
Simulated time in this history: 35 min.
Across the samples
| Sample | RampUp | Oxidation | RampDown | Total |
|---|---|---|---|---|
| Si0.85Ge0.15, 900 °C, 25 min | 5 min at 600→900 °C | 25 min at 900 °C | 5 min at 900→600 °C | 35 min |
| Si0.85Ge0.15, 900 °C, 67 min | 5 min at 600→900 °C | 1 h 07 min at 900 °C | 5 min at 900→600 °C | 1 h 17 min |
| Si0.85Ge0.15, 900 °C, 150 min | 5 min at 600→900 °C | 2 h 30 min at 900 °C | 5 min at 900→600 °C | 2 h 40 min |
| Si0.85Ge0.15, 800 °C, 240 min (similar oxide) | 5 min at 600→800 °C | 4 h 00 min at 800 °C | 5 min at 800→600 °C | 4 h 10 min |
| Si0.85Ge0.15, 850 °C, 60 min (similar oxide) | 5 min at 600→850 °C | 1 h 00 min at 850 °C | 5 min at 850→600 °C | 1 h 10 min |
| Si0.85Ge0.15, 950 °C, 25 min (similar oxide) | 5 min at 600→950 °C | 25 min at 950 °C | 5 min at 950→600 °C | 35 min |
| Si0.85Ge0.15, 1000 °C, 20 min (similar oxide) | 5 min at 600→1000 °C | 20 min at 1000 °C | 5 min at 1000→600 °C | 30 min |
| Si0.80Ge0.20, 900 °C, 25 min | 5 min at 600→900 °C | 25 min at 900 °C | 5 min at 900→600 °C | 35 min |
| Si0.80Ge0.20, 900 °C, 67 min | 5 min at 600→900 °C | 1 h 07 min at 900 °C | 5 min at 900→600 °C | 1 h 17 min |
| Si0.80Ge0.20, 900 °C, 150 min | 5 min at 600→900 °C | 2 h 30 min at 900 °C | 5 min at 900→600 °C | 2 h 40 min |
| Si0.85Ge0.15, 850 °C, 75 min (XPS profile) | 5 min at 600→850 °C | 1 h 15 min at 850 °C | 5 min at 850→600 °C | 1 h 25 min |
Timing the paper does not give
- Push and pull of the tube furnace: load temperature, rate, gas.
- Whether the stated time includes the push.
- Time in air between growth and oxidation (the native oxide is given instead).
- Conditions of the other 12 points of this work in Figure 8.
What the second reading changed
- SOURCE.md and ontology/library.json describe the paper as “photoemission depth profiles at two temperatures (Figures 1 to 3)”. The profiles that carry the paper are RBS (Figures 5-7) at five temperatures; XPS (Figures 1-3) shows chemistry at two.
- The inventory program's comment says it follows Long p. 6. Long's Eq. 7 counts the whole germanium in a box-shaped pile-up of uniform X_pileup; the program puts the same dose, x N_ox X/(1−X), as the excess above X in an exponential. The two count different germanium (see the reading).
- The inventory program cites N_ox and the alloy density at “p. 6” and “p. 7”; both are on article page 024308-6, PDF p. 7.
- No dataset holds this paper; library.json lists it as held, unused. Every number here is graph-read or a printed legend.
- The native oxides (51 and 55 Å) are part of every measured oxide thickness; both SiGe programs start from 1 nm.
Their terms and ours
| The paper says | We write | Kind in our vocabulary | Note |
|---|---|---|---|
| pile-up / snow-plow / germanium-rich layer (GRL) | Ge_at_interface; Enriched_layer_efold_width; Ge_at_10nm | observables (target: composition_profile) | Long: “poorly defined in the literature and can only be described reliably as the tendency to increase the Ge concentration in a region adjacent to the oxidation front” (PDF p. 6). |
| t_pileup (Eq. 7: a box of uniform X_pileup) | Enriched_layer_efold_width (an exponential) | observable, different shape | A box of height X_p holding the dose has the thickness of an exponential's e-folding depth only if they count the same germanium; see the reading. |
| X_pileup | Ge_at_interface | observable | The program's interface value; RBS reports a smoothed peak about 10 nm below the front. |
| N_ox = 2.21e22 Si atoms/cm³ | PARAMETER N_ox (sourced) | parameter | Taken from this paper by the inventory program. |
| N_SiGe = (5.0214 − 0.5286X − 0.0517X²)e22 | PARAMETERs N_a, N_b, N_c (sourced) | parameter | Taken from this paper (after Dismukes 1964). |
| Q_sub: silicon dose from the substrate | (none) | not modelled | The inventory program excludes it explicitly. |
| tube furnace at ambient pressure flushed with dry O2 | AMBIENT dry_O2; RUN RampUp / Oxidation / RampDown | ambient and RUNs | The push and pull are ours. |
| native oxide not removed | STARTING_OXIDE_NM; CLEAN | sample fields | Not read by any SiGe program. |
| RBS depth profile (2 MeV He, 100° detector) | Ge_at_10nm, Ge_at_30nm | observable | No observation model of RBS depth resolution is written; profiles are compared raw and after a 4 nm Gaussian. |
| Massoud model with Si constants (the paper's own simulation) | (none) | not used | Our dry SiGe growth is Rabie's wet program or Deal and Grove's dry silicon law. |
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>.
Si0.85Ge0.15, 900 °C, 25 min
# Si0.85Ge0.15, 900 °C, 25 min
SAMPLE x15_900C_25min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.85Ge0.15
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.1
FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 1500 TEMP 900->900 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Si0.85Ge0.15, 900 °C, 67 min
# Si0.85Ge0.15, 900 °C, 67 min
SAMPLE x15_900C_67min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.85Ge0.15
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.1
FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 4020 TEMP 900->900 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Si0.85Ge0.15, 900 °C, 150 min
# Si0.85Ge0.15, 900 °C, 150 min
SAMPLE x15_900C_150min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.85Ge0.15
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.1
FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 9000 TEMP 900->900 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Si0.85Ge0.15, 800 °C, 240 min (similar oxide)
# Si0.85Ge0.15, 800 °C, 240 min (similar oxide)
SAMPLE x15_800C_240min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.85Ge0.15
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.1
FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->800 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 14400 TEMP 800->800 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 800->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Si0.85Ge0.15, 850 °C, 60 min (similar oxide)
# Si0.85Ge0.15, 850 °C, 60 min (similar oxide)
SAMPLE x15_850C_60min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.85Ge0.15
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.1
FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->850 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 3600 TEMP 850->850 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 850->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Si0.85Ge0.15, 950 °C, 25 min (similar oxide)
# Si0.85Ge0.15, 950 °C, 25 min (similar oxide)
SAMPLE x15_950C_25min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.85Ge0.15
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.1
FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->950 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 1500 TEMP 950->950 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 950->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)
# Si0.85Ge0.15, 1000 °C, 20 min (similar oxide)
SAMPLE x15_1000C_20min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.85Ge0.15
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.1
FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->1000 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 1200 TEMP 1000->1000 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 1000->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Si0.80Ge0.20, 900 °C, 25 min
# Si0.80Ge0.20, 900 °C, 25 min
SAMPLE x20_900C_25min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.80Ge0.20
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.5
FILM: Si0.80Ge0.20_70nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 1500 TEMP 900->900 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Figure 5 gives raw RBS counts against channel, not germanium fraction; only the oxide is scored. The peak count over the un-oxidized plateau is about 1.14, 1.65 and 2.27 at 25, 67 and 150 min (graph read).
Si0.80Ge0.20, 900 °C, 67 min
# Si0.80Ge0.20, 900 °C, 67 min
SAMPLE x20_900C_67min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.80Ge0.20
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.5
FILM: Si0.80Ge0.20_70nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 4020 TEMP 900->900 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Figure 5 gives raw RBS counts against channel, not germanium fraction; only the oxide is scored. The peak count over the un-oxidized plateau is about 1.14, 1.65 and 2.27 at 25, 67 and 150 min (graph read).
Si0.80Ge0.20, 900 °C, 150 min
# Si0.80Ge0.20, 900 °C, 150 min
SAMPLE x20_900C_150min {
FAMILY: SiGe_oxide
COMPOSITION: Si0.80Ge0.20
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.5
FILM: Si0.80Ge0.20_70nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->900 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 9000 TEMP 900->900 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 900->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile)
}Figure 5 gives raw RBS counts against channel, not germanium fraction; only the oxide is scored. The peak count over the un-oxidized plateau is about 1.14, 1.65 and 2.27 at 25, 67 and 150 min (graph read).
Si0.85Ge0.15, 850 °C, 75 min (XPS profile)
# Si0.85Ge0.15, 850 °C, 75 min (XPS profile)
SAMPLE x15_850C_75min_xps {
FAMILY: SiGe_oxide
COMPOSITION: Si0.85Ge0.15
ORIENTATION: Si100
CLEAN: not_stated
STARTING_OXIDE_NM: 5.1
FILM: Si0.85Ge0.15_80nm_on_Si_buffer_100nm_on_Si100
}
CONTROL_TRAJECTORY History {
EVENT Growth KIND deposition TIMING assumed # Epitaxial Si1-xGex on a 100 nm Si buffer on (100) Si
EVENT Storage KIND storage TIMING assumed # Native oxide kept
EVENT Load KIND load TIMING assumed # Into the tube furnace
RUN RampUp DURATION 300 TEMP 600->850 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
RUN Oxidation DURATION 4500 TEMP 850->850 AMBIENT dry_O2 TIMING stated
RUN RampDown DURATION 300 TEMP 850->600 AMBIENT dry_O2 TIMING assumed VARY duration 60..1200
EVENT Measure KIND measurement TIMING assumed # Ellipsometry (oxide), RBS 2 MeV He (Ge depth profile), XPS with Ar+ etch
}The paper's own pair of 850 °C labels disagree: Figures 2-3 say 75 min and 356 Å, Figure 7 says 60 min and 315 Å. Both are run.
The programs the predictor ran on these histories: experiments/rabie_sige/legoues_800C_14Ge.isl, experiments/sige_interface/interface_enrichment.isl.template, experiments/sige_inventory/conserved_germanium.isl.template.
The model itself, experiments/sige_inventory/conserved_germanium.isl.template, as it is written. Every equation the simulation uses is in this text; the runtime holds no physics.
# ==============================================================================
# ISL MODEL: GERMANIUM CONSERVED UNDER A GROWING OXIDE ON A SiGe ALLOY
#
# Under a pure SiO2 oxide every silicon atom in the oxide came out of the alloy and every germanium atom stayed
# (Long et al., J. Appl. Phys. 111, 024308 (2012), p. 6). The germanium released by an oxide of thickness x on an
# alloy of fraction X is therefore
# dose = x N_ox X / (1 - X) atoms per cm^2,
# and it sits in a layer under the oxide. The layer is taken to fall off exponentially with depth from its peak value
# ge_i at the interface: X(z) = X + (ge_i - X) exp(-z / width), so its dose is N (ge_i - X) width, which fixes the width.
#
# What sets the peak ge_i is not derived here. Where the dose is large it is the relation fitted to Mueller 2023
# (a floor plus a share of the starting fraction; experiments/sige_interface); where the dose is small it is limited by
# what the dose can fill in a layer no thinner than min_width. So a start of zero germanium gives zero germanium everywhere.
#
# Oxide growth is the silicon law, with the alloy's effect not modelled: dry from Deal and Grove 1965, steam and wet
# oxygen from the oxidant solubility and diffusivity of Rabie et al. 2005. Neither is a SiGe growth law (the transport
# program of Rabie runs 6 to 8 times slow away from its one case), so thickness here is an assumption, and the width and
# the dose scale with it.
# Not included: germanium lost as GeO2, silicon supplied from the substrate, oxidation of the layer itself (all
# of which matter once the alloy is consumed), and the effect of strain.
# Fields in {{braces}} are filled by scripts/run_sige_inventory.py.
# ==============================================================================
SAMPLE {sample_id} {{
FAMILY: SiGe_oxide
COMPOSITION: {composition}
}}
STATE x_ox {{ UNIT: cm; INITIAL: x_native; MIN: 0; MAX: 1.0e-3 }}
STATE ge_i {{ UNIT: 1; INITIAL: ge_start; MIN: 0; MAX: 1 }}
CONTROL T {{ UNIT: K }}
CONTROL p_O2 {{ UNIT: atm }}
CONTROL p_H2O {{ UNIT: atm }}
CONTROL p_N2 {{ UNIT: atm }}
CONTROL p_Ar {{ UNIT: atm }}
PARAMETER ge_start {{ VALUE: {ge_start}; UNIT: 1; STATUS: sourced; SOURCE: the sample's stated composition }}
# ---- conservation (sourced) ---------------------------------------------------------------------------------------
PARAMETER N_ox {{ VALUE: 2.21e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Long et al. 2012, p. 6, silicon atoms per cm3 of oxide, agent-read }}
PARAMETER N_a {{ VALUE: 5.0214e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Long et al. 2012, p. 7, alloy atomic density after Dismukes, constant term, agent-read }}
PARAMETER N_b {{ VALUE: 0.5286e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Long et al. 2012, p. 7, linear term in the germanium fraction, agent-read }}
PARAMETER N_c {{ VALUE: 0.0517e22; UNIT: cm^-3; STATUS: sourced; SOURCE: Long et al. 2012, p. 7, quadratic term in the germanium fraction, agent-read }}
# ---- the peak value (fitted to Mueller 2023 in experiments/sige_interface; not refitted here) -----------------------
PARAMETER floor_ge {{ VALUE: 0.3; UNIT: 1; STATUS: fitted }}
PARAMETER share_ge {{ VALUE: 0.8; UNIT: 1; STATUS: fitted }}
PARAMETER settle_time {{ VALUE: 30.0; UNIT: s; STATUS: hypothesis }}
PARAMETER min_width {{ VALUE: 1.0e-7; UNIT: cm; STATUS: hypothesis }}
PARAMETER soft {{ VALUE: 1.0e-3; UNIT: 1; STATUS: constant }}
# ---- growth: the silicon laws -------------------------------------------------------------------------------------
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 }}
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 }}
# Steam and wet oxygen: a parabolic-linear law at 800 C fitted to the four oxide thicknesses of LeGoues 1989 as printed by Rabie 2005
# (scripts/run_sige_inventory.py), with the temperature dependence of the parabolic rate taken from Rabie's oxidant diffusivity.
PARAMETER B_w800 {{ VALUE: 3.0e-14; UNIT: cm^2 s^-1; STATUS: fitted }}
PARAMETER A_wet {{ VALUE: 1.0e-5; UNIT: cm; STATUS: fitted }}
PARAMETER E_ox {{ VALUE: 0.71; UNIT: eV; STATUS: sourced; SOURCE: Rabie et al. 2005 Table II, activation energy of oxidant diffusivity in the oxide, wet O2, agent-read }}
PARAMETER T_w {{ VALUE: 1073.15; UNIT: K; STATUS: constant }}
PARAMETER x_native {{ VALUE: 1.0e-7; UNIT: cm; STATUS: hypothesis }}
PARAMETER p_ref {{ VALUE: 1.0; UNIT: atm; STATUS: constant }}
PARAMETER k_B {{ VALUE: 8.617333262e-5; UNIT: eV K^-1; STATUS: constant }}
PARAMETER eps_n {{ VALUE: 1.0e12; UNIT: cm^-3; STATUS: constant }}
PARAMETER eps_w {{ VALUE: 1.0e-9; UNIT: cm; STATUS: constant }}
PARAMETER z_10 {{ VALUE: 1.0e-6; UNIT: cm; STATUS: constant }}
PARAMETER z_30 {{ VALUE: 3.0e-6; UNIT: cm; STATUS: constant }}
QUANTITY B_dry {{ UNIT: cm^2 s^-1; EQUATION: B_dry = B0 * exp(-E_B / (k_B * T)) }}
QUANTITY A_dry {{ UNIT: cm; EQUATION: A_dry = B_dry / (BA0 * exp(-E_BA / (k_B * T))) }}
QUANTITY B_wet {{ UNIT: cm^2 s^-1; EQUATION: B_wet = B_w800 * exp((E_ox / k_B) * (1 / T_w - 1 / T)) }}
# ---- conservation ---------------------------------------------------------------------------------------------------
QUANTITY N_alloy {{ UNIT: cm^-3; EQUATION: N_alloy = N_a - N_b * ge_start - N_c * ge_start * ge_start }}
QUANTITY dose {{ UNIT: cm^-2; EQUATION: dose = x_ox * N_ox * ge_start / (1 - ge_start) }}
QUANTITY line {{ UNIT: 1; EQUATION: line = floor_ge + share_ge * ge_start }}
QUANTITY supply_cap {{ UNIT: 1; EQUATION: supply_cap = ge_start + dose / (N_alloy * min_width) }}
QUANTITY target {{ UNIT: 1; EQUATION: target = (line + supply_cap - sqrt((line - supply_cap) * (line - supply_cap) + soft * soft)) / 2 }}
QUANTITY oxidizing {{ UNIT: 1; EQUATION: oxidizing = 1 - (p_N2 + p_Ar) / p_ref }}
QUANTITY width {{ UNIT: cm; EQUATION: width = dose / (N_alloy * (ge_i - ge_start) + eps_n) }}
CONTROL_TRAJECTORY {trajectory_id} {{
{runs}
}}
OPERATOR F_SiliconOxideGrowth : OxideGrowth {{
EQUATION: d(x_ox)/dt = (p_O2 / p_ref) * B_dry / (2 * x_ox + A_dry) + (p_H2O / p_ref) * B_wet / (2 * x_ox + A_wet)
}}
# The peak settles toward the value the alloy allows while it is being oxidized.
OPERATOR F_PeakEnrichment : Relaxation {{
EQUATION: d(ge_i)/dt = -oxidizing * (ge_i - target) / settle_time
}}
OBSERVATION_MODEL Obs_Thickness {{ TARGET: Thickness; UNIT: cm; EQUATION: Thickness = x_ox }}
OBSERVATION_MODEL Obs_Ge_At_Interface {{ TARGET: Ge_at_interface; UNIT: 1; EQUATION: Ge_at_interface = ge_i }}
OBSERVATION_MODEL Obs_Width {{ TARGET: Enriched_layer_efold_width; UNIT: cm; EQUATION: Enriched_layer_efold_width = width }}
OBSERVATION_MODEL Obs_Extent {{ TARGET: Enriched_layer_extent; UNIT: cm; EQUATION: Enriched_layer_extent = 3 * width }}
OBSERVATION_MODEL Obs_Consumed {{ TARGET: Consumed_alloy; UNIT: cm; EQUATION: Consumed_alloy = x_ox * N_ox / (N_alloy * (1 - ge_start)) }}
OBSERVATION_MODEL Obs_Ge_10 {{ TARGET: Ge_at_10nm; UNIT: 1; EQUATION: Ge_at_10nm = ge_start + (ge_i - ge_start) * exp(-z_10 / (width + eps_w)) }}
OBSERVATION_MODEL Obs_Ge_30 {{ TARGET: Ge_at_30nm; UNIT: 1; EQUATION: Ge_at_30nm = ge_start + (ge_i - ge_start) * exp(-z_30 / (width + eps_w)) }}
EVALUATION_CONTRACT {contract_id} {{
FROZEN: true
DATASET: data/derived/sige_interface_germanium.csv
DATASET_DIGEST: sha256:{dataset_sha256}
SPLIT: {split}
TARGET: Ge_at_interface = {target_value} +/- {tolerance} abs
}}Our simulation against the paper
8 within, 2 near, 16 off of 26 numbers. Tolerance is stated per row; nothing was fitted for this page.
| Sample and history | Quantity | The paper | Our simulation | Difference | Verdict | What the program's own evaluation says | Where in the paper |
|---|---|---|---|---|---|---|---|
| Si0.85Ge0.15, 900 °C, 25 min | oxide thickness | 20.4 nm | 30.2 nm | +48% | off (±18.6%) | outside the tested scope | Figure 6 legend “900C-25min-204Å”, PDF p. 6; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 900 °C, 25 min | germanium fraction at 10 nm below the interface | 0.18 | 0.153 | -15% | near (±10%) | outside the tested scope | Figure 6 at −100 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 900 °C, 25 min | germanium fraction at 30 nm below the interface | 0.155 | 0.15 | -3% | within (±10%) | outside the tested scope | Figure 6 at −300 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 900 °C, 67 min | oxide thickness | 35.4 nm | 65.2 nm | +84% | off (±10.7%) | outside the tested scope | Figure 6 legend “900C-67min-354Å”, PDF p. 6; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 900 °C, 67 min | germanium fraction at 10 nm below the interface | 0.215 | 0.189 | -12% | near (±10%) | outside the tested scope | Figure 6 at −100 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 900 °C, 67 min | germanium fraction at 30 nm below the interface | 0.155 | 0.151 | -3% | within (±10%) | outside the tested scope | Figure 6 at −300 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 900 °C, 150 min | oxide thickness | 59 nm | 134 nm | +126% | off (±10%) | outside the tested scope | Figure 6 legend “900C-150min-590Å”, PDF p. 6; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 900 °C, 150 min | germanium fraction at 10 nm below the interface | 0.33 | 0.258 | -22% | off (±10%) | outside the tested scope | Figure 6 at −100 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 900 °C, 150 min | germanium fraction at 30 nm below the interface | 0.15 | 0.164 | +9% | within (±10%) | outside the tested scope | Figure 6 at −300 Å, PDF p. 6 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 800 °C, 240 min (similar oxide) | oxide thickness | 40.8 nm | 197 nm | +383% | off (±10%) | outside the tested scope | Figure 7 legend “800C-4hr-408Å”, PDF p. 7; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 800 °C, 240 min (similar oxide) | germanium fraction at 10 nm below the interface | 0.24 | 0.16 | -33% | off (±10%) | outside the tested scope | Figure 7 at −100 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 800 °C, 240 min (similar oxide) | germanium fraction at 30 nm below the interface | 0.15 | 0.15 | +0% | within (±10%) | outside the tested scope | Figure 7 at −300 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 850 °C, 60 min (similar oxide) | oxide thickness | 31.5 nm | 59.1 nm | +88% | off (±12.1%) | outside the tested scope | Figure 7 legend “850C-60min-315Å”, PDF p. 7; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 850 °C, 60 min (similar oxide) | germanium fraction at 10 nm below the interface | 0.235 | 0.152 | -35% | off (±10%) | outside the tested scope | Figure 7 at −100 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 850 °C, 60 min (similar oxide) | germanium fraction at 30 nm below the interface | 0.15 | 0.15 | +0% | within (±10%) | outside the tested scope | Figure 7 at −300 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 950 °C, 25 min (similar oxide) | oxide thickness | 39.2 nm | 30.3 nm | -23% | off (±10%) | outside the tested scope | Figure 7 legend “950C-25min-392Å”, PDF p. 7; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 950 °C, 25 min (similar oxide) | germanium fraction at 10 nm below the interface | 0.245 | 0.179 | -27% | off (±10%) | outside the tested scope | Figure 7 at −100 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 950 °C, 25 min (similar oxide) | germanium fraction at 30 nm below the interface | 0.145 | 0.15 | +4% | within (±10%) | outside the tested scope | Figure 7 at −300 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 1000 °C, 20 min (similar oxide) | oxide thickness | 38.1 nm | 26.1 nm | -31% | off (±10%) | outside the tested scope | Figure 7 legend “1000C-20min-381Å”, PDF p. 7; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 1000 °C, 20 min (similar oxide) | germanium fraction at 10 nm below the interface | 0.235 | 0.216 | -8% | within (±10%) | outside the tested scope | Figure 7 at −100 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.85Ge0.15, 1000 °C, 20 min (similar oxide) | germanium fraction at 30 nm below the interface | 0.14 | 0.153 | +9% | within (±10%) | outside the tested scope | Figure 7 at −300 Å, PDF p. 7 (read from the graph; RBS profile, depth resolution not stated) |
| Si0.80Ge0.20, 900 °C, 25 min | oxide thickness | 19.6 nm | 30.5 nm | +56% | off (±19.4%) | outside the tested scope | Figure 5 legend and text “25min-196Å”, PDF p. 5; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.80Ge0.20, 900 °C, 67 min | oxide thickness | 35.6 nm | 66.1 nm | +86% | off (±10.7%) | outside the tested scope | Figure 5 legend and text “67min-356Å”, PDF p. 5; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.80Ge0.20, 900 °C, 150 min | oxide thickness | 57.5 nm | 136 nm | +136% | off (±10%) | outside the tested scope | Figure 5 legend and text “150min-575Å”, PDF p. 5; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 850 °C, 75 min (XPS profile) | oxide thickness | 35.6 nm | 71.4 nm | +101% | off (±10.7%) | outside the tested scope | Figure 2 and 3 captions, PDF p. 4; ellipsometry, tolerance the larger of 10% and the stated 3.8 nm standard deviation |
| Si0.85Ge0.15, 850 °C, 75 min (XPS profile) | germanium at the interface | 28 % | 44.8 % | +60% | off (±10%) | outside the tested scope | Figure 3 (Ge3d, detection depth 11.7 nm), peak near the interface read from the graph, PDF p. 4; the text says “roughly double that of the intrinsic SiGe” (PDF p. 4) |
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. The unknowns were chosen on x15_900C_150min, x15_900C_25min, x15_900C_67min only; every other number is a test they played no part in.
| Unknown | What the paper says | Range searched | The reproduction used | Best alone | Score at the reproduction's value | Best score alone |
|---|---|---|---|---|---|---|
| Push and heat-up (not described): duration | not stated; 1 to 20 min searched | 60 to 1200 s | 300 s | 60 s | 3 of 9 within tolerance, median error 15.1% | 3 of 9 within tolerance, median error 15.2% |
| Pull and cool-down (not described): duration | not stated; 1 to 20 min searched | 60 to 1200 s | 300 s | 60 s | 3 of 9 within tolerance, median error 15.1% | 3 of 9 within tolerance, median error 15.2% |
Together: RampUp duration 98.85 s (was 300); RampDown duration 60 s (was 300).
As reproduced: 8 of 26 within tolerance, median error 29.1%. Aligned: 9 of 26 within tolerance, median error 26.2%. On the held-out samples only: 5 of 17 within tolerance, median error 33.4% as reproduced, 5 of 17 within tolerance, median error 35.2% aligned.
Choices of program or material property, each scored on its own and on top of the aligned history:
| Variant | Alone | With the aligned history |
|---|---|---|
| no push or pull (isothermal) | 9 of 26 within tolerance, median error 25.3% | 9 of 26 within tolerance, median error 25.3% |
| push and pull in nitrogen | 7 of 26 within tolerance, median error 29.9% | 8 of 26 within tolerance, median error 26.4% |
Two timing unknowns were searched, the furnace push (1 to 20 min) and pull (1 to 20 min), chosen on the three Si0.85Ge0.15 samples oxidized at 900 °C for 25, 67 and 150 min (Figure 6, 9 numbers); the temperature series of Figure 7, the Si0.80Ge0.20 series of Figure 5 and the 850 °C XPS sample are the test (17 numbers). Two variants were tried: no push or pull, and push and pull in nitrogen.
Short ramps win, and win nothing on the test. As reproduced 8 of 26 within tolerance (median error 29.1%); aligned 9 of 26 (26.2%), with the push at 99 s and the pull at 60 s, the bottom of their ranges. The gain is one training number: the 25 min oxide comes down toward the measured 20.4 nm because the Rabie program grows oxide in every step at its wet rates. On the test cases 5 of 17 before and after, and the median error rises from 33.4% to 35.2%. Without any push or pull, 9 of 26 (25.3%); with push and pull in nitrogen, 7 of 26 alone and 8 of 26 on the aligned history. The data rule out long ramps in oxygen only in the sense that every extra minute adds oxide to a program that already grows too much at 800 to 900 °C.
What the five within-tolerance test numbers are. Four are the germanium fraction 30 nm below the front (0.14 to 0.155 measured, 0.150 to 0.153 predicted): both programs leave the alloy untouched there, and so do the samples. They test only that nothing happens deep in the layer. The fifth is the germanium at 10 nm at 1000 °C (0.235 measured, 0.212 aligned), where the inventory program happens to grow its thickest oxide (25 nm).
With heating and cooling transitions (the section above): a hot push of 1 to 5 min in nitrogen keeps 8 of 26 and lowers the median error to 26.8%; a 60 to 120 min cold-furnace ramp keeps 8 of 26 and raises it to 35.1%, moving 11 numbers by more than 2%. Cooling fast or five times slower changes nothing. The cold ramp hurts for the same reason long pushes do: the Rabie program oxidizes during the ramp.
5 within, 1 near, 11 off of 17 numbers with the aligned settings (the samples used to choose the unknowns are left out).
| Sample | Quantity | The paper | As reproduced above | Aligned | Difference | Verdict | How |
|---|---|---|---|---|---|---|---|
| Si0.85Ge0.15, 800 °C, 240 min (similar oxide) | oxide thickness | 40.8 nm | 197 | 192 | +371% | off (±10%) | test |
| Si0.85Ge0.15, 800 °C, 240 min (similar oxide) | germanium fraction at 10 nm below the interface | 0.24 | 0.16 | 0.16 | -34% | off (±10%) | test |
| Si0.85Ge0.15, 800 °C, 240 min (similar oxide) | germanium fraction at 30 nm below the interface | 0.15 | 0.15 | 0.15 | +0% | within (±10%) | test |
| Si0.85Ge0.15, 850 °C, 60 min (similar oxide) | oxide thickness | 31.5 nm | 59.1 | 53.2 | +69% | off (±12%) | test |
| Si0.85Ge0.15, 850 °C, 60 min (similar oxide) | germanium fraction at 10 nm below the interface | 0.235 | 0.152 | 0.152 | -35% | off (±10%) | test |
| Si0.85Ge0.15, 850 °C, 60 min (similar oxide) | germanium fraction at 30 nm below the interface | 0.15 | 0.15 | 0.15 | +0% | within (±10%) | test |
| Si0.85Ge0.15, 950 °C, 25 min (similar oxide) | oxide thickness | 39.2 nm | 30.3 | 24.2 | -38% | off (±10%) | test |
| Si0.85Ge0.15, 950 °C, 25 min (similar oxide) | germanium fraction at 10 nm below the interface | 0.245 | 0.179 | 0.176 | -28% | off (±10%) | test |
| Si0.85Ge0.15, 950 °C, 25 min (similar oxide) | germanium fraction at 30 nm below the interface | 0.145 | 0.15 | 0.15 | +4% | within (±10%) | test |
| Si0.85Ge0.15, 1000 °C, 20 min (similar oxide) | oxide thickness | 38.1 nm | 26.1 | 20 | -47% | off (±10%) | test |
| Si0.85Ge0.15, 1000 °C, 20 min (similar oxide) | germanium fraction at 10 nm below the interface | 0.235 | 0.216 | 0.212 | -10% | within (±10%) | test |
| Si0.85Ge0.15, 1000 °C, 20 min (similar oxide) | germanium fraction at 30 nm below the interface | 0.14 | 0.153 | 0.153 | +9% | within (±10%) | test |
| Si0.80Ge0.20, 900 °C, 25 min | oxide thickness | 19.6 nm | 30.5 | 24.4 | +24% | near (±19%) | test |
| Si0.80Ge0.20, 900 °C, 67 min | oxide thickness | 35.6 nm | 66.1 | 60.1 | +69% | off (±11%) | test |
| Si0.80Ge0.20, 900 °C, 150 min | oxide thickness | 57.5 nm | 136 | 130 | +126% | off (±10%) | test |
| Si0.85Ge0.15, 850 °C, 75 min (XPS profile) | oxide thickness | 35.6 nm | 71.4 | 65.6 | +84% | off (±11%) | test |
| Si0.85Ge0.15, 850 °C, 75 min (XPS profile) | germanium at the interface | 28 % | 44.8 | 44.8 | +60% | off (±10%) | test |
What alignment cannot fix: the oxide thickness, and through it the germanium. This is case (d): programs exist and miss, and no history unknown can repair them. (1) No dry SiGe growth law. The predictor's SiGe oxide comes from the Rabie program, whose constants were chosen for wet oxygen at 800 °C and which does not read the gas: it gives 30, 65 and 134 nm at 900 °C for 20.4, 35.4 and 59.0 nm measured, 197 nm at 800 °C (4 h) for 40.8 nm, and too little at 950 and 1000 °C (30 and 26 nm for 39 and 38 nm). The inventory program grows its own oxide by Deal and Grove's dry silicon law: 8.1, 18.5 and 37.1 nm at 900 °C, 11 nm at 800 °C, 7.8 nm at 850 °C. Long's dry SiGe oxide is 1.5 to 4 times thicker than that silicon law gives, from a 5 nm native oxide. On one history the two programs disagree by a factor of 3.6 (134 against 37 nm at 150 min), and the measured value lies between them.
(2) The germanium follows the wrong oxide. Because the inventory width is the dose over the peak excess and the dose is proportional to the oxide, the 10 nm values at 800 and 850 °C (0.16 and 0.15 against 0.24 and 0.235) are low because the program grew 11 and 8 nm of oxide where 41 and 32 nm grew. Long's central result, that the profile at a given oxide thickness does not depend on temperature, is something the inventory program would reproduce if it were given the measured oxide: its width has no temperature in it. Through its own growth law it predicts a spread of 0.152 to 0.216 at 10 nm across Figure 7 where Long measures 0.215 to 0.245.
(3) Neither program has a finite layer, or the 5 nm native oxide. At 150 min Long's 80 nm layer is nearly turned into one Ge-rich layer (Figure 6); both programs keep an infinite Si0.85Ge0.15 under the front. Both start from 1 nm of oxide where 5.1 and 5.5 nm were present; STARTING_OXIDE_NM is recorded and read by neither.
(4) The 850 °C XPS sample's interface value (28% in Figure 3) is far below the relation's 44.8%, but XPS with an 11.7 nm detection depth and long etch steps smooths the interface as RBS does. Long says “roughly double” (about 30%) for the 15% alloy; the relation, fitted on Mueller's wet oxidations, says three times.
What our language and ontology cannot yet say
- One oxide per history, from a growth law for the gas. Two programs grow 134 and 37 nm on the same 150 min history (59 nm measured); the inventory's germanium dose follows its own oxide. The predictor should take one oxide thickness (or a stated one:
MEASURED_OXIDE_NMas an input, as done for the nanowire program's RUN_FLAT_OXIDE_NM) and feed it to every composition program. With the stated oxide the inventory program's width is a prediction of Long's profiles with nothing grown. - A dry-oxygen SiGe growth program, or a refusal. The Rabie program runs dry histories at its wet 800 °C constants and labels them “direction only”. Long gives eleven dry oxide thicknesses at 800 to 1000 °C on two compositions; they would fit or test one.
- STARTING_OXIDE_NM read by the SiGe programs. The native oxide is 5 nm here (a quarter of the 25 min oxide), and it carries GeO2 (XPS). Neither SiGe program reads it.
- Layered sample with a finite alloy.
LAYER SiGe { COMPOSITION: Si0.85Ge0.15; THICKNESS: 80 nm } on LAYER Si { THICKNESS: 100 nm }: needed to say when the pile-up consumes the layer (Long's Figure 6 at 150 min, and his Eq. 8). - An observation model for the instrument's depth resolution. RBS and XPS report a profile smoothed by about 5 nm (estimated here from the un-oxidized edge) and 3.5 or 11.7 nm (Ge2p, Ge3d). A statement such as
OBSERVATION_MODEL ... RESOLUTION gaussian 5 nmwould let a sharp predicted profile be compared with a measured one without the hand-written smoothing in this study file. - A depth profile as a target. Results are scalars at chosen depths (10 nm, 30 nm). Long's data are profiles with the front aligned at zero by the authors; a profile target (depth series, with the front position as an unknown) would score the whole shape.
- The conserved dose in the inventory program. Its comment follows Long's Eq. 7 (the germanium of the consumed alloy, x N_ox X/(1−X)) but places that dose as the excess above X in an exponential. Counting atoms with the alloy shrinking by the silicon removed gives an excess of x N_ox X, as scripts/analyse_germanium_inventory.py already uses. The program's width is 1/(1−X) too large: 18% at X = 0.15, 100% at X = 0.5. A predictor change, not a language one; it is listed here because this paper is its source.
- A clean word for “native oxide not removed”. The CLEAN vocabulary has no entry for an uncleaned surface; not_stated is wrong here, because the paper does state it.
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.
| History | Within tolerance | Median error | Changed numbers |
|---|---|---|---|
| as the paper states it (above) | 8 of 26 | 31.4% | |
| heat-up A (hot push), fast cooling | 8 of 26 | 26.8% | 8 of 26 moved by more than 2% |
| heat-up A (hot push), slow cooling | 8 of 26 | 26.8% | 8 of 26 moved by more than 2% |
| heat-up B (cold-furnace ramp), fast cooling | 8 of 26 | 35.1% | 11 of 26 moved by more than 2% |
| heat-up B (cold-furnace ramp), slow cooling | 8 of 26 | 35.1% | 11 of 26 moved by more than 2% |
The paper's own conclusions
| The paper states | What we find | |
|---|---|---|
| No germanium in the thermal oxide at 800-1000 °C; oxidized germanium only in the native oxide (XPS) | The inventory program puts none in the oxide; the Rabie program, run for every SiGe history, reports 4.6 to 13.6% GeO2 in the oxide | contradicted by one of our programs |
| Longer oxidation raises the germanium in the pile-up and finally consumes the layer into one Ge-rich layer | Both programs raise the near-interface germanium with time; neither has a finite layer, so neither can consume it | direction only |
| At a given oxide thickness the profile does not depend on temperature (800-1000 °C) | The inventory width depends only on the oxide and a temperature-free peak, so it agrees in form; but each program grows a different oxide at each temperature, so the predicted profiles at Figure 7's conditions differ (see the reading) | agrees in form |
| Si dose in the oxide equals the Si dose taken from the pile-up for thin oxides; thicker ones lie 30-50% above the line (Figure 8) | The inventory program assumes the balance and does not test it; see the reading for which germanium it counts | assumed, not tested |
What the reproduction shows
The measured profiles against the two programs (PYTHONPATH=. python -m reproductions.long_2012; numbers as that function prints them, with the push and pull as written above). The RBS depth resolution is not stated. Fitting the un-oxidized sample's edge at the front (Figure 6) as a step seen through a Gaussian gives σ = 5.0 nm. Both programs' profiles were smoothed with it before comparison; Long's depth zero is his own alignment of the oxidation front.
Germanium is conserved in the samples. The area under the un-oxidized and the 150 min profiles of Figure 6 is 9.57 and 9.47 nm (germanium fraction × depth): 1% apart, inside the graph reading. This is the premise of the inventory program and Long's “little or no diffusion of Ge into the substrate”, and it holds.
At 900 °C, with each program's own oxide. At 10 nm below the front, after smoothing: 25 min, measured 0.180, Rabie 0.198, inventory 0.163; 67 min, 0.215, 0.239, 0.202; 150 min, 0.330, 0.280, 0.261. The root-mean-square difference over 5 to 30 nm is 0.017, 0.036, 0.052 for Rabie and 0.010, 0.023, 0.052 for the inventory, against 0.017, 0.034, 0.115 for no redistribution at all (a flat 0.15). So at 25 and 67 min the measured enrichment is small enough that a flat profile does about as well as either program; at 150 min both programs capture half of the departure from flat. Both programs put the peak at the front (0.53 and 0.45 before smoothing, 0.31 and 0.28 after) where Long's profile peaks at 0.33 about 10 nm below it, and both are narrower: the measured germanium stays above 0.165 from about 3 to 28 nm below the front, while the inventory's e-folding depth is 9.8 nm and Rabie's 9.5 nm.
The inventory width, given Long's oxide instead of its own. With the thermal part of the 150 min oxide (59.0 − 5.1 = 53.9 nm) the program's dose x N_ox X/(1−X) is 4.25 nm of excess germanium and its peak 0.448, so its e-folding depth would be 14.3 nm (3 e-folds 43 nm). The exact atom balance (the alloy loses only the oxidized silicon) needs 3.62 nm of excess, giving 12.1 nm. Long's own Eq. 7 box (X_pileup = 0.33) is 13.2 nm. The measured excess above 0.15 in the top 40 nm, read from the smoothed profile, is 2.97 nm; the rest is spread across the front by the resolution and into the depleted bottom of the finite layer. With the measured oxide the inventory program's width would be within 20% of what Long's data and Long's own relation imply; with its own oxide it is 9.8 nm at 150 min (20 to 30% narrower), and at 800 and 850 °C (2.9 and 2.1 nm, against 8.0 and 5.9 nm from the exact balance with the measured oxide) about 3 times too narrow.
How faithfully the inventory program follows Long. It takes N_ox (2.21e22 cm⁻³) and the alloy density fit exactly as printed (PDF p. 7) and the premise that the thermal oxide holds no germanium (Long's XPS). It departs in four places: (1) the dose it places as excess is Long's total germanium of the consumed alloy, which over-counts by 1/(1−X); (2) the shape is an exponential from a peak at the front, where Long's Eq. 7 is a uniform box and his Figure 6 shows a peak about 10 nm in; (3) the peak value is the relation fitted on Mueller's wet oxidations (0.45 for a 15% alloy), where Long measures “roughly double” (XPS) and 0.18 to 0.33 by RBS, and computes in Figs. 9-11 a peak set by the balance of oxidation and silicon diffusion, which the program does not have; (4) growth is Deal and Grove's dry silicon law, where Long's paper uses Massoud's silicon model for its simulations and its measured SiGe oxides are 1.5 to 4 times thicker than the program's silicon law gives.
What we would like Emily to check
- Is the RBS depth scale reliable to 25%? The un-oxidized 80 nm layer is about 58 nm wide in Figure 6, and the conversion of energy to depth needs a density the paper does not give.
- Should the conserved germanium excess be X N_ox x (all atoms but the oxidized silicon stay; the alloy shrinks by the silicon removed) rather than X N_ox x /(1 − X), the germanium of the consumed alloy that the program places above the background?
- Figure 8's thick-oxide points lie 30 to 50% above the line. Long reads that as an apparent negative Q_sub. Could it instead be the pile-up's own background germanium being counted as extracted (Eq. 9 counts X_pileup, not X_pileup − X)?
- Are the 850 °C samples of Figures 2-3 (75 min, 356 Å) and Figure 7 (60 min, 315 Å) two samples?