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.
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.
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.
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:
| Feld | Typ | Bedeutung |
|---|---|---|
| REC_LEN | U*2 | Anzahl der Datenbytes, die auf den Header folgen (die 4 Bytes des Headers selbst werden nicht mitgezählt). |
| REC_TYP | U*1 | Eine Ganzzahl, die eine Gruppe verwandter Record-Typen kennzeichnet. |
| REC_SUB | U*1 | Eine 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_TYP | Gruppe | Record-Typen (REC_SUB) |
|---|---|---|
| 0 | Informationen über die Datei | FAR (10), ATR (20) |
| 1 | Daten pro Los | MIR (10), MRR (20), PCR (30), HBR (40), SBR (50), PMR (60), PGR (62), PLR (63), RDR (70), SDR (80) |
| 2 | Daten pro Wafer | WIR (10), WRR (20), WCR (30) |
| 5 | Daten pro Bauteil | PIR (10), PRR (20) |
| 10 | Pro Test (gesamtes Programm) | TSR (30) |
| 15 | Pro Testausführung | PTR (10), MPR (15), FTR (20) |
| 20 | Pro Programmabschnitt | BPS (10), EPS (20) |
| 50 | Generische Daten | GDR (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.
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.
| Code | C-Typ | Beschreibung |
|---|---|---|
| C*12 | char[12] | Zeichenkette fester Länge. Ist sie kürzer, wird sie linksbündig ausgerichtet und mit Leerzeichen aufgefüllt. |
| C*n | char[] | Zeichenkette variabler Länge; das erste Byte ist ein vorzeichenloser Zähler der folgenden Bytes (max. 255). |
| C*f | char[] | Zeichenkette variabler Länge, deren Länge in einem anderen Feld gespeichert ist. |
| U*1 / U*2 / U*4 | unsigned | Vorzeichenlose 1-, 2- und 4-Byte-Ganzzahlen. |
| I*1 / I*2 / I*4 | signed | Vorzeichenbehaftete 1-, 2- und 4-Byte-Ganzzahlen. |
| R*4 / R*8 | float / double | 4- und 8-Byte-Gleitkommazahlen. |
| B*6 | char[6] | Bit-kodierte Daten fester Länge. |
| B*n | char[] | Bit-kodiertes Feld variabler Länge; das erste Byte ist ein Byte-Zähler (max. 255). |
| D*n | char[] | Bitfeld variabler Länge; die ersten zwei Bytes sind ein Bit-Zähler (max. 65.535 Bit). |
| N*1 | char | Eine 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. |
| kxTYPE | TYPE[] | Ein Array aus k Elementen des angegebenen Typs, wobei k aus einem früheren Feld stammt, z. B. kxU*2. |
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:
- 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.
- 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.
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
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.
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.
| Feld | Typ | Beschreibung |
|---|---|---|
| CPU_TYPE | U*1 | Welche CPU die Datei geschrieben hat (0 = DEC PDP-11/VAX, 1 = Sun 1–4, 2 = Sun 386i / IBM-PC-Familie). |
| STDF_VER | U*1 | STDF-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.
| Feld | Typ | Beschreibung |
|---|---|---|
| MOD_TIM | U*4 | Datum und Uhrzeit der Dateiänderung. |
| CMD_LINE | C*n | Kommandozeile des Programms, das die Datei verändert hat. |
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.
| Feld | Typ | Beschreibung |
|---|---|---|
| SETUP_T | U*4 | Datum/Uhrzeit der Job-Einrichtung. |
| START_T | U*4 | Datum/Uhrzeit, zu der das erste Bauteil getestet wurde. |
| STAT_NUM | U*1 | Stationsnummer des Testers. |
| MODE_COD | C*1 | Testmodus (P = Produktion, D/E = Entwicklung, M = Wartung, Q = QC, C = Checker, A = AEL). |
| RTST_COD | C*1 | Retest-Code des Loses. |
| BURN_TIM | U*2 | Burn-in-Zeit in Minuten. |
| LOT_ID | C*n | Los-ID (kundenspezifisch). |
| PART_TYP | C*n | Bauteiltyp / Produkt-ID. |
| NODE_NAM | C*n | Name des Knotens, der die Daten erzeugt hat. |
| TSTR_TYP | C*n | Tester-Typ. |
| JOB_NAM | C*n | Job- / Testprogrammname. |
| JOB_REV | C*n | Revision des Testprogramms. |
| SBLOT_ID | C*n | Sublot-ID. |
| OPER_NAM | C*n | Bediener-Name/-ID bei der Einrichtung. |
| TST_TEMP | C*n | Testtemperatur (Freitext — z. B. „25C“, „HOT“, „COLD“). |
| PROC_ID | C*n | Fertigungsprozess-ID. |
| FLOW_ID, PKG_TYP, FAMLY_ID, DATE_COD, FACIL_ID, … | C*n | Viele 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.
| Feld | Typ | Beschreibung |
|---|---|---|
| FINISH_T | U*4 | Datum/Uhrzeit, zu der das letzte Bauteil getestet wurde. |
| DISP_COD | C*1 | Los-Dispositionscode (benutzerdefiniert, alphanumerisch). |
| USR_DESC | C*n | Vom Benutzer bereitgestellte Los-Beschreibung. |
| EXC_DESC | C*n | Von 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.
| Feld | Typ | Beschreibung |
|---|---|---|
| HEAD_NUM / SITE_NUM | U*1 | Test-Head / Site (255 = Zusammenfassung für alle Sites). |
| PART_CNT | U*4 | Anzahl getesteter Bauteile. |
| RTST_CNT | U*4 | Anzahl erneut getesteter Bauteile. |
| ABRT_CNT | U*4 | Anzahl der Abbrüche während des Tests. |
| GOOD_CNT | U*4 | Anzahl guter (bestandener) Bauteile. |
| FUNC_CNT | U*4 | Anzahl 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:
| Feld | Typ | Beschreibung |
|---|---|---|
| HEAD_NUM / SITE_NUM | U*1 | Head / Site (255 = alle Sites). |
| HBIN_NUM / SBIN_NUM | U*2 | Bin-Nummer (0–32767). |
| HBIN_CNT / SBIN_CNT | U*4 | Anzahl der Bauteile im Bin. |
| HBIN_PF / SBIN_PF | C*1 | Pass/Fail-Kennzeichen (P = bestanden, F = durchgefallen, Leerzeichen = unbekannt). |
| HBIN_NAM / SBIN_NAM | C*n | Name 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.
| Feld | Typ | Beschreibung |
|---|---|---|
| NUM_BINS | U*2 | Anzahl der erneut getesteten Bins (0 = alle Bins). |
| RTST_BIN | kxU*2 | Array 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).
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) | Typ | Beschreibung |
|---|---|---|
| FINISH_T | U*4 | Datum/Uhrzeit, zu der der letzte Die auf dem Wafer getestet wurde. |
| PART_CNT … FUNC_CNT | U*4 | Getestete / erneut getestete / abgebrochene / gute / funktionsfähige Die-Zählwerte. |
| WAFER_ID | C*n | Wafer-ID (ersetzt die im WIR angegebene). |
| FABWF_ID | C*n | Fab-Wafer-ID — verknüpft die Ergebnisse mit der Fertigung. |
| FRAME_ID | C*n | Wafer-Frame-ID — verfolgt den Wafer nach dem Sägen für tintenloses Binning. |
| MASK_ID | C*n | Wafer-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.
| Feld | Typ | Beschreibung |
|---|---|---|
| WAFR_SIZ | R*4 | Wafer-Durchmesser (in WF_UNITS). |
| DIE_HT / DIE_WID | R*4 | Die-Höhe und -Breite. |
| WF_UNITS | U*1 | Einheiten: 1 = Zoll, 2 = cm, 3 = mm, 4 = Mils (0 = unbekannt). |
| WF_FLAT | C*1 | Ausrichtung des Wafer-Flats (U/D/L/R). |
| CENTER_X / CENTER_Y | I*2 | Koordinaten des Mitten-Dies. |
| POS_X / POS_Y | C*1 | Welche Richtung positives X (L/R) und positives Y (U/D) ist. |
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) | Typ | Beschreibung |
|---|---|---|
| HEAD_NUM / SITE_NUM | U*1 | Head / Site dieses Bauteils. |
| PART_FLG | B*1 | Bit-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_TEST | U*2 | Anzahl der am Bauteil ausgeführten Tests. |
| HARD_BIN | U*2 | Hardware-Bin, in den das Bauteil gelangte (0–32767). |
| SOFT_BIN | U*2 | Software-Bin (65535 = fehlend). |
| X_COORD / Y_COORD | I*2 | Wafer-Koordinaten (-32768 = fehlend). |
| TEST_T | U*4 | Verstrichene Testzeit in Millisekunden. |
| PART_ID | C*n | Bauteil-Identifikation. |
| PART_TXT | C*n | Beschreibungstext des Bauteils. |
| PART_FIX | B*n | Anwendungsspezifische Repair-Informationen (siehe §12). |
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.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.
| Feld | Typ | Beschreibung |
|---|---|---|
| HEAD_NUM / SITE_NUM | U*1 | Head / Site (255 = Zusammenfassung für alle Sites). |
| TEST_TYP | C*1 | P = parametrisch, F = funktional, M = parametrisch mit mehreren Ergebnissen. |
| TEST_NUM | U*4 | Testnummer. |
| EXEC_CNT | U*4 | Anzahl der Ausführungen. |
| FAIL_CNT | U*4 | Anzahl der Fehlschläge. |
| ALRM_CNT | U*4 | Anzahl der alarmierten Tests. |
| TEST_NAM / SEQ_NAME / TEST_LBL | C*n | Testname, Sequencer-Name und Label. |
| TEST_TIM | R*4 | Durchschnittliche Ausführungszeit (Sekunden). |
| TEST_MIN / TEST_MAX | R*4 | Niedrigster / höchster beobachteter Ergebniswert. |
| TST_SUMS / TST_SQRS | R*4 | Summe und Quadratsumme der Ergebnisse — dienen zur Berechnung von Mittelwert und Standardabweichung, selbst beim Zusammenführen mehrerer Dateien. |
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.
| Feld | Typ | Beschreibung |
|---|---|---|
| TEST_NUM | U*4 | Testnummer. |
| HEAD_NUM / SITE_NUM | U*1 | Head / Site. |
| TEST_FLG | B*1 | Test-Flags: Alarm, Ergebnis gültig, zuverlässig, Timeout, ausgeführt, abgebrochen, Pass/Fail. |
| PARM_FLG | B*1 | Parametrische Flags: Skalierungsfehler, Drift, Oszillation, über/unter Grenze, bestanden über Alternativgrenze. |
| RESULT | R*4 | Der Messwert (nur gültig, wenn die relevanten Flag-Bits alle 0 sind). |
| TEST_TXT | C*n | Testbeschreibung / Label. |
| ALARM_ID | C*n | Name eines ausgelösten Alarms. |
| RES_SCAL | I*1 | Skalierungsexponent des Ergebnisses (Zehnerpotenz). Siehe §10. |
| LO_LIMIT / HI_LIMIT | R*4 | Untere und obere Testgrenze (mit LLM_SCAL- / HLM_SCAL-Exponenten). |
| UNITS | C*n | Basiseinheiten (z. B. „AMPS“, „VOLTS“ — niemals „uAMPS“). |
| C_RESFMT / C_LLMFMT / C_HLMFMT | C*n | ANSI-C-Formatstrings für die Anzeige (z. B. „%7.2f“). |
| LO_SPEC / HI_SPEC | R*4 | Untere/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.
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.
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.
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.
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:
| _SCAL | Präfix | Bedeutung | Größenordnung |
|---|---|---|---|
| 15 | f | femto | 10⁻¹⁵ |
| 12 | p | pico | 10⁻¹² |
| 9 | n | nano | 10⁻⁹ |
| 6 | u | mikro | 10⁻⁶ |
| 3 | m | milli | 10⁻³ |
| 2 | % | Prozent | 10⁻² |
| 0 | — | Basis | 10⁰ |
| -3 | K | Kilo | 10³ |
| -6 | M | Mega | 10⁶ |
| -9 | G | Giga | 10⁹ |
| -12 | T | Tera | 10¹² |
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.2fUNITS=AMPS
Zur Anzeige: mit 10⁶ multiplizieren, mit zwei Nachkommastellen formatieren, das Präfix „u“ voranstellen und die Einheiten anhängen → 123.45 uAMPS.
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.
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.
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
.STDbeginnt 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.
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_TYPEundSTDF_VERliegen 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_RESFMTusw.) ersetzt, und Spec-Grenzen (LO_SPEC/HI_SPEC) wurden dem PTR/MPR hinzugefügt. - Neue Datentypen
D*nundN*1wurden hinzugefügt und die Bit-Reihenfolge vonB*nwurde präzisiert. - Unveränderte Records: BPS, EPS, GDR und DTR.
15. Glossar
| Begriff | Bedeutung |
|---|---|
| Abgebrochenes Bauteil | Ein Bauteil, dessen Test begonnen, aber nicht zu Ende geführt wurde (z. B. weil der Bediener ihn unterbrach). |
| Datalog | Eine Auflistung bestimmter Testinformationen — Testergebnisse und Parameterwerte. |
| Die | Ein einzelnes Halbleiter-Bauteil auf einem Wafer. |
| Funktionsfähiges Bauteil | Jedes Bauteil, das beim Test nicht in den Bin für katastrophale Fehler (üblicherweise Bin 0) fällt. Wird in FUNC_CNT gezählt. |
| Gutes Bauteil | Jedes 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-Bin | Eine physische Sortierkategorie am Bauteil-Handler zur Einstufung getesteter Bauteile. |
| Software-Bin | Eine logische Sortierkategorie, im Testprogramm definiert, für eine feinere Einteilung als Hardware-Bins. |
| Insertion | Das einmalige Testen eines Loses von Bauteilen (ein Los kann mehrfach unter verschiedenen Bedingungen getestet werden). |
| Job-Plan / Test-Plan / Testprogramm | Die Menge der Programmanweisungen, die zum Test eines bestimmten Bauteils entworfen wurden. |
| Los | Eine Charge von Bauteilen (oft ein ganzer Produktionslauf), die als Gruppe getestet wird; kann in Sublots aufgeteilt werden. |
| Los-Disposition | Eine Entscheidung über die Zukunft des Loses (z. B. Yield zu niedrig zum Häusen). |
| Erneut getestetes Bauteil | Ein Bauteil, das während einer Insertion mehr als einmal getestet wird, meist weil beim ersten Mal ein Problem erkannt wurde. |
| Sequencer | Das „Inhaltsverzeichnis“ eines Testprogramms — die geordnete Liste der Tests mit ihren Grenzen und dem Binning. |
| Setup- / Start- / Finish-Zeit | Wann die Einrichtung beginnt / wann das erste Bauteil zu testen beginnt / wann das letzte Bauteil fertig ist. |
| Tester | Eine Maschine, die gute Bauteile von schlechten trennen (und meist einstufen) kann. |
| Test-Head | Die Hardware zum Test eines oder mehrerer Bauteile; an Parallel-Testern steuert er mehrere Sites. |
| Test-Site | Die Hardware-Verbindungen, die zum Test eines einzelnen Bauteils nötig sind; ein Head kann mehrere Sites haben. |
| Test-Station | Eine logische Software-Einheit, die einen einzelnen Test-Plan lädt und ausführt, verknüpft mit einem oder mehreren Heads. |
| Wafer | Eine Scheibe aus hochreinem Halbleitermaterial; das Substrat, auf dem ICs aufgebaut und dann vom ATE geprobt werden. |
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 →