Die Halbleiterindustrie steht vor großen Herausforderungen bei der Gewinnung und Nutzung von Daten zur Ertragssteigerung. Eine der Aufgaben des Workshops zur Defektanalyse ist die Lokalisierung und Identifizierung physikalischer Defekte auf Produktionswafern, die durch den Produktionsprozess verursacht werden. Diese Defekte können die elektrischen Eigenschaften des Produkts direkt beeinträchtigen, was die Notwendigkeit eines besseren Verständnisses des Zusammenhangs zwischen Defekthäufigkeit (Anzahl der Defekte pro Wafer) und dem jeweiligen Prozess unterstreicht. Da diese Prozesse hochkomplex sind und von zahlreichen Parametern abhängen, ist ihr Zusammenhang mit der Defekthäufigkeit ein entscheidender Faktor für die Prozessoptimierung im Hinblick auf Ertragssteigerung und Kostenoptimierung.
In dieser Fallstudie demonstrieren wir die Effizienz von JMP als Werkzeug für die Datenverwaltung und -formatierung aus der Prozess-in-Line-Erfassung anhand der folgenden Schritte:
Schließlich ist eine übersichtliche Ergebnisdarstellung für das Management von großem Vorteil, wenn es um die Überlegung einer potenziellen Prozessänderung und um fundierte Entscheidungen hinsichtlich des Kosten-Nutzen-Verhältnisses geht.
Willkommen zu meiner Präsentation meines E-Posters mit dem Titel „Using JMP for Defectivity to process correlation the case study“.
Kommen wir nun zum Abstrakten. Wir werden die verschiedenen Aspekte der Datenvisualisierung und -manipulation besprechen und sehen, wie uns dies ermöglicht hat, Entscheidungen über Prozessänderungen zu treffen.
Heute beginnen wir mit dem Thema Defekte. Unsere Aufgabe ist die Waferprüfung in der Halbleiterindustrie. Dabei zählen wir die Defekte auf dem Wafer in jedem Prozessschritt. Dies ist unsere wichtigste Zielgröße auf der Y-Achse. Wir wollen mit dieser Analyse die Ausbeute verbessern und sehen uns an, wie uns der Grafikgenerator dabei unterstützt hat.
Zuerst zeige ich Ihnen, wie meine Daten auf den ersten Blick aussehen, und dann werden wir versuchen, eine Korrelationsanalyse mit verschiedenen Parametern durchzuführen und zu sehen, wie wir daraus schließen können, welcher Parameter den größten Einfluss auf unsere Fehleranzahlvariable hat.
Der Wechsel zu JMP veranschaulicht dies. Hier ist mein Datensatz. Wie Sie sehen, haben wir tausend Zeilen, wobei jede Zeile einen Wafer innerhalb einer Charge darstellt. Jede Charge enthält also 25 Wafer. Für jeden Wafer haben wir einen Wert für die Anzahl der Defekte, unsere Hauptvariable. Wir möchten nun untersuchen, wie verschiedene Spalten, auf die ich später eingehen werde, die Anzahl der Defekte beeinflussen.
Zunächst zeige ich Ihnen, wie der Diagrammgenerator uns hilft, unsere Daten auf einen Blick zu visualisieren. Wenn wir den Diagrammgenerator öffnen und die Variable für die Fehleranzahl, die kontinuierlich ist, in die Mitte ziehen, sehe ich, dass Ausreißer vorhanden sind. Ich füge die Chargennummer und die Wafernummer oben auf der X-Achse hinzu. Jeder Datenpunkt repräsentiert somit eine Zeile.
Ich möchte mir nun die Verteilung meiner Population ansehen. Dazu sortiere ich die Daten auf der X-Achse absteigend nach der Anzahl der Defekte. Wir erkennen, dass ein bestimmter Teil der Population eine höhere Defektrate aufweist, und wir werden versuchen, die Ursache dafür zu finden.
Zurück zur Tabelle: Der erste Parameter ist das Werkzeug, das in einem bestimmten Prozessschritt verwendet wurde. Wir haben hier drei Werkzeuge: Werkzeug A, B und C. Diese Spalte wurde mithilfe der Tabellenverknüpfungsfunktion zum Datensatz hinzugefügt. Die Daten stammen aus einer weiteren Tabelle (die ich hier nicht habe) und wurden aus Excel importiert. Sie enthalten die Wafernummer, die Chargennummer und das zugehörige Werkzeug. Durch Abgleich der beiden Spalten können Sie die beiden Tabellen verknüpfen und die Werkzeugspalte hinzufügen.
Jedem Wafer ist nun ein eigenes Prozesswerkzeug zugeordnet. Dasselbe wurde mit dem Parameter A gemacht, der keine kategoriale, sondern eine kontinuierliche Variable ist. Darauf gehe ich später noch ein. Zurück zu den Werkzeugen: Im Diagrammgenerator möchten wir sehen, wie sich das Werkzeug auf die Fehleranzahl auswirkt. Die Fehleranzahl wird wieder auf der Y-Achse dargestellt. Jetzt kann ich das Werkzeug auf der X-Achse platzieren und auf das Pluszeichen klicken, um das Verhalten zu beobachten.
Ich füge das Werkzeug mit der X-Variablen auch im Farbbereich hinzu, um das Ganze etwas ansprechender zu gestalten. Beim Hineinzoomen sehe ich deutlich, dass mein Werkzeug – siehe da – das beste meiner 3D-Werkzeuge ist. Um das zu bestätigen und einige Zahlen hinzuzufügen, kann ich mit gedrückter Umschalttaste klicken, hier das Beschriftungsfeld einfügen und im Bereich „Position“ die Zugriffstabelle auswählen. Jetzt kann ich mir den Mittelwert jeder Population anzeigen lassen.
Ich benötige nun die Anzahl der Stichproben, den Mittelwert und den Median. Dies bestätigt, dass der Mittelwert von Werkzeug C als Grundgesamtheit sogar noch kleiner ist als der der anderen Werkzeuge.
Dies ist das erste Element. Wir wissen, dass Werkzeug C das beste und Werkzeug B das schlechteste ist. Zurück zur Tabelle: Wir möchten nun dasselbe für Parameter A tun, eine stetige Variable, die wir in unseren Datensatz aufgenommen haben. Zunächst können wir eine YX-Anpassungsanalyse durchführen. Wir tragen die Anzahl der Defekte auf der Y-Achse und Parameter A auf der X-Achse ab.
Dies führt eine bivariate Analyse durch. Nach dem Klicken auf „OK“ und dem Hineinzoomen sehen wir, dass unsere beiden Variablen eine gewisse Korrelation aufweisen, die jedoch nicht eindeutig ist. Wir können visuell drei Bereiche identifizieren: Werte unter 300, Werte zwischen 300 und 400 sowie Werte über 400. Ich zeige Ihnen, wie wir diese drei Kategorien unterscheiden und anschließend die Beziehungen zwischen ihnen analysieren können. Wir können hierfür die Spalten verwenden.
Die Hilfsprogramme bieten eine Funktion zur Spalteneinteilung, mit der Sie direkt nach der Spalte „Parameter A“ eine neue Spalte erstellen und die Werte dynamisch zur Trennung Ihrer Populationen auswählen können. Ich bin genauso vorgegangen. Ich habe das Gleiche für 300 und 400 gemacht und anschließend mit feineren Intervallen wie 75 wiederholt, die ich später verwenden werde. Dadurch erstelle ich eine kategoriale Variable. Jetzt kann ich die Variable Y nach X analysieren, die Fehleranzahl erneut eingeben und diesmal die Spalte „PIN“ für eine Einweganalyse verwenden.
Wichtig ist jedoch, dass ich das fehlerhafteste Werkzeug isolieren möchte, um dessen Fehlerrate zu analysieren. Daher füge ich einen lokalen Datenfilter hinzu und filtere nach Werkzeug. Nun kann ich das Werkzeug auswählen, das ich für diese Spalte analysieren möchte. Um die Zusammenhänge besser zu verstehen, vergleiche ich die Mittelwerte mittels t-Tests für abhängige Stichproben.
Nun können wir feststellen, dass Parameter A einen guten Einfluss auf die Fehleranzahl hat, wenn er für Werkzeug B unter 300 liegt, und für die anderen Werkzeuge ist er nicht so signifikant, weil die Kreise hier beieinander liegen, während sie hier sehr weit voneinander entfernt sind.
Um fortzufahren, können wir uns einen weiteren Parameter ansehen, dessen Einrichtung ich Ihnen gleich zeigen werde. Wir wissen, dass ein bestimmtes Tool ab einem bestimmten Datum eine andere Konfiguration hatte. Um diese Information in der Tabelle bzw. im Datensatz zu erstellen, gehe ich zum Diagramm-Generator und erstelle sie dynamisch. Also nochmal die Fehleranzahl.
Diesmal verwende ich anstelle der Chargen- und Wafernummer die Spalte „Inspektionszeitpunkt“, also den Zeitpunkt der Waferprüfung. Da es sich um eine Datumsvariable handelt, nutze ich die Datums- und Zeitfunktion und wandle sie in eine neue Variable (Monat, Jahr) um, die ebenfalls kategorisch ist. So kann ich sie im Diagrammgenerator anzeigen lassen, um den Inspektionsmonat zu ermitteln.
Ich möchte nun die Werkzeuge trennen und daher auch für sie einen lokalen Filter hinzufügen. Ich weiß, dass es für Werkzeug B seit September 2023 eine neue Konfiguration für den Parameter B gibt. Diese Information stammt von hier. Jetzt kann ich diese Punkte hier auswählen, und sie werden im Datensatz markiert.
Hier sehen Sie, dass ich 246 Zeilen ausgewählt habe. Jetzt kann ich die Spalte „Zeilennamen“ verwenden. Dadurch wird ein neuer Spaltenparameter B erstellt, dessen ausgewählte Werte Konfiguration A oder B sind, wobei jeweils die andere Konfiguration ausgewählt wird. Sie können nun einen weiteren Diagrammgenerator verwenden – Entschuldigung, ich meine diesen hier, der etwas komplexer ist.
Sie können nun sehen, dass ich für 2B, wenn ich die Farbe in der Konfiguration angebe, die Konfiguration A für Parameter B erhalte, da mein Spaltenparameter B mithilfe der Namensauswahl in der Spaltenfunktion erstellt wurde. Das ist interessant, denn wir sehen, dass wir für dieses Tool seit der Änderung eine deutlich verbesserte Varianz aufweisen.
Nachdem wir nun alle Parameter untersucht haben, zeige ich Ihnen, wie ich ein zusammenfassendes Diagramm erstellt habe, das uns bei der Entscheidungsfindung helfen kann. Hier ist das Diagramm. Im Prinzip kombinieren wir alle Spalten auf der X-Achse anhand der Fehleranzahl auf der Y-Achse mit einer feineren Einteilung für Parameter A, also 0,75 (groß). Interessant ist, dass wir nun alle Effekte gleichzeitig sehen können.
Wir sehen, dass Werkzeug C das beste Werkzeug ist. Werkzeug B war mit Konfiguration B das schlechteste. Konfiguration A ermöglicht eine deutliche Verbesserung für Werkzeug B. Wir sehen außerdem, dass bei jedem Werkzeug die Anzahl der Effekte mit steigendem Parameter A zunimmt. Unter 300 ist das Ergebnis zufriedenstellend.
Um auf die Folien zurückzukommen: Hier ist alles zusammengefasst. Wir gingen von einer Basispopulation aus und versuchten, Parameter zu isolieren und deren Einfluss auf die Fehleranzahl zu untersuchen. Dadurch konnten wir die Prozessparameter festlegen und unseren Prozess sowie die Ausbeute verbessern. Wir wählten die beste Konfiguration, Konfiguration A, für Parameter B am Werkzeug mit der schlechtesten Leistung, also Werkzeug B. Wir begrenzten Parameter A auch an diesem Werkzeug auf 300.
So nutzen wir den Graph Builder und hauptsächlich den Graph Builder sowie ein wenig ANOVA, um den besten Prozess zu identifizieren und sicherzustellen, dass wir die Ausbeute bei der Fehlerquote verbessern.