DE112011103563T5 - Verfahren und System zum Identifizieren von seltenen Fehlerrarten - Google Patents
Verfahren und System zum Identifizieren von seltenen Fehlerrarten Download PDFInfo
- Publication number
- DE112011103563T5 DE112011103563T5 DE112011103563T DE112011103563T DE112011103563T5 DE 112011103563 T5 DE112011103563 T5 DE 112011103563T5 DE 112011103563 T DE112011103563 T DE 112011103563T DE 112011103563 T DE112011103563 T DE 112011103563T DE 112011103563 T5 DE112011103563 T5 DE 112011103563T5
- Authority
- DE
- Germany
- Prior art keywords
- points
- esd
- ordered
- model
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/08—Probabilistic or stochastic CAD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
- Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung Nr. 61/407,230, angemeldet am 27. Oktober 2010, die hierin durch Bezugnahme in ihrer Gesamtheit eingeschlossen ist.
- GEBIET DER ERFINDUNG
- Die vorliegende Erfindung betrifft allgemein das Schätzen von Fehlerraten in Entwürfen (z. B. elektrischen Schaltungsdesigns), deren Leistung durch Variation beeinflusst wird, wobei die Variation wenigstens teilweise durch eine Wahrscheinlichkeitsverteilung gebildet wird und die Wahrscheinlichkeit, Vorgaben nicht zu erfüllen, erheblich geringer ist als die Wahrscheinlichkeit, sie zu erfüllen. Genauer gesagt, betrifft die vorliegende Erfindung das Schätzen von Fehlerraten in Halbleiterentwürfen mit hoher Ausbeute.
- ALLGEMEINER STAND DER TECHNIK
- Die Ausbeute von Speicherschaltungen, benutzerdefiniert digitalen und anderen Arten von Schaltungen ist wichtig, da sie direkt die Wirtschaftlichkeit des Chips beeinflusst, auf dem die jeweilige Schaltung ausgebildet ist. Dementsprechend ist es für Entwickler wichtig, die Ausbeute dieser Schaltungen vor der Herstellung schätzen zu können. Wie im Stand der Technik bekannt ist, ist eine Fehlerrate nur eine andere Einheit für die Ausbeute. Das heißt, die Fehlerrate eines Entwurfs ist der Anteil an abgetasteten Entwürfen, die die Vorgaben nicht erfüllen, während die Ausbeute der Anteil an Entwürfen ist, die die Vorgaben erfüllen.
- Um die Fehlerrate eines elektrischen Schaltungsdesigns (ESD) zu schätzen, ist üblicherweise ein Modell statistischer Variation einiger Variablen des ESDs erforderlich. Das Variationsmodell kann eine Wahrscheinlichkeitsverteilung zufälliger Variablen beinhalten. Zum Beispiel könnte jedes Gerät im ESD eine n-dimensionale Gauß-Verteilung aufweisen, die eine Variation in „n”-Prozessvariablen dieses Gerätes, wie Oxiddicke, Substratdotierungskonzentration usw., beschreibt. Dann ist das Verteilungsmodell (Wahrscheinlichkeitsverteilung) für das ESD lediglich die Einheit der Verteilungen der Geräte. Das Ziehen eines zufälligen Punktes aus der Verteilung stellt in Kombination mit der ESD-Topologie und den Gerätegrößen (Länge, Breite usw.) stellt ein „Exemplar” des ESDs bereit, wobei das Exemplar ein Modell eines einzelnen Chips (Die) ist, der hergestellt werden könnte (oder ein Block oder eine „Zelle” innerhalb des Gesamtdesigns des Chips).
- Die Leistung eines Exemplars eines ESDs wird üblicherweise durch Schaltungssimulation geschätzt. Seine Leistung kann an verschiedenen Umgebungspunkten geschätzt werden, zum Beispiel bei verschiedenen Temperaturen. Das Exemplar des ESDs ist „zulässig” wenn die Leistungen bei jedem Umgebungspunkt Vorgaben erfüllen. Die Leistungen, die auch als Leistungskriterien bezeichnet werden, können z. B. Stromverbrauch, Lesestrom usw. beinhalten.
- Bei einem einfachen bekannten Weg, die Fehlerrate für ein jeweiliges ESD zu schätzen, wird Monte-Carlo-Stichprobenentnahme in Verbindung mit Simulation verwendet, wie in
1 dargestellt. Die Eingaben, die beim Start102 verwendet werden, beinhalten eine Wiedergabe eines ESDs und eine Wahrscheinlichkeitsverteilung, welche die Variationen beschreibt, die das ESD beeinflussen können. Ein Exemplar – eine Kombination eines ESDs (nominelles Design) und einer bestimmten Variation (aufgrund von Prozesszufälligkeit) – kann durch einen SPICE-Schaltungssimulator (SPICE: Simulation Program with Integrated Circuit Emphasis) oder dergleichen simuliert werden. In Schritt104 wird eine Anzahl an Exemplaren aus der Wahrscheinlichkeitsverteilung des ESDs gezogen. Jedes Exemplar wird simuliert106 , um zu bestimmen, ob es „zulässig” ist oder nicht (d. h. ob es vorbestimmte Vorgaben der Leistungskriterien erfüllt oder nicht). Der Durchlauf endet108 üblicherweise, wenn alle N Stichproben simuliert wurden. Die Ergebnisse, einschließlich der Fehlerrate, die als Verhältnis der Anzahl unzulässiger Exemplare zur Gesamtanzahl der Exemplare berechnet wird, werden an die Benutzeranzeige berichtet110 . - Das Schätzen der Fehlerrate gemäß dem Monte-Carlo-Ablauf aus
1 ist relativ kostengünstig, wenn die Wahrscheinlichkeit, ein unzulässiges Exemplar zu finden (Fehlerrate), im Vergleich zur Wahrscheinlichkeit, einen zulässigen Fall zu finden, in derselben Größenordnung liegt oder doppelt so hoch ist. Wenn die Fehlerrate (pf) zum Beispiel 0,10 beträgt, dann ist die Ausbeute 0,90 und sie ist relativ leicht zu schätzen. Um die Fehlerrate mit ausreichender Genauigkeit zu schätzen, besteht eine sinnvolle Daumenregel darin, genug Stichproben zu haben, um ungefähr zehn Fehler zu erhalten; und mehr Stichproben verbessern die Genauigkeit weiter. Im obenstehenden Beispiel ergibt pf = 0,10 N = 10/0,10 = 100 Stichproben. Auf einer modernen Zentraleinheit mit moderner Simulationssoftware können üblicherweise 100 Monte-Carlo-Stichproben in Minuten bis Stunden simuliert werden, was angemessen ist. Häufig können 1.000 Monte-Carlo-Stichproben angemessen sein und für bestimmte schnell simulierende Schaltungen können auch 10.000 Stichproben angemessen sein. - Wenn die Wahrscheinlichkeit, dass ein Exemplar durchfällt, jedoch sehr viel seltener ist, benötigt man bei Verwendung des in
1 gezeigten Ansatzes sehr viel mehr Monte-Carlo-Stichproben, um die Fehlerrate zu schätzen. Zum Beispiel, wenn pf = 1,0e–6 (1 in einer Million) ist, dann werden ungefähr N = 10/1e–6 = 10 Millionen Monte-Carlo-Stichproben benötigt. In diesem Fall kann das Simulieren des ESDs für moderne Maschinen zu rechenintensiv sein, um in einem angemessenen Zeitrahmen (z. B. Stunden) Ergebnisse zu erhalten. Wenn für eine beliebige Schaltung pf = 1,0e–9 (1 in einer Milliarde) ist, dann würden ungefähr N = 10/1e–9 = 10 Milliarden Monte-Carlo-Stichproben benötigt werden. Das Simulieren mit einer derart riesigen Anzahl an Stichproben wäre angesichts des erforderlichen Zeitrahmens eindeutig nicht sinnvoll. - Derart niedrige pf-Werte sind bei bestimmten Arten von modernen Schaltungen tatsächlich häufig anzutreffen. Derartige Schaltungen beinhalten Speicherschaltungen, in denen Bitzellen auf einem einzelnen Chip millionen- oder milliardenfach wiederholt werden (Mbit- oder Gbit-Speicher); dadurch sollte jede Bitzelle vorzugsweise extrem zuverlässig sein (eine winzige pf aufweisen), sodass der Gesamtspeicher eine angemessene Ausbeute hat; und unterstützende Schaltungen, wie Leseverstärker, die ebenfalls häufig wiederholt werden, müssen ebenfalls sehr zuverlässig sein. Ferner weisen digitale Elektronikgeräte so viele digitale Standardzellen auf, dass jede Zelle vorzugsweise extrem zuverlässig sein sollte, damit die Gesamtschaltung eine angemessene Ausbeute aufweist.
- Da das Simulieren von 10 Millionen oder 10 Milliarden Monte-Carlo-Stichproben unverhältnismäßig teuer ist, wurden andere Ansätze zum Schätzen von Fehlerraten untersucht.
- Ein Ansatz besteht darin, eine kleinere Anzahl an Monte-Carlo-Stichproben (10.000 bis 1 Million) zu ziehen, sie zu simulieren, ein Modell des Ausläufers der Verteilung zu konstruieren und dann den Ausläufer zu extrapolieren, um festzustellen, wo der Ausläufer die Zulässigkeitsgrenze überschreitet (Grenze des Erfüllens/Nicht-Erfüllens für ein bestimmtes Leistungskriterium). Leider ist dies sehr rechenintensiv und die Extrapolation kann ziemlich ungenau sein.
- Ein weiterer Ansatz besteht darin, ein analytisches Modell des ESDs zu konstruieren und entweder eine große Anzahl an Stichproben von diesem Modell zu ziehen oder die Fehlerrate durch analytische Integration des Modells abzuleiten. Leider kann dies ebenfalls sehr ungenau sein. Ferner erfordert dieser Ansatz zeitaufwändige, mühsame Handarbeit, die für jedes abweichende Schaltungsschema wiederholt und möglicherweise mit jedem neuen Herstellungsprozessknoten überprüft werden muss.
- Ein weiterer Satz an Ansätzen besteht darin, Klassifizierungs- oder Regressionsmodelle zu verwenden. Der Kerngedanke besteht darin, dass Modelle die Zulässigkeit einer Stichprobe sehr viel schneller bewerten können als eine Simulation. Ein derartiger Ansatz (A. Singhee et al., „Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems", US-Patentanmeldung 20090248387, angemeldet am 28. März 2008) zieht Monte-Carlo-Stichproben aus der Verteilung und verwendet statt Simulation eine Klassifizierung als zulässig/unzulässig, wenn Vertrauen in die Vorhersage der Zulässigkeit besteht. Ein weiterer Ansatz (J. Wang, S. Yaldiz, X. Li und L. Pileggi, „SRAM Parametric Failure Analysis", Proc. ACM/IEEE Design Automation Conference, Juni 2009) erstellt adaptiv ein stückweise lineares Modell; er beginnt mit einem linearen Regressionsmodell und wählt bei jedem Durchlauf einen zufälligen Punkt mit einer höheren Wahrscheinlichkeit mit bekanntem Modellfehler oder bekannter Modellunsicherheit, simuliert und fügt dem Modell eine weitere „Lage” hinzu. Ein weiterer Ansatz (C. Gu und J. Roychowdhury, „An efficient fully nonlinear, variability-aware non-Monte-Carlo yield estimation procedure with applications to SRAM cells and ring oscillators", Proc. 2008 Asia and South Pacific Design Automation Conference, 2008, S. 754–761) ähnelt dem vorherigen, verwendet statt des Regressionsmodells jedoch ein Klassifizierungsmodell. Das allgemeine Problem von modellbasierten Ansätzen besteht darin, dass man dem Modell vertrauen können sollte; wenn das Modell ungenau ist, werden auch die Ergebnisse ungenau sein. Diese Ansätze wurden jedoch nur an winzigen Problemen von nur 6–12 Variablen nachgewiesen; ein zuverlässiges Modell mit 50 oder 150 oder mehr Variablen zu finden, ist jedoch sehr viel schwieriger.
- Ein zusätzlicher Ansatz verwendet das Markov-Chain-Monte-Carlo-(MCMC)-Verfahren. Dieser Ansatz wurde vom berühmten Metropolis-Hastings-Algorithmus abgeleitet (N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. Teller, E. Teller, „Equations of State Calculations by Fast Computing Machines", Journal of Chemical Physics 21 (6), 1953, S. 1087–1092). Beim MCMC-Ansatz für statistische Stichprobenentnahme (Y. Kanoria, S. Mitra und A. Montanari, „Statistical Static Timing Analysis using Markov Chain Monte Carlo", Proc. Design Automation and Test Europe, März 2010) wird die Stichprobenverteilung adaptiv in Richtung der seltenen zulässigen Ereignisse geneigt und jede nachfolgende Stichprobe in der „Kette” an Stichproben wird basierend auf einem Grenzwert stochastisch verwendet oder abgelehnt. Leider ist es in der Praxis schwierig, zuverlässig eine stabile „gut gemischte” Kette an MCMC-Stichproben zu erreichen, insbesondere für Laien auf dem Gebiet MCMC (d. h. Tool-Nutzer).
- Ein weiterer Satz an Ansätzen verwendet Importance Sampling. Ein repräsentatives Beispiel ist: R. Joshi et al., „System and Computer Program for Efficient Cell Failure Rate Estimation in Cell Arrays", US-Patentanmeldung Nr. 2008/0195325, angemeldet am 16. April 2008. Beim Importance Sampling wird die Verteilung in Richtung seltener zulässiger Stichproben verschoben, wie bei MCMC. Im Gegensatz zu MCMC verwendet Importance Sampling jedoch jede Stichprobe. Beim Schätzen der Fehlerrate weist es jeder Stichprobe gemäß ihrer Dichte auf der Stichprobenverteilung verglichen mit ihrer Dichte auf der echten Verteilung eine Gewichtung zu. In den vielversprechendsten Importance Sampling-Ansätzen für Schaltungsanalyse werden „Mitten” berechnet und anschließend im Importance Sampling verwendet, wobei die Mitten die Mittel der Gauß-Verteilungen sind. Im Werk von R. Joshi et al. werden Mitten durch das Ziehen von Stichproben aus einer gleichförmigen Verteilung im Bereich von [–6, +6] Standardabweichungen für jeden Prozessparameter und das Beibehalten der ersten 30 unzulässigen Stichproben berechnet. Der Ansatz (M. Qazi, M. Tikekar, L. Dolecek, D. Shah und A. Chandrakasan, „Loop Flattening & Spherical Sampling: Highly Efficient Model Reduction Techniques for SRAM Yield Analysis", Proc. Design Automation and Test in Europe, März 2010) wählt Mitten durch ein sphärisches Stichprobenverfahren aus. Beide dieser Werke wurden an winzigen Problemen mit nur 6–12 Variablen nachgewiesen. Leider funktionieren sie nur schlecht mit größeren Anzahlen an Abmessungen (zufälligen Variablen), da die gewählten Mitten zu unwahrscheinlich sind; dadurch sind die Gewichtungen zu gering, um die Fehlerratenschätzung zu beeinflussen, wodurch die Schätzung viel zu optimistisch ausfällt, z. B. indem ein pf von 1e–200 berichtet wird, wenn es bei 1e–8 liegen sollte. In realen Schaltungsausbeuteschätzungsproblemen können 100 oder 1.000 oder mehr zufällige Variablen vorliegen; als solches kann Importance Sampling demnach nicht als angemessener Ansatz für das Schätzen von Fehlern angesehen werden. Ein weiterer Nachteil von Importance Sampling-Systemen ist der Mangel an Transparenz für den Entwickler, der ein derartiges Tool verwendet – es ist schwierig für den Entwickler, die Art der veränderten Verteilung zu beurteilen und ob die Verteilungsstichproben in angemessenem Maße entlang der Zulässigkeitsgrenze der höchsten Wahrscheinlichkeit liegen.
- Demnach sind Verbesserungen beim Schätzen der Fehlerraten in ESDs wünschenswert.
- KURZDARSTELLUNG
- Ein Ziel der vorliegenden Erfindung besteht darin, wenigstens einem der Nachteile bisheriger Tools und Verfahren zum Schätzen der Fehlerrate von ESDs, die eine geringe Fehlerwahrscheinlichkeit aufweisen, vorzubeugen oder diesen zu mindern.
- In einer Ausführungsform der vorliegenden Offenbarung wird ein Satz an N Monte-Carlo-Stichproben (Punkten) aus der zufälligen Verteilung, welche die Variation beschreibt, gezogen. Dann wird nach dem Zufallsprinzip eine Untermenge dieser Stichproben ausgewählt und diese Untermenge an Ninit Stichproben wird (mit einem Schaltungssimulator) simuliert, um einen Leistungswert für jede Stichprobe zu messen. Dann wird ein Regressionsmodell mit den Ninit Punkten als Trainingseingaben und den zugehörigen Ninit Leistungswerten als Trainingsausgaben konstruiert. Die ausgewählten Monte-Carlo-Stichproben stammen aus den N Monte-Carlo-Stichproben, die noch nicht simuliert wurden. Jeder Kandidat wird auf dem Regressionsmodell simuliert, um vorhergesagte Leistungswerte zu erhalten, und die Stichproben werden in aufsteigender (oder absteigender) Reihenfolge der vorhergesagten Leistungswerte geordnet. Dann wird in dieser Reihenfolge die Simulation der geordneten Kandidatenstichproben begonnen. Das bedeutet, dass die Kandidaten beginnend mit dem Kandidat mit der schlechtesten Ausgabe simuliert werden. Das Regressionsmodell und die Reihenfolge können periodisch aktualisiert werden, wie nachstehend ausführlicher beschrieben ist. Das Sampling und die Simulation werden beendet, sobald ausreichendes Vertrauen besteht, dass alle Fehler gefunden wurden.
- Alternativ werden N Monte-Carlo- oder Quasi-Monte-Carlo-Stichproben aus der zufälligen Verteilung, welche die Variation beschreibt, gezogen. Dann wird für jede Leistung (Ausgabe) ein Regressionsmodell, das Variationsparameter mit Leistung verknüpft, konstruiert, das Feedback von einem Simulator erhält, der Leistungswerte für eine jeweilige Stichprobe (einen Punkt) ausgibt. Die ausgewählten Monte-Carlo-Stichproben stammen aus den N Monte-Carlo-Stichproben, die noch nicht simuliert wurden. Für jedes Regressionsmodell (jede Ausgabe) wird jede ausgewählte Stichprobe auf dem Regressionsmodell simuliert, um vorhergesagte Leistungswerte zu erhalten, und die Stichproben werden in aufsteigender (oder absteigender) Reihenfolge der vorhergesagten Leistungswerte (für diese Ausgabe) geordnet. Diese Reihenfolgen werden verschachtelt zu einer einzelnen Reihenfolge zusammengefügt. Dann wird in dieser Reihenfolge mit der Simulation von ausgewählten Stichproben begonnen. Zusätzlich können automatisch Simulationen von nicht ausgewählten Punkten (Punkten, die nicht aus dem Satz an N Monte-Carlo-Stichproben stammen) oder weit hinten eingeordneten Kandidatenpunkten (Punkten im Satz, die jedoch in der Reihenfolge nicht weit vorne stehen) durchgeführt werden, zum Beispiel mit dem Ziel, die Qualität des Ordnungsmodells zu verbessern. Das Regressionsmodell und die Reihenfolge können periodisch aktualisiert werden. Das Sampling und die Simulation werden beendet, sobald ausreichendes Vertrauen besteht, dass alle Fehler gefunden wurden.
- Der Hauptvorteil der Erfindung im Vergleich mit dem Stand der Technik besteht darin, dass das Modell im Gegensatz zu den anderen Modellansätzen keine hohe Modellgenauigkeit erfordert, obwohl es das Modellverfahren verwendet, um (aus Effizienzgründen) Informationen über den Problemraum zu erhalten. Sie verwendet die Modelle lediglich, um die Stichproben zu ordnen, statt die Modelle zu verwenden, um eine Entscheidung darüber zu treffen, ob eine Stichprobe zulässig oder unzulässig ist. Letztere Verwendung von Modellen erfordert eine sehr viel bessere Modellgenauigkeit, die bei hochdimensionalen Problemen nur schwer zu erreichen ist.
- In einem Aspekt der vorliegenden Offenbarung ist ein nicht flüchtiges, greifbares, computerlesbares Medium bereitgestellt, auf dem Anweisungen für die Ausführung durch einen Computer gespeichert sind, ein Verfahren zur Identifizierung von seltenen Fehlern eines elektrischen Schaltungsdesigns (ESD) durchzuführen, wobei dem ESD Prozessvariablen und Leistungskriterien zugeordnet sind, wobei die Leistungskriterien von den Prozessvariablen abhängig sind und die Prozessvariablen eine Wahrscheinlichkeitsverteilung aufweisen. Das Verfahren umfasst Folgendes: Erzeugen eines Satzes an Punkten (die als Prozesspunkte bezeichnet werden können) aus der Wahrscheinlichkeitsverteilung der Prozessvariablen; Auswählen einer Untermenge an Punkten aus dem Satz an Punkten; Simulieren des ESDs für jeden Punkt der Untermenge an Punkten, um Simulationsdaten zu erhalten; gemäß den Simulationsdaten, Berechnen eines Wertes eines Leistungskriteriums für jeden Punkt der Untermenge an Punkten, um einen Satz an Leistungskriteriumwerten zu erhalten, wobei dem Leistungskriterium ein Zielwert zugeordnet ist; gemäß dem Satz an Leistungskriteriumwerten und den Werten der Prozessvariablen für jeden Punkt der Untermenge an Punkten, Erstellen eines Modells des Leistungskriteriums als eine Funktion der Prozessvariablen; gemäß dem Modell, Ordnen der verbleibenden Punkte des Satzes an Punkten, um geordnete verbleibende Punkte zu erhalten, wobei den geordneten verbleibenden Punkten eine Reihenfolge zugeordnet ist; und Anzeigen eines Zählers einer Anzahl an ESD-Fehlern, um einen angezeigten Zähler an ESD-Fehlern zu erhalten, durch iteratives Wiederholen der folgenden Handlungen a–d gemäß der Reihenfolge der geordneten verbleibenden Punkte bis eine Stopp-Bedingung erfüllt wird: (a) Simulieren eines geordneten verbleibenden Punktes, um Simulationsdaten des geordneten verbleibenden Punktes zu erhalten; (b) Berechnen, gemäß der Simulationsdaten des geordneten verbleibenden Punktes, eines Wertes des Leistungskriteriums des geordneten verbleibenden Punktes; (c) Vergleichen des Wertes des Leistungskriteriums des geordneten verbleibenden Punktes mit dem Zielwert; und (d), falls der Wert des Leistungskriteriums des geordneten verbleibenden Punktes nicht dem Zielwert entspricht, Erhöhen des angezeigten Zählers an ESD-Fehlern.
- In einem anderen Aspekt der vorliegenden Offenbarung ist ein nicht flüchtiges, greifbares, computerlesbares Medium bereitgestellt, auf dem Anweisungen für die Ausführung durch einen Computer gespeichert sind, ein Verfahren zur Identifizierung von seltenen Ereignissen eines elektrischen Schaltungsdesigns (ESD) durchzuführen, wobei dem ESD Prozessvariablen und Leistungskriterien zugeordnet sind, wobei die Leistungskriterien von den Prozessvariablen abhängig sind und die Prozessvariablen eine Wahrscheinlichkeitsverteilung aufweisen. Das Verfahren umfasst Folgendes: Erzeugen eines Satzes an Punkten aus der Wahrscheinlichkeitsverteilung der Prozessvariablen; Auswählen einer Untermenge an Punkten aus dem Satz an Punkten; Simulieren des ESDs für jeden Punkt der Untermenge an Punkten, um Simulationsdaten zu erhalten; gemäß den Simulationsdaten, Berechnen eines Wertes eines Leistungskriteriums für jeden Punkt der Untermenge an Punkten, um einen Satz an Leistungskriteriumwerten zu erhalten; gemäß dem Satz an Leistungskriteriumwerten und den Werten der Prozessvariablen für jeden Punkt der Untermenge an Punkten, Erstellen eines Modells des Leistungskriteriums als eine Funktion der Prozessvariablen; gemäß dem Modell, Ordnen der verbleibenden Punkte des Satzes an Punkten, um geordnete verbleibende Punkte zu erhalten, wobei den geordneten verbleibenden Punkten eine Reihenfolge zugeordnet ist; und Anzeigen eines Schaubildes einer Verteilung der Werte des Leistungskriteriums, um ein angezeigtes Schaubild zu erhalten, durch iteratives Wiederholen der folgenden Handlungen a–c, gemäß der Reihenfolge der geordneten verbleibenden Punkte bis eine Stopp-Bedingung erfüllt wird: (a) Simulieren eines geordneten verbleibenden Punktes, um Simulationsdaten des geordneten verbleibenden Punktes zu erhalten; (b) Berechnen eines Wertes des Leistungskriteriums des geordneten verbleibenden Punktes gemäß den Simulationsdaten des geordneten verbleibenden Punktes; und (c) Eingliedern des Wertes des Leistungskriteriums des geordneten verbleibenden Punktes in das Schaubild der Verteilung der Werte des Leistungskriteriums.
- In einem weiteren anderen Aspekt der vorliegenden Offenbarung ist ein nicht flüchtiges, greifbares, computerlesbares Medium bereitgestellt, auf dem Anweisungen für die Ausführung durch einen Computer gespeichert sind, ein Verfahren zur Identifizierung von seltenen Fehlern eines elektrischen Schaltungsdesigns (ESD) durchzuführen, wobei dem ESD Prozessvariablen und Leistungskriterien zugeordnet sind, wobei die Leistungskriterien von den Prozessvariablen abhängig sind und die Prozessvariablen eine Wahrscheinlichkeitsverteilung aufweisen. Das Verfahren umfasst Folgendes: Erzeugen eines Satzes an Punkten aus der Wahrscheinlichkeitsverteilung der Prozessvariablen; Auswählen einer Untermenge an Punkten aus dem Satz an Punkten; Simulieren des ESDs für jeden Punkt der Untermenge an Punkten, um Simulationsdaten zu erhalten; gemäß den Simulationsdaten, für ein Leistungskriterium oder mehrere Leistungskriterien des ESDs, Berechnen eines Wertes des einen Leistungskriteriums oder der mehreren Leistungskriterien für jeden Punkt der Untermenge an Punkten, um einen Satz oder mehrere Sätze an Leistungskriteriumwerten zu erhalten; gemäß dem einen Satz oder den mehreren Sätzen an Leistungskriteriumwerten und den Werten der Prozessvariablen für jeden Punkt der Untermenge an Punkten, Erstellen eines Modells für jedes des einen Leistungskriteriums oder der mehreren Leistungskriterien als eine Funktion der Prozessvariablen; für jeden vorbestimmten Bereich von Interesse an Ausgabewerten jedes des einen Leistungskriteriums oder der mehreren Leistungskriterien, gemäß dem Modell jedes des einen Leistungskriteriums oder der mehreren Leistungskriterien, Ordnen der verbleibenden Punkte des Satzes an Punkten, um Sätze an geordneten verbleibenden Punkten zu erhalten, wobei eine Anzahl an Sätzen an geordneten verbleibenden Punkten einer Anzahl an vorhergesagten Bereichen von Interesse entspricht, wobei jedem vorhergesagten Bereich von Interesse an Ausgabewerten ein Zielwert zugeordnet ist; Verschachteln der Sätze an geordneten verbleibenden Punkten, um einen geordneten verschachtelten Satz an Punkten zu erhalten, wobei der geordnete verschachtelte Satz an Punkten eine Reihenfolge aufweist; Anzeigen eines Zählers einer Anzahl an ESD-Fehlern, um einen angezeigten Zähler an ESD-Fehlern zu erhalten, durch iteratives Wiederholen der folgenden Handlungen a–d für jeden der vorbestimmten Bereiche von Interesse an Ausgabewerten gemäß der Reihenfolge des geordneten verschachtelten Satzes an Punkten bis eine Stopp-Bedingung erfüllt wird: (a) Simulieren eines Punktes des geordneten verschachtelten Satzes an Punkten; (b) Berechnen eines Wertes des Leistungskriteriums des Punktes des geordneten verschachtelten Satzes an Punkten; (c) Vergleichen des Wertes des Leistungskriteriums des Punktes des geordneten verschachtelten Satzes an Punkten mit dem zugehörigen Zielwert; und (d), falls der Wert des Leistungskriteriums des Punktes des geordneten verschachtelten Satzes an Punkten nicht dem zugehörigen Zielwert entspricht, Erhöhen des angezeigten Zählers an ESD-Fehlern.
- Andere Aspekte und Merkmale der vorliegenden Erfindung werden für Fachleute beim Betrachten der nachfolgenden Beschreibung spezifischer Ausführungsformen der Erfindung in Verbindung mit den zugehörigen Abbildungen ersichtlich.
- KURZBESCHREIBUNG DER ZEICHNUNGEN
- An dieser Stelle werden ausschließlich als Beispiel und mit Bezugnahme auf die beigefügten Abbildungen Ausführungsformen der vorliegenden Offenbarung beschrieben. Es zeigen:
-
1 ein Verfahren im Stand der Technik zum Schätzen der Fehlerrate; -
2 ein Blockdiagramm, das eine Ausführungsform der vorliegenden Offenbarung darstellt. -
3 eine Verteilung eines Bitzellenstroms für eine Bitzellenschaltung. -
4 ein Bitzellenschaltbild. -
5 ein Leseverstärkerschaltbild. -
6 ein Schaubild der Ausgabestromwerte für das Bitzellenschaltbild aus4 . -
7 ein Schaubild der Anzahl an Fehlern, die als eine Funktion der Stichprobenanzahl für die Bitzellenschaltung aus4 gefunden wurden. -
8 ein Schaubild der Leseverstärkerausgabestromwerte für die Leseverstärkerschaltung aus5 . -
9 ein Schaubild der Anzahl an Fehlern, die als eine Funktion der Stichprobenanzahl für die Leseverstärkerschaltung aus5 gefunden wurden. -
10 ein Schaubild der Verzögerung für die Leseverstärkerschaltung aus5 . -
11 ein Schaubild der Anzahl an Fehlern, die als eine Funktion der Stichprobenanzahl für die Leseverstärkerschaltung aus5 gefunden wurden. -
12 ein Schaubild von Spannungshochwerten als eine Funktion einer Stichprobenanzahl für eine Flipflop-Schaltung. -
13 ein Schaubild der Anzahl an Fehlern, die als eine Funktion der Stichprobenanzahl für die Flipflop-Schaltung in Verbindung mit12 gefunden wurden. -
14 ein Schaubild von Id-Stromwerten als eine Funktion der Stichprobenanzahl der Flipflop-Schaltung. -
15 ein Schaubild der Anzahl an Fehlern, die als eine Funktion der Stichprobenanzahl für die Flipflop-Schaltung in Verbindung mit14 gefunden wurden. -
16 ein Blockdiagramm, das eine andere Ausführungsform der vorliegenden Offenbarung darstellt. -
17A –17C allgemeine Schaubilder von Zielwerten als eine Funktion der Stichprobenanzahl. -
18 ein nicht flüchtiges, greifbares, computerlesbares Medium, auf dem Anweisungen zur Ausführung durch einen Computer gespeichert sind, ein Verfahren der vorliegenden Offenbarung auszuführen. - AUSFÜHRLICHE BESCHREIBUNG
- Allgemein stellt die vorliegende Erfindung ein Verfahren und System zum Identifizieren von Fehlern und Fehlerraten in ESDs bereit, die zufälliger Variation unterliegen (d. h. die Designvariablen aufweisen, die zufälligen Variationen unterliegen, die auch als Prozessvariationen bezeichnet werden können).
- Die vorliegende Erfindung stellt ein System und Verfahren für das effiziente Schätzen von Fehlerraten für ESDs, die eine niedrige Fehlerrate aufweisen, bereit.
2 zeigt ein beispielhaftes Blockdiagramm eines Verfahrens/Systems der vorliegenden Erfindung. - In
2 ist Schritt202 der Beginn. Eine Eingabe in die vorliegende Erfindung ist eine Repräsentation eines Designs (des Satzes an Geräten, wie sie verbunden sind und die Abmessungen des Gerätes, wie Breite, Länge und Widerstand) und eine Wahrscheinlichkeitsverteilung, welche die Variationen, die die Leistung der Schaltung beeinflussen können, beschreibt. Die Kombination an Design und einer bestimmten Variationsstichprobe (einem Punkt, der aus der Variationsverteilung gezogen wurde) kann durch einen SPICE-ähnlichen Schaltungssimulator simuliert werden. Wenn eine Kombination von Design und Variationsstichprobe simuliert wird, kann ein Vektor an Leistungswerten (Leistungskriteriumwerten) erhalten werden. Nachstehend ist das Bestimmen der Fehlerrate basierend auf nur einem Leistungskriterium beschrieben. Der allgemeine Fall, in dem mehrere Leistungskriterien im Spiel sind, ist nachstehend ausführlicher beschrieben. - In Schritt
204 wird ein Satz an N Monte-Carlo-Stichproben (Punkten) aus der zufälligen Verteilung, welche die Variation des ESDs beschreibt, gezogen. Üblicherweise ist jedem Gerät des ESDs eine Variation zugeordnet und diese Variation kann durch eine Wahrscheinlichkeitsverteilung der Prozessvariablen des Gerätes beschrieben werden (da sie einer Verteilung folgen, sind die Prozessvariablen zufällige Variablen). Der Satz an allen Wahrscheinlichkeitsverteilungen (eine Verteilung pro Gerät) kann die Gesamtwahrscheinlichkeitsverteilung für das ESD definieren. - Prozessvariablen sind zufällig und betreffen die an der Herstellung des ESDs beteiligten Prozessschritte. Derartige Variablen können zum Beispiel Gate-Oxiddicke, Substratdotierungskonzentration, Flächenwiderstand, Mobilität und Schwankungen der Gerätelänge und -breite beinhalten, die letztendlich die elektrischen Eigenschaften und Leistungskriterien des ESDs beeinflussen können.
- Nachfolgend wird in Schritt
206 eine Untermenge an Ninit Stichproben von den N Stichproben per Zufallsprinzip ausgewählt und das ESD wird mit dieser Untermenge an Ninit Stichproben (mit einem Schaltungssimulator) simuliert, um für jede Stichprobe einen Wert eines beliebigen Leistungskriteriums (desselben Leistungskriteriums) zu erhalten208 . Dann wird unter Verwendung der Ninit Punkte als Trainingseingaben und der zugehörigen Ninit Leistungswerte als Trainingsausgaben in210 ein Regressionsmodell für dieses Leistungskriterium konstruiert. - Der Umfang der vorliegenden Offenbarung umfasst jede beliebige Art von Regressionsmodell. Zum Beispiel könnten Regressionsmodelle lineare Modelle, polynomiale Modelle, Spline-Modelle, Gauß-Prozessmodelle, neuronale Netzwerke, MARS-Modelle (J. H. Friedman, Multivariate Adaptive Regression Splines, Annals of Statistics, Ausgabe 19, Nr. 1, 1991), FFX-(Fast Function Extraction)-Modelle (T. McConaghy, High-dimensional statistical modeling and analysis of custom integrated circuits, Proc. Custom Integrated Circuits Conference, Sept. 2011) oder Kombinationen daraus beinhalten, die alle in den Umfang der vorliegenden Offenbarung fallen. Als Beispiel kann die Bandbreite (BB) eines Komparators eine polynomiale Funktion von Prozessvariablen ,x' sein, gemäß: BB = 1,71e7 – 4,57e5·xcml,ml,lint·xcm1,m2,lint + 5,23e4·x2 cm1,m2,lint + 4,80e4·x2 cm1,m2,lint: wobei zum Beispiel xcm1,m1,lint eine Variation der Länge des Transistors M1 auf dem aktuellen Spiegel CM1 ist.
- In
212 werden ausgewählte Monte-Carlo-Stichproben, die noch nicht simuliert wurden, auf dem Regressionsmodell simuliert, um vorhergesagte Leistungswerte zu erhalten, und die Kandidatenstichproben werden, ebenfalls in212 , in aufsteigender (oder absteigender) Reihenfolge der vorhergesagten Leistungswerte geordnet. Falls es wünschenswert ist, die Ausgabe, d. h. das Leistungskriterium, was zum Beispiel eine Ausbeute sein könnte, zu maximieren, dann sind die Werte für den ungünstigsten Fall minimale Werte und die Stichproben sind in aufsteigender Reihenfolge geordnet. Wenn es hingegen wünschenswert ist, das Leistungskriterium (z. B. Stromverbrauch) zu minimieren, dann werden die Stichproben in einer absteigenden Reihenfolge geordnet. In einem anderen Beispiel kann es wünschenswert sein, für eine Bitzelle einen Bitzellenstrom unter einem vorbestimmten Wert zu haben. In einem derartigen Fall werden die Stichproben (geordnete Stichproben) absteigend nach dem Wert ihres vorhergesagten Bitzellenstroms geordnet.3 bezieht sich auf ein derartiges Beispiel für den Strom in einer Bitzelle und zeigt eine Wahrscheinlichkeitsverteilungsfunktion an Monte-Carlo-Stichproben als eine Funktion vorhergesagten Bitzellenstroms – basierend auf dem Regressionsmodell. In diesem Beispiel hat die Bitzellenstromvorgabe einen maximalen zulässigen Wert. Dementsprechend werden die Stichproben von hohem vorhergesagtem Strom zu niedrigem vorhergesagtem Strom geordnet. Die ersten 9 geordneten Stichproben werden mit 1–9 gekennzeichnet. - In Schritt
214 aus2 beginnt die Simulation der geordneten Kandidaten in der festgelegten Reihenfolge. Die Stichproben können in Chargen mit einer Größe von jeweils Norder simuliert werden. Wenn die Simulationsergebnisse ausgegeben werden, können die Ergebnisse an eine Benutzeranzeige ausgegeben werden220 , zum Beispiel in Form von simulierten Ausgabewerten, welche Simulationen die Vorgaben nicht erfüllt haben, Anzahl an erfassten Fehlern, eine geschätzte Fehlerrate, bei der angenommen wird, dass alle Fehler gefunden wurden, und mehr. Die Fehlerrate wird auf (Anzahl der Fehler)/(Gesamtanzahl der Stichproben N) geschätzt. Falls in216 bestimmt wird, dass alle Fehler gefunden wurden, endet das System in218 . Das Bestimmen, ob alle Fehler gefunden wurden, kann automatisch durchgeführt werden oder indem der Benutzer Feedback von der Anzeige erhält. Wenn das System nicht stoppt, kann der Arbeitsvorgang wieder zu210 zurückspringen. Das Regressionsmodell kann mit den zusätzlichen Daten, die gerade aus der Simulation erhalten wurden, neu trainiert werden und die verbleibenden Kandidatenstichproben können in212 neu geordnet und dann in214 simuliert werden. Der Kreis kann weiterlaufen bis alle Fehler gefunden wurden. Sobald alle Fehler gefunden wurden, kann das System in218 stoppen. - Nachstehend ist die Anwendung der vorliegenden Offenbarung in fünf verschiedenen Problemen mit hoher Ausbeute (niedriger pf) veranschaulicht: drei ESDs, eins mit einer einzelnen Ausgabe und zwei, die jeweils zwei Ausgaben aufweisen. Die ESDs sind eine Bitzelle und ein Leseverstärker, bei denen es sich um repräsentative Speicherschaltungen handelt, und ein Flipflop, bei dem es sich um eine repräsentative, digitale Standardzelle handelt. Die Schaltungen weisen annehmbare Gerätegrößen auf; zum Beispiel erfüllen sie die Vorgaben nominal und haben eine gute Chance, eine Ausbeute nahe der Zielausbeute aufzuweisen. Die verwendeten Gerätemodelle stammen aus einem modernen, industriellen 45 nm-Prozess, der schätzungsweise 5–10 lokale Prozessvariablen pro Gerät aufweist. Die Bitzelle hat 30 Prozessvariablen, der Leseverstärker hat 125 Prozessvariablen und der Flipflop hat 180 Prozessvariablen.
4 zeigt ein Schaltbild der beispielhaften Bitzelle.5 zeigt ein Schaltbild des beispielhaften Leseverstärkers. - Die experimentelle Methodik ist wie folgt. Für jedes Problem werden N Monte-Carlo-Stichproben (zufällige Stichproben) aus der Wahrscheinlichkeitsverteilung (den Prozessvariablen) des jeweiligen ESDs gezogen und das ESD wird mit einem Schaltungssimulator für all diese zufälligen Stichproben simuliert. Diese Simulationen bilden die „goldenen” Ergebnissen gegen die das Verfahren der vorliegenden Erfindung getestet/verglichen wird. In diesen Testfällen kann die Ausgabevorgabe so eingerichtet sein, dass x der N Stichproben die Vorgabe nicht erfüllen (x kann z. B. gleich 100 sein). Diese Ausgabevorgaben sind für die Bitzelle der Bitzellenstrom, für den Leseverstärker der Leseverstärkerstrom und die Leseverstärkerverzögerung und für den Flipflop die Spannungsausgabe und die Stromausgabe.
- Das beispielhafte, in
2 gezeigte Verfahren wurde mit der Anzahl an gezogenen (oder erzeugten) Monte-Carlo-Stichproben Ngen = N anhand desselben oben für die Erzeugung der MC-Stichproben in den „goldenen” Ergebnissen verwendeten Random Seeds verwendet. Das Verfahren aus2 hat 20.000 Simulationen mit Vorgaben durchgeführt, bei denen 100 der Ngen Stichproben die Vorgabe nicht erfüllen. N = 1,5 Millionen für die Bitzelle, 1 Million für den Leseverstärker und 1 Million für den Flipflop. -
6 zeigt berechneten Bitzellenstrom als eine Funktion der Stichprobenanzahl für 20.000 Monte-Carlo-Stichproben. Die Berechnungen werden durch Simulieren der Bitzelle mit einem Schaltungssimulator, um Simulationsdaten zu erhalten, und durch Berechnen des Bitzellenstroms gemäß den Simulationsdaten durchgeführt. Die untere Kurve500 steht für ungeordnete Monte-Carlo-Stichproben; die obere Kurve502 steht für die Monte-Carlo-Stichproben, die gemäß dem Regressionsmodell des Bitzellenstroms geordnet sind. Die Kurve504 ist die „ideale” Kurve, wenn sich das vorliegende Verfahren perfekt verhalten würde; demnach ist diese „ideale” Kurve nützlich, um sie mit dem vorliegenden Verfahren zu vergleichen. Die „ideale” Kurve504 zeigt für die MC-Stichproben, die als eine Funktion des absteigenden Bitzellenstroms geordnet wurden, erhaltenen Strom: das bedeutet, der Bitzellenstrom wird für jede der 1,5 Millionen Stichproben erfasst und die MC-Stichproben werden als eine Funktion des absteigenden Bitzellenstroms geordnet. Das Regressionsmodell wird nicht verwendet, um die Kurve504 zu erhalten. Auf der Kurve504 sind nur 20.000 der MC-Stichproben dargestellt. Gemäß der Definition nimmt die ideale Sortierreihenfolge monoton ab, was der Kurve504 entspricht. Die Monte-Carlo-Stichprobenkurve500 verhält sich zufällig. Da die Monte-Carlo-Stichproben (Punkte) nicht verzerrt sind, sind Ausgabewerte über den gesamten Bereich verteilt und demnach ist die Simulation an MC-Stichproben allein sehr langsam darin, die Werte für den ungünstigsten Fall zu finden. - Die Kurve
502 weist einen allgemeinen nach unten gerichteten Trend auf, der beim Wert des ungünstigsten Falls beginnt, mit einigem Rauschen. Der Trend zeigt, dass die Kurve502 das allgemeine Verhältnis von den Prozessvariablen zum Ausgabewert übernommen hat. Das Rauschen zeigt an, dass das Regressionsmodell einige Fehler aufweist, was zu erwarten ist. Je geringer der Modellfehler, desto geringer das Rauschen und desto schneller findet das vorliegende, in2 gezeigte Verfahren Fehler. Wie in506 gezeigt, springen die unteren Werte der Kurve502 bei ungefähr 2.000 Stichproben nach oben. Dies liegt daran, dass das Modell, das verwendet wird, um den Bitzellenstrom zu schätzen, an diesem Punkt neu erstellt wurde, wodurch die Ordnung von diesem Punkt an genauer ist. Das Modell wurde anhand von Simulationsergebnissen der (mit einem Schaltungssimulator) simulierten MC-Stichproben neu erstellt: anhand der zu Beginn für die Erstellung des ursprünglichen Regressionsmodell simulierten und derjenigen, die danach simuliert wurden, um die Bitzellenstromdaten bis zu der Stichprobenzahl ~2.000 zu erhalten. In einigen wenigen Fällen, wie bei ungefähr 10.500 Stichproben, wie unter508 angegeben, sagt das in2 gezeigte Verfahren voraus, dass einige Punkte extreme Maximalwerte aufweisen werden, bei der Simulation hatten sie jedoch extreme Minimalwerte – dies kann annehmbar sein, da der Erfolg des vorliegenden Verfahrens nicht davon abhängt, dass jede Stichprobe innerhalb einer Fehlertoleranz vorhergesagt wird. Stattdessen basiert der Erfolg darauf, wie schnell das Verfahren die ungünstigsten Fälle findet. - Die Kurve
502 aus6 stellt einen Einblick in das Verhalten des vorliegenden Verfahrens bereit und ermöglicht es, zu verstehen, wie gut das Verfahren Fehler findet. Die Breite des Rauschbereichs zeigt, wie groß der Spielraum sein sollte, der gegeben werden muss, bevor gefolgert wird, dass alle Fehler für einen jeweiligen Vorgabewert (Leistungskriteriumwert) gefunden wurden. Der deutliche Trend zeigt, dass das Verfahren richtig funktioniert und allgemein den Ausläufer der Verteilung skizziert, im vorliegenden Fall die Verteilung des Bitzellenstroms. - Die Effizienz des Verfahrens beim Finden von Fehlern hängt von der Zielvorgabe (Zielleistungskriteriumwert) ab. Eine richtige Einrichtung (ESD-Problemeinrichtung) kann üblicherweise weniger als 100 Fehler beinhalten, um die Vorgabe in der Anzahl der erzeugten Stichproben zu erfüllen. Wenn es mehr Fehler gibt, erfüllt das ESD entweder nicht seine Zielausbeute oder es wurden zu viele Stichproben für die Zielausbeute erzeugt. Wenn es keine Fehler gibt, die die Zielvorgabe erfüllen, dann ist der Spielraum des Designs gleichermaßen entweder zu hoch oder es wurden nicht genug Stichproben erzeugt, um die Zielausbeute zu bestätigen. Demnach muss das vorliegende, beispielhafte Verfahren lediglich in der Lage sein, bis zu hundert Fehler zu finden, um die Vorgabe zu erfüllen, was eine Toleranz für einen erheblichen Ordnungsfehler einräumt und dennoch innerhalb annehmbarer Simulationsbudgets arbeitet. Im Bitzellen-Beispiel, wie in
7 dargestellt, findet das vorliegende Verfahren die ersten 100 Fehler innerhalb der ersten 5.000 vorhergesagten Stichproben. Es gilt zu beachten, dass MC-Simulationen bei 1,5 Millionen Monte-Carlo-Stichproben, die 100 Fehler beinhalten, üblicherweise keinen einzigen Fehler in 5.000 Stichproben finden. - Das Bitzellen-Beispiel demonstriert eine der wichtigsten Stärken des vorliegenden Verfahrens, die in seiner Stabilität gegenüber Ordnungsvorhersagungsfehlern liegt. Das Ordnungsmodell muss nicht perfekt sein, um innerhalb einer annehmbaren Anzahl an Simulationen genaue Monte-Carlo- und SPICE-(Schaltungssimulator)-Ergebnisse in den extremen Ausläufern einer Verteilung mit hoher Ausbeute zu liefern.
-
8 zeigt Kurven von berechneter Leseverstärkerstromausgabe als eine Funktion der Stichprobenanzahl für 20.000 Monte-Carlo-Stichproben. Die Berechnungen werden durch die Simulation des Leseverstärkers mit einem Schaltungssimulator, um Simulationsdaten zu erhalten, und durch Berechnen des Leseverstärkerstroms gemäß den Simulationsdaten durchgeführt. Die untere Kurve520 steht für nicht geordnete Monte-Carlo-Stichproben; die obere Kurve522 steht für die Monte-Carlo-Stichproben, die nach dem Regressionsmodell für den Leseverstärkerausgabestrom geordnet wurden. Die „ideale” Kurve, Kurve524 , zeigt den Leseverstärkerausgabestrom, der für die 1 Million Monte-Carlo-Stichproben, die ordnungsgemäß als eine Funktion des absteigenden Leseverstärkerausgabestroms geordnet wurden, erhalten wurden. Nur die ersten 20.000 Stichproben werden in der Kurve524 dargestellt.9 zeigt einen Graph der Anzahl an Fehlern, die als eine Funktion der Anzahl an simulierten MC-Stichproben gefunden wurden. Das allgemeine Verhalten von8 und9 (in Bezug auf den Leseverstärker) ist ähnlich wie das in6 und7 (in Bezug auf die Bitzelle); im Fall des Leseverstärkers wurden jedoch alle 100 Fehler in den ersten 1.000 Stichproben gefunden (siehe9 ). Die Auswirkung des Ordnungsmodells wird in8 deutlich, da die Menge des in der Kurve522 gezeigten Rauschens im Verhältnis zum Rauschen der Kurve520 eindeutig geringer ist. Als solches zeigt das Beispiel des Leseverstärkerstroms, wie das beispielhafte Verfahren aus2 mit einem besseren Ordnungsmodell an Effizienz zunimmt. Dies zeigt jedoch lediglich, dass das Leseverstärkerordnungsmodell einen geringeren Fehler hatte als das Bitzellen-Ordnungsmodell. Die Tatsache, dass das vorliegende Verfahren trotz eines höheren Fehlers alle Fehler für die Bitzelle gefunden hat, unterstreicht die Stabilität des vorliegenden Verfahrens gegenüber höheren Modellfehlern. -
10 und11 zeigen, wie das Verfahren aus2 auf die Verzögerungsausgabe des Leseverstärkers angewendet werden kann. Diese Ausgabe hat eine bimodale Verteilung, wobei die meisten Stichprobenwerte bei ungefähr 0,1e–9 s (0,1 ns) liegen und Fehlerfälle einen Wert von ungefähr 1,5e–9s aufweisen. Wir legen die Vorgabe dazwischen fest. Von den 1 Million MC-Stichproben sind 61 Fehlerstichproben (statt 100 wie im vorherigen Beispiel).10 zeigt, dass das vorliegende Verfahren alle Fehler in den ersten 9.000 Stichproben findet. Das Verfahren findet Fehler mit der höchsten Frequenz in den ersten Stichproben und danach mit abnehmender Frequenz. Wir können visuell auf dem Ausgabe- vs. Stichproben-Schaubild in10 sehen, dass das Ordnungsmodell gut ist, da die Frequenz der Fehler in der Kurve600 zunächst hoch ist und dann abfällt. Wir können außerdem erkennen, dass mit hoher Wahrscheinlichkeit alle Fehler gefunden wurden, da über einen größeren Bereich an Stichproben (d. h. von Stichprobe #9.000 bis #15.000) keine neuen Fehler gefunden werden. Die ideale Kurve602 und die zufällig ausgewählte Kurve604 sind ebenfalls dargestellt.11 zeigt auch dieses Verhalten; hier sehen wir, dass HSMC alle 61 Fehler in 9.000 Stichproben findet und dass es die meisten Fehler in den ersten 1.000 Stichproben findet. -
12 und13 zeigen das Verhalten von HSMC für die Spannungshochausgabe des Flipflops. Wir sehen, dass die Kurve610 basierend auf dem vorliegenden Verfahren fast perfekte Ergebnisse bei der Ausgabe- vs. Stichprobenkonvergenz liefert und dass das vorliegende Verfahren 100/100 Fehler in weniger als 500 Stichproben findet. Die ideale Kurve ist unter612 dargestellt, die ungeordnete MC-Kurve ist unter614 dargestellt. - Es gilt erneut zu beachten, wie merklich gering die Menge des Rauschens in Kurve
610 im Verhältnis zum Stichprobenbereich (Kurve614 ) ist. Erneut gilt zu beachten, dass die Menge des Rauschens ein gutes Anzeichen für die Effizienz des Stichprobenordnungsmodells ist. -
14 und15 zeigen eine Anwendung des vorliegenden Verfahrens auf das Verhalten der Id-Spannungsausgabe des Flipflops.14 zeigt, dass, wenngleich die Kurve620 , die durch das beispielhafte Verfahren aus2 erhalten wurde, in Richtung des extremen Maximalwertes geneigt ist, sie ein hohes Maß an Rauschen aufweist. Das bedeutet, dass das zugrundeliegende Modell den globalen Trend übernimmt, jedoch beim Festhalten lokaler Trends eine erhebliche Fehlerquote aufweist. Trotz dieses erheblichen Fehlers findet es immer noch mit annehmbarer Effizienz Fehler. In14 sind außerdem die ideale Kurve622 und die Kurve624 , die sich auf die zufällig ausgewählten Stichproben bezieht, gezeigt.15 zeigt, dass das vorliegende Verfahren nach 20.000 Simulationen26 von 100 Fehlern gefunden hat. - Die in
14 und15 gezeigten Ergebnisse verdeutlichen, wie sich das vorliegende Verfahren während der Betriebszeit selbst verifiziert und wie das Verfahren sogar mit einem schlechten Ordnungsmodell nützliche Ergebnisse liefern kann. In derartigen Fällen könnte der Benutzer/Entwickler deutlich erkennen, dass das Verfahren in 20.000 Simulationen keine zuverlässigen Ergebnisse liefert. In Anbetracht dieser Tatsache könnte der Entwickler sich dafür entscheiden, entweder zusätzliche Simulationen durchzuführen, um mehr Sicherheit zu erhalten, die Verifizierung mit einer anderen Technik, wie Monte-Carlo mit 1 Million Stichproben und nachfolgender Extrapolation oder Importance Sampling zu ergänzen; oder einen zusätzlichen Grenzwert einzuplanen, um die Unsicherheit einzubeziehen. Der Entwickler kann außerdem High-Sigma-Eckpunkte (Prozesspunkte, die Fehler verursachen) verwenden, die hier entdeckt wurden, um einem nachfolgenden Durchlauf vorzubeugen. Genauer gesagt, einige der Prozesspunkte, die Fehler verursachen, könnten als „Eckpunkte” in einem Arbeitsablauf verwendet werden, bei dem der Entwickler iterativ die Gerätegrößen ändert und Feedback durch Simulation der „Eckpunkte” in einem Schaltungssimulator simuliert; der Entwickler würde aufhören, sobald er mit der Leistung an den Eckpunkten zufrieden ist; zu diesem Zeitpunkt könnte der Entwickler das vorliegende Verfahren erneut durchlaufen lassen, um die Fehlerrate des neuen Designs zu finden. - Um es zu wiederholen: ein Hauptvorteil des vorliegenden Verfahrens besteht darin, dass es aufgrund der Fähigkeit, die Qualität seiner Ausgabe im Vergleich zu der Stichprobenkonvergenzkurve zu bewerten, nicht irreführend ist.
-
16 ist ein Blockdiagramm, das eine alternative Verfahrens-/Systemausführungsform der vorliegenden Erfindung darstellt. Im Vergleich zu2 lässt es eine größere Variation an Implementierungswahlmöglichkeiten zu. Beide Ausführungsformen haben jedoch eine Gemeinsamkeit: ein Satz an zufällig gezogenen Stichproben wird mit Augenmerk auf Fehlerfälle geordnet und dann in dieser Reihenfolge simuliert bis alle Fehler gefunden wurden. - Die nächsten Absätze beschreiben den Arbeitsablauf aus
16 . Schritt302 ist der Startpunkt. Das System hat dieselben Eingaben, wie sie in der vorhergehenden Ausführungsform aus2 beschrieben wurden. In Schritt304 wird dann ein Satz an N Stichproben (Punkten) aus der zufälligen Verteilung gezogen, die die Prozessvariation des ESDs beschreiben. Diese können unter Verwendung von Monte-Carlo-Sampling (auch als pseudo-zufälliges Sampling bekannt) oder unter Verwendung von Quasi-Monte-Carlo-(QMC)-Sampling, was Monte-Carlo-Sampling insofern ähnelt, dass es unvoreingenommene Stichproben aus der Wahrscheinlichkeitsverteilung zieht, gezogen werden. QMC unterscheidet sich dadurch, dass es darauf abzielt, Stichproben zu erzeugen, die eine „bessere Verteilung” (geringere Diskrepanz) in dem zufälligen variablen Raum haben, was sich in einer geringeren Varianz in statistischen Schätzungen für dieselbe Anzahl an Stichproben auswirken kann. QMC-Sampling-Techniken können Halton-Sequenzen (J. Halton. On the efficiency of certain quasi-random sequences of points in evaluating multi-dimensional integrals. Numerische Mathematik, 2:84–90, 1960), Hammersley-Sequenzen (J. Hammersley. Monte Carlo methods for solving multivariate problems. Annals of NY Academy of Science, 86:844–874, 1960) und mehr beinhalten. - In
16 werden in Schritt306 erste Stichprobenordnungsmodelle konstruiert. Für jede Ausgabe (jedes Leistungskriterium) von Interesse wird ein Modell konstruiert oder alternativ für jedes Ziel jeder Ausgabe (z. B. minimales Ziel für aufsteigende Reihenfolge, maximales Ziel für absteigende Reihenfolge oder beides). Die Eingaben jedes Modells sind die zufälligen Variablen der Variationswahrscheinlichkeitsverteilung. Die Ausgabe jedes Modells ist der Leistungswert (Leistungskriteriumwert), den es nachahmt. Das Modell kann wie in dem in2 dargestellten Verfahren konstruiert werden, das das zufällige Auswählen einer Untermenge der N Monte-Carlo- oder Quasi-Monte-Carlo-Stichproben, das Simulieren dieser und das Erstellen eines Regressionsmodells für jedes Leistungskriterium beinhaltet. Alternativ kann das Modell konstruiert werden, indem die N Monte-Carlo- oder Quasi-Monte-Carlo-Stichproben ignoriert werden und stattdessen ein Satz an Eingabepunkten an einer beliebigen Stelle im Eingaberaum erstellt wird; diese simuliert werden und Modelle erstellt werden, welche die Eingabepunkte mit den simulierten Leistungswerten verknüpfen. Alternativ kann jedes Modell auf adaptive Art und Weise konstruiert werden: einige erste Stichproben werden ausgewählt und simuliert, das Regressionsmodell wird erstellt, dann werden neue Stichproben als Eingabepunkte ausgewählt, wobei das Regressionsmodell die höchste Unsicherheit (zum Beispiel die höchste Varianz bei der Vorhersage von Gauß-Prozessmodellen) aufweist, dann werden diese Stichproben simuliert. Der Kreislauf des Auswählens von Stichproben, Simulierens und Messens von Unsicherheit wird wiederholt, bis ein Zielfehler erreicht wird. Außerdem können andere Kriterien neben dem Nachahmen von Unsicherheiten verwendetet werden, wie eine gewichtete Kombination an vorhergesagten Werten und Unsicherheitswertmodellen. In jedem Fall besteht am Ende von Schritt306 ein Satz an Regressionsmodellen, die Variationseingabeparameter mit Leistungsausgaben in Verbindung bringen. - Der Ablauf schreitet in
16 mit Schritt308 fort. Die Monte-Carlo-Kandidaten-Stichproben stammen von den N Monte-Carlo-Stichproben, die noch nicht simuliert wurden. In Schritt308 wird ein Satz an Nnext Stichproben wie folgt ausgewählt. Für jedes Regressionsmodell wird jede Kandidatenstichprobe auf dem Modell simuliert, um vorhergesagte Leistungswerte zu erhalten, und die Stichproben werden in aufsteigender (oder absteigender) Reihenfolge der vorhergesagten Leistungswerte simuliert. Diese Reihenfolgen, eine pro Ausgabe (oder eine pro Ziel, falls mehr als ein Bereich von Interesse in einer Ausgabe enthalten ist), werden zu einer einzigen Reihenfolge zusammengefügt (z. B. durch Verschachteln). - Im Fall von drei Zielen könnte Ziel 1 zum Beispiel ein maximaler Strom eines ESDs, Ziel 2 ein minimaler Strom des ESDs und Ziel 3 die Ausbeute des ESDs sein. In diesem Fall wären Ziel 1 und Ziel 2 zwei Bereiche von Interesse an entgegengesetzten Enden der Verteilungsfunktion des Stroms.
17A ,17B und17C zeigen geordnete Ziele 1, 2 und 3, die als eine Funktion der Stichprobenanzahl grafisch dargestellt sind. Wenn die geordneten Stichproben für Ziel 1: s505, s10, s1, s3, ..., für Ziel 2: s12, s9, s10, s2, ..., für Ziel 3: s7, s5, s8, s11, ... sind, dann wären die verschachtelten Stichproben s505, s12, s7, s10, s9, s5, s1, s10, s8, s3, s2, s11 usw. Da die Stichprobe s10 jedoch zweimal auftritt, muss sie nicht zweimal simuliert werden und kann aus der verschachtelten Stichprobenliste gelöscht werden. - Zusätzlich können außerdem Simulationen von nicht ausgewählten Punkten oder weit hinten eingeordneten Punkten durchgeführt werden. Zum Beispiel werden neue Punkte dann als Eingabepunkte auswählt, wenn die Modelle den größten Fehler aufweisen. Dadurch können sich die Modelle fortlaufend in den Bereichen verbessern, die am unsichersten sind. Oder einige Kandidatenpunkte können zufällig ohne Voreingenommenheit ausgewählt werden (statt mit Voreingenommenheit durch die Reihenfolge). Dadurch hat der Algorithmus bessere erwartete Konvergenz im „ungünstigsten Fall”, ähnlich wie beim „gemischten” Importance Sampling, das eine bessere erwartete Konvergenz für den „ungünstigsten Fall” durch Ziehen eines Bruchteils von Stichproben aus der echten Verteilung erreicht. Die zuerst eingeordneten Kandidaten werden gemeinsam mit den zusätzlichen Punkten zu den ausgewählten Nnext Stichproben.
- In
16 werden in Schritt310 die Nnext Stichproben simuliert. Das Sampling und die Simulation enden in312 sobald ausreichendes Vertrauen besteht, dass alle Fehler gefunden wurden oder eine andere Stopp-Bedingung erfüllt ist. Andere Stopp-Kriterien beinhalten das Ablaufen einer maximalen Laufzeit, das Überschreiten einer maximalen Anzahl an Stichproben oder das Feststellen, dass angesichts der bisherigen Simulationen die Fähigkeit, ein Zielergebnis zu erreichen, bewiesen oder widerlegt wurde. - In Schritt
314 in16 können einige der Regressionsmodelle unter Verwendung der aktualisierten Simulationsdaten erneut erstellt werden. Dies geschieht üblicherweise dann, wenn ein bestehendes Modell einen hohen Fehler beim Vorhersagen von Ausgabewerten verglichen mit simulierten Ausgabewerten hat; was zu Fehlern in der Vorhersagungsreihenfolge führt. - In
16 werden die Ergebnisse der Simulation und des Modellverfahrens sowohl an die Benutzeranzeige318 und ein Speichermedium320 , wie eine Datenbank, ausgegeben. In einigen Fällen werden die Ergebnisse an das Speichermedium ausgegeben und dann an die Anzeige weitergeleitet. Die Anzeige318 kann, wie in2 , simulierte Ausgabewerte darüber, welche Simulation nicht die Vorgaben erfüllt hat, und eine geschätzte Fehlerrate anzeigen, angenommen, alle Fehler wurden gefunden. Die Fehlerrate kann außerdem eine Schätzung des oberen und unteren Vertrauensintervalls, zum Beispiel anhand der Wilson-Schätzung einer binomialen Verteilung (E. B. Wilson, Probable interference, the law of succession, and statistical inference, Journal of the American Statistical Association, Vol. 22, S. 209–212, 1927) oder einer beliebigen anderen Schätzungsart, beinhalten. Die Anzeige kann die Fehlerrate für jede Ausgabe oder jedes Ziel und insgesamt für alle Ausgaben (für die Gesamtfehlerrate) anzeigen. Die Anzeige kann eine Schätzung des Vertrauens anzeigen, dass alle Fehler gefunden wurden, für jede Ausgabe oder insgesamt. Die Anzeige kann ein Schaubild eines simulierten Ausgabewertes im Vergleich zu vorhergesagter Stichprobenreihenfolgenummer für jede Ausgabe und jedes Ziel (minimal oder maximal oder beide) anzeigen. Oder sie kann eine Version anzeigen, die außerdem einen Modell-vorhergesagten Ausgabewert, eine Modell-vorhergesagte obere Grenze, eine Modell-vorhergesagte untere Grenze im Schaubild des simulierten Ausgabewerts vs. die Stichprobenanzahl aufweist. Die Anzeige kann ein Schaubild der tatsächlichen Stichprobenreihenfolgenummer im Vergleich zu vorhergesagter Stichprobenanzahl für jede Ausgabe und jedes Ziel anzeigen. Die Anzeige kann die Korrelation von tatsächlicher vs. vorhergesagter Stichprobenanzahl für jede Ausgabe und jedes Ziel vorhersagen. Die Anzeige kann alle Stichprobenwerte bisher in einem Frequenzschaubild anzeigen, wobei die vorhergesagten Werte des ungünstigsten Falls für eine jeweilige Ausgabe und ein jeweiliges Ziel zum Beispiel mit verschiedenen Farben unterlegt sind. Die Anzeige kann die Empfindlichkeit von Ausgabewerten auf Prozessparameter für jede Ausgabe oder für jede Ausgabe und jedes Ziel anzeigen. Die Anzeige kann eine berechnete Verteilung für die Ausläufer der Kurve anzeigen; Ansätze zum Berechnen der Verteilungsausläufer können Extremwerttheorie und das Erstellen einer 1D-Modellverknüpfung des Leistungswertes mit dem Ausgabequantilwert beinhalten. Die Anzeige kann eine Verteilung für jede Ausgabe, nicht nur die Ausläufer, berechnen und darstellen. Das System, mit dem die Anzeige verbunden ist, kann ein Mittel für den Benutzer zum Auswählen eines beliebigen Punktes, der die Vorgaben nicht erfüllt hat, und zum Exportieren dieser Punkte zur Verwendung mit anderen Tools, beinhalten. Die Anzeige kann repräsentative zufällige Punkte mit Zielperzentilwerten der Ausgabeausläufer (z. B. dem 1e–6ten und 1 – 1e–6ten Perzentilwert) berechnen, diese Punkte und ihre Ausgabewerte anzeigen und diese Punkte zur Verwendung durch andere Tools exportieren. - Eine zusätzliche alternative Ausführungsform ist wie die Ausführungsform in
16 , außer dass jede Stichprobe (jeder Variationspunkt) auf einem Satz an „Eckpunkten des ungünstigsten Falls” simuliert wird. Diese Eckpunkte können andere nicht steuerbare Variationen, wie Temperatur, Ladung, Stromversorgungsspannung und statistische Variation nachahmen, die in Modellsätze wie FF/SS/usw. festgehalten werden (bei CMOS Gerätemodellen können die globalen Prozessvariablen so eingestellt werden, dass sie eine NMOS-Komponente nachahmen, die schnelle, langsame oder typische Verhalten aufweisen kann, und eine PMOS-Komponente, die ebenfalls schnelle, langsame oder typische Verhalten aufweisen kann. Das CMOS-Gerät kann dann analysiert werden, zum Beispiel an Fast-NMOS/Fast-PMOS (FF), Fast-NMOS/Slow-PMOS (FS), Slow-NMOS/Fast-PMOS (SF), Slow-NMOS/Slow-PMOS (SS) oder Typical-NMOS/Typical-PMOS (TT) globalen Prozessecken. Diese globalen Prozessecken wurden entwickelt, um die wichtigsten Leistungsmerkmale an Geschwindigkeit und Kraft einer digitalen Schaltung zu faktorisieren.) Sobald eine Stichprobe über diese Eckpunkte simuliert wurde, wird der Wert des ungünstigsten Falls genommen und für die Modelle und anderswo verwendet. Der Operator für den ungünstigsten Fall ist dann minimal, wenn das Ziel minimal ist (aufsteigende Reihenfolge); und dann maximal, wenn das Ziel maximal ist (absteigende Reihenfolge). Die Benutzeranzeige kann das Anzeigen von Ergebnissen über alle Eckpunkte des ungünstigsten Falls beinhalten. - Eine weitere alternative Ausführungsform ist wie die Ausführungsform aus
16 , außer, dass es andere nicht steuerbare Variationsparameter gibt, die in einem Szenario des ungünstigsten Falls in Betracht gezogen werden können und sie werden als zusätzliche Eingabevariablen für das Regressionsmodell behandelt. Diese Parameter können Temperatur, Ladung, Stromversorgungsspannung und Modellsätze, wie FF/SS/usw. beinhalten. Schritt306 in16 beinhaltet das Ziehen von Eingabepunkten, die in der Einheit des zufälligen Variationsraums mit dem Variationsraum für den ungünstigsten Fall gut verteilt sind, und das Erstellen von Modellen, welche die Einheit von zufälligen Parametern und Parametern des ungünstigsten Falls für die Ausgabe verknüpfen. - Ausführungsformen der Erfindung wurden im Verhältnis zu elektrischen Systemen (ESDs) beschrieben. Für Fachleute ist jedoch ersichtlich, dass die vorliegende Offenbarung auch auf andere Systeme als elektrische Systeme anwendbar ist. Zum Beispiel können unter anderem Finanzsysteme und Wettersysteme das hierin beschriebene Verfahren und System verwenden.
- In der vorhergehenden Beschreibung sind zahlreiche Einzelheiten aufgeführt, um ein tiefgreifendes Verständnis der Ausführungsformen bereitzustellen. Für Fachleute ist jedoch ersichtlich, dass diese spezifischen Einzelheiten nicht erforderlich sind. In anderen Fällen sind allseits bekannte elektrische Strukturen und Schaltungen als Blockdiagramme dargestellt, um das Verständnis nicht zu erschweren. Zum Beispiel sind keine spezifischen Einzelheiten darüber bereitgestellt, ob die hierin beschriebenen Ausführungsformen als Software-Routine, Hardware-Schaltung, Firmware oder eine Kombination davon implementiert sind.
- Ausführungsformen der Offenbarungen können als in einem maschinenlesbaren Medium (auch als computerlesbares Medium, ein prozessorlesbares Medium oder ein computerverwendbares Medium, in dem ein computerlesbarer Programmcode integriert ist, bezeichnet) gespeichertes Computerprogrammprodukt repräsentiert sein. Das maschinenlesbare Medium kann jedes geeignete greifbare, nicht flüchtige Medium sein, einschließlich magnetische, optische oder elektrische Speichermedien, einschließlich einer Diskette, einer CD-ROM, eines Speichergerätes (flüchtig oder nicht flüchtig) oder ähnlicher Speichermechanismen. Das maschinenlesbare Medium kann verschiedene Sätze an Anweisungen, Code-Sequenzen, Konfigurationsinformationen oder andere Daten enthalten, die, wenn sie ausgeführt werden, veranlassen, dass ein Prozessor Schritte in einem Verfahren gemäß einer Ausführungsform der Offenbarung ausführt. Für Fachleute ist ersichtlich, dass andere Anweisungen und Handlungen, die erforderlich sind, um die beschriebenen Implementierungen zu implementieren, ebenfalls auf dem maschinenlesbaren Medium gespeichert sein können. Die auf dem maschinenlesbaren Medium gespeicherten Anweisungen können durch einen Prozessor oder ein anderes geeignetes Verarbeitungsgerät ausgeführt werden und mit der Schaltung interagieren, um die beschriebenen Aufgaben auszuführen.
18 zeigt ein computerlesbares Medium1000 , auf dem Anweisungen1010 für die Ausführung durch einen Computer, ein Verfahren der vorliegenden Offenbarung auszuführen, gespeichert sind. - Die obenstehenden Ausführungsformen sind ausschließlich als Beispiele gedacht. Veränderungen, Modifikationen und Variationen können von Fachleuten an den jeweiligen Ausführungsformen vorgenommen werden, ohne dabei vom Umfang abzuweichen, der ausschließlich durch die anhängigen Patentansprüche definiert ist.
- ZITATE ENTHALTEN IN DER BESCHREIBUNG
- Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
- Zitierte Nicht-Patentliteratur
-
- A. Singhee et al., „Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems”, US-Patentanmeldung 20090248387, angemeldet am 28. März 2008 [0013]
- J. Wang, S. Yaldiz, X. Li und L. Pileggi, „SRAM Parametric Failure Analysis”, Proc. ACM/IEEE Design Automation Conference, Juni 2009 [0013]
- C. Gu und J. Roychowdhury, „An efficient fully nonlinear, variability-aware non-Monte-Carlo yield estimation procedure with applications to SRAM cells and ring oscillators”, Proc. 2008 Asia and South Pacific Design Automation Conference, 2008, S. 754–761 [0013]
- N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. Teller, E. Teller, „Equations of State Calculations by Fast Computing Machines”, Journal of Chemical Physics 21 (6), 1953, S. 1087–1092 [0014]
- Y. Kanoria, S. Mitra und A. Montanari, „Statistical Static Timing Analysis using Markov Chain Monte Carlo”, Proc. Design Automation and Test Europe, März 2010 [0014]
- R. Joshi et al., „System and Computer Program for Efficient Cell Failure Rate Estimation in Cell Arrays”, US-Patentanmeldung Nr. 2008/0195325, angemeldet am 16. April 2008 [0015]
- M. Qazi, M. Tikekar, L. Dolecek, D. Shah und A. Chandrakasan, „Loop Flattening & Spherical Sampling: Highly Efficient Model Reduction Techniques for SRAM Yield Analysis”, Proc. Design Automation and Test in Europe, März 2010 [0015]
- J. H. Friedman, Multivariate Adaptive Regression Splines, Annals of Statistics, Ausgabe 19, Nr. 1, 1991 [0050]
- T. McConaghy, High-dimensional statistical modeling and analysis of custom integrated circuits, Proc. Custom Integrated Circuits Conference, Sept. 2011 [0050]
- J. Halton. On the efficiency of certain quasi-random sequences of points in evaluating multi-dimensional integrals. Numerische Mathematik, 2:84–90, 1960 [0069]
- J. Hammersley. Monte Carlo methods for solving multivariate problems. Annals of NY Academy of Science, 86:844–874, 1960 [0069]
- E. B. Wilson, Probable interference, the law of succession, and statistical inference, Journal of the American Statistical Association, Vol. 22, S. 209–212, 1927 [0076]
Claims (18)
- Nicht flüchtiges, greifbares, computerlesbares Medium, auf dem Anweisungen zum Ausführen durch einen Computer gespeichert sind, ein Verfahren zum Identifizieren von seltenen Fehlern eines elektrischen Schaltungsdesigns (ESD) auszuführen, wobei dem ESD Prozessvariablen und Leistungskriterien zugeordnet sind, wobei die Leistungskriterien von den Prozessvariablen abhängig sind, wobei die Prozessvariablen eine Wahrscheinlichkeitsverteilung aufweisen, wobei das Verfahren Folgendes umfasst: Erzeugen eines Satzes an Punkten aus der Wahrscheinlichkeitsverteilung der Prozessvariablen; Auswählen einer Untermenge an Punkten aus dem Satz an Punkten; Simulieren des ESDs für jeden Punkt der Untermenge an Punkten, um Simulationsdaten zu erhalten; gemäß den Simulationsdaten, Berechnen eines Wertes eines Leistungskriteriums für jeden Punkt der Untermenge an Punkten, um einen Satz an Leistungskriteriumwerten zu erhalten, wobei dem Leistungskriterium ein Zielwert zugeordnet ist; gemäß dem Satz an Leistungskriteriumwerten und den Werten der Prozessvariablen für jeden Punkt der Untermenge an Punkten, Erstellen eines Modells des Leistungskriteriums als eine Funktion der Prozessvariablen; gemäß dem Modell, Ordnen der verbleibenden Punkte des Satzes an Punkten, um geordnete verbleibende Punkte zu erhalten, wobei den geordneten verbleibenden Punkten eine Reihenfolge zugeordnet ist; und Anzeigen eines Zählers einer Anzahl an ESD-Fehlern, um einen angezeigten Zähler an ESD-Fehlern zu erhalten, durch iteratives Wiederholen der folgenden Handlungen a–d gemäß der Reihenfolge der geordneten verbleibenden Punkte bis eine Stopp-Bedingung erfüllt wird: (a) Simulieren eines geordneten verbleibenden Punktes, um Simulationsdaten des geordneten verbleibenden Punktes zu erhalten; (b) Berechnen, gemäß den Simulationsdaten des geordneten verbleibenden Punktes, eines Wertes des Leistungskriteriums des geordneten verbleibenden Punktes; (c) Vergleichen des Wertes des Leistungskriteriums des geordneten verbleibenden Punktes mit dem Zielwert; und (d) falls der Wert des Leistungskriteriums des geordneten verbleibenden Punktes nicht dem Zielwert entspricht, Erhöhen des angezeigten Zählers an ESD-Fehlern.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei sich die verbleibenden Punkte von Punkten der Untermenge an Punkten unterscheiden.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei eine Gesamtanzahl an Punkten des Satzes an Punkten gemäß einer Zielausbeute des ESDs bestimmt wird.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei eine Fehlerrate des ESDs oder eine Ausbeute des ESDs gemäß der Anzahl an ESD-Fehlern und einer Gesamtanzahl an Punkten des Satzes an Punkten geschätzt wird.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 4, wobei das Verfahren ferner das automatische Bestimmen, ob alle ESD-Fehler gefunden wurden, umfasst.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 4, wobei das Verfahren ferner das Bestimmen eines Vertrauensintervalls für die Fehlerrate des ESDs oder der Ausbeute des ESDs umfasst.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei das Modell ein Regressionsmodell ist, das wenigstens eins von einem linearen Modell, einem polynomialen Modell, einem Spline-Modell, einem Gauß-Prozessmodell, einem neuronalen Netzwerk, einem multivariaten, adaptiven Regressions-Spline-Modell und einem schnellen Funktionsextraktionsmodell beinhaltet.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei nach einem Durchlauf der Handlungen a–d der Wiederaufbau des Modells basierend auf allen simulierten Punkten veranlasst wird, um ein wiederaufgebautes Modell zu erhalten, und die Punkte, die noch simuliert werden müssen, gemäß dem wiederaufgebauten Modell neu geordnet werden.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, das ferner das Anzeigen eines Schaubildes umfasst, wobei das Schaubild eine Kurve umfasst, welche die Werte des Leistungskriteriums für simulierte Punkte als eine Funktion der Reihenfolge, in der die Punkte simuliert wurden, anzeigt.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei das Verfahren ferner das Anzeigen eines Schaubildes umfasst, wobei das Schaubild eine Kurve einer Wahrscheinlichkeitsverteilung des Leistungskriteriums beinhaltet.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 10, wobei die Kurve wenigstens einen extremen Abschnitt einer Wahrscheinlichkeitsverteilung des Leistungskriteriums zeigt.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei das Verfahren ferner das Erfassen zusätzlicher Punkte in einem durch die Prozessvariablen definierten Raum umfasst, wobei die zusätzlichen Punkte außerhalb des Satzes an Punkten liegen.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 12, wobei das Verfahren ferner Folgendes umfasst: Simulieren des ESDs an den zusätzlichen Punkten, um zusätzliche Simulationsdaten zu erhalten; gemäß den zusätzlichen Simulationsdaten, Berechnen zusätzlicher Leistungskriteriumwerte; und Modifizieren des Modells gemäß den zusätzlichen Leistungskriteriumwerten.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 12, wobei das Verfahren ferner Folgendes umfasst: Schätzen eines Fehlers oder einer Unsicherheit des Modells, um einen geschätzten Fehler oder eine geschätzte Unsicherheit zu erhalten; und Erfassen der zusätzlichen Punkte gemäß dem geschätzten Fehler oder der geschätzten Unsicherheit.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei das Anzeigen des Zählers der Anzahl an ESD-Fehlern das Anzeigen des Zählers der Anzahl an ESD-Fehlern in einem Schaubild beinhaltet.
- Nicht flüchtiges, greifbares, computerlesbares Medium nach Anspruch 1, wobei das Erzeugen des Satzes an Punkten aus der Wahrscheinlichkeitsverteilung der Prozessvariablen die das Sampling der Wahrscheinlichkeitsverteilung der Prozessvariablen beinhaltet.
- Nicht flüchtiges, greifbares, computerlesbares Medium, auf dem Anweisungen zum Ausführen durch einen Computer gespeichert sind, ein Verfahren zum Identifizieren von seltenen Ereignissen eines elektrischen Schaltungsdesigns (ESD) auszuführen, wobei dem ESD Prozessvariablen und Leistungskriterien zugeordnet sind, die Leistungskriterien von den Prozessvariablen abhängen, die Prozessvariablen eine Wahrscheinlichkeitsverteilung aufweisen, wobei das Verfahren Folgendes umfasst: Erzeugen eines Satzes an Punkten aus der Wahrscheinlichkeitsverteilung der Prozessvariablen; Auswählen einer Untermenge an Punkten aus dem Satz an Punkten; Simulieren des ESDs für jeden Punkt der Untermenge an Punkten, um Simulationsdaten zu erhalten; gemäß den Simulationsdaten, Berechnen eines Wertes eines Leistungskriteriums für jeden Punkt der Untermenge an Punkten, um einen Satz an Leistungskriteriumwerten zu erhalten; gemäß dem Satz an Leistungskriteriumwerten und den Werten der Prozessvariablen für jeden Punkt der Untermenge an Punkten, Erstellen eines Modells des Leistungskriteriums als eine Funktion der Prozessvariablen; gemäß dem Modell, Ordnen der verbleibenden Punkte des Satzes an Punkten, um geordnete verbleibende Punkte zu erhalten, wobei den geordneten verbleibenden Punkten eine Reihenfolge zugeordnet ist; und Anzeigen eines Schaubildes einer Verteilung der Werte des Leistungskriteriums, um ein angezeigtes Schaubild zu erfassen, durch iteratives Wiederholen der folgenden Handlungen a–c gemäß der Reihenfolge der geordneten verbleibenden Punkte bis eine Stopp-Bedingung erfüllt wird: (a) Simulieren eines geordneten verbleibenden Punktes, um Simulationsdaten des geordneten verbleibenden Punktes zu erhalten; (b) Berechnen eines Wertes des Leistungskriteriums des geordneten verbleibenden Punktes gemäß den Simulationsdaten des geordneten verbleibenden Punktes; und (c) Eingliedern des Wertes des Leistungskriteriums des geordneten verbleibenden Punktes in das Schaubild der Verteilung der Werte des Leistungskriteriums.
- Nicht flüchtiges, greifbares, computerlesbares Medium, auf dem Anweisungen zum Ausführen durch einen Computer gespeichert sind, ein Verfahren zum Identifizieren von seltenen Fehlern eines elektrischen Schaltungsdesigns (ESD) auszuführen, wobei dem ESD Prozessvariablen und Leistungskriterien zugeordnet sind, die Leistungskriterien von den Prozessvariablen abhängen, die Prozessvariablen eine Wahrscheinlichkeitsverteilung aufweisen, wobei das Verfahren Folgendes umfasst: Erzeugen eines Satzes an Punkten aus der Wahrscheinlichkeitsverteilung der Prozessvariablen; Auswählen einer Untermenge an Punkten aus dem Satz an Punkten; Simulieren des ESDs für jeden Punkt der Untermenge an Punkten, um Simulationsdaten zu erhalten; gemäß den Simulationsdaten, für ein Leistungskriterium oder mehrere Leistungskriterien des ESDs, Berechnen eines Wertes des einen Leistungskriteriums oder der mehreren Leistungskriterien für jeden Punkt der Untermenge an Punkten, um einen Satz oder mehrere Sätze an Leistungskriteriumwerten zu erhalten; gemäß dem einen Satz oder den mehreren Sätzen an Leistungskriteriumwerten und den Werten der Prozessvariablen für jeden Punkt der Untermenge an Punkten, Erstellen eines Modells für jedes des einen Leistungskriteriums oder der mehreren Leistungskriterien als eine Funktion der Prozessvariablen; für jeden der vorbestimmten Bereiche von Interesse an Ausgabewerten jedes des einen Leistungskriteriums oder der mehreren Leistungskriterien, gemäß dem Modell jedes des einen Leistungskriteriums oder der mehreren Leistungskriterien, Ordnen der verbleibenden Punkte des Satzes an Punkten, um Sätze an geordneten verbleibenden Punkten zu erhalten, wobei eine Anzahl an Sätzen an geordneten verbleibenden Punkten einer Anzahl oder vorbestimmten Bereichen von Interesse entspricht, wobei allen vorbestimmten Bereichen von Interesse von Ausgabewerten ein Zielwert zugeordnet ist; Verschachteln der Sätze an geordneten verbleibenden Punkten, um einen geordneten verschachtelten Satz an Punkten zu erhalten, wobei der geordnete verschachtelte Satz an Punkten eine Reihenfolge aufweist; Anzeigen eines Zählers einer Anzahl an ESD-Fehlern, um einen angezeigten Zähler an ESD-Fehlern zu erhalten, durch iteratives Wiederholen der folgenden Handlungen a–d für jeden der vorbestimmten Bereiche von Interesse von Ausgabewerten gemäß der Reihenfolge des geordneten verschachtelten Satzes an Punkten bis eine Stopp-Bedingung erfüllt wird: (a) Simulieren eines Punktes des geordneten verschachtelten Satzes an Punkten; (b) Berechnen eines Wertes des Leistungskriteriums des Punktes des geordneten verschachtelten Satzes an Punkten; (c) Vergleichen des Wertes des Leistungskriteriums des Punktes des geordneten verschachtelten Satz an Punkten mit dem zugehörigen Zielwert; und (d) falls der Wert des Leistungskriteriums des Punktes des geordneten verschachtelten Satzes an Punkten nicht dem zugehörigen Zielwert entspricht, Erhöhen des angezeigten Zählers der ESD-Fehler.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40723010P | 2010-10-27 | 2010-10-27 | |
US61/407,230 | 2010-10-27 | ||
PCT/CA2011/050673 WO2012055045A2 (en) | 2010-10-27 | 2011-10-27 | Method and system for identifying rare-event failure rates |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112011103563T5 true DE112011103563T5 (de) | 2013-08-22 |
DE112011103563T8 DE112011103563T8 (de) | 2013-11-21 |
Family
ID=45994472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112011103563T Active DE112011103563T8 (de) | 2010-10-27 | 2011-10-27 | Verfahren und System zum Identifizieren von seltenen Fehlerraten |
Country Status (6)
Country | Link |
---|---|
US (1) | US9483602B2 (de) |
JP (1) | JP5860054B2 (de) |
KR (1) | KR101904518B1 (de) |
DE (1) | DE112011103563T8 (de) |
TW (1) | TWI559156B (de) |
WO (1) | WO2012055045A2 (de) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120046929A1 (en) * | 2010-08-20 | 2012-02-23 | International Business Machines Corporation | Statistical Design with Importance Sampling Reuse |
CN102760208B (zh) * | 2012-07-03 | 2015-07-29 | 清华大学 | 基于模拟疫苗的动态人工免疫故障诊断方法 |
US8819605B1 (en) * | 2013-03-06 | 2014-08-26 | Oracle International Corporation | Deriving effective corners for complex correlations |
US8813009B1 (en) * | 2013-03-14 | 2014-08-19 | Cadence Design Systems, Inc. | Computing device mismatch variation contributions |
US8954910B1 (en) | 2013-03-14 | 2015-02-10 | Cadence Design Systems, Inc. | Device mismatch contribution computation with nonlinear effects |
US9460243B2 (en) * | 2013-03-15 | 2016-10-04 | International Business Machines Corporation | Selective importance sampling |
US8806418B1 (en) | 2013-06-19 | 2014-08-12 | Freescale Semiconductor, Inc. | Scaled sigma sampling |
US20150051869A1 (en) * | 2013-08-16 | 2015-02-19 | International Business Machines Corporation | Method for relating test time and escape rate for multivariate issue |
US11093851B2 (en) * | 2013-09-18 | 2021-08-17 | Infineon Technologies Ag | Method, apparatus and computer program product for determining failure regions of an electrical device |
TW201525742A (zh) * | 2013-10-24 | 2015-07-01 | Solido Design Automation Inc | 用於處理及環境變化之快速巢狀迴路電路驗證之方法及系統以及分層電路 |
US9753895B2 (en) * | 2014-02-28 | 2017-09-05 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method for process variation analysis of an integrated circuit |
US10387596B2 (en) * | 2014-08-26 | 2019-08-20 | International Business Machines Corporation | Multi-dimension variable predictive modeling for yield analysis acceleration |
US10452793B2 (en) | 2014-08-26 | 2019-10-22 | International Business Machines Corporation | Multi-dimension variable predictive modeling for analysis acceleration |
CN105447222B (zh) * | 2014-09-22 | 2018-09-25 | 台湾积体电路制造股份有限公司 | 用于集成电路的工艺变化分析的方法 |
US20160116527A1 (en) * | 2014-10-27 | 2016-04-28 | Qualcomm Incorporated | Stochastic and topologically aware electromigration analysis methodology |
US9524365B1 (en) * | 2014-12-23 | 2016-12-20 | Cadence Design Systems, Inc. | Efficient monte carlo flow via failure probability modeling |
WO2016133523A1 (en) * | 2015-02-19 | 2016-08-25 | Hewlett Packard Enterprise Development Lp | Post-sampling conflict detection |
US9836564B1 (en) * | 2015-04-09 | 2017-12-05 | Cadence Design Systems, Inc. | Efficient extraction of the worst sample in Monte Carlo simulation |
US10565657B2 (en) | 2015-10-02 | 2020-02-18 | Engie Storage Services Na Llc | Methods and apparatuses for risk assessment and insuring intermittent electrical systems |
US20170099056A1 (en) * | 2015-10-02 | 2017-04-06 | Green Charge Networks Llc | Demand reduction risk modeling and pricing systems and methods for intermittent energy generators |
US9805158B1 (en) * | 2015-11-16 | 2017-10-31 | Cadence Design Systems, Inc. | Efficient extraction of K-sigma corners from Monte Carlo simulation |
US9928131B2 (en) * | 2015-12-17 | 2018-03-27 | General Electric Company | System and method for detection of rare failure events |
US10204200B2 (en) * | 2016-06-29 | 2019-02-12 | Oracle International Corporation | Variation-aware design analysis |
EP3340129B1 (de) * | 2016-12-21 | 2019-01-30 | Axis AB | Künstliches neuronales netzwerk klassenbasierte ausdünnung |
US11340977B2 (en) | 2017-01-11 | 2022-05-24 | International Business Machines Corporation | Predictive analytics for failure detection |
US10776548B1 (en) * | 2017-03-28 | 2020-09-15 | Cadence Design Systems, Inc. | Parallel Monte Carlo sampling for predicting tail performance of integrated circuits |
US11003737B2 (en) * | 2017-04-12 | 2021-05-11 | Samsung Electronics Co., Ltd. | Generic high-dimensional importance sampling methodology |
US10999652B2 (en) | 2017-05-24 | 2021-05-04 | Engie Storage Services Na Llc | Energy-based curtailment systems and methods |
JP6874238B2 (ja) * | 2017-06-30 | 2021-05-19 | 日本電気株式会社 | 光学系設計支援システム、光学系設計支援方法および光学系設計支援プログラム |
US10658841B2 (en) | 2017-07-14 | 2020-05-19 | Engie Storage Services Na Llc | Clustered power generator architecture |
KR102578644B1 (ko) | 2017-08-30 | 2023-09-13 | 삼성전자주식회사 | 반도체 집적회로의 수율 예측 장치, 및 이를 이용한 반도체 장치 제조 방법 |
DE102019106996A1 (de) | 2018-03-26 | 2019-09-26 | Nvidia Corporation | Darstellen eines neuronalen netzwerks unter verwendung von pfaden innerhalb des netzwerks zum verbessern der leistung des neuronalen netzwerks |
US11507846B2 (en) * | 2018-03-26 | 2022-11-22 | Nvidia Corporation | Representing a neural network utilizing paths within the network to improve a performance of the neural network |
US10853550B1 (en) * | 2018-07-03 | 2020-12-01 | Cadence Design Systems, Inc. | Sampling selection for enhanced high yield estimation in circuit designs |
WO2020053277A1 (en) | 2018-09-11 | 2020-03-19 | Technische Universität Wien | Computer-implemented method and electronic device for detecting influential components in a netlist representing an electrical circuit |
KR102103578B1 (ko) * | 2018-11-28 | 2020-04-23 | (주)밸류파인더스 | 몬테카를로 유전자 알고리즘을 사용한 포트폴리오 자산 선택방법 |
CN111584063B (zh) * | 2019-02-15 | 2023-11-10 | 宏碁股份有限公司 | 不同分组集合下的评估统计效能的方法 |
US11768986B2 (en) | 2019-03-14 | 2023-09-26 | Xenergic Ab | High-dimensional multi-distributed importance sampling for circuit yield analysis |
US11487917B2 (en) * | 2019-04-22 | 2022-11-01 | Autodesk, Inc. | Automatic design of mechanical assemblies using estimation of distribution algorithm |
US10852351B1 (en) | 2019-05-30 | 2020-12-01 | International Business Machines Corporation | Iterative approach to determine failure threshold associated with desired circuit yield in integrated circuits |
US10891415B1 (en) | 2019-06-05 | 2021-01-12 | Cadence Design Systems, Inc. | Method, system, and product for generating radial bump patterns |
US10762166B1 (en) | 2019-06-07 | 2020-09-01 | International Business Machines Corporation | Adaptive accelerated yield analysis |
US10878156B1 (en) * | 2019-12-27 | 2020-12-29 | Silvaco France | Probabilistic simulation method of a microelectronic device |
CN115151910A (zh) * | 2020-02-21 | 2022-10-04 | 美商新思科技有限公司 | 针对参数故障的自动测试模式生成(atpg) |
WO2021175629A1 (en) * | 2020-03-05 | 2021-09-10 | Koninklijke Philips N.V. | Contextual multiplanar reconstruction of three-dimensional ultrasound imaging data and associated devices, systems, and methods |
CN111553611B (zh) * | 2020-05-08 | 2023-05-23 | 中国科学院微电子研究所 | 一种获取设计良率的方法及装置 |
US11036908B1 (en) * | 2020-06-08 | 2021-06-15 | Apex Semiconductor | Techniques for simulation-based timing path labeling for multi-operating condition frequency prediction |
WO2022191852A1 (en) * | 2021-03-12 | 2022-09-15 | Siemens Industry Software Inc. | Variability characterization with truncated ordered sample simulation |
US11774498B2 (en) * | 2021-06-07 | 2023-10-03 | International Business Machines Corporation | Multi-rate sampling for hierarchical system analysis |
CN113433913B (zh) * | 2021-07-06 | 2023-03-24 | 上海新氦类脑智能科技有限公司 | ***监测模型生成及监测方法、处理器芯片以及工业*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892366B1 (en) * | 2001-08-28 | 2005-05-10 | Cadence Design Systems, Inc. | Method and apparatus for performing extraction using a model trained with Bayesian inference via a Monte Carlo method |
US20060203581A1 (en) * | 2005-03-10 | 2006-09-14 | Joshi Rajiv V | Efficient method and computer program for modeling and improving static memory performance across process variations and environmental conditions |
US7380225B2 (en) * | 2006-03-14 | 2008-05-27 | International Business Machines Corporation | Method and computer program for efficient cell failure rate estimation in cell arrays |
US8155938B2 (en) * | 2008-03-28 | 2012-04-10 | Carnegie Mellon University | Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems |
US8584073B2 (en) * | 2008-07-21 | 2013-11-12 | Synopsys, Inc. | Test design optimizer for configurable scan architectures |
JP5176895B2 (ja) * | 2008-11-18 | 2013-04-03 | 富士通株式会社 | Sram形状パラメータ等の多目的最適化設計支援装置、方法、及びプログラム |
JP2010160787A (ja) * | 2008-12-11 | 2010-07-22 | Jedat Inc | パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体 |
JP2011113291A (ja) * | 2009-11-26 | 2011-06-09 | Fujitsu Semiconductor Ltd | 半導体装置の動作シミュレーション方法、測定データ取得方法、及び回路設計方法 |
US8195427B2 (en) * | 2009-12-23 | 2012-06-05 | Cadence Design Systems, Inc. | Methods and systems for high sigma yield estimation using reduced dimensionality |
JP5482562B2 (ja) * | 2010-08-17 | 2014-05-07 | 富士通株式会社 | 回路性能見積装置、回路性能見積方法及び回路性能見積プログラム |
US20140173535A1 (en) * | 2012-12-17 | 2014-06-19 | International Business Machines Corporation | Analysis of chip-mean variation and independent intra-die variation for chip yield determination |
-
2011
- 2011-10-27 TW TW100139139A patent/TWI559156B/zh active
- 2011-10-27 WO PCT/CA2011/050673 patent/WO2012055045A2/en active Application Filing
- 2011-10-27 KR KR1020137013542A patent/KR101904518B1/ko active IP Right Grant
- 2011-10-27 DE DE112011103563T patent/DE112011103563T8/de active Active
- 2011-10-27 JP JP2013535224A patent/JP5860054B2/ja active Active
- 2011-10-27 US US13/881,866 patent/US9483602B2/en active Active
Non-Patent Citations (12)
Title |
---|
A. Singhee et al., "Method and apparatus for sampling and predicting rare events in complex electronic devices, circuits and systems", US-Patentanmeldung 20090248387, angemeldet am 28. März 2008 |
C. Gu und J. Roychowdhury, "An efficient fully nonlinear, variability-aware non-Monte-Carlo yield estimation procedure with applications to SRAM cells and ring oscillators", Proc. 2008 Asia and South Pacific Design Automation Conference, 2008, S. 754-761 |
E. B. Wilson, Probable interference, the law of succession, and statistical inference, Journal of the American Statistical Association, Vol. 22, S. 209-212, 1927 |
J. H. Friedman, Multivariate Adaptive Regression Splines, Annals of Statistics, Ausgabe 19, Nr. 1, 1991 |
J. Halton. On the efficiency of certain quasi-random sequences of points in evaluating multi-dimensional integrals. Numerische Mathematik, 2:84-90, 1960 |
J. Hammersley. Monte Carlo methods for solving multivariate problems. Annals of NY Academy of Science, 86:844-874, 1960 |
J. Wang, S. Yaldiz, X. Li und L. Pileggi, "SRAM Parametric Failure Analysis", Proc. ACM/IEEE Design Automation Conference, Juni 2009 |
M. Qazi, M. Tikekar, L. Dolecek, D. Shah und A. Chandrakasan, "Loop Flattening & Spherical Sampling: Highly Efficient Model Reduction Techniques for SRAM Yield Analysis", Proc. Design Automation and Test in Europe, März 2010 |
N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. Teller, E. Teller, "Equations of State Calculations by Fast Computing Machines", Journal of Chemical Physics 21 (6), 1953, S. 1087-1092 |
R. Joshi et al., "System and Computer Program for Efficient Cell Failure Rate Estimation in Cell Arrays", US-Patentanmeldung Nr. 2008/0195325, angemeldet am 16. April 2008 |
T. McConaghy, High-dimensional statistical modeling and analysis of custom integrated circuits, Proc. Custom Integrated Circuits Conference, Sept. 2011 |
Y. Kanoria, S. Mitra und A. Montanari, "Statistical Static Timing Analysis using Markov Chain Monte Carlo", Proc. Design Automation and Test Europe, März 2010 |
Also Published As
Publication number | Publication date |
---|---|
WO2012055045A2 (en) | 2012-05-03 |
KR101904518B1 (ko) | 2018-10-04 |
DE112011103563T8 (de) | 2013-11-21 |
TWI559156B (zh) | 2016-11-21 |
JP2013542526A (ja) | 2013-11-21 |
TW201237647A (en) | 2012-09-16 |
WO2012055045A3 (en) | 2012-06-21 |
JP5860054B2 (ja) | 2016-02-16 |
KR20140024252A (ko) | 2014-02-28 |
US9483602B2 (en) | 2016-11-01 |
US20130226544A1 (en) | 2013-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112011103563T5 (de) | Verfahren und System zum Identifizieren von seltenen Fehlerrarten | |
Knab et al. | Predicting defect densities in source code files with decision tree learners | |
DE60106799T2 (de) | Probabilistische Diagnose, inbesondere für eingebettete Fernanwendungen | |
DE102015009799A1 (de) | Risikoquantifizierung zur Strategieanwendung | |
DE202017007517U1 (de) | Aggregatmerkmale für maschinelles Lernen | |
DE112017005538T5 (de) | Automatisierte Erzeugung von Arbeitsabläufen | |
DE102016223193A1 (de) | Verfahren und Vorrichtung zum Komplettieren eines Wissensgraphen | |
DE202011110226U1 (de) | Kopplungsmethodik bzw. Simulationsvorrichtung für nicht-iterative Co-Simulation | |
DE112020006021T5 (de) | Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen | |
Alkarni et al. | A compound class of Poisson and lifetime distributions | |
DE60032258T2 (de) | Bestimmen ob eine variable numerisch oder nicht numerisch ist | |
DE112021005910T5 (de) | Schnellere abdeckungskonvergenz mit automatischer testparameterabstimmung bei eingeschränkter zufallsverifikation | |
DE60224378T2 (de) | Verfahren zur Erzeugung eines Testmusters für die Simulation und/oder Prüfung des Layouts einer integrierten Schaltung | |
DE102015102034A1 (de) | Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt | |
DE102021124445A1 (de) | Metamerkmal-trainingsmodelle für maschinenlernalgorithmen | |
DE102014113629B4 (de) | Verfahren zur Erzeugung eines modifizierten Layouts für Parameterextraktion | |
CH712988A1 (de) | Verfahren zum Durchsuchen von Daten zur Verhinderung von Datenverlust. | |
DE202016008006U1 (de) | Generierung von Integrationstests im Kleinen | |
DE112020002372T5 (de) | Schätzung einer realisierbarkeit von merkmalsvektoren | |
DE112021004092T5 (de) | Effiziente datenqualitätsanalyse in echtzeit | |
Liu et al. | Bayesian analysis of mixture structural equation models with an unknown number of components | |
EP1264253B1 (de) | Verfahren und anordnung zur modellierung eines systems | |
EP0909421B1 (de) | Verfahren und anordnung zur rechnergestützten ermittlung einer systemzusammenhangsfunktion | |
DE112019006193T5 (de) | Drag-and-drop-formatumwandlung zwischen anwendungen | |
WO2014012579A1 (de) | Verfahren, werkzeug, datenträger und programmbaustein zur beurteilung einer verlässlichkeit einer vorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R082 | Change of representative |
Representative=s name: HORN KLEIMANN WAITZHOFER PATENTANWAELTE PARTG , DE |
|
R081 | Change of applicant/patentee |
Owner name: MENTOR GRAPHICS (CANADA) LTD., OAKVILLE, CA Free format text: FORMER OWNER: SOLIDO DESIGN AUTOMATION INC., SASKATOON, SASKATCHEWAN, CA Owner name: MENTOR GRAPHICS (CANADA) ULC, OAKVILLE, CA Free format text: FORMER OWNER: SOLIDO DESIGN AUTOMATION INC., SASKATOON, SASKATCHEWAN, CA |
|
R082 | Change of representative |
Representative=s name: HORN KLEIMANN WAITZHOFER PATENTANWAELTE PARTG , DE |
|
R012 | Request for examination validly filed | ||
R081 | Change of applicant/patentee |
Owner name: MENTOR GRAPHICS (CANADA) ULC, OAKVILLE, CA Free format text: FORMER OWNER: MENTOR GRAPHICS (CANADA) LTD., OAKVILLE, ONTARIO, CA |
|
R082 | Change of representative |
Representative=s name: HORN KLEIMANN WAITZHOFER PATENTANWAELTE PARTG , DE |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0019000000 Ipc: G16Z0099000000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G16Z0099000000 Ipc: G06F0017500000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017500000 Ipc: G06F0030000000 |