Scott Rubelscottrubel0, PhD, Leitender Ingenieur, NXP Semiconductors
Todd Jacobs , PhD, leitender Ingenieur, NXP Semiconductors
James Nelson txnelson , Softwareentwickler und Six Sigma Black Belt, unabhängiger Auftragnehmer
Einführung
Moderne Chipdesigns verfügen über mehrere IP-Komponenten mit unterschiedlicher Prozess-, Spannungs- und Temperaturempfindlichkeit. Diese Komponenten müssen unter unterschiedlichen Betriebsbedingungen funktionieren, wobei verschiedene Komponenten in unterschiedlichen Prozessphasen stärker beansprucht werden: manche bei hohen Temperaturen, manche bei niedriger Spannung usw. Ihre Leistung lässt sich vor der Herstellung vorhersagen und anschließend charakterisieren, wenn echtes Silizium zum Testen verfügbar ist. Je mehr IP-Komponenten vorhanden sind, desto aufwändiger ist der Modellierungs- und Charakterisierungsaufwand.
Darüber hinaus haben Kunden ihre eigenen Leistungsanforderungen: Manche Kunden benötigen eine sehr hohe Betriebsgeschwindigkeit bei geringem Stromverbrauch, andere wiederum haben extrem strenge Stromanforderungen und schalten möglicherweise einige Chipkomponenten komplett ab. Diese Anforderungen werden nicht durch separate Prozesse oder Produktversionen erfüllt; vielmehr ist jede Produktionscharge eine Mischung verschiedener Leistungsklassen.Die Optimierung dieses Mixes, um den unterschiedlichen Kundenanforderungen gerecht zu werden (Behälter) über den gesamten Herstellungsprozess hinweg hat enorme Auswirkungen auf die Bruttomarge: Zu viel oder zu wenig von einem bestimmten Behälter führt zu einem unverkäuflichen Produkt, was im Wesentlichen einen Ertragsverlust darstellt.
Monte-Carlo-Simulationen sind optimal für die Simulation dieser Geschwindigkeits-Leistungs-Verteilungen und Bin-Mixe unter verschiedenen Bedingungen: Sie können die lGroße Anzahl statistischer Parameter (normalerweise 40 – 60, plus eine Kovarianzmatrix) und Bin-Grenzen (~20-100) beteiligt.Konsistente Parameterextraktion und -dokumentation sind für deren Verwaltung von entscheidender Bedeutung. Und hier kommt JMP-Scripting ins Spiel: Esbietet die statistischen Werkzeuge und die Journaling-Funktion, um Simulationen zu gewährleisten, die beim ersten Mal richtig funktionieren. Darüber hinaus ist esDie kürzeste Ausführungszeit (1–5 Minuten/Durchlauf) und die konsistente Dokumentation ermöglichen den Vergleich mehrerer Geschäftsfälle in Echtzeit.
Simulationsablauf
Das folgende Diagramm zeigt den Prozessablauf einer typischen Simulationsreihe. Wir beginnen mit den prognostizierten oder tatsächlichen Leistungsmerkmalen und extrahieren daraus die zugrunde liegenden statistischen Parameter, die das Produkt beschreiben. Anschließend können wir diese Parameter (insbesondere die Varianz) skalieren, um verschiedene Szenarien zu bewerten. Die Monte-Carlo-Engine generiert dann eine simulierte „Wolke“ von Geschwindigkeits-Leistungs-Verteilungen. Darüber werden die Bin-Grenzen (Kundenanforderungen) gelegt. Durch numerische Integration des Wolkenvolumens innerhalb der Grenzen wird die statistische Verteilung der Bins für diese spezielle Wolke bestimmt. Das Skript wiederholt dies automatisch unter verschiedenen Fertigungsbedingungen, um das Prozessfenster zu bestimmen, in dem der Bin-Mix akzeptabel ist (keine unverkäuflichen Chips). An dieser Stelle können wir verschiedene Szenarien betrachten. In diesem Fall können wir die Simulation mit unterschiedlicher Skalierung und/oder unterschiedlichen Grenzen wiederholen, bis wir schließlich die optimale Kombination aus Prozess und Grenzen für einen gegebenen Nachfragemix gefunden haben.

Geschwindigkeits-Leistungs-Verteilungen und Binning
Das folgende Diagramm zeigt ein typisches (simuliertes) Geschwindigkeits-Leistungs-Diagramm für eine einzelne IP-Domäne. Die Frequenz ist fast immer eine lineare Funktion von log(statischer Leckstrom = SIdd) und wird daher durch Steigung, Achsenabschnitt und RMSE (Rauschen) beschrieben. log(SIdd) selbst wird durch Mittelwert und Standardabweichung beschrieben. Da wir üblicherweise Änderungen der Standardabweichung auswerten, verwenden wir einen Skalierungsparameter als einen unserer Eingangsparameter. Das bedeutet, dass die Cloud drei Parameter für die Leistung sowie drei weitere für jeden Frequenztest bei jeder Spannung und Temperatur bereitstellt. Das folgende Diagramm zeigt eine beispielhafte Bin-Grenze: Die statische Leistung unter 0,32 logA und die Leistung über 1040 MHz (innerhalb des grünen Kastens) erfüllen die Anforderungen dieses Bins.

Wir können die Anzahl der bestandenen Chips erhöhen, indem wir die nominale Testspannung (innerhalb des Kundenspezifikationsbereichs) anpassen. Bei höheren Spannungen laufen Bauteile schneller, sodass langsamere Chips nun die Frequenzanforderungen erfüllen können. Das Bauteil verbraucht jedoch auch mehr statische und dynamische Leistung, und dafür gibt es ein festes Budget. Um dieses Budget einzuhalten, muss der zulässige statische Anteil bei einer festen Referenzspannung niedriger sein. Das hellgrüne Kästchen im Bild unten zeigt die zusätzlichen Chips, die die Bin-Anforderungen bei hoher Spannung erfüllen. Für niedrigere Spannungen gilt das Umgekehrte; das dunkelgrüne Kästchen zeigt zusätzliche Chips, die in diesem Szenario erfasst wurden.

Chips, die einen Bin nicht bestehen, können trotz unterschiedlicher Spannungen dennoch einen anderen bestehen. Die folgende Grafik zeigt zwei zusätzliche Bins, die diese Ausreißer-Chips erfassen: einen Bin für niedrige Geschwindigkeit und geringe Leistung (blau) und einen Bin für hohe Geschwindigkeit und hohe Leistung (rot).

Natürlich können viele Chips mehrere Spezifikationen erfüllen. Das nächste Diagramm zeigt diese Überlappungsbereiche, wobei der Chip im dunkelsten grünen Quadranten alle Spannungen für die grünen Spezifikationsgrenzen sowie die roten und blauen Spezifikationsgrenzen erfüllt. Die Binning-Bereiche werden durch eine Kombination aus logischen ODER-Verknüpfungen über die Spannung sowie logischen UND-Verknüpfungen über die Temperatur- und IP-Domänen beschrieben. Diese Chips können verwendet werden, um die Versorgung je nach Bedarf von einem Bin zum anderen zu flexibilisieren..

Es gibt zwei Möglichkeiten, die Würfel für jeden Behälter zu zählen. Die erste ist die Maximalverteilung , bei der alle möglichen Würfel gezählt werden, die die Geschwindigkeits-/Leistungsanforderungen des Behälters erfüllen. Dies stellt eine wichtige Angebotsbeschränkung dar: Übersteigt die Nachfrage die Maximalverteilung, ist das Angebot stets knapp, was zu unverkäuflichem Material (Ertragsverlust) führt. Bei dieser Metrik werden Würfel in überlappenden Regionen für jeden Behälter gezählt, den sie passieren, sodass die Verteilungssumme über alle Behälter 100 % überschreiten kann.
Die zweite Methode zur Zählung von Würfeln ist der Bin-Mix. Bei dieser Methode legt der Benutzer die Sortierreihenfolge fest, in der Würfel für jeden Bin berücksichtigt werden. Sobald ein Würfel einen Bin passiert, wird er aus der weiteren Betrachtung entfernt. Die Summe der Bin-Mix-Verteilungen beträgt daher immer 100 %, da keine Doppelzählung stattfindet. Dies ist die zweite wichtige Angebotsbeschränkung, die wir berücksichtigen: Sie bestimmt, ob wir genügend Würfel haben, um die Nachfrage in der tatsächlichen Produktion zu decken. Im Gegensatz zur Maximalverteilung kann die Bin-Mix-Verteilung durch eine andere Sortierreihenfolge geändert werden, und wir prüfen diese Optionen üblicherweise während der gesamten Lebensdauer eines Produkts.
Die folgende Tabelle zeigt, wie sich die Maximum- und Bin-Mix-Verteilungen für einen Satz von fünf Würfeln unterscheiden:

Während die Prinzipien der Behälterzuweisung und -zählung einfach sind, kann die Implementierung sehr komplex sein. Hier ist Skripting eine wichtige Hilfe: Es stellt sicher, dass die Logik für jeden Würfel jedes Mal korrekt ausgeführt wird, und beseitigt so eine wichtige potenzielle Fehlerquelle.
Die Eingabekonfigurationsdatei
Wir möchten alle unzähligen Eingaben für eine Simulation in einer Datei zusammenfassen, um eine einfache und konsistente Dokumentation zu gewährleisten. Darüber hinaus wünschen wir uns eine Skriptschnittstelle für statistische Extraktionen und Simulationsläufe. JMP unterstützt all dies in einem einzigen Datenobjekt, das wir für alle Eingaben verwenden. Ein Beispiel sieht so aus:

Der obere Bereich wird für verschiedene Skriptroutinen verwendet. Da Parameternamen oft lang und komplex sind, bieten wir die Möglichkeit, sie mithilfe der Textanalysebefehle von JMP in einfachere Namen umzubenennen. Beim ersten Lauf basierend auf einer Datendatei extrahiert und speichert das Skript alle notwendigen statistischen Parameter in der Konfigurationsdatei. Spätere Läufe können einfach auf diese gespeicherten Parameter zurückgreifen. Benutzer müssen die Datendatei nicht separat speichern, sodass jeder eine identische Simulation mit der Konfigurationsdatei des Produkts ausführen kann. Dies vermeidet Inkonsistenzen, wenn Benutzer ihre Analysen auf unterschiedlichen Eingabedatensätzen basieren.
Das Skript enthält außerdem eine Option zur Validierung der Konfigurationstabelle. Dies ist ein wichtiges Tool für auf Anhieb korrekte Simulationen, da es eine Vielzahl potenzieller Fehler prüft, die zu falschen Ergebnissen führen können. Anstatt sich jedes Mal auf die Überprüfung durch einen Experten zu verlassen, stellt das Skript sicher, dass keine wichtigen Eingaben (Grenzwerte, Tests, Temperatur- oder Spannungsgruppierungsparameter usw.) fehlen. Außerdem prüft es auf subtilere Fehler, die zu falschen (aber realistisch wirkenden) Simulationen führen könnten: perfekt korrelierte Parameter, nichtphysikalische Korrelationen oder Bin-/Muster-/Gruppierungskombinationen, die jederzeit Null- oder 100%-Verteilungen garantieren.
Journalausgabe
Wir nutzen die Journaldateifunktion von JMP, um unsere Ergebnisse zu aggregieren und zu standardisieren und so optimale Dokumentationspraktiken zu gewährleisten. Die wichtigsten Funktionen der meisten Analysen sind die simulierte Drehzahl-Leistungs-Verteilung (bei Bedarf können mehrere Parameterpaare dargestellt werden) und die Diagramme der maximalen und binären Verteilungen der Fähigkeit über den gesamten Herstellungsprozess. Neben den Diagrammen enthält die Datei auch die statistischen Parameter und alle weiteren Eingaben aus der Konfigurationsdatei, sodass wir alle zugrunde liegenden Simulationsdetails vollständig nachvollziehen können. Dies ist entscheidend, wenn wir uns in der frühen Phase des Produktlebenszyklus befinden und verschiedene Szenarien berücksichtigen: Das Versäumnis, die zugrunde liegenden Eingaben zu dokumentieren, kann zu großer Verwirrung führen. Durch die Skripterstellung der Ausgabe stellen wir jedoch sicher, dass dies nicht passiert.

Szenariomodellierung
Dank der automatisierten Dokumentation können wir uns auf die schnelle Bewertung verschiedener Szenarien konzentrieren. Da die Simulationszeit sehr kurz ist (1–5 Minuten), können die häufigsten Szenarien in Echtzeit in Meetings ausgewertet werden, was die Diskussionen mit den Marketing- und Designteams erheblich erleichtert. Wir zeigen unten einige Beispiele, beginnend mit einem der einfachsten: der Skalierung der Prozessvarianz. Die erste Grafik zeigt die Auswirkungen auf die maximale Verteilung eines einzelnen Bins, wenn sich die Prozesssteuerung im Werk verbessert: Die Verteilung sinkt in einigen Bereichen, ist aber beim optimalen Ziel deutlich besser. Diese Situation ist so häufig, dass die Varianzskalierung ein anpassbarer Parameter in der Konfigurationsdatei ist.

Die zweite, äußerst häufige Variante, die untersucht werden sollte, ist die Änderung der Bin-Sortierreihenfolge; diese kann während des gesamten Produktlebenszyklus auftreten. Die folgenden Diagramme zeigen die Bin-Mix-Verteilung im Herstellungsprozess bei der Sortierreihenfolge: Orange, Rot, Hellgrün, Dunkelgrün, Blau. (Das Diagramm der maximalen Verteilung wird hier nicht angezeigt, da es von der Sortierreihenfolge nicht beeinflusst wird.) Am Prozessziel (vertikale schwarze Linie) dominiert der orangefarbene Bin, mit geringen Anteilen hellgrüner und roter Chips und praktisch keiner blauen oder dunkelgrünen Verteilung.

Wir möchten nun die Auswirkungen des Austauschs der Sortierreihenfolge der roten und dunkelgrünen Behälter bewerten: Wie viel weniger von ersteren und wie viel mehr von letzteren können wir nun versenden? Die Sortierreihenfolge ist ein Parameter, den wir einfach in der Konfigurationsdatei ändern können, sodass dieser Vergleich nur wenige Minuten dauert. Die folgende Grafik zeigt das Ergebnis (beachten Sie, dass der hellgrüne Behälter vollständig vom dunkelgrünen Behälter abgedeckt ist, der in der neuen Reihenfolge zuerst getestet wird).

Während die orangefarbene Bin-Verteilung unverändert bleibt, fällt ein erheblicher Anteil der Chips (ca. 30 %) nun in die dunkelgrüne Bin statt wie zuvor in die rote oder hellgrüne. Dieses Ergebnis kann mit der Kundennachfrage verglichen werden, um zu entscheiden, ob das Testprogramm geändert werden sollte.
Ein weiteres häufiges Szenario, das eine Simulation erfordert, ist die Chipsortierung vor der Montage. In diesem Fall können Produkte je nach Leistung in unterschiedliche Gehäuse eingebaut werden. Neben dem Verständnis des allgemeinen Bin-Mix möchten wir nun auch verstehen, wie dieser Mix für jeden Gehäusetyp aussieht, was eine zusätzliche Komplexitätsebene mit sich bringt. Wir möchten auch verstehen, wie gut unsere Tests vor der Montage die Chips dem richtigen Gehäuse zuordnen. Dies ist mit dem JMP-Skript einfach zu bewerkstelligen, da für jeden Test und jedes Bin für jeden Chip Pass/Fail-Daten enthalten sind. Im folgenden Diagramm sehen wir, dass Chips, die den Wafer-Geschwindigkeitstest vor der Montage nicht bestehen (türkis), tatsächlich zu den langsamsten gehören, wenn sie nach der Montage auf ACSCAN_PLAT_MIN_FMAX getestet werden – die Korrelation ist jedoch nicht perfekt: Die türkisfarbenen Chips überlappen sich ziemlich stark mit anderen Bin-Grenzen (beachten Sie, dass diese Simulation andere Tests und Bins als das vorherige Beispiel verwendet).

Ob diese Korrelation für die Produktion ausreicht, hängt davon ab, ob die resultierenden Bin-Verteilungen pro Paket akzeptabel sind. Die folgenden Grafiken zeigen den Unterschied zwischen dem Bau aller Chips (links) und aller Chips außer dem türkisfarbenen Chip (rechts). Der Übersichtlichkeit halber werden die entsprechenden Grafiken für Bin-Mix-Verteilungen nicht angezeigt, werden aber im Rahmen der Bewertung berücksichtigt.

Szenariomodellierung: Variablengrenzen
Eine häufige, aber etwas komplexere Situation ist die Berücksichtigung unterschiedlicher Bin-Grenzen; dies geschieht meist während der Produktdefinitionsphase. Es kann Unsicherheit darüber bestehen, welche Leistung einem Kunden angeboten werden soll, oder das Designteam möchte die Auswirkungen einer langsameren Ausführung eines IP-Elements als gewünscht verstehen. Unser Simulationsskript bietet die Flexibilität, Bin-Grenzen in diskreten Schritten zu variieren; wir können dann die Auswirkungen auf die Verteilung untersuchen. Da diese Analysen sehr unterschiedlich ausfallen können, generieren wir keine speziellen grafischen Ausgaben. Die Verteilungsdaten lassen sich jedoch problemlos als separate Datentabellen speichern, die wir nach Belieben analysieren können. Das folgende Beispiel zeigt die Standardausgabe für die maximale Verteilung der „Bin 1 Combo“ bei Variation der Leistungsgrenze in 11 Schritten: Der Peak wird niedriger und verschiebt sich bei engeren Leistungsgrenzen nach rechts. (Die Bins 2–5 haben nur einzelne Kurven, da sich ihre Grenzen nicht ändern. Rechts zeigen wir ein benutzerdefiniertes Diagramm, das die Bin-1-Verteilung beim Zielprozess (vertikale schwarze Linie) als Funktion der Bin-Grenze darstellt (beschriftet mit der Schrittnummer; wir können dies bei Bedarf in tatsächliche Leistungswerte umwandeln). Wie üblich könnten wir diese Analyse bei Bedarf auch für die Bin-Mix-Verteilung durchführen.

Aus der Grafik rechts geht hervor, dass wir die Leistungsgrenze um drei bis vier Stufen verschärfen können, bevor die Bin-1-Verteilungen stark abfallen. Ab diesem Punkt reagiert das Angebot sehr empfindlich auf geringfügige Änderungen. Wir würden diese Informationen an das Marketingteam weitergeben, das über die Leistungsspezifikationen für Kunden entscheidet.
Wir möchten möglicherweise auch die Geschwindigkeitsempfindlichkeit gegenüber einem bestimmten Teil des IP-Chips bewerten. Wir stufen die Bin-Grenzen erneut ein und berücksichtigen drei Metriken. Die erste ist das optimale Prozessziel (Position der Spitzenverteilung auf der X-Achse): Dieses ist nicht stufenlos einstellbar und nicht trivial umsetzbar, daher soll das Prozessziel nicht empfindlich auf Geschwindigkeitsverlust reagieren. Wir benötigen außerdem ein angemessenes Prozessfenster (den Bereich, in dem Angebot und Nachfrage übereinstimmen) und natürlich genügend Chips, die dieses Bin passieren, um die Kundenbestellungen zu erfüllen. Alle drei folgenden Grafiken erzählen ein ähnliches Bild: Wir können einen Geschwindigkeitsverlust von bis zu ca. 40 MHz tolerieren, darüber hinaus reagiert das optimale Prozessziel jedoch sehr empfindlich auf Geschwindigkeitsschwankungen, das Prozessfenster schrumpft rapide, und das Bin-Angebot selbst beginnt zu kollabieren. Diese Eingabe gibt dem Designteam ein klares Erfolgskriterium und ein gutes Gefühl dafür, wie viel Spielraum es in seine Simulationen einplanen sollte.

In besonders komplexen Situationen können Geschwindigkeits- und Leistungsschwankungen gleichzeitig berücksichtigt werden, beispielsweise wenn eine Verbesserung der Geschwindigkeitsmarge zu Leistungseinbußen führt. Besonders wichtig ist hier die integrierte Journalfunktion des Skripting-Tools, die alle sich ändernden Eingaben automatisch dokumentiert.
Zusammenfassung
Die Verwendung eines JMP-Skripts hat unsere Möglichkeiten zur Produktleistungsmodellierung deutlich verbessert. Wir können komplexe Eingaben mit integrierter Validierung verwalten, um häufige Benutzerfehler zu vermeiden. Das Skript übernimmt die Berechnung der Monte-Carlo-Simulation selbst, sodass sich die Benutzer auf die wertschöpfenden Ergebnisse konzentrieren können, anstatt auf statistische Details. Es gewährleistet außerdem eine konsistente Ausgabe, die unsere Best Practices berücksichtigt, sodass jede Analyse gründlich dokumentiert ist, ohne dass eine Expertenprüfung oder eine umfangreiche Dokumentationsspezifikation erforderlich ist.
Das Tool kann entweder mit Siliziumdaten verwendet oder mit Leistungsschätzungen versehen werden, bevor die Produkte verfügbar sind. Darin liegt sein größter Nutzen: Wir können Produkte bereits in einem frühen Stadium ihres Lebenszyklus beeinflussen und den Design- und Marketingteams aussagekräftiges Feedback geben, bevor die endgültigen Spezifikationen feststehen. Dies ermöglicht eine bessere Kundenbindung und stellt sicher, dass alle funktionsfähigen Chips bei der Markteinführung unserer Produkte verkaufsfähig sind. Schließlich können wir schnell Sensitivitätsanalysen durchführen, die ein robustes Prozessfenster gewährleisten. Produkte, die diese Kriterien bei der Markteinführung erfüllen, sind profitabler, gewährleisten reibungslose Fertigungsabläufe und erfüllen die Kundenbedürfnisse über ihre gesamte Lebensdauer hinweg besser.