Startseite  /  Was STDF ist
STDF - Standard Test Data Format - Version 4

Was ist STDF? Der vollständige, leicht verständliche Leitfaden

STDF ist das branchenübliche binäre Dateiformat für Halbleiter-Testdaten. Diese Seite erklärt Zweck, Struktur, Record-Typen, Dateireihenfolge, Skalierung, Pin-Mapping und die Analyse mit DLOG.

Einführung

1. Was STDF ist

STDF (Standard Test Data Format) ist ein einfaches, flexibles, portables, binäres Datenformat zum Speichern der Ergebnisse von Halbleiter-Testgeräten. Es wurde von Teradyne entwickelt und 1985 erstmals vorgestellt. Weil es gut dokumentiert und herstellerneutral ist, wurde es zum De-facto-Standard in der gesamten Branche der automatischen Testgeräte (Automatic Test Equipment, ATE).

Wenn ein Tester einen Die auf einem Wafer oder ein gehäustes Bauteil misst, schreibt er die parametrischen Messwerte, die Pass/Fail-Ergebnisse, die Bin-Zuordnungen und die Testbedingungen in eine STDF-Datei — üblicherweise als Datalog bezeichnet. Eine STDF-Datei enthält die Testdaten für ein Los von Bauteilen aus einer einzelnen Insertion (ein Durchlauf eines Loses durch den Test).

Der Grundgedanke: STDF ist keine Datenbank und kein starrer Bericht. Es ist ein definierter Satz logischer Record-Typen. Jeder Record beschreibt einen Teil des Testlaufs (ein Bauteil, einen Wafer, eine einzelne Messung, einen Bin-Zähler und so weiter). Weil die Daten als logische Records beschrieben sind, funktioniert dasselbe Format, ganz gleich ob die Daten in einem Speicherpuffer, in einer Datei auf der Festplatte liegen oder über ein Netzwerk übertragen werden — unabhängig von einer bestimmten Datenbank- oder Netzwerkarchitektur.

In einem Satz: STDF ist ein kompakter binärer Container aus typisierten „Records“, der es ermöglicht, dass Testdaten von jedem beliebigen Tester — Teradyne, Advantest, Cohu/Xcerra oder ein selbst gebautes ATE — von denselben Werkzeugen gelesen und analysiert werden. Die heute am weitesten verbreitete Version ist STDF V4, die diese Seite beschreibt.
Motivation

2. Warum STDF existiert

Als die ATE-Branche reifer wurde, bauten die Hersteller Netzwerk- und Analysesysteme rund um gängige Standards wie Ethernet. Doch eine gravierende Lücke blieb: Testergebnisdaten waren zwischen Testern verschiedener Hersteller nicht kompatibel — und manchmal nicht einmal zwischen Produktlinien desselben Herstellers.

Ohne ein gemeinsames Format bräuchte jede Fab und jeder OSAT (Assembly- & Test-Dienstleister) einen eigenen Parser für jede Maschine. STDF schließt diese Lücke. Es stellt einen einzigen gemeinsamen Container bereit, sodass:

  • ein Tester seine Rohergebnisse schnell in seiner eigenen nativen Darstellung schreiben kann;
  • eine zentrale Datenbank-Engine mit einem einzigen Programm Daten von einer breiten Palette von Testern akzeptieren kann;
  • Daten in einer gut dokumentierten, gründlich getesteten Form zurück in interne Netzwerke exportiert werden können;
  • portable Berichts- und Analysesoftware einmal geschrieben und überall verwendet werden kann.

Teradyne zieht aus dem Standard keinen direkten kommerziellen Nutzen — es veröffentlichte STDF gerade deshalb, damit die gesamte Branche mit einem gemeinsamen, vollständig dokumentierten Format produktiver arbeiten kann.

Entwurfsziele

3. Entwurfsziele

Der Entwurf von STDF folgte einer kleinen Reihe klarer Ziele:

  • Testdaten für alle Halbleiter-Tester und -Trimmer speichern zu können.
  • Ein gemeinsames Format sowohl für die Speicherung als auch für die Übertragung von Daten bereitstellen.
  • Eine Grundlage für portable Berichts- und Analysesoftware bieten.
  • Das Datennachrichtenformat vom Datenbankformat entkoppeln, sodass sich beide unabhängig voneinander weiterentwickeln können.
  • Unterstützung für optionale (fehlende oder ungültige) Daten bieten.
  • Vollständige, prägnante Dokumentation für Entwickler und Anwender liefern.
  • Es Kunden einfach machen, eigene Berichte zu schreiben oder Daten für ihre eigene Datenbank umzuformatieren.
Dateiaufbau

4. Wie eine STDF-Datei aufgebaut ist

Eine STDF-Datei ist einfach eine Folge von Records, einer nach dem anderen. Jeder Record — gleich welchen Typs — beginnt mit demselben 4-Byte-Record-Header:

FeldTypBedeutung
REC_LENU*2Anzahl der Datenbytes, die auf den Header folgen (die 4 Bytes des Headers selbst werden nicht mitgezählt).
REC_TYPU*1Eine Ganzzahl, die eine Gruppe verwandter Record-Typen kennzeichnet.
REC_SUBU*1Eine Ganzzahl, die den konkreten Record-Typ innerhalb dieser Gruppe kennzeichnet.

Das Paar (REC_TYP, REC_SUB) identifiziert jeden Record-Typ eindeutig. Die Gruppierung nach REC_TYP erlaubt es Analyseprogrammen, Familien von Records schnell zu erkennen (zum Beispiel „alles, was pro Bauteil erfasst wird“). Alle Typ-/Sub-Typ-Codes unter 200 sind von Teradyne reserviert; Codes über 200 stehen für eigene Anwendungen frei zur Verfügung.

Record-Gruppen (REC_TYP)

REC_TYPGruppeRecord-Typen (REC_SUB)
0Informationen über die DateiFAR (10), ATR (20)
1Daten pro LosMIR (10), MRR (20), PCR (30), HBR (40), SBR (50), PMR (60), PGR (62), PLR (63), RDR (70), SDR (80)
2Daten pro WaferWIR (10), WRR (20), WCR (30)
5Daten pro BauteilPIR (10), PRR (20)
10Pro Test (gesamtes Programm)TSR (30)
15Pro TestausführungPTR (10), MPR (15), FTR (20)
20Pro ProgrammabschnittBPS (10), EPS (20)
50Generische DatenGDR (10), DTR (30)

Byte-Reihenfolge und der CPU_TYPE-Trick

Verschiedene Prozessoren (DEC, Motorola, Intel, IBM, Sun …) speichern Ganzzahlen und Gleitkommazahlen mit unterschiedlicher Bit-Anordnung. Anstatt jeden Tester zu zwingen, die Daten schon beim Schreiben umzuwandeln (was den Test verlangsamen würde), lässt STDF jedes System in seiner eigenen nativen Darstellung schreiben und hält im Feld CPU_TYPE des allerersten Records (des FAR) fest, welche CPU die Datei geschrieben hat. Wenn ein anderes System die Datei liest, prüft es CPU_TYPE und wandelt jeden Record nur bei Bedarf in seine eigene Darstellung um. Die Datenkonvertierung wird so beim Lesen transparent, und der Test wird nie verlangsamt.

Datum und Uhrzeit

Jedes Datums-/Zeitfeld ist eine vorzeichenlose 4-Byte-Ganzzahl, die die Anzahl der Sekunden seit Mitternacht des 1. Januar 1970 (UNIX-Epoche) in der lokalen Zeitzone zählt.

Kodierung

5. Datentyp-Codes

STDF verwendet kurze, gut erkennbare Codes für seine Feldtypen. Zum Beispiel bedeutet R*4 eine 4-Byte-Realzahl (Float). Die Zahl nach dem * ist die Größe in Bytes; ein Byte hat 8 Bit.

CodeC-TypBeschreibung
C*12char[12]Zeichenkette fester Länge. Ist sie kürzer, wird sie linksbündig ausgerichtet und mit Leerzeichen aufgefüllt.
C*nchar[]Zeichenkette variabler Länge; das erste Byte ist ein vorzeichenloser Zähler der folgenden Bytes (max. 255).
C*fchar[]Zeichenkette variabler Länge, deren Länge in einem anderen Feld gespeichert ist.
U*1 / U*2 / U*4unsignedVorzeichenlose 1-, 2- und 4-Byte-Ganzzahlen.
I*1 / I*2 / I*4signedVorzeichenbehaftete 1-, 2- und 4-Byte-Ganzzahlen.
R*4 / R*8float / double4- und 8-Byte-Gleitkommazahlen.
B*6char[6]Bit-kodierte Daten fester Länge.
B*nchar[]Bit-kodiertes Feld variabler Länge; das erste Byte ist ein Byte-Zähler (max. 255).
D*nchar[]Bitfeld variabler Länge; die ersten zwei Bytes sind ein Bit-Zähler (max. 65.535 Bit).
N*1charEine vorzeichenlose Ganzzahl in einem Nibble (4 Bit). Erster Wert im unteren Nibble, zweiter im oberen Nibble.
V*n—Variabler Datentyp: das erste Byte ist ein Code, der den Typ angibt, danach folgen die Daten.
kxTYPETYPE[]Ein Array aus k Elementen des angegebenen Typs, wobei k aus einem früheren Feld stammt, z. B. kxU*2.
Robustheit

6. Optionale, fehlende & ungültige Daten

Viele Felder sind als optional gekennzeichnet. Ein optionales Feld muss dennoch im Record vorhanden sein, aber es gibt zwei Standardwege, um „dieser Wert ist nicht aussagekräftig“ auszudrücken:

  1. Ein vordefinierter reservierter Wert bedeutet „fehlend“ — z. B. ein Längenbyte von 0 bei einer Zeichenkette oder eine bestimmte Zahl wie -1 bei einem numerischen Feld.
  2. Ein Optional-Data-Bitfeld: ein Byte, in dem jedes Bit anzeigt, ob ein bestimmtes optionales Feld gültige Daten enthält.

Um Platz zu sparen, dürfen optionale Felder am Ende eines Records ganz weggelassen werden — aber nur, wenn sie (und alles danach) fehlende/ungültige Daten enthalten. Ein optionales Feld aus der Mitte eines Records darf niemals weggelassen werden.

„Erforderlich“ vs. „optional“ hat eine enge Bedeutung. Es definiert nur, was eine minimal gültige STDF-Datei ausmacht. Analysesoftware (selbst die des Herstellers) kann Felder verlangen, die die Spezifikation optional nennt. In der Praxis hat eine minimal gültige Datei selten genug Daten für einen vollständigen Bericht — meist füllt man mehr als das strikte Minimum aus.
Regeln

7. Erforderliche Records & die Anfangssequenz

Unter STDF V4 muss eine gültige Datei vier erforderliche Records enthalten:

  • FAR — genau einer, und er muss der erste Record in der Datei sein.
  • MIR — genau einer, direkt nach dem FAR (und nach etwaigen ATRs).
  • PCR — mindestens einer (ein Summen-PCR mit HEAD_NUM = 255, oder einer pro Head/Site, oder beides).
  • MRR — genau einer, und er muss der letzte Record in der Datei sein.

Bei mehreren Records heißt es, ihr Platz sei „nach der Anfangssequenz“. Die Anfangssequenz ist der feste Block von Records ganz am Anfang der Datei. Ihre Reihenfolgeregeln:

  • Der FAR steht immer an erster Stelle.
  • Etwaige ATRs (Audit Trail) folgen unmittelbar auf den FAR.
  • Der MIR folgt auf FAR und ATRs.
  • Wird ein RDR (Retest) verwendet, folgt er unmittelbar auf den MIR.
  • Werden SDRs (Site Description) verwendet, folgen sie unmittelbar auf den MIR (und den RDR, falls vorhanden).
# Die Anfangssequenz, vollständig:
FAR → [ATRs] → MIR → [RDR] → [SDRs] → … alle übrigen Records … → MRR
Referenz

8. Alle STDF-V4-Record-Typen

Nachfolgend ist jeder von STDF V4 definierte Record-Typ aufgeführt, gruppiert danach, was er beschreibt. Zu jedem gibt es seine Funktion, wie oft er vorkommt, wo er in der Datei steht und — für die wichtigen Records — die vollständige Feldliste. Die Header-Felder (REC_LEN, REC_TYP, REC_SUB) sind in den Feldtabellen weggelassen, da sie für jeden Record identisch sind.

0

Records auf Dateiebene

FAR File Attributes Record — erforderlich, erster Record

Teilt einem Leser mit, wie der Rest der Datei zu dekodieren ist. Weil er CPU_TYPE und STDF_VER trägt, muss er zuerst gelesen werden.

FeldTypBeschreibung
CPU_TYPEU*1Welche CPU die Datei geschrieben hat (0 = DEC PDP-11/VAX, 1 = Sun 1–4, 2 = Sun 386i / IBM-PC-Familie).
STDF_VERU*1STDF-Versionsnummer, mit der die Daten erzeugt wurden.

ATR Audit Trail Record — optional

Hält jede Operation fest, die die Datei verändert hat (typischerweise ein Filterprogramm). Mehrere ATRs stehen in umgekehrt chronologischer Reihenfolge unmittelbar nach dem FAR.

FeldTypBeschreibung
MOD_TIMU*4Datum und Uhrzeit der Dateiänderung.
CMD_LINEC*nKommandozeile des Programms, das die Datei verändert hat.
1

Records pro Los

MIR Master Information Record — erforderlich, einer pro Datei

Enthält die globalen Informationen über das getestete Los — der „Kopf für alle Berichte“. Er hat viele Felder (die meisten optional); die wichtigsten sind hier gezeigt.

FeldTypBeschreibung
SETUP_TU*4Datum/Uhrzeit der Job-Einrichtung.
START_TU*4Datum/Uhrzeit, zu der das erste Bauteil getestet wurde.
STAT_NUMU*1Stationsnummer des Testers.
MODE_CODC*1Testmodus (P = Produktion, D/E = Entwicklung, M = Wartung, Q = QC, C = Checker, A = AEL).
RTST_CODC*1Retest-Code des Loses.
BURN_TIMU*2Burn-in-Zeit in Minuten.
LOT_IDC*nLos-ID (kundenspezifisch).
PART_TYPC*nBauteiltyp / Produkt-ID.
NODE_NAMC*nName des Knotens, der die Daten erzeugt hat.
TSTR_TYPC*nTester-Typ.
JOB_NAMC*nJob- / Testprogrammname.
JOB_REVC*nRevision des Testprogramms.
SBLOT_IDC*nSublot-ID.
OPER_NAMC*nBediener-Name/-ID bei der Einrichtung.
TST_TEMPC*nTesttemperatur (Freitext — z. B. „25C“, „HOT“, „COLD“).
PROC_IDC*nFertigungsprozess-ID.
FLOW_ID, PKG_TYP, FAMLY_ID, DATE_COD, FACIL_ID, …C*nViele weitere optionale Bezeichner (Flow, Gehäuse, Produktfamilie, Datumscode, Werk, Spec-Name/-Version, ROM-Code, Tester-Seriennummer, Supervisor und mehr).

MRR Master Results Record — erforderlich, letzter Record

Die logische Fortsetzung des MIR; enthält nur Daten, die erst nach Abschluss des Tests bekannt sind. Er ist stets der letzte Record der Datei.

FeldTypBeschreibung
FINISH_TU*4Datum/Uhrzeit, zu der das letzte Bauteil getestet wurde.
DISP_CODC*1Los-Dispositionscode (benutzerdefiniert, alphanumerisch).
USR_DESCC*nVom Benutzer bereitgestellte Los-Beschreibung.
EXC_DESCC*nVon der Exec-Software bereitgestellte Los-Beschreibung.

PCR Part Count Record — erforderlich, ≥ 1 pro Datei

Enthält die Bauteil-Zählwerte für eine Test-Site oder, wenn HEAD_NUM = 255, für alle Sites zusammen.

FeldTypBeschreibung
HEAD_NUM / SITE_NUMU*1Test-Head / Site (255 = Zusammenfassung für alle Sites).
PART_CNTU*4Anzahl getesteter Bauteile.
RTST_CNTU*4Anzahl erneut getesteter Bauteile.
ABRT_CNTU*4Anzahl der Abbrüche während des Tests.
GOOD_CNTU*4Anzahl guter (bestandener) Bauteile.
FUNC_CNTU*4Anzahl funktionsfähiger Bauteile (gut genug zum Testen, bestanden oder nicht).

HBR Hardware Bin Record  ·  SBR Software Bin Record

HBR zählt Bauteile, die nach dem Test physisch in einen Hardware-Bin gelegt werden (beim Wafer-Test bedeutet „physisch“ einen Tintenpunkt oder einen Wafer-Map-Eintrag). SBR zählt Bauteile, die logisch einem Software-Bin zugewiesen werden — feinere Kategorien, die im Testprogramm definiert sind. Beide haben denselben Aufbau:

FeldTypBeschreibung
HEAD_NUM / SITE_NUMU*1Head / Site (255 = alle Sites).
HBIN_NUM / SBIN_NUMU*2Bin-Nummer (0–32767).
HBIN_CNT / SBIN_CNTU*4Anzahl der Bauteile im Bin.
HBIN_PF / SBIN_PFC*1Pass/Fail-Kennzeichen (P = bestanden, F = durchgefallen, Leerzeichen = unbekannt).
HBIN_NAM / SBIN_NAMC*nName des Bins.

PMR · PGR · PLR Pin-Mapping-Records

Diese drei Records beschreiben die Zuordnung zwischen Bauteil-Pins und Tester-Kanälen, die von Functional- (FTR) und Multi-Result-Records (MPR) genutzt wird. Kurz gesagt: PMR ordnet ein einzelnes Kanal↔Pin-Paar zu und vergibt ihm einen Index (1–32.767); PGR benennt eine Gruppe von Pins (Gruppenindex 32.768–65.535); PLR definiert die Anzeige-Basis, den Betriebsmodus und die Zeichenkodierungen zur Darstellung programmierter und zurückgelieferter Pin-Zustände. Siehe §11 Pin-Mapping für die vollständige Erläuterung.

RDR Retest Data Record — optional

Signalisiert, dass die Datei erneut getestete Bauteile enthält, und listet auf, welche Bins erneut getestet werden, damit Filterprogramme wissen, welche Daten zu ersetzen sind. Falls vorhanden, folgt er unmittelbar auf den MIR.

FeldTypBeschreibung
NUM_BINSU*2Anzahl der erneut getesteten Bins (0 = alle Bins).
RTST_BINkxU*2Array der erneut getesteten Hardware-Bin-Nummern.

SDR Site Description Record — optional

Beschreibt die physische Konfiguration einer Gruppe von Test-Sites an einem Head — Handler/Prober, Probe-Card, Load-Board, DIB-Board, Kabel, Kontaktierer, Laser sowie deren Typ/ID-Paare. Wird verwendet, um den Yield mit der Interface-Hardware zu korrelieren. Falls vorhanden, folgen die SDRs unmittelbar auf den MIR (und den RDR).

2

Records pro Wafer (nur Wafer-Probe)

WIR Wafer Information Record  ·  WRR Wafer Results Record

Ein WIR/WRR-Paar klammert alles, was auf einem Wafer getestet wird — WIR markiert den Anfang, WRR das Ende. Sie teilen dieselbe HEAD_NUM und SITE_GRP. Der WIR trägt die Startzeit des Wafers und die WAFER_ID; der WRR trägt die Endzeit, dieselben Bauteil-/Retest-/Abort-/Good-/Functional-Zählwerte wie der PCR sowie zusätzliche IDs für die Rückverfolgung:

Feld (WRR)TypBeschreibung
FINISH_TU*4Datum/Uhrzeit, zu der der letzte Die auf dem Wafer getestet wurde.
PART_CNT … FUNC_CNTU*4Getestete / erneut getestete / abgebrochene / gute / funktionsfähige Die-Zählwerte.
WAFER_IDC*nWafer-ID (ersetzt die im WIR angegebene).
FABWF_IDC*nFab-Wafer-ID — verknüpft die Ergebnisse mit der Fertigung.
FRAME_IDC*nWafer-Frame-ID — verfolgt den Wafer nach dem Sägen für tintenloses Binning.
MASK_IDC*nWafer-Masken-ID.

WCR Wafer Configuration Record — einer pro Datei, nur Wafer-Test

Gibt die physischen Abmessungen und die Ausrichtung für alle Wafer im Los an — wird zum Zeichnen von Wafer-Maps verwendet.

FeldTypBeschreibung
WAFR_SIZR*4Wafer-Durchmesser (in WF_UNITS).
DIE_HT / DIE_WIDR*4Die-Höhe und -Breite.
WF_UNITSU*1Einheiten: 1 = Zoll, 2 = cm, 3 = mm, 4 = Mils (0 = unbekannt).
WF_FLATC*1Ausrichtung des Wafer-Flats (U/D/L/R).
CENTER_X / CENTER_YI*2Koordinaten des Mitten-Dies.
POS_X / POS_YC*1Welche Richtung positives X (L/R) und positives Y (U/D) ist.
5

Records pro Bauteil

PIR Part Information Record  ·  PRR Part Results Record

Ein PIR/PRR-Paar klammert alles, was an einem Bauteil getestet wird. Der PIR ist nur eine Markierung (Head + Site), die vor dem Test eines Bauteils gesetzt wird; alle Ergebnisse (PTR/MPR/FTR) für dieses Bauteil folgen, dann schließt der PRR es mit dem Ergebnis ab. Beim Parallel-Test ordnen HEAD_NUM/SITE_NUM auf jedem Ergebnis dieses dem richtigen PIR/PRR-Paar zu.

Feld (PRR)TypBeschreibung
HEAD_NUM / SITE_NUMU*1Head / Site dieses Bauteils.
PART_FLGB*1Bit-Flags: Ersetzen per PART_ID (Bit 0) oder per X/Y (Bit 1); anormales Ende (Bit 2); durchgefallen (Bit 3); Pass/Fail gültig (Bit 4).
NUM_TESTU*2Anzahl der am Bauteil ausgeführten Tests.
HARD_BINU*2Hardware-Bin, in den das Bauteil gelangte (0–32767).
SOFT_BINU*2Software-Bin (65535 = fehlend).
X_COORD / Y_COORDI*2Wafer-Koordinaten (-32768 = fehlend).
TEST_TU*4Verstrichene Testzeit in Millisekunden.
PART_IDC*nBauteil-Identifikation.
PART_TXTC*nBeschreibungstext des Bauteils.
PART_FIXB*nAnwendungsspezifische Repair-Informationen (siehe §12).
Praktischer Hinweis: Es sollte entweder PART_ID oder das Paar X_COORD/Y_COORD angegeben werden — andernfalls lassen sich die Ergebnisse kaum für die Analyse verwenden oder auf einer Wafer-Map platzieren.
10

Zusammenfassung pro Test

TSR Test Synopsis Record — einer pro Test im Programm

Fasst Ausführungs- und Fehlerzählwerte für einen einzelnen Test über das gesamte Los zusammen, plus statische Informationen wie den Testnamen. Er verknüpft über Testnummer, Head und Site mit den PTR/MPR/FTR.

FeldTypBeschreibung
HEAD_NUM / SITE_NUMU*1Head / Site (255 = Zusammenfassung für alle Sites).
TEST_TYPC*1P = parametrisch, F = funktional, M = parametrisch mit mehreren Ergebnissen.
TEST_NUMU*4Testnummer.
EXEC_CNTU*4Anzahl der Ausführungen.
FAIL_CNTU*4Anzahl der Fehlschläge.
ALRM_CNTU*4Anzahl der alarmierten Tests.
TEST_NAM / SEQ_NAME / TEST_LBLC*nTestname, Sequencer-Name und Label.
TEST_TIMR*4Durchschnittliche Ausführungszeit (Sekunden).
TEST_MIN / TEST_MAXR*4Niedrigster / höchster beobachteter Ergebniswert.
TST_SUMS / TST_SQRSR*4Summe und Quadratsumme der Ergebnisse — dienen zur Berechnung von Mittelwert und Standardabweichung, selbst beim Zusammenführen mehrerer Dateien.
15

Records pro Testausführung (die Messungen)

PTR Parametric Test Record — einer pro parametrischer Testausführung

Das Arbeitspferd eines Datalogs: ein PTR enthält das Ergebnis einer einzelnen parametrischen Messung (eine Spannung, ein Strom, ein Timing …). Der erste PTR für eine gegebene Testnummer trägt zusätzlich die „halbstatische“ Beschreibung — Grenzen, Einheiten, Skalierung und Format —, die zum Default für jeden späteren PTR desselben Tests wird (dies ersetzt den separaten PDR-Record aus STDF V3). Um Platz zu sparen, lassen spätere PTRs diese Default-Felder weg, sofern sie sie nicht überschreiben.

FeldTypBeschreibung
TEST_NUMU*4Testnummer.
HEAD_NUM / SITE_NUMU*1Head / Site.
TEST_FLGB*1Test-Flags: Alarm, Ergebnis gültig, zuverlässig, Timeout, ausgeführt, abgebrochen, Pass/Fail.
PARM_FLGB*1Parametrische Flags: Skalierungsfehler, Drift, Oszillation, über/unter Grenze, bestanden über Alternativgrenze.
RESULTR*4Der Messwert (nur gültig, wenn die relevanten Flag-Bits alle 0 sind).
TEST_TXTC*nTestbeschreibung / Label.
ALARM_IDC*nName eines ausgelösten Alarms.
RES_SCALI*1Skalierungsexponent des Ergebnisses (Zehnerpotenz). Siehe §10.
LO_LIMIT / HI_LIMITR*4Untere und obere Testgrenze (mit LLM_SCAL- / HLM_SCAL-Exponenten).
UNITSC*nBasiseinheiten (z. B. „AMPS“, „VOLTS“ — niemals „uAMPS“).
C_RESFMT / C_LLMFMT / C_HLMFMTC*nANSI-C-Formatstrings für die Anzeige (z. B. „%7.2f“).
LO_SPEC / HI_SPECR*4Untere/obere Spezifikationsgrenzen (einmal im ersten PTR gesetzt).

MPR Multiple-Result Parametric Record — neu in V4

Wie ein PTR, aber für einen parametrischen Test, der mehrere Werte gleichzeitig zurückgibt (zum Beispiel eine Messung über ein Array von Pins oder ein Shmoo-Sweep). Er trägt ein Array zurückgelieferter Ergebnisse (RTN_RSLT) und optional die Pin-Zustände (RTN_STAT) sowie die zugehörigen PMR-Indizes. Für das Shmoo-Logging beschreiben START_IN / INCR_IN / UNITS_IN die durchgefahrene Eingangsbedingung. Grenzen, Einheiten und Skalierung funktionieren genau wie beim PTR, wobei der erste MPR die Defaults festlegt.

FTR Functional Test Record — einer (oder mehrere) pro funktionaler Testausführung

Enthält das Ergebnis eines einzelnen funktionalen (Vektor-/Pattern-)Tests — Pass/Fail plus reiche Fehlerdetails. Der erste FTR eines Tests trägt halbstatische Defaults (er ersetzt den FDR-Record aus STDF V3). Wichtige Felder sind der Vektor-Zykluszähler und die Adresse, die Anzahl der durchgefallenen Pins, X/Y-Fehleradressen (bei Speicher-Pattern-Generatoren), die zurückgelieferten und programmierten Pin-Zustände (als Arrays von PMR-Indizes und Nibble-kodierten Zuständen), ein Bitfeld der durchgefallenen Pins, der Pattern-/Vektorname, das Time-Set, der Op-Code und die Pattern-Generator-Nummer. Die Codes der zurückgelieferten Zustände reichen über Low/High/Midband/Glitch/unbestimmt und deren Fail-Varianten; die genauen Anzeigezeichen stammen aus dem PLR.

20

Records pro Programmabschnitt

BPS Begin Program Section  ·  EPS End Program Section

Optionale Markierungen, die einen benannten Programmabschnitt (Sequencer) innerhalb des Testablaufs eines Bauteils klammern. BPS trägt den Abschnittsnamen; EPS trägt keinen — jeder EPS passt zum jüngsten unabgeschlossenen BPS, sodass sich die Paare verschachteln lassen (ein Sequencer ruft einen anderen auf). Sie ermöglichen es der Analyse, sich auf einen bestimmten Programmabschnitt zu konzentrieren.

50

Generische / freie Records

GDR Generic Data Record

Ein Sammelbehälter für Informationen, die zu keinem anderen Record-Typ passen. Er enthält eine Anzahl von Feldern, gefolgt von ebenso vielen selbstbeschreibenden GEN_DATA-Werten — jeder Wert beginnt mit einem Ein-Byte-Typcode (Integer, Float, String, Bitdaten, Nibble …), dann folgen die Daten. Ein spezieller Pad-Typ (Code 0) hält mehrbytige Werte auf geraden Byte-Grenzen. Wird unter Steuerung des Job-Plans für jeden benutzerdefinierten Zweck geschrieben.

DTR Datalog Text Record

Freier ASCII-Text, der in den Datalog-Ausdruck aufgenommen wird — dient dazu, unerwartete Ergebnisse hervorzuheben oder Ereignisse wie eine Änderung der Datalog-Abtastrate zu notieren. Er trägt einen einzelnen TEXT_DAT-String und kann überall nach der Anfangssequenz erscheinen.

Layout in der Praxis

9. Wie Records in einer Datei angeordnet sind

Die genaue Record-Reihenfolge hängt davon ab, ob Wafer oder gehäuste Bauteile getestet werden, ob Parallel-Test aktiv ist und ob das Datalogging eingeschaltet ist. Hier die kanonischen Muster.

Ein Los gehäuster Bauteile (voller Datalog)

FAR                         Info auf Dateiebene
MIR                         globale Los-Info
  PIR                       ┐ erstes Bauteil beginnt
    PTR / MPR / FTR …         │ jeder Test an diesem Bauteil
  PRR                       ┘ Ergebnis des ersten Bauteils
  PIR … PTR/MPR/FTR … PRR      (für jedes Bauteil wiederholt)
  …
TSR × N                     eine Synopse pro Test im Programm
HBR × N                     einer pro Hardware-Bin
SBR × N                     einer pro Software-Bin
PCR                         Bauteil-Zählsummen
MRR                         globale Los-Ergebnisse (letzter Record)

Nur Zusammenfassung (kein Datalog pro Bauteil)

Wie oben, aber ohne den gesamten PIR…PRR-Block — nur FAR, MIR, dann die TSR/HBR/SBR/PCR-Zusammenfassungen und der MRR.

Ein Los bei der Wafer-Probe

FAR · MIR · WCR              Wafer-Abmessungen & -Ausrichtung
  WIR                       ┐ erster Wafer beginnt
    PIR · PTR/MPR/FTR · PRR    │ jeder Die auf dem Wafer
    …                         │
  WRR                       ┘ Zusammenfassung des ersten Wafers
  WIR … WRR                    (für jeden Wafer wiederholt)
TSR… HBR… SBR… PCR… MRR    Los-Zusammenfassungen + letzter Record

Eine reine Wafer-Map-Datei ist dieselbe, speichert aber nur PIR/PRR pro Die (kein PTR/MPR/FTR) und behält nur, was zum Zeichnen der Map nötig ist.

Parallel-Test

Bei mehreren Heads und Sites verschachteln sich die Records verschiedener Dies: Zunächst öffnen mehrere PIRs, der Tester gibt während der Testläufe PTR/MPR/FTR-Records mit Head+Site-Kennung aus, und der PRR jedes Dies erscheint, sobald dieser Die fertig ist (nicht unbedingt in Startreihenfolge). Der WRR jedes Wafers wird geschrieben, sobald alle Dies dieses Heads fertig sind, und der PCR-Block enthält einen PCR pro Head/Site plus einen Summen-PCR mit HEAD_NUM = 255.

Zahlen & Anzeige

10. Skalierung, Einheiten & Grenzen

In einem PTR/MPR werden RESULT, Grenzen und Specs alle auf die in UNITS genannte Basiseinheit normiert gespeichert. Das heißt, UNITS ist immer eine ganze Einheit — „AMPS“, niemals „uAMPS“ — und man kann direkt mit allen Werten rechnen, deren Einheiten übereinstimmen.

Für die Anzeige werden zwei zusätzliche Angaben genutzt: ein Skalierungsexponent und ein ANSI-C-Formatstring. Der _SCAL-Wert ist die Zehnerpotenz des Skalierungsfaktors und wählt zugleich das SI-Präfix aus:

_SCALPräfixBedeutungGrößenordnung
15ffemto10⁻¹⁵
12ppico10⁻¹²
9nnano10⁻⁹
6umikro10⁻⁶
3mmilli10⁻³
2%Prozent10⁻²
0—Basis10⁰
-3KKilo10³
-6MMega10⁶
-9GGiga10⁹
-12TTera10¹²

Der skalierte Wert ist einfach Wert × 10^_SCAL. Um zum Beispiel „123,45 uAMPS“ zu speichern:

  • RESULT = 123,45 × 10⁻⁶
  • RES_SCAL = 6  (der Code für „mikro“)
  • C_RESFMT = %7.2f
  • UNITS = AMPS

Zur Anzeige: mit 10⁶ multiplizieren, mit zwei Nachkommastellen formatieren, das Präfix „u“ voranstellen und die Einheiten anhängen → 123.45 uAMPS.

Functional-Test-Dekodierung

11. Verwenden der Pin-Mapping-Records

Wenn ein Bauteil getestet wird, gibt es eine Zuordnung zwischen Bauteil-Pins und Tester-Kanälen. Drei Record-Typen beschreiben sie, und FTR/MPR-Records verweisen per Index auf sie:

  • PMR (Pin Map Record) — definiert eine Kanal↔Pin-Zuordnung und vergibt ihr einen eindeutigen PMR-Index (1–32.767). Jeder Kanal hat einen Typ und einen Namen; jeder Pin hat einen physischen und einen logischen Namen; auch Head und Site werden festgehalten.
  • PGR (Pin Group Record) — benennt eine Gruppe von Pins (z. B. „Adressbus“) und listet die darin enthaltenen PMR-Indizes auf, mit eigenem Gruppenindex (32.768–65.535).
  • PLR (Pin List Record) — definiert für eine Liste von Pins/Gruppen die Anzeige-Basis (binär, oktal, dezimal, hexadezimal, symbolisch), den Betriebsmodus (normal, Dual-Drive, SCIO …) und die ASCII-Zeichen zur Darstellung programmierter und zurückgelieferter Zustände.

Wenn Software ein funktionales Ergebnis dekodiert, liest sie die PMR-Index-Arrays im FTR/MPR, um zu wissen, welche Pins welche Werte hatten, nutzt den PMR, um die physischen/logischen/ Kanalnamen des Pins und dessen Head/Site zu erhalten, nutzt den PGR, um die Gruppe des Pins zu erkennen, und nutzt den PLR, um die Zustände in einer für diesen Tester und dieses Bauteil vertrauten Form darzustellen.

Über Pass/Fail hinaus

12. Speichern von Repair-Informationen

STDF kann auch Repair-Daten für Speicher, Leiterplatten und andere Bauteile transportieren und diese zwischen Test- und Reparaturprozess übergeben. Die Repair-Information jedes Bauteils liegt im Feld PART_FIX des PRR. Sie ist anwendungsspezifisch — bit-kodiert, Integer, Float oder Text — wobei das erste Byte die Anzahl der folgenden Bytes angibt, sodass sie nur von einem passenden Analyseprogramm dekodiert werden kann. Eine minimale Repair-Datei kann die Records pro Test ganz weglassen und nur FAR · MIR · (WIR ·) PRR… · PCR · MRR behalten.

Konventionen

13. STDF-Dateinamen

Die Spezifikation empfiehlt einen Dateinamen der Form filename.STD[string], wobei:

  • filename 1–39 Zeichen aus A–Z a–z 0–9 _ umfasst und mit einem Buchstaben beginnt.
  • die Erweiterung mit .STD beginnt und auf Systemen mit Groß-/Kleinschreibung am besten klein geschrieben wird (.std).
  • das Dollarzeichen $ nicht mehr erlaubt ist (es verursachte auf einigen Betriebssystemen Probleme).
  • nur ein einziger Punkt verwendet wird und die Erweiterung kurz bleibt — Software kann ihr Zeichen anhängen, um den Verarbeitungsstand anzuzeigen.

Gute Dateinamen sind systemweit eindeutig, deuten auf ihren Inhalt und ihre Erzeugungszeit hin und funktionieren über verschiedene Betriebssysteme hinweg.

Versionsgeschichte

14. Unterschiede zwischen STDF V3 und V4

STDF wurde 1985 eingeführt und wuchs zu einem De-facto-Industriestandard heran. Nach dem Sammeln von fast hundert Anfragen von Kunden und anderen ATE-Herstellern veröffentlichte Teradyne Version 4, die heute verwendete Version. Die größten Änderungen:

  • Vier erforderliche Records (V3 verlangte nur MIR und MRR): FAR, MIR, PCR, MRR — und die Datei muss nun mit dem FAR beginnen.
  • Neue Records: ATR, PCR, PGR, PLR, RDR, SDR und MPR.
  • Entfallene Records: die Beschreibungs-Records PDR und FDR (ihre halbstatischen Infos liegen nun im ersten PTR/FTR jedes Tests) und alle site-spezifischen Records SHB, SSB, STS, SCR (ihre Funktion übernehmen jetzt Head/Site-Felder in HBR, SBR, TSR und PCR).
  • Bauteil-Zählwerte verschoben aus dem MRR in den neuen PCR; CPU_TYPE und STDF_VER liegen jetzt nur noch im FAR.
  • Pin-Mapping neu gestaltet: der V3-PMR (der auch Gruppen definieren konnte) wurde in PMR + PGR + PLR aufgeteilt.
  • Anzeigefelder modernisiert: alte Ziffernzahl-Felder wurden durch ANSI-C-Formatstrings (C_RESFMT usw.) ersetzt, und Spec-Grenzen (LO_SPEC/HI_SPEC) wurden dem PTR/MPR hinzugefügt.
  • Neue Datentypen D*n und N*1 wurden hinzugefügt und die Bit-Reihenfolge von B*n wurde präzisiert.
  • Unveränderte Records: BPS, EPS, GDR und DTR.
Terminologie

15. Glossar

BegriffBedeutung
Abgebrochenes BauteilEin Bauteil, dessen Test begonnen, aber nicht zu Ende geführt wurde (z. B. weil der Bediener ihn unterbrach).
DatalogEine Auflistung bestimmter Testinformationen — Testergebnisse und Parameterwerte.
DieEin einzelnes Halbleiter-Bauteil auf einem Wafer.
Funktionsfähiges BauteilJedes Bauteil, das beim Test nicht in den Bin für katastrophale Fehler (üblicherweise Bin 0) fällt. Wird in FUNC_CNT gezählt.
Gutes BauteilJedes Bauteil, das in einen für Nutzung/Verkauf akzeptablen Bin gelegt wird. Wird in GOOD_CNT gezählt; nötig für den Yield.
Hardware-BinEine physische Sortierkategorie am Bauteil-Handler zur Einstufung getesteter Bauteile.
Software-BinEine logische Sortierkategorie, im Testprogramm definiert, für eine feinere Einteilung als Hardware-Bins.
InsertionDas einmalige Testen eines Loses von Bauteilen (ein Los kann mehrfach unter verschiedenen Bedingungen getestet werden).
Job-Plan / Test-Plan / TestprogrammDie Menge der Programmanweisungen, die zum Test eines bestimmten Bauteils entworfen wurden.
LosEine Charge von Bauteilen (oft ein ganzer Produktionslauf), die als Gruppe getestet wird; kann in Sublots aufgeteilt werden.
Los-DispositionEine Entscheidung über die Zukunft des Loses (z. B. Yield zu niedrig zum Häusen).
Erneut getestetes BauteilEin Bauteil, das während einer Insertion mehr als einmal getestet wird, meist weil beim ersten Mal ein Problem erkannt wurde.
SequencerDas „Inhaltsverzeichnis“ eines Testprogramms — die geordnete Liste der Tests mit ihren Grenzen und dem Binning.
Setup- / Start- / Finish-ZeitWann die Einrichtung beginnt / wann das erste Bauteil zu testen beginnt / wann das letzte Bauteil fertig ist.
TesterEine Maschine, die gute Bauteile von schlechten trennen (und meist einstufen) kann.
Test-HeadDie Hardware zum Test eines oder mehrerer Bauteile; an Parallel-Testern steuert er mehrere Sites.
Test-SiteDie Hardware-Verbindungen, die zum Test eines einzelnen Bauteils nötig sind; ein Head kann mehrere Sites haben.
Test-StationEine logische Software-Einheit, die einen einzelnen Test-Plan lädt und ausführt, verknüpft mit einem oder mehreren Heads.
WaferEine Scheibe aus hochreinem Halbleitermaterial; das Substrat, auf dem ICs aufgebaut und dann vom ATE geprobt werden.
STDF nutzbar machen

STDF einfach analysieren — mit DLOG

Weil STDF ein kompaktes Binärformat ist, das Millionen von Records pro Los enthalten kann, ist das manuelle Öffnen und übergreifende Analysieren vieler Dateien unpraktikabel. DLOG liest STDF V4 Record für Record, lädt viele Dateien auf einmal und verwandelt rohe Datalogs in Wafer-Maps, Bin-Pareto, Histogramme, Trend-/Scatter-Diagramme, Cpk, PAT, Gauge R&R und Korrelation — exportiert als PDF-/Excel-/Bildberichte mit wenigen Klicks, vollständig offline auf Ihrem eigenen PC.

DLOG 6 Monate kostenlos testen →

↑ Nach oben