Scott Rubel schottischer Rubel0 , PhD, leitender Chefingenieur, NXP Semiconductors
Todd Jacobs , PhD, Chefingenieur, 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 unterschiedlichen Prozess-, Spannungs- und Temperaturempfindlichkeiten.Diese Komponenten müssen alle über einen weiten Bereich von Betriebsbedingungen funktionieren, aber unterschiedliche Komponenten werden an unterschiedlichen Prozessecken stärker beansprucht: einige bei hoher Temperatur, andere bei niedriger Spannung usw.Ihre Leistung kann vor der Herstellung vorhergesagt und dann charakterisiert werden, wenn tatsächliches Silizium zum Testen verfügbar ist; Je mehr IP-Komponenten, desto mehr Modellierungs-/Charakterisierungsarbeit ist erforderlich.
Kunden haben darüber hinaus ihre eigenen Leistungsanforderungen: Einer benötigt möglicherweise eine sehr hohe Betriebsgeschwindigkeit ohne Rücksicht auf den Stromverbrauch, während ein anderer möglicherweise extrem strenge Leistungsanforderungen hat und möglicherweise einige Chipkomponenten vollständig abschaltet.Diese Anforderungen werden nicht durch die Ausführung separater Prozesse oder Produktversionen erfüllt; Stattdessen ist jede Produktionscharge eine Mischung aus verschiedenen Leistungsstufen.Optimierung dieser Mischung, um den unterschiedlichen Kundenanforderungen gerecht zu werden ( Bin ) im gesamten Herstellungsprozessfenster hat einen enormen Einfluss 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 eignen sich optimal zur Simulation dieser Drehzahl-Leistungs-Verteilungen und Behältermischungen unter verschiedenen Bedingungen: Sie können die l bewältigen Es sind zahlreiche statistische Parameter (typischerweise 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-Skripting ins Spiel: es Bietet die statistischen Tools sowie die Journalfunktion, um sicherzustellen, dass Simulationen beim ersten Mal richtig sind.Darüber hinaus ist es f Die schnelle Ausführungszeit (1–5 Minuten/Durchlauf) und die konsistente Dokumentation ermöglichen mehrere Geschäftsfallvergleiche in Echtzeit.
Simulationsablauf
Das folgende Diagramm zeigt den Prozessablauf für eine typische Reihe von Simulationsläufen.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.An diesem Punkt erzeugt der Monte-Carlo-Motor eine simulierte „Wolke“ von Geschwindigkeits-Leistungs-Verteilungen.Darüber sind die Behältergrenzen (Kundenanforderungen) überlagert.Die numerische Integration des Wolkenvolumens innerhalb der Grenzen bestimmt die statistische Verteilung der Klassen für diese bestimmte Wolke.Das Drehbuch wiederholt dies automatisch über verschiedene Herstellungsbedingungen hinweg, um das Prozessfenster zu bestimmen, in dem die Behältermischung akzeptabel ist (keine unverkäufliche Matrize).An dieser Stelle möchten wir möglicherweise verschiedene Szenarien betrachten. In diesem Fall können wir die Simulation mit unterschiedlicher Skalierung und/oder Grenzwerten erneut ausführen, bis wir schließlich die optimale Kombination aus Prozess und Grenzwerten für einen bestimmten Nachfragemix erreichen.

Geschwindigkeits-Leistungsverteilungen und Binning
Das Diagramm unten zeigt eine typische (simulierte) Geschwindigkeit vs. Leistungsdiagramm 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 einen Mittelwert und eine Standardabweichung beschrieben.Da wir üblicherweise Standardabweichungsänderungen auswerten, schließen wir einen Skalierungsparameter als eine unserer Eingaben ein, was bedeutet, dass die Wolke drei Parameter für die Leistung sowie drei für jeden Frequenztest bei jeder Spannung und Temperatur hat.In der Grafik unten zeigen wir einen beispielhaften Klassengrenzwert: Diejenigen mit einer statischen Leistung unter 0,32 logA und über 1040 MHz (im grünen Feld) erfüllen die Anforderungen dieser Klasse.

Wir können die Anzahl der durchlaufenden Chips erhöhen, indem wir die Nennprüfspannung anpassen (innerhalb des Kundenspezifikationsbereichs).Bei höheren Spannungen laufen Teile schneller, sodass sie nun langsamer die Frequenzanforderung erfüllen können.Allerdings verbraucht das Teil auch mehr statische und dynamische Leistung, und dafür gibt es ein festes Budget.Um innerhalb dieses Budgets zu bleiben, muss die zulässige statische Komponente bei einer festen Referenzspannung niedriger sein.Das hellgrüne Kästchen im Bild unten zeigt den zusätzlichen Chip, der die Behälteranforderungen bei Hochspannung erfüllt.Das Umgekehrte gilt für niedrigere Spannungen; Das dunkelgrüne Kästchen zeigt zusätzliche Würfel, die in diesem Szenario erbeutet wurden.

Diejenigen, die einen Behälter nicht passieren, auch bei unterschiedlichen Spannungen, können dennoch einen anderen passieren.Das Diagramm unten zeigt zwei zusätzliche Bins, die diese Ausreißer erfassen: ein Bin mit niedriger Geschwindigkeit und geringer Leistung (blau) und ein Bin mit hoher Geschwindigkeit und hoher Leistung (rot).

Natürlich können viele Chips mehrere Spezifikationen erfüllen; Das nächste Diagramm zeigt diese überlappenden Bereiche, wobei diejenigen im dunkelsten grünen Quadranten alle Spannungen für die grünen Spezifikationsgrenzen sowie die roten und blauen Spezifikationsgrenzen passieren.Die Binning-Regionen werden durch eine Kombination aus logischen ODER-Verknüpfungen über die Spannung sowie logischen UND-Verknüpfungen über Temperatur- und IP-Domänen beschrieben.Diese Matrizen können verwendet werden, um den Vorrat je nach Bedarf von einem Behälter zum anderen zu biegen .

Es gibt zwei Möglichkeiten, die Würfel für jeden Behälter zu zählen.Das erste ist das max Verteilung, wobei alle möglichen Würfel gezählt werden, die die Geschwindigkeits-/Leistungsanforderungen des Behälters erfüllen können.Dies ist eine wichtige Angebotsbeschränkung: Wenn die Nachfrage die maximale Verteilung übersteigt, wird das Angebot immer knapp sein, was zu nicht verkaufbarem Material führt (Ertragsverlust).Bei dieser Metrik zählen Würfel in überlappenden Regionen für jeden Abschnitt, den sie passieren, sodass die Verteilungssumme über Abschnitte 100 % überschreiten kann.
Die zweite Möglichkeit, Würfel zu zählen, ist die Ich bin gemischt. Bei dieser Methodik gibt der Benutzer die an Sortierreihenfolge in dem Würfel für jeden Behälter berücksichtigt werden; Sobald ein Würfel einen Behälter passiert, wird er aus der weiteren Betrachtung entfernt.Die Summe der Bin-Mix-Verteilungen beträgt daher immer 100 %, da keine Doppelzählung erfolgt.Dies ist die zweite große Angebotsbeschränkung, die wir berücksichtigen: Sie bestimmt, ob wir über genügend Matrizen verfügen, um die Nachfrage in der tatsächlichen Produktion zu decken.Im Gegensatz zur Maximalverteilung kann die Bin-Mix-Verteilung durch die Verwendung einer anderen Sortierreihenfolge geändert werden. Normalerweise bewerten wir diese Optionen während der gesamten Lebensdauer eines Produkts.
Die folgende Tabelle zeigt, wie sich die Maximal- und Bin-Mix-Verteilungen für einen Satz von fünf Matrizen unterscheiden:

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

Der obere Bereich wird für verschiedene Skriptroutinen verwendet.Da Parameternamen häufig lang und komplex sind, bieten wir die Option an, sie mithilfe der Textanalysebefehle von JMP in einen weniger umständlichen Namen umzubenennen.Beim ersten Durchlauf extrahiert das Skript auf Basis einer Datendatei alle notwendigen statistischen Parameter und speichert sie in der Konfigurationsdatei; Zukünftige Läufe können einfach diese gespeicherten Parameter verwenden.Benutzer müssen die Datendatei nicht separat speichern, sodass jeder eine identische Simulation mithilfe der Konfigurationsdatei des Produkts ausführen kann.Dies vermeidet Inkonsistenzen, wenn Benutzer ihre Analysen auf unterschiedlichen Eingabedatensätzen basieren.
Das Skript enthält auch eine Option zum Validieren der Konfigurationstabelle.Dabei handelt es sich um ein entscheidendes Werkzeug, um „auf den ersten Blick richtige“ Simulationen zu ermöglichen, da es auf eine Vielzahl potenzieller Fehler prüft, die zu falschen Ergebnissen führen können.Anstatt sich jedes Mal auf die Überprüfung durch Experten zu verlassen, stellt das Skript sicher, dass keine wichtigen Eingaben fehlen (Grenzwerte, Tests, Temperatur- oder Spannungsgruppierungsparameter usw.) und prüft auch auf subtilere Fehler, die zu falschen (aber realistisch aussehenden) Ergebnissen führen könnten ) Simulationen: 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 Ausgaben zu aggregieren und zu standardisieren und so Best Practices für die Dokumentation sicherzustellen.Die wichtigsten Merkmale für die meisten Analysen sind die simulierte Geschwindigkeits-Leistungsverteilung (bei Bedarf können mehrere Parameterpaare dargestellt werden) und die Darstellungen der Maximal- und Bin-Mix-Fähigkeitsverteilungen über den gesamten Herstellungsprozessbereich.Zusätzlich zu den Diagrammen enthält die Datei auch die statistischen Parameter und alle anderen Eingaben aus der Konfigurationsdatei, sodass wir eine vollständige Nachvollziehbarkeit aller zugrunde liegenden Simulationsdetails haben.Dies ist von entscheidender Bedeutung, wenn wir uns am Anfang des Produktlebenszyklus befinden und mehrere Szenarien in Betracht ziehen: Das Versäumnis, eine der zugrunde liegenden Eingaben zu dokumentieren, kann zu großer Verwirrung führen, aber durch die Skripterstellung der Ausgabe stellen wir sicher, dass dies nie passiert.

Szenariomodellierung
Durch die automatisierte Dokumentation können wir uns auf die schnelle Bewertung unterschiedlicher Szenarien konzentrieren.Da die Simulationszeit sehr kurz ist (1–5 Minuten), können die gängigeren Modelle in Echtzeit in Besprechungen ausgewertet werden, was die Diskussionen mit den Marketing- und Designteams erheblich erleichtert.Im Folgenden zeigen wir einige Beispiele, beginnend mit einem der einfachsten: der Skalierung der Prozessvarianz.Die erste Grafik zeigt die Auswirkungen auf die maximale Verteilung eines einzelnen Behälters, wenn sich die Prozesskontrolle in der Fabrik verbessert: In einigen Regionen sinkt die Verteilung, beim optimalen Ziel ist sie jedoch deutlich besser.Diese Situation kommt so häufig vor, dass die Varianzskalierung ein einstellbarer Parameter in der Konfigurationsdatei ist.

Die zweite, äußerst häufige Variante, die es zu untersuchen gilt, ist die Änderung der Bin-Sortierreihenfolge. Dies kann während des gesamten Lebenszyklus eines Produkts auftreten.Die Diagramme unten zeigen die Bin-Mix-Verteilung im gesamten Herstellungsprozess, wenn die Sortierreihenfolge Orange, Rot, Hellgrün, Dunkelgrün, Blau ist.(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 Behälter mit kleinen Mengen hellgrüner und roter Behälter und praktisch keiner blauen oder dunkelgrünen Verteilung.

Wir möchten nun die Auswirkungen der Vertauschung der Sortierreihenfolge der roten und dunkelgrünen Behälter bewerten: Wie viel weniger von der ersteren und mehr von der letzteren können wir jetzt versenden?Die Sortierreihenfolge ist ein Parameter, den wir leicht in der Konfigurationsdatei ändern können, sodass dieser Vergleich nur ein paar Minuten dauert; Das Diagramm unten zeigt das Ergebnis (beachten Sie, dass die hellgrüne Tonne vollständig von der dunkelgrünen Tonne abgedeckt wird, die in der neuen Reihenfolge zuerst getestet wird).

Während die orange Behälterverteilung unverändert bleibt, fällt ein erheblicher Teil des Würfels (~30 %) jetzt in den dunkelgrünen Behälter und nicht wie zuvor in den roten oder hellgrünen Behälter.Dieses Ergebnis kann mit der Kundennachfrage verglichen werden, um festzustellen, ob das Testprogramm geändert werden sollte.
Ein weiteres häufiges Szenario, das eine Simulation erfordert, ist die Sortierung der Stanzteile vor der Montage.In diesem Fall können Produkte je nach Leistung in unterschiedliche Pakete eingebaut werden.Zusätzlich zum Gesamtverständnis der Behältermischung möchten wir nun verstehen, wie die Mischung für jeden Pakettyp aussehen wird, was eine zusätzliche Ebene der Komplexität einführt.Wir möchten auch verstehen, wie gut unsere Tests vor der Montage zur richtigen Verpackung führen.Dies ist mit dem JMP-Skript einfach zu bewerkstelligen, da für jeden Chip Pass/Fail-Daten für jeden Test und jeden Behälter enthalten sind.In der Grafik unten können wir sehen, dass die Chips, die den Wafer-Vormontage-Geschwindigkeitstest nicht bestanden haben (türkis), tatsächlich zu den langsamsten gehören, wenn sie nach der Montage mit ACSCAN_PLAT_MIN_FMAX getestet werden – aber die Korrelation ist nicht perfekt: Die türkisfarbenen Chips überlappen ziemlich stark mit anderen Bin-Grenzen (beachten Sie, dass diese Simulation andere Tests und Bins verwendet als das vorherige Beispiel).

Ob diese Korrelation gut genug ist, um in der Produktion verwendet zu werden, hängt davon ab, ob die resultierenden Verteilungen pro Paketbehälter akzeptabel sind.Die folgenden Grafiken zeigen den Unterschied zwischen dem Bauen aller Würfel (links) oder aller Würfel Aber der türkisfarbene Würfel (rechts).Aus Gründen der Übersichtlichkeit werden die entsprechenden Diagramme für die Bin-Mix-Verteilungen nicht angezeigt, würden aber als Teil der Bewertung berücksichtigt.

Szenariomodellierung: Variablengrenzen
Eine häufige, aber etwas kompliziertere Situation ist, wenn wir unterschiedliche Behältergrenzen berücksichtigen möchten; Dies geschieht am häufigsten während der Produktdefinitionsphase.Möglicherweise besteht eine gewisse Unsicherheit darüber, welche Leistung einem Kunden angeboten werden soll, oder das Designteam möchte die Auswirkungen verstehen, wenn ein Teil des geistigen Eigentums langsamer als gewünscht läuft.Unser Simulationsskript bietet die Flexibilität, die Bin-Grenzwerte in einzelnen Schritten zu variieren. Anschließend können wir die Auswirkungen auf die Verteilung untersuchen.Da diese Analysen sehr unterschiedlich sein können, erstellen wir keine speziellen grafischen Ausgaben, sondern die Verteilungsdaten können einfach als separate Datentabellen gespeichert werden, die wir nach Belieben untersuchen können.Das folgende Beispiel zeigt die Standardausgabe für die maximale Verteilung „Bin 1 Combo“, da die Leistungsgrenze in 11 Schritten variiert wird: Die Spitze wird niedriger und verschiebt sich nach rechts, um engere Leistungsgrenzen zu erreichen.(Die Klassen 2–5 haben nur Einzelkurven, da sich ihre Grenzen nicht ändern.Rechts zeigen wir ein benutzerdefiniertes Diagramm, das die Verteilung von Bin 1 am Zielprozess (vertikale schwarze Linie) als Funktion der Bin-Grenze darstellt (beschriftet durch Schrittnummer; wir können dies bei Bedarf in tatsächliche Leistungswerte umwandeln).Wie üblich können wir diese Analyse bei Bedarf auch für die Bin-Mix-Verteilung durchführen.

Aus der Grafik auf der rechten Seite können wir ersehen, dass wir Spielraum haben, die Leistungsgrenze um 3–4 Schritte zu verschärfen, bevor die Verteilungen in Bin 1 stark abzufallen beginnen; Ab diesem Zeitpunkt reagiert das Angebot sehr empfindlich auf geringfügige Änderungen.Wir würden diese Informationen an das Marketingteam weiterleiten, wenn dieses überlegt, welche Leistungsspezifikationen es einem Kunden anbieten soll.
Möglicherweise möchten wir auch die Geschwindigkeitsempfindlichkeit gegenüber einem bestimmten IP-Teil bewerten.Wir erhöhen erneut die Bin-Grenzen und betrachten drei Metriken.Das erste ist das optimale Prozessziel (Peak-Verteilungsort auf derWir brauchen auch ein angemessenes Prozessfenster (den Bereich, in dem das Angebot der Nachfrage entspricht) und natürlich müssen wir genug davon passieren, um die Kundenbestellungen zu erfüllen.Alle drei Diagramme unten erzählen eine ähnliche Geschichte: Wir können einen Geschwindigkeitsverlust von bis zu ~40 MHz tolerieren, aber darüber hinaus reagiert das optimale Prozessziel sehr empfindlich auf Geschwindigkeitsschwankungen, das Prozessfenster schrumpft schnell und der Behältervorrat selbst beginnt zu schrumpfen Zusammenbruch.Diese Eingaben geben dem Designteam ein klares Erfolgskriterium und ein solides Gefühl dafür, wie viel Spielraum es in seine Simulationen einbeziehen sollte.

In besonders komplexen Situationen können Geschwindigkeits- und Leistungsschwankungen gleichzeitig berücksichtigt werden; zum Beispiel, wenn eine Verbesserung der Geschwindigkeitsmarge zu Stromkosten führt.Besonders wichtig ist hier das integrierte Journaling des Scripting-Tools, das alle sich ändernden Eingaben automatisch dokumentiert.
Zusammenfassung
Die Verwendung eines JMP-Skripts hat unsere Fähigkeiten zur Produktleistungsmodellierung erheblich verbessert.Wir können komplexe Eingaben mit integrierter Validierung verwalten, um häufige Benutzerfehler zu vermeiden.Das Skript übernimmt die Mathematik hinter der Monte-Carlo-Simulation selbst und gibt den Benutzern die Möglichkeit, sich auf wertschöpfende Ergebnisse statt auf statistische Details zu konzentrieren.Es gewährleistet außerdem eine konsistente Ausgabe, die unsere Best Practices umfasst, sodass jede Analyse gründlich dokumentiert wird, ohne dass eine Expertenprüfung oder eine langwierige Dokumentationsspezifikation erforderlich ist.
Das Tool kann entweder mit Siliziumdaten verwendet oder mit Leistungsschätzungen versehen werden, bevor wir Produkte zur Hand haben.Hierin liegt der größte Wert: Wir können Produkte sehr früh in ihrem Lebenszyklus beeinflussen und den Design- und Marketingteams aussagekräftiges Feedback geben, bevor die endgültigen Spezifikationen festgelegt werden.Dies ermöglicht eine bessere Kundenbindung und stellt sicher, dass unsere Produkte bei der Markteinführung alle funktionsfähig und verkaufsfähig sind.Schließlich können wir schnell Sensitivitätsanalysen durchführen, die sicherstellen, dass wir über ein robustes Prozessfenster verfügen.Produkte, die diese Kriterien bei der Markteinführung erfüllen, sind profitabler, gewährleisten einen reibungslosen Produktionsablauf und erfüllen die Kundenbedürfnisse über ihre gesamte Lebensdauer besser.