DE102017117496A1 - Zell-Bewusste Fehlstellen-Charakterisierung und Wellenformanalyse mithilfe mehrerer Strobe-Punkte - Google Patents

Zell-Bewusste Fehlstellen-Charakterisierung und Wellenformanalyse mithilfe mehrerer Strobe-Punkte Download PDF

Info

Publication number
DE102017117496A1
DE102017117496A1 DE102017117496.6A DE102017117496A DE102017117496A1 DE 102017117496 A1 DE102017117496 A1 DE 102017117496A1 DE 102017117496 A DE102017117496 A DE 102017117496A DE 102017117496 A1 DE102017117496 A1 DE 102017117496A1
Authority
DE
Germany
Prior art keywords
computer
circuit
time
time characteristic
implemented method
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.)
Pending
Application number
DE102017117496.6A
Other languages
English (en)
Inventor
Ruifeng Guo
Brian Matthew Archer
William Albert Lloyd
Christopher Kevin Allsup
Xiaolei Cai
Kevin Chau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synopsys Inc
Original Assignee
Synopsys Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of DE102017117496A1 publication Critical patent/DE102017117496A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31718Logistic aspects, e.g. binning, selection, sorting of devices under test, tester/handler interaction networks, Test management software, e.g. software for test statistics or test evaluation, yield analysis
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E60/00Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Angegeben wird ein computerimplementiertes Verfahren zur Charakterisierung einer Schaltung. Das Verfahren umfasst das Empfangen, durch den Computer, von Daten, welche die Schaltung und zumindest eine Fehlstelle der Schaltung darstellen. Das Verfahren umfasst ferner das Simulieren, mithilfe des Computers, der Schaltung, um eine erste Zeitcharakteristik zu erhalten, und das Simulieren, mithilfe des Computers, der Schaltung mit der zumindest einen Fehlstelle, um eine zweite Zeitcharakteristik zu erhalten. Das Verfahren umfasst ferner das Identifizieren, mithilfe des Computers, eines Zusammenhangs zwischen zumindest einem Testvektor und der zumindest einen Fehlstelle gemäß der ersten Zeitcharakteristik, der zweiten Zeitcharakteristik, und einer Mehrzahl von Strobes, die während eines ersten Zeitintervalls im Zusammenhang mit dem zumindest einen Testvektor angelegt werden, wenn der Computer dazu veranlasst wird, die Schaltung zu charakterisieren.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft allgemein die Charakterisierung von Schaltungsfehlstellen, und insbesondere das automatische Charakterisieren von Schaltungsfehlstellen mithilfe einer Mehrzahl von Strobes (Englisch für Abtastimpulse) während der Standardzellencharakterisierung.
  • Das Layout von komplexen integrierten Schaltungen (ICs) kann aus einer Mehrzahl von Instanzen einfacherer Schaltungen, die als Standardzellen bezeichnet werden, aus einer Standardzellen-Bibliothek zusammengefügt werden. Standardzellen können auf Transistorebene mithilfe von Software-Werkzeugen der Entwurfsautomatisierung elektronischer Systeme (EDA) wie SPICE elektrisch charakterisiert werden, um die Leistung eines Ausgangssignals als Reaktion auf Eingangssignalübergänge an Eingängen der Standardzellen vorherzusagen. Jedoch werden Simulationswerkzeuge auf Logikebene anstelle einer Charakterisierung auf Transistorebene verwendet, wenn Schaltungen aufgrund längerer Simulationszeiten und/oder Lösungskonvergenzproblemen bei Simulation auf Transistorebene zu komplex sind.
  • Die Strukturgrößen von Entwürfen integrierter Schaltungen wurden stetig kleiner und die Komplexität der Prozesstechnologie hat gemäß dem Moor’schen Gesetz stetig zugenommen, was wiederum dazu führt, dass akzeptable Herstellungsgewinne für integrierte Schaltungen aufgrund von Herstellungsfehlstellen schwerer erzielbar sind. Deshalb wurde das Vorhersagen und/oder Charakterisieren der teils nahezu unmerklichen Wirkungen von unterschiedlichen Arten von Fehlstellen der Leistung von komplexen integrierten Schaltungen immer wichtiger.
  • ÜBERSICHT
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein Computer-implementiertes Verfahren zur Charakterisierung einer Schaltung angegeben. Das Verfahren umfasst das Empfangen, durch den Computer, von Daten, die die Schaltung und zumindest eine Fehlstelle der Schaltung darstellen. Das Verfahren umfasst ferner das Simulieren, mithilfe des Computers, der Schaltung, um eine erste Zeitcharakteristik (bzw. zeitabhängige Funktionskurve) zu erhalten, und das Simulieren, mithilfe des Computers, der Schaltung mit der zumindest einen Fehlstelle, um eine zweite Zeitcharakteristik zu erhalten. Das Verfahren umfasst ferner das Identifizieren, mithilfe des Computers, eines Zusammenhangs zwischen zumindest einem Testvektor und der zumindest einen Fehlstelle gemäß der ersten Zeitcharakteristik, der zweiten Zeitcharakteristik, und einer Mehrzahl von Strobes (Englisch für Abtastimpulse), die während eines ersten Zeitintervalls in Zusammenhang mit dem ersten Testvektor angelegt werden, wenn der Rechner dazu veranlasst wird, die Schaltung zu charakterisieren.
  • Gemäß einer Ausführungsform umfasst das Computer-implementierte Verfahren ferner ein Vergleichen der ersten Zeitcharakteristik mit der zweiten Zeitcharakteristik mithilfe des zumindest einen Testvektors.
  • Gemäß einer Ausführungsform umfasst das Identifizieren ferner ein Bestimmen, ob die zweite Zeitcharakteristik während jedem der Mehrzahl von Strobes im Wesentlichen statisch ist. Gemäß einer Ausführungsform umfasst das Identifizieren ferner das Bestimmen, ob die zweite Zeitcharakteristik einen ersten Übergang beinhaltet, der nach einem zweiten Übergang der ersten Zeitcharakteristik auftritt.
  • Gemäß einer Ausführungsform umfasst das Identifizieren ferner das Bestimmen, ob die zweite Zeitcharakteristik einen ersten Übergang beinhaltet, der vor einem zweiten Übergang der ersten Zeitcharakteristik auftritt. Gemäß einer Ausführungsform umfasst das Identifizieren ferner das Bestimmen, ob die zweite Zeitcharakteristik ein Zeitfehler ist. Gemäß einer Ausführungsform umfasst das Identifizieren das Bestimmen, ob die zweite Zeitcharakteristik ein statischer Fehler oder ein dynamischer Fehler ist, wenn die zweite Zeitcharakteristik als Zeitfehler bestimmt wurde.
  • Gemäß einer Ausführungsform umfasst das Empfangen ein Erzeugen, mithilfe des Computers, der Daten, die die zumindest eine Fehlstelle gemäß Daten darstellen, die zumindest ein Element der Schaltung darstellen. Gemäß zumindest einer Ausführungsform werden die Daten, die die zumindest eine Fehlstelle darstellen, mithilfe einer Eingabevorrichtung des Computers empfangen. Gemäß einer Ausführungsform ist die Schaltung eine Zelle einer Bibliothek einer Mehrzahl von Zellen.
  • Gemäß einer Ausführungsform umfasst das Empfangen ein Extrahieren aus einer Datendatei von zumindest einem Wert im Zusammenhang mit zumindest einem Parameter, der zur Initialisierung der Schaltungssimulation verwendet wird, die dazu verwendet wird, die erste Zeitcharakteristik oder die zweite Zeitcharakteristik zu erhalten. Gemäß einer Ausführungsform umfasst das Identifizieren ferner das Bestimmen einer Differenz einer Zeit im Zusammenhang mit der Mehrzahl von Strobes, der ersten Zeitcharakteristik, und der zweiten Zeitcharakteristik.
  • Gemäß einer Ausführungsform umfasst die Mehrzahl von Strobes einen ersten Strobe, der mit einem ersten Übergang der ersten Zeitcharakteristik im Zusammenhang steht, und einen zweiten Strobe, der mit einem zweiten Übergang der zweiten Zeitcharakteristik in Zusammenhang steht. Gemäß einer Ausführungsform umfasst das Identifizieren ferner das Assoziieren eines Werts eines Parameters, der die zumindest eine Fehlstelle gemäß einer Differenz in der Zeit im Zusammenhang mit der Mehrzahl von Strobes charakterisiert. Gemäß einer Ausführungsform ist die Differenz in der Zeit gleich der Differenz zwischen einer ersten Zeit in Zusammenhang mit dem ersten Strobe und einer zweiten Zeit in Zusammenhang mit dem zweiten Strobe.
  • Gemäß einer Ausführungsform umfasst das Empfangen das Erzeugen einer ersten Mehrzahl von Testvektoren, wobei der zumindest eine Testvektor in der ersten Mehrzahl von Testvektoren beinhaltet ist, die durch eine erste Anzahl aufgezählt wird, welche kleiner ist als eine zweite Anzahl, die eine zweite Mehrzahl von Testvektoren aufzählt, welche zumindest ein benachbartes Paar von Testvektoren beinhalten, die sich dadurch auszeichnen, dass sie einen Signalübergang für mehr als eines der Mehrzahl von Testsignalen der Schaltung gleichzeitig aufweisen.
  • Gemäß einer Ausführungsform umfasst die erste Mehrzahl von Testvektoren jede Kombination eines benachbarten Paars von Testvektoren, die sich dadurch auszeichnen, dass sie einen Signalübergang für einen Eingang von einer Mehrzahl von Eingangssignalen der Schaltung zur gleichen Zeit aufweisen. Gemäß einer Ausführungsform umfasst die erste Mehrzahl von Testvektoren kein benachbartes Paar von Testvektoren, die sich dadurch auszeichnen, dass sie einen Signalübergang für mehr als eines aus einer Mehrzahl von Eingangssignalen der Schaltung zur gleichen Zeit haben. Gemäß einer Ausführungsform umfasst das Identifizieren ferner ein Identifizieren eines Fehlers ausgewählt aus der Gruppe bestehend aus statischem Fehler und dynamischem Fehler während eines einzelnen Durchgangs durch das Computer-implementierte Verfahren gemäß einer ersten Mehrzahl von Testvektoren, die den zumindest einen Testvektor beinhalten.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein nicht-flüchtiges Computer-lesbares Speichermedium angegeben, das Anweisungen beinhaltet, die, wenn sie durch einen Computer ausgeführt werden, den Computer dazu veranlassen, Daten zu empfangen, welche die Schaltung und zumindest eine Fehlstelle der Schaltung darstellen, die Schaltung zu simulieren, um eine erste Zeitcharakteristik zu erhalten, und die Schaltung mit der zumindest einen Fehlstelle zu simulieren, um eine zweite Zeitcharakteristik zu erhalten. Die Anweisungen veranlassen den Computer ferner, einen Zusammenhang zu identifizieren zwischen zumindest einem Testvektor und der zumindest einen Fehlstelle gemäß der ersten Zeitcharakteristik, der zweiten Zeitcharakteristik, und einer Mehrzahl von Strobes, die während eines ersten Zeitintervalls angelegt werden, welches mit dem zumindest einen Testvektor in Zusammenhang steht, wenn der Computer dazu veranlasst wird, die Schaltung zu charakterisieren.
  • Gemäß einer Ausführungsform veranlassen die Anweisungen den Computer ferner, die erste Zeitcharakteristik mit der zweiten Zeitcharakteristik mithilfe des ersten Testvektors zu vergleichen.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung ist ein Computer betreibbar, Daten zu empfangen, welche die Schaltung und zumindest eine Fehlstelle der Schaltung darstellen, die Schaltung zu simulieren, um eine erste Zeitcharakteristik zu erhalten, und die Schaltung mit der zumindest einen Fehlstelle zu simulieren, um eine zweite Zeitcharakteristik zu erhalten. Das Computersystem ist ferner betreibbar, einen Zusammenhang zwischen zumindest einem Testvektor und der zumindest einen Fehlstelle in Zusammenhang mit der ersten Zeitcharakteristik, der zweiten Zeitcharakteristik, und einer Mehrzahl von Strobes, die während eines ersten Zeitintervalls angelegt werden, das mit dem zumindest einen Testvektor in Zusammenhang steht, zu identifizieren, wenn das Computersystem dazu veranlasst wird, die Schaltung zu charakterisieren.
  • Gemäß einer Ausführungsform ist das Computersystem ferner betreibbar, die erste Zeitcharakteristik mit der zweiten Zeitcharakteristik mithilfe des zumindest einen Testvektors zu vergleichen.
  • Weitere Ausführungsformen des nichtflüchtigen Computer-lesbaren Speichermediums und des Computersystems werden aus der Beschreibung der verschiedenen Ausführungsformen des Computer-implementierten Verfahrens ersichtlich.
  • Ein besseres Verständnis des Wesens und der Vorteile der Ausführungsformen der vorliegenden Erfindung kann mit Bezugnahme auf die folgende detaillierte Beschreibung und die beigefügten Zeichnungen gewonnen werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt vereinfachte beispielhafte Schritte bei dem Entwurf und der Herstellung einer integrierten Schaltung dar, welche Ausführungsformen der vorliegenden Erfindung nutzen können.
  • 2 stellt ein vereinfachtes beispielhaftes Ablaufdiagramm eines Computer-implementierten Verfahrens zur Charakterisierung einer Schaltung dar, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 stellt ein beispielhaftes Ablaufdiagramm für den Schritt des Empfangs von Daten des in 2 dargestellten Computer-implementierten Verfahrens dar, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4A stellt Daten dar, die ein beispielhaftes Schema einer guten Schaltung darstellen, welche Ausführungsformen der vorliegenden Erfindung verwenden können.
  • 4B stellt Daten dar, die ein beispielhaftes Schema einer kurzen Art von Fehlstelle darstellen, die in die in 4A dargestellte gute Schaltung eingebracht wird, um eine fehlerhafte Schaltung zu bilden, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4C stellt Daten dar, die ein beispielhaftes Schema einer offenen Art von Fehlstelle darstellen, welche in die in 4A dargestellte gute Schaltung eingebracht werden, um eine weitere fehlerhafte Schaltung zu bilden, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 stellt ein vereinfachtes beispielhaftes Zeitdiagramm gemäß Parametern dar, die aus der in 3 gezeigten Liberty (LIB) Datei extrahiert wurden, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 6 stellt ein beispielhaftes Ablaufdiagramm für den Schritt der Simulation der guten Schaltung wie in 2 dargestellt dar, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 7 stellt ein vereinfachtes beispielhaftes Zeitdiagramm für die simulierten Zeitcharakteristiken der guten Schaltung und der Schaltungen dar, in die Fehler eingebracht wurden, die jeweils in den 4A bis 4C dargestellt sind, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 8 stellt ein beispielhaftes Ablaufdiagramm für den Schritt der Simulierung einer Mehrzahl von fehlerhaften Schaltungen wie in 2 und 4B bzw. 4C dargestellt dar, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 9 stellt ein beispielhaftes Ablaufdiagramm für den Schritt der Identifizierung eines Zusammenhangs zwischen zumindest einem Testvektor und zumindest einer Fehlstelle, die in 2 dargestellt ist, dar, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 10 stellt ein beispielhaftes Ablaufdiagramm für den Schritt der Bestimmung, ob die Ausgangszeitcharakteristik ein Fehler ist und welche Art von Fehler wie in 9 dargestellt, dar, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 11 stellt ein beispielhaftes Blockdiagramm eines Computersystems dar, welches Ausführungsformen der vorliegenden Erfindung beinhalten kann.
  • DETAILLIERTE BESCHREIBUNG
  • 1 zeigt verschiedene Schritte 101A bei dem Entwurf und der Herstellung einer integrierten Schaltung. Das Verfahren beginnt mit einer Produktidee 100A, die mithilfe einer Software zur Entwurfsautomatisierung elektronischer Systeme (EDA) 110 verwirklicht werden kann. Aus dem fertigen Entwurf können Chips 170 vermittels Durchführung einer Herstellung 150 und Verpackungs- und Zusammenbauschritten 160 hergestellt werden. Ein beispielhafter Entwurfsablauf, bei dem eine EDA-Software 110 zum Einsatz kommt, ist nachstehend lediglich zum Zwecke der Veranschaulichung beschrieben. Beispielsweise kann ein tatsächlicher integrierter Schaltungsentwurf von einem Designer verlangen, die Entwurfsablaufschritte in einer anderen Reihenfolge als der unten beschriebenen Reihenfolge durchzuführen.
  • Bei dem Systemdesign 112 beschreibt ein Designer die zu implementierende Funktionalität. Der Designer kann ebenfalls eine Was-Wenn-Planung durchführen, um die Funktionalität zu verfeinern und die Kosten zu prüfen. Ferner kann bei diesem Schritt eine Hardware-Software-Architektur-Partitionierung erfolgen. Bei der Überprüfung des Entwurfs und der Funktionalitäten 114 kann ein Entwurf der Hardwarebeschreibungssprache (HDL) erzeugt und auf funktionale Genauigkeit überprüft werden.
  • Bei der Synthese und dem Entwurf 116 kann der HDL-Code in eine Netzliste übersetzt werden, die für die Zieltechnologie optimiert sein kann. Ferner können Tests entworfen und verwirklicht werden, um die fertigen Chips zu überprüfen. Bei der Überprüfung 118 der Netzliste kann die Netzliste auf die Übereinstimmung mit Zeitbeschränkungen und einer Entsprechung zu dem HDL-Code hin überprüft werden. Bei der Entwurfsplanung 120 kann ein Gesamtraumplan für den Chip konstruiert werden und auf Timing und Top-Level-Routing hin analysiert werden. Als nächstes können bei der physischen Verwirklichung 122 die Platzierung und das Routing durchgeführt werden.
  • Bei der Analyse und der Extraktion 124 kann die Schaltungsfunktionalität auf Transistorebene überprüft werden. Bei der physischen Verwirklichung 126 kann der Entwurf überprüft werden, um Probleme in Hinblick auf Funktion, Herstellung, Elektrifizierung oder Lithographie zu korrigieren. Bei der Auflösungsverbesserung 128 können geometrische Veränderungen an dem Layout durchgeführt werden, um die Herstellbarkeit des Entwurfs zu verbessern. Letztlich kann bei der Maskendatenherstellung 130 der Entwurf für die Herstellung von Masken freigegeben 140 werden, um fertige Chips herzustellen. Eine Doppelstrukturierungsverfahrenstechnik (DPT)- oder ein Mehrfachstrukturierungsverfahrenstechnik(MPT)-basiertes lithographisches Verfahren kann eingesetzt werden, um komplexe Entwurfsvorhaben oder Formen auf eine einzelne Schicht einer integrierten Schaltung mithilfe von zwei oder mehr separaten Masken mit höherer Strukturdichte zu drucken als der Strukturdichte, die mithilfe eines photolithografischen Einzelmasken-Druckverfahrens bereitgestellt werden. Die Ausführungsformen der vorliegenden Erfindung können beispielswiese bei den Schritten der physischen Überprüfung 126 oder der Teststrukturerzeugung oder der Logikdiagnose verwendet werden und eine Verbesserung erzielen.
  • Fehlstellen können mithilfe einer Charakterisierung an Standardzellen auf Transistorebene charakterisiert werden. Die Ergebnisse der Transistorebenen-Charakterisierung von Fehlstellen in Standardzellen können auf einen Simulator auf Logikebene unter Einsatz der sogenannten zellbewussten Fehlstellencharakterisierung überführt werden, um ein zellbewusstes Logiktestmodell zu erzeugen. Das zellbewusste Logiktestmodell kann dann durch ein Teststrukturerzeugungswerkzeug zur Erzeugung einer Teststruktur verwendet werden und/oder kann durch ein Fehlerdiagnosewerkzeug verwendet werden, um das Vorhandensein eines bestimmten Typs von Fehlfunktion in dem komplexen IC Chip zu identifizieren. Jedoch führte die aus dem Stand der Technik bekannte zellbewusste Fehlstellencharakterisierung zu einer begrenzten Genauigkeit mit Blick auf die Auswirkungen von Fehlstellen unterschiedlichen Schweregrads und mit Blick auf die Zeitgenauigkeit, wie durch die untenstehenden Beispiele veranschaulicht. Ferner erfordert die aus dem Stand der Technik bekannte zellbewusste Fehlstellencharakterisierung zwei getrennte Simulationsdurchgänge, um mit statischer und dynamischer Fehlstellencharakterisierung getrennt umzugehen, was beträchtliche Rechenressourcen erforderlich macht. Deshalb ist es wünschenswert, die Genauigkeit der zellbewussten Charakterisierung zu verbessern und gleichzeitig die für diese Charakterisierung benötigten Rechenressourcen zu verringern.
  • Gemäß Ausführungsformen der vorliegenden Erfindung wird eine automatisierte Technik angegeben, die eine Mehrzahl von Strobes (Englisch für Abtastimpulse) verwendet, um die Genauigkeit einer zellbewussten Fehlstellencharakterisierung zu verbessern, während sowohl die statischen als auch die dynamischen Schaltungszeitfehler, die während eines Simulationsdurchlaufs durch Herstellungsfehler verursacht werden, analysiert werden. 2 zeigt ein beispielhaftes High-Pegel Ablaufdiagramm eines Computer-implementierten Verfahrens 200 zur Charakterisierung einer Schaltung gemäß einer Ausführungsform der vorliegenden Erfindung. Das Computer-implementierte Verfahren 200 beginnt 205 mit dem Empfangen 210 von Daten, welche die Schaltung und zumindest eine Fehlstelle der Schaltung darstellen. Die Schaltung wird ohne jedwede Fehlstellen mithilfe einer SPICE Testumgebung unter Verwendung einer Mehrzahl von Strobe-Punkten simuliert 215, um eine Zeitcharakteristik zu erhalten, die das Ausgangssignal der Schaltung ohne Fehlstellen darstellt, welche nachfolgend auch als die „gute Schaltung“ bezeichnet wird. Die Schaltung wird mit zumindest einer Fehlstelle mithilfe der SPICE-Testumgebung unter Verwendung einer Mehrzahl von Strobe-Punkten simuliert 220, um eine Zeitcharakteristik zu erhalten, die das Ausgangssignal der Schaltung mit der Fehlstelle darstellt, nachfolgend auch als „fehlerhafte Schaltung“ bezeichnet. Die Schritte der Simulierung der Schaltung ohne und mit der Fehlstelle können in beliebiger Reihenfolge oder parallel durchgeführt werden. Es werden ebenfalls Einzelheiten angegeben, die erläutern, wie eine Mehrzahl von Fehlstellen unterschiedlichen Typs charakterisiert wird.
  • Als nächstes identifiziert 225 ein Computer-implementiertes Verfahren 200 einen Zusammenhang zwischen zumindest einem Testvektor zur Simulation auf Logikebene und der zumindest einen Fehlstelle gemäß der Zeitcharakteristik auf Transistorebene für die gute Schaltung, der Zeitcharakteristik auf Transistorebene für die fehlerhafte Schaltung, und einer Mehrzahl von Strobes, die während eines Zeitintervalls angelegt werden, das mit dem zumindest einen Testvektor in Zusammenhang steht, wenn der Computer dazu veranlasst wird, die Schaltung zu charakterisieren, wie untenstehend genauer beschrieben werden wird. Dann werden die Ergebnisse des Identifizierungsschritts dazu verwendet, eine Schreibzellen-Testmodell(CTM)-Datei zu schreiben 230, welche die Fehlstellen-Erfassungsinformationen beinhaltet. Nach dem Ende 235 bzw. dem Beenden des Verfahrens kann die CTM-Datei als Eingabe für ein Simulationstool auf Logikebene verwendet werden, um eine komplexe IC-Logik und Zeitcharakteristik unter dem Einfluss der Fehlstelle oder einer Mehrzahl von untenstehend beschriebenen Fehlstellen zu simulieren.
  • 3 zeigt ein beispielhaftes Ablaufdiagramm für den Schritt des Empfangens 210 von Daten des Computer-implementierten Verfahrens 200, wie in 2 dargestellt, gemäß einer Ausführungsform der vorliegenden Erfindung. Der Schritt des Empfangens 210 von Daten umfasst das Empfangen der SPICE Netzliste 305 sowie der SPICE Modelle 310, was es ermöglicht, die Schaltung zu einem späteren Zeitpunkt auf Transistorebene zu simulieren und charakterisieren.
  • 4A zeigt Daten, die ein beispielhaftes Schema einer guten Schaltung 400A darstellen, die Ausführungsformen der vorliegenden Erfindung nutzen kann, und die durch die SPICE Netzliste 305 und SPICE Modelle 310, dargestellt in 3, spezifiziert sein kann. In einer Ausführungsform kann die gute Schaltung 400A eine Zelle einer Standardzellbibliothek sein. In einer anderen Ausführungsform kann die gute Schaltung 400A eine Zelle einer Bibliothek einer Mehrzahl von Zellen sein, etwa eine Digitalbibliothekszelle und nicht nur Standardzellen. Beispielsweise kann die gute Schaltung eine Speicherschaltung sein, die auf Fehlstellen charakterisiert werden kann. In einem Beispiel fungiert die gute Schaltung 400A als ein einfaches logisches Zwei-Punkte UND-Gatter, das gemeinhin in einer Standardzellbibliothek vorhanden ist. Die gute Schaltung 400A kann PMOS Transistoren 405, 410, 425 sowie NMOS Transistoren 415, 420, 430 beinhalten. Die PMOS Transistoren 405, 410 sind jeweils mit ihrer Source mit Vdd verbunden, und jeweils mit ihrem Drain mit einem Knoten B verbunden, der wiederum mit den Gattern des CMOS Inverters, der mit dem PMOS Transistor 425 und NMOS Transistor 430 verbunden ist, verbunden ist. Die NMOS Transistoren 415, 420 sind in einem Stack verbunden, der in der Lage ist, Strom zwischen Knoten B und GND zu leiten. Der Eingang A1 ist mit den Gates des PMOS Transistors 405 und NMOS Transistors 415 verbunden. Der Eingang A2 ist mit den Gates des PMOS Transistors 410 und NMOS Transistors 420 verbunden. Der Ausgang X wird von dem CMOS Inverter getrieben, der mit dem PMOS Transistor 425 und dem NMOS Transistor 430 verbunden ist.
  • Immer dann, wenn entweder Eingang A1 oder Eingang A2 auf einem logischen Low-Pegel liegt oder wenn beide Eingänge Low sind, ist einer oder sind beide der NMOS Transistoren 415, 420 aus und einer der PMOS Transistoren 405, 410 ist an und zieht Knoten B nahezu auf die Versorgungsspannung Vdd und bewirkt, dass der CMOS Inverter, der mit dem PMOS Transistor 425 und NMOS Transistor 420 verbunden ist, den Ausgang X in Richtung Bezugspotential GND bzw. eines logischen Low-Pegels treibt. Nur wenn beide Eingänge A1 und A2 auf einem logischen High-Pegel liegen, schließen die PMOS Transistoren 405, 410, während die NMOS Transistoren 415, 420 einschalten und Knoten B nahezu auf GND ziehen und bewirken, dass der CMOS Inverter den Ausgang X auf einen logischen High-Pegel bzw. nahezu auf den Pegel von Vdd zieht, was es der guten Schaltung 400A ermöglicht, auf korrekte Weise als UND-Gatter zu wirken.
  • Unter nochmaliger Bezugnahme auf 3 kann das Empfangen 210 ferner das Empfangen von Einrichtungsdateien 315 von einer Nutzereingabevorrichtung des Computers umfassen. Die Einrichtungsdaten können dann verarbeitet 325 werden, um Nutzer-definierte Parameter wie etwa Strobe-Intervalle, Zeitgrenze, konstante Pinwerte, Nutzer-definierte Fehlstellen, und/oder dergleichen zu erhalten. In einer Ausführungsform können manche oder alle Parameter, die in den Einrichtungsdateien 315 spezifiziert sind, als Vorgabe- bzw. Standardwerte bereitgestellt werden, wodurch eine weitere Eingabe von der Nutzereingabevorrichtung des Computers nicht erforderlich ist. In einer Ausführungsform können Daten, die die Fehlstelle darstellen, mithilfe der Nutzereingabevorrichtung des Computers empfangen werden, um die Fehlstellendaten, die von dem Computer automatisch erzeugt werden, zu ersetzen und/oder zu ergänzen.
  • Das Empfangen 210 kann ferner das Empfangen von Initialisierungsdaten aus einer sogenannten LIB-Datei 320 umfassen, die dazu verwendet werden können, zumindest einen Wert zu extrahieren, der im Zusammenhang mit zumindest einem Parameter steht, der zur späteren Initialisierung der Schaltungssimulation verwendet wird, welche dazu eingesetzt wird, die Zeitcharakteristiken für die gute Schaltung und die fehlerhafte Schaltung zu erhalten. Die Parameter können eine Kombination der folgenden Parameter beinhalten: Zeit, Spannung, Temperatur, Lastkapazität, Taktflankenaktivierungstyp wie etwa bei steigender oder fallender Flanke, Art der Zelle wie beispielsweise Kombinationslogik, Latch, und/oder FlipFlop-Zelle, und/oder Pin-Funktion der Schaltung wie beispielsweise Taktung, Eingang/Ausgang, Leistung, oder Massepins.
  • 5 zeigt ein vereinfachtes beispielhaftes Zeitdiagramm 500 gemäß Parametern, die aus der LIB-Datei 320, wie in 3 dargestellt, extrahiert 330 werden, gemäß einer Ausführungsform der vorliegenden Erfindung. Unter Bezugnahme auf die 3, 4 und 5 zeigt das Zeitdiagramm 500 den Spannungswert V eines Eingangssignals entlang der Vertikalachse 502 als Funktion der Zeit T, die entlang der horizontalen Achse 504 aufgetragen ist.
  • Das Zeitdiagramm 500 zeigt ferner durch eine durchgezogene Linie einen Übergang 505 eines Eingangssignals, etwa A1 der guten Schaltung 400A, der von einem Spannungspegel logisch Low VOL 512 auf einen Spannungspegel VOH 513 logisch High getrieben wird, wobei die Werte für die Parameter VOL 512 und VOH 513 aus der LIB-Datei 320 extrahiert 330 werden können. In diesem Beispiel spezifiziert die LIB-Datei 320, dass Übergänge der logischen Pegel einfach bei einem Eingangsspannungspegel bei der Hälfte bzw. 50% 514 zwischen VOL 512 und VOH 513 stattfinden, jedoch können in anderen Ausführungsformen gesonderte VIL und VIH Spannungswerte alternativ für die Übergangspegel des logischen Pegels spezifiziert werden.
  • Der Übergang 505 kann mit einem Paar logischer Testvektoreingaben spezifiziert als „0, 1“ oder „0 bis 1“ assoziiert werden, wobei ein Vektorzeitintervall 515, nachfolgend auch als „Vektorintervall“ bezeichnet, mit einem Eingabetestvektor wie etwa „1“ assoziiert wird. Die .lib-Datei 320 kann ferner das Vektorintervall 515 spezifizieren, das ein „.lib Takt“ Zeitintervall 520 gefolgt im Anschluss von einem Zeitgrenz-Zeitintervall 525 beinhaltet. Das .lib Takt“ Zeitintervall 520 kann ein Eingangsanstiegszeitintervall 530, gefolgt von einem Zellverzögerungszeitintervall 535, und einem Übergangszeitintervall 540, welche ebenfalls durch die LIB-Datei 320 spezifiziert werden können, beinhalten.
  • Das Vektorintervall 515, „.lib Takt“ Zeitintervall 520, und Eingangsanstiegszeitintervall 530 können alle bei Beginn des Anstiegs des Übergangs 505 beginnen. Das Eingangsanstiegszeitintervall 530 endet, wenn der Übergang 505 50 % 514 Spannungspegel erreicht, zu welchem Zeitpunkt das Zellverzögerungszeitintervall 535 beginnen kann. Das Zellverzögerungszeitintervall 535 kann enden, wenn eine Ausgangszeitcharakteristik 510 der guten Schaltung 400A 50 % 514 Spannungspegel erreicht, zu welchem Zeitpunkt das Übergangszeitintervall 540 beginnt. Das „.lib Takt“ Zeitintervall 520 und das Übergangszeitintervall 540 können enden, wenn die Ausgangszeitcharakteristik 510 den Spannungspegel High VOH 513 erreicht, zu welchem Zeitpunkt das Zeitgrenzzeitintervall 525 beginnt.
  • Das Vektorzeitintervall 515 und das Zeitgrenzzeitintervall 525 enden beide, wenn der nächste Übergang des Eingangssignals A1 beginnen kann. Beispielsweise kann das nächste Vektorintervall 515‘ beginnen, wie dargestellt, wenn das Eingangssignal A1 von VOH 513 auf VOL 512 getrieben wird. Das nächste Vektorintervall 515‘ kann mit einem anderen Paar von logischen Testvektoreingaben spezifiziert als „1,0“ oder „1 bis 0“ wie in diesem Beispiel dargestellt in Verbindung stehen. In einer Ausführungsform können die Definitionen für den fallenden Übergang durch die .Lib-Datei 320 spezifiziert werden, wie oben für den steigenden Übergang analog beschrieben, oder in einer alternativen Ausführungsform in der .Lib-Datei 320 durch unterschiedliche Parameter als dem steigenden Übergang spezifiziert werden.
  • Es sei angemerkt, dass es viele mögliche Standardzell-Schaltungsarten gibt, die unterschiedliche Parameterwerte verwenden können, die in der .Lib-Datei 320 spezifiziert sind, beispielsweise aufgrund von Standardzellen, die in unterschiedlichen Spannungsdomänen oder unterschiedlichen Taktzeitanforderungen laufen können, um nur ein paar der Gründe zu nennen. Deshalb kann die Nutzung der .Lib-Datei 320, um die vielen und unterschiedlichen Initialisierungsparameter zur Simulation auf Transistorebene bereitzustellen, kann Fehler während der zellbewussten Fehlstellencharakterisierung im Wesentlichen vereinfachen und verhindern.
  • Unter nochmaliger Bezugnahme auf 3 kann das Empfangen 210 von Daten ferner das Nutzen der SPICE Netzliste 305, SPICE Modelle 310, verarbeiteter 325 Parameter, die von einer Nutzereingabevorrichtung empfangen werden, und des zumindest einen extrahierten 330 Parameters aus der Lib-Datei 320 umfassen, um Daten zu erzeugen 335, die die zumindest eine Fehlstelle aus einer Mehrzahl von Fehlstellen gemäß Daten darstellen, die zumindest ein Element der guten Schaltung 400A darstellen. In einer Ausführungsform, falls die Schaltungselementgröße nicht berücksichtigt werden muss, beinhaltet die gute Schaltung 400A in diesem Beispiel zwei Arten von Elementen: NMOS-Transistoren und PMOS Transistoren. In einer Ausführungsform kann jede Transistorart mit einer unterschiedlichen Mehrzahl von Fehlstellenarten in Verbindung stehen. Es sei angemerkt, dass andere Fehlstellenarten mit Schaltungselementen, die nicht vom Transistortyp sind, in Verbindung stehen können, beispielsweise ein Metall-Kurzschluss bzw. eine Metallunterbrechung.
  • In einer Ausführungsform können für jeden Typ von Transistorelement Daten in dem Schritt des Erzeugens 335 von Daten erzeugt werden, welche die Mehrzahl von in Tabelle 1 aufgeführten Fehlstellen darstellen. Die neun Transistor-bezogenen Fehlstellen, die in Tabelle 1 angeführt sind, und welche nicht zwangsläufig eine erschöpfende Auflistung aller Transistor-bezogenen Fehlstellen sind, zeigen, dass es viele Wege gibt, auf denen sich Fehlstellen auch für nur ein Schaltungselement manifestieren können. Deshalb kann die Anzahl von Kombinationen, bei der eine oder mehr Fehlstellen gleichzeitig in eine gute Schaltung eingeführt werden können, sehr groß sein, selbst für das einfache Beispiel der guten Schaltung 400A, was dazu führt, dass die automatisierte Fehlstellenerzeugung und Einbringung hoffentlich die Wirkung von Fehlstellen an Standardzellen besser charakterisieren kann. In einer alternativen Ausführungsform kann eine oder mehr der Mehrzahl der Fehlstellen über die Nutzereingabevorrichtung bereitgestellt werden. Tabelle 1
    Drain / Gate Kurzschluss
    Source / Gate Kurzschluss
    Drain / Source Kurzschluss
    Drain / Bulk Kurzschluss
    Source / Bulk Kurzschluss
    Gate / Bulk Kurzschluss
    Gate unterbrochen
    Source unterbrochen
    Drain unterbrochen
  • Unter nochmaliger Bezugnahme auf die 3 und 5 kann das Empfangen 210 von Daten ferner das Erzeugen 340 einer SPICE Testumgebung umfassen, einschließlich dem Einbringen von einer oder mehr aus der Mehrzahl von Fehlstellen, die in Tabelle 1 gelistet sind, und dem Initialisieren der SPICE Testumgebung mithilfe der Mehrzahl von Strobes S0 bis S9 pro Testvektorzeitintervall 515, um eine fehlerhafte Schaltung zu bilden. In einer Ausführungsform kann ein Strobe-Zeitintervall 550 und/oder ein anfänglicher Strobe-Zeitversatz 555 durch vorgegebene Standardwerte bereitgestellt werden. In einer alternativen Ausführungsform kann das Strobe-Zeitintervall 550 und/oder der anfängliche Strobe-Zeitversatz 555 über die Nutzereingabevorrichtung bereitgestellt werden. Zwei Beispiele der möglichen Mehrzahl von Fehlstellen und deren Auswirkungen auf die elektrischen Zeitcharakteristiken der guten Schaltung 400A werden untenstehend beschrieben.
  • 4B zeigt Daten, die ein beispielhaftes Schema eines Kurzschluss 435 Typs der Fehlstelle darstellen, die in die gute Schaltung 400A, welche in 4A dargestellt ist, eingebracht ist, um eine fehlerhafte Schaltung 400B zu bilden, gemäß einer Ausführungsform der vorliegenden Erfindung. 4B zeigt die gleichen Elemente und Funktionen wie in diejenigen aus 4A, mit den folgenden Ausnahmen. 4B zeigt, dass die fehlerhafte Schaltung 400B eine Drain/Bulk 435 Typ-Fehlstelle wie oben in Tabelle 1 angeführt beinhalten kann, die zwischen den Drain des NMOS Transistors 415 und GND eingebracht wird. (Es sei angemerkt, dass die Bulk-Verbindung des NMOS Transistors 415 mit dem Bezugspotential GND verbunden sein kann). Die den Kurzschluss 435 darstellenden Daten können durch einen Parameter eines Widerstands charakterisiert werden, der beispielsweise einen Wert von 10 KOhm haben kann. Der Kurzschluss 435 kann wie unten beschrieben einen früher ansteigenden Übergang von VOL nach VOH an Ausgang X bewirken.
  • Die 4C zeigt Daten, die ein beispielhaftes Schema eines Unterbrochen 440 Typs von Fehlstelle darstellen, welche in die gute Schaltung 400A wie in 4A dargestellt eingebracht wird, um eine andere fehlerhafte Schaltung 400C zu bilden, gemäß einer Ausführungsform der vorliegenden Erfindung. 4C zeigt die gleichen Elemente und Funktionen wie in 4A abgebildet, mit den folgenden Ausnahmen. 4C zeigt, dass die fehlerhafte Schaltung 400C eine Drain-unterbrochen 440 Typ Fehlstelle wie in Tabelle 1 angeführt enthalten kann, die in Reihe mit dem Drain des NMOS Transistors 420 eingebracht wird und zwischen dem Drain des NMOS Transistors 420 und der Source des NMOS Transistors 415 aufgeschaltet ist. Die den Unterbrochen 440 darstellenden Daten können durch einen Parameter eines Widerstands charakterisiert sein, der beispielsweise einen Wert von 100 KOhm haben kann. Der Kurzschluss 435 kann einen verzögerten ansteigenden Übergang von VOL nach VOH an Ausgang X wie unten beschrieben bewirken.
  • Unter nochmaliger Bezugnahme auf die 3 und 4A umfasst das Empfangen 210 von Daten ferner das Erzeugen 345 einer kompakten Testvektormenge beinhaltend den zumindest einen Testvektor und beinhaltend jede Kombination eines unmittelbar benachbarten Paars von Testvektoren mit einem Signalübergang für gleichzeitig maximal einen Eingang einer Mehrzahl von Eingangssignalen einer guten Schaltung 400A. Die Tabelle 2 listet ein Beispiel einer nicht-komprimierten Testvektormenge für die gute Schaltung 400A auf. Die erste Spalte von links in Tabelle 2 listet eine Vektornummer für jeden Testvektor auf und zählt insgesamt 24 Testvektoren auf. Tabelle 2
    Vektornummer Eingang A1 Eingang A2
    1 0 0
    2 0 0
    3 0 1
    4 0 0
    5 0 0
    6 1 0
    7 0 1
    8 0 1
    9 0 0
    10 0 1
    11 0 1
    12 1 1
    13 1 0
    14 1 0
    15 1 1
    16 1 0
    17 1 0
    18 0 0
    19 1 1
    20 1 1
    21 0 1
    22 1 1
    23 1 1
    24 1 0
  • Die zweite und dritte Spalte von links in Tabelle 2 listet die jeweiligen logischen Eingangswerte für Eingang A1 und Eingang A2 einer guten Schaltung 400A auf. In dieser Tabelle 2 Ausführungsform können Eingangsübergange zwischen manchem unmittelbar benachbarten Vektor wie etwa bei Vektornummern (2, 3) und (8, 9) auftreten, während andere unmittelbar benachbarte Vektorpaare wie etwa Vektornummern (1, 2) und (7, 8) keinen Eingangsübergang, weder an Eingang A1 oder an Eingang A2 bereitstellen, um es dem elektrischen Verhalten der Zelle zu ermöglichen, sich zu stabilisieren, um die zellbewusste Fehlstellen-Charakterisierungsgenauigkeit zu verbessern.
  • Ein Signalübergang für maximal einen Eingang gleichzeitig von Eingangssignal A1 und Eingangssignal A2 der guten Schaltung 400A kann ein „robuster Übergang“ genannt werden, wie durch die unmittelbar benachbarten Vektorpaare bei Vektornummern (2, 3) und (8, 9) bereitgestellt. Robuste Übergänge sind hilfreicher als unrobuste Übergänge, weil es schwierig ist, die Auswirkung einer bestimmten eingebrachten Fehlstelle auf das elektrische Verhalten der Schaltung damit in Verbindung zu bringen, wenn sich mehr als ein Eingang der Schaltung verändert. Die Menge aller möglichen robusten Übergänge soll wünschenswerterweise in der Testvektormenge beinhalten, um die Wirkung der Fehlstelle auf die Schaltung vollständig zu charakterisieren und sind in Tabelle 2 enthalten, wie durch unmittelbar benachbarte Vektorpaare mit Vektornummern bereitgestellt (2, 3), (5, 6), (8, 9), (11, 12), (14, 15), (17, 18), (20, 21), und (23, 24).
  • Trotz allem beinhaltet die nicht-komprimierte Testvektormenge, die in Tabelle 2 aufgeführt ist, alle robusten Übergänge und stellt Stabilisierungsperioden zur besseren Charakterisierung bereit. Jedoch beinhaltet die nicht-komprimierte Testvektormenge eine Mehrzahl von nicht-robusten Übergängen, wie beispielsweise durch die unmittelbar benachbarten Vektorpaare mit Vektornummern (6, 7) und (18, 19) bereitgestellt. Deshalb enthält die nicht-komprimierte Testvektormenge Testvektoren, die darüber hinausgehen oder unerwünscht sind. Mit anderen Worten beinhaltet die Mehrzahl an nicht-komprimierten Testvektoren mindestens ein benachbartes Paar von Testvektoren, die sich dadurch auszeichnen, dass sie gleichzeitig einen Signalübergang für mehr als eines aus einer Mehrzahl von Eingangssignalen der Schaltung haben, also nicht-robuste Übergänge.
  • Tabelle 3 listet ein Beispiel einer kompakten Testvektormenge für die gute Schaltung 400A, welche die nicht-robusten Übergänge beseitigt, die in Tabelle zu finden sind, aber weiterhin alle robusten Übergänge beinhaltet. Mit anderen Worten beinhaltet die Mehrzahl von kompakten Testvektoren kein benachbartes Paar von Testvektoren, das sich dadurch auszeichnet, dass es gleichzeitig einen Signalübergang für mehr als eines aus einer Mehrzahl von Eingangssignalen der guten Schaltung 400A aufweist, also nicht-robuste Übergänge. Die Spaltenbezeichnung sind für Tabelle 3 und Tabelle 2 identisch, jedoch ist die Anzahl an Testvektoren, die in Tabelle 3 aufgezählt werden 17 Testvektoren, was deutlich weniger ist als die Anzahl von 24 Testvektoren, die in Tabelle aufgezählt werden. Mit anderen Worten wird die Mehrzahl von kompakten Testvektoren durch eine Nummer aufgezählt, z.B. 17, was kleiner ist als die Nummer, z.B. 24, die die Mehrzahl von nicht-kompakten Testvektoren aufzählt. Tabelle 3
    Vektornummer Eingang A1 Eingang A2
    1 0 0
    2 0 0
    3 1 0
    4 1 0
    5 1 1
    6 1 1
    7 0 1
    8 0 1
    9 1 1
    10 1 1
    11 1 0
    12 1 0
    13 0 0
    14 0 0
    15 0 1
    16 0 1
    17 0 0
  • Das Verringern der Länge der Testvektormenge verbessert die Berechnungszeit für jede Kombination von Fehlstelle, die zur Schaltungscharakterisierung ausgewählt wird. Ferner wird gezeigt, dass nur eine kompakte Testvektormenge benötigt wird, um eine zellbewusste Fehlstellencharakterisierung sowohl für statische als auch dynamische Fehlstellen in nur einer Berechnung durchzuführen, wodurch die Berechnungsressourcen im Vergleich zu bekannten Techniken, bei denen die nicht-komprimierten Testvektoren in zwei Berechnungen verwendet werden, zur Erfassung statischer Fehlstellen in einer Berechnung und zur Erfassung dynamischer Fehlstellen in einer anderen Berechnung weiter verringert werden. Es wird untenstehend gezeigt werden, dass die eine kompakte Testvektormenge ausreichend ist, um sowohl statische als auch dynamische Fehlstellen in einem Berechnungsdurchlauf zu erfassen.
  • Die kompakte Testvektormenge, die in Tabelle 3 gelistet ist, kann wie folgt erzeugt werden. Es sei angemerkt, dass die nicht-kompakte Testvektormenge, die in Tabelle 2 gelistet ist, in aufeinanderfolgende 3-Tupel von drei unmittelbar benachbarten sequentiellen Testvektoren unterteilt werden kann, beispielsweise Vektornummern (1, 2, 3), (4, 5, 6),–(22, 23, 24). Der erste Vektor in jedem 3-Tupel von aufeinanderfolgenden Testvektoren stellt ein Stabilisierungszeitintervall wie oben beschrieben dar, etwa die Vektornummern 1, 4,–22. Der zweite und dritte aufeinanderfolgende Testvektor in jedem 3-Tuppel von aufeinanderfolgenden Testvektoren, beispielsweise Vektornummern (2, 3), (5, 6),–,(23, 24) stellt das Paar von unmittelbar benachbarten Testvektoren dar, die mit einem robusten Übergang an Ausgang X in Zusammenhang stehen.
  • Die kompakte Testvektormenge, die in Tabelle 3 gelistet ist, kann erzeugt werden durch Auswählen von einem der aufeinanderfolgenden 3-Tupel von drei unmittelbar benachbarten sequentiellen Testvektoren in der nichtkompakten Testvektormenge, die in Tabelle 2 gelistet ist, beispielsweise durch Auswählen der Vektornummern (4, 5, 6) als erste Testvektoren in der kompakten Testvektormenge, also Vektornummer (1, 2, 3) in der kompakten Testvektormenge. Dann wird ein anderes sequentielles 3-Tupel der drei unmittelbar benachbarten sequentiellen Testvektoren in der nicht-kompakten Testvektormenge, gelistet in Tabelle 2, ausgewählt, die mit den gleichen Testvektorelementen wie die Testvektorelemente in dem allerletzten Testvektor der teilweise erzeugten kompakten Testvektormenge, etwa Vektornummern (13, 14, 15) aus Tabelle 2, die mit Testvektorelementen 1, 0 beginnen. Dann werden der zweite und dritte sequentielle Testvektor in dem aktuell ausgewählten 3-Tupel von sequentiellen Testvektoren der nichtkompakten Testvektormenge, beispielsweise Vektornummern (14, 15) an die kompakte Testvektormenge angehängt, um die Vektornummern (4, 5) der kompakten Testvektormenge wie in Tabelle 3 gelistet zu bilden.
  • Es sei angemerkt, dass die Testvektorelemente 1, 0 sozusagen „wiederverwendet“ werden, indem das zuvor ausgewählte sequentielle 3-Tupel der drei unmittelbar benachbarten sequentiellen Testvektoren mit dem ausgewählten sequentiellen 3-Tupel der drei unmittelbar benachbarten sequentiellen Testvektoren überlagert wird. Das obige jüngste Auswahlverfahren wird wiederholt, bis alle der sequentiellen 3-Tupel der drei unmittelbar benachbarten sequentiellen Testvektoren in der nichtkompakten Testvektormenge, die in Tabelle 2 gelistet ist, verwendet wurden, was zu der kompakten Testvektormenge führt, die in Tabelle 3 gelistet ist.
  • Es sei angemerkt, dass die kompakte Testvektormenge, die in Tabelle 3 gelistet ist, alle robusten Übergänge beinhaltet und Stabilisierungsperioden zur besseren Charakterisierung bereitstellt, jedoch die kompakte Testvektormenge keine nicht-robusten Übergänge beinhaltet. Mit anderen Worten beinhaltet die Mehrzahl von kompakten Testvektoren jede Kombination eines benachbarten Paars von Testvektoren, die sich dadurch auszeichnen, dass sie gleichzeitig einen Signalübergang für nur einen Eingang einer Vielzahl von Eingangssignalen der Schaltung haben, also jede Kombination von robusten Übergängen.
  • 6 zeigt ein beispielhaftes Ablaufdiagramm für den Schritt des Simulierens 215 der guten Schaltung 400A, wie in 2 dargestellt, gemäß einer Ausführungsform der vorliegenden Erfindung. Der Schritt des Simulierens 215 der guten Schaltung 400A umfasst das Auswählen 605 des ersten unmittelbar benachbarten Testvektorpaars der kompakten Testvektormenge, die den ersten Übergang ermöglicht, z.B. Vektornummern (2, 3) aus Tabelle 3. Optional kann der allererste Vektor, also Vektornummer (1) aus Tabelle 3, vor Vektornummern (2, 3) ausgewählt werden, um eine Stabilisierungszeit für die gute Schaltung 400A wie oben beschrieben bereitzustellen.
  • Dann simuliert 610 die SPICE Testumgebung die gute Schaltung 400A ohne Fehlstellen, um eine assoziierte Ausgangszeitcharakteristik mithilfe der Mehrzahl von Strobes S0 bis S9 pro Testvektorzeitintervall 515 und mithilfe des ausgewählten unmittelbar benachbarten Testvektorpaars der kompakten Testvektormenge zu erhalten, z.B. Vektornummern (2, 3) aus Tabelle 3, oder optional Auswählen der ersten drei Vektornummern (1, 2, 3) aus Tabelle 3.
  • 7 zeigt ein vereinfachtes beispielhaftes Zeitdiagramm für die simulierten Zeitcharakteristiken 700 der guten Schaltung 400A und der fehlerhaften Schaltungen 400B, 400C, die in den 4A bis 4C dargestellt sind, gemäß einer Ausführungsform der vorliegenden Erfindung. Die simulierte Zeitcharakteristik 700 beinhaltet die gleichen Zeitdefinitionen und Wellenformen, wie in 5 dargestellt, mit den folgenden Ausnahmen.
  • Als Beispiel und um die Ausführungsformen besser zu erläutern stellt die simulierte Zeitcharakteristik 700 Details bereit, die mit dem zweiten Testvektor des Testvektorpaars in Zusammenhang stehen, das für einen positiv verlaufenden Übergang von VOL zu VOH des Ausgangs X der guten Schaltung 400A und der fehlerhaften Schaltung 400B verantwortlich ist.
  • Jedoch sei darauf hingewiesen, dass das erste Paar von ausgewählten Testvektoren einen Übergang erzeugen kann oder nicht, oder gar keinen Übergang erzeugen kann, wie in dem Beispiel der ersten drei Vektornummern (1, 2, 3) aus Tabelle 3, die auf der guten Schaltung 400A laufen. Man muss voranspringen um Vektornummern (4, 5) aus Tabelle 3 auszuwählen, um einen positiv verlaufenden Übergang an Ausgang X zu erhalten. Dennoch wird ein Fachmann die Vektorpaare, die für die Arten bzw. Typen von Übergängen oder Nichtübergängen verantwortlich sind, die nicht der Übergang sind, etwa ein negativ verlaufender Übergang, analog zu dem positiv verlaufenden Übergang verstehen. Dementsprechend beinhaltet die simulierte Zeitcharakteristik 700 beispielhaft eine Ausgangszeitcharakteristik 510 von Ausgang X der guten Schaltung 400A.
  • Unter nochmaliger Bezugnahme auf die 6 bis 7 umfasst der Schritt des Simulierens 215 der guten Schaltung 400A ferner das Loggen 615 eines logischen Werts, also 0 oder 1, im Zusammenhang mit einem Strobe-Zeitpunkt für jeden unterschiedlichen der Mehrzahl von Strobes S0 bis S9 und mit der simulierten Ausgangszeitcharakteristik 510, wie in Tabelle 4 angeführt, in der Reihe, die links von „gut“ markiert ist. Der Strobe-Zeitpunkt kann sich beziehen auf den Beginn des Vektorzeitintervalls 515, lediglich um die Ausführungsformen besser zu erläutern. Es sei angemerkt, dass die Ausgangszeitcharakteristik 510 während des Intervalls zwischen dem Beginn des Vektorzeitintervalls 515 und während S0 bis S3 unter dem logischen 50% Übergangsgrenzwert bleibt. Dementsprechend ist der für die simulierte Ausgangszeitcharakteristik 510 während S0 bis S3 geloggte logische Wert gleich logisch 0. Der für die simulierte Ausgangszeitcharakteristik 510 geloggte logische Wert während S4 bis S9 logisch 1 ist, weil dann die Ausgangszeitcharakteristik 510 über den logischen 50 % Übergangsgrenzwert steigt. Tabelle 4
    Strobe Identifizierung S0 S1 S2 S3 S4 S5 S6 S7 S8 S9
    Strobe Zeitpunkt (ns) 3 7 11 15 19 23 27 31 35 39
    Bleibt bei 1 1 1 1 1 1 1 1 1 1 1
    Schnell 0 0 0 1 1 1 1 1 1 1
    Gut 0 0 0 0 1 1 1 1 1 1
    Langsam 0 0 0 0 0 0 1 1 1 1
    Bleibt bei 0 0 0 0 0 0 0 0 0 0 0
  • Als nächstes bestimmt der Schritt des Simulierens 215 der guten Schaltung 400A, ob das ausgewählte unmittelbar benachbarte Testvektorpaar aus der kompakten Testvektormenge das Letzte aus der Mehrzahl von unmittelbar benachbarten Testvektorpaaren ist. Falls das ausgewählte unmittelbar benachbarte Testvektorpaar aus der kompakten Testvektormenge nicht das Letzte aus der Mehrzahl von unmittelbar benachbarten Testvektorpaaren ist, dann kann das nächste unmittelbar benachbarte Testvektorpaar, das sich aus der kompakten Testvektormenge ergibt, ausgewählt werden 625 und das Simulieren 610, Loggen 615 und Auswählen 625 kann wiederholt werden, bis das Letzte aus der Mehrzahl von unmittelbar benachbarten Testvektorpaaren simuliert 625 wurde und als geloggt 615 resultiert.
  • Es sei angemerkt, dass in einer alternativen Ausführungsform der Auswahlvorgang für die Testvektoren die Eingangswellenform für die SPICE Transistorpegelsimulation 610 in einem ununterbrochenen Durchgang mithilfe der gesamten Liste von kompakten Testvektoren in Tabelle 3 einstellen kann, um eine stetige Eingangzeitwellenform mit einer Mehrzahl von Transistoren für jeden Eingang A1 und Eingang A2 der guten Schaltung 400A zu erzeugen. Es sei ferner angemerkt, dass zehn logische Datenwerte, die mit den Strobes S0 bis S9 im Zusammenhang stehen, beispielweise einer aus der logischen Datenreihe in Tabelle 4, für jeden Testvektor in einer Ausführungsform oder für jedes unmittelbar benachbarte Testvektorpaar der kompakten Testvektormenge in einer alternativen Ausführungsform geloggt werden können.
  • 8 zeigt ein beispielhaftes Ablaufdiagramm für den Schritt des Simulierens 220 einer Mehrzahl von fehlerhaften Schaltungen 400B, 400C, wie in den 2 und 4B bis 4C dargestellt, gemäß einer Ausführungsform der vorliegenden Erfindung. Der Schritt des Simulierens 220 der Mehrzahl von fehlerhaften Schaltungen 400B, 400C beinhaltet das Auswählen 805 von einer aus der Mehrzahl von Fehlstellen, um eine solche als fehlerhafte Schaltung 400B mit Kurzschluss 435 Typ Fehlstelle zu simulieren. Die Mehrzahl an Fehlstellen kann manche oder alle der Fehlstellen enthalten, die in Tabelle 1 für manche oder alle der Elemente gelistet sind, die in der guten Schaltung 400B beinhaltet sind. Unter gleichzeitiger Bezugnahme auf die 6 und 8 sind die nächsten paar Schritte Wählen 810 des ersten unmittelbar benachbarten Testvektorpaars, Simulieren 815, Loggen 820, Bestimmen, ob 825 das ausgewählte unmittelbar benachbarte Testvektorpaar aus der kompakten Testvektormenge das Letzte ist, und Wählen 830 des nächsten unmittelbar benachbarten Testvektorpaars ähnlich den jeweiligen Schritten 605, 610, 615, 620, und 625, oben beschrieben unter Bezugnahme auf 6, abgesehen von den folgenden Punkten.
  • Wenn die Letzten der Testvektorpaare für eine gewählte Fehlstelle simuliert wurden, umfasst der Schritt des Simulierens 220 einer Mehrzahl von fehlerhaften Schaltungen 400B, 400C das Bestimmen, ob 835 die Letzte aus der Mehrzahl von Fehlstellen ausgewählt wurde, und falls dies nicht der Fall ist, wird die nächste Fehlstelle aus der Mehrzahl von Fehlstellen ausgewählt 840 und die Schritte 810 bis 830 wiederholt, bis die Letzten der Fehlstellen simuliert wurden. Wiederum sei angemerkt, dass in einer alternativen Ausführungsform der Auswahlvorgang für die Testvektoren die Eingangszeitwellenform für die SPICE Transistorebenensimulationen 815 in einem ununterbrochenen Zusammenhang mithilfe der gesamten Liste von kompakten Testvektoren in Tabelle 3 einstellen kann, um eine stetige Eingangszeitwellenform mit einer Mehrzahl von Transistoren für Eingang A1 sowie Eingang A2 der fehlerhaften Schaltungen 400B, 400C zu erzeugen.
  • Unter nochmaliger Bezugnahme auf die 7 bis 8 und Tabelle 4 beinhalten die simulierten Zeitcharakteristiken 700 die gleichen Zeitdefinitionen und Wellenformen, wie in 5 dargestellt, mit den folgenden weiteren Ausnahmen. Die simulierten Zeitcharakteristiken 700 beinhalten eine Ausgangszeitcharakteristik 705, die mit dem Ausgang X der fehlerhaften Schaltung 400B in Zusammenhang steht. Während des Schritts des Loggens 820 kann eine Mehrzahl von logischen Werten geloggt werden, wie in der Reihe gelistet, die mit „Schnell“ in Tabelle 4 bezeichnet ist, weil der steigende Übergang früher ist und einen logischen Wert 1 bis Strobe S3 bei 15 ns Strobe-Zeit erreicht, anstelle von bis Strobe 4 bei 19 ns Strobe-Zeit, wie für die gute Schaltung 400A angegeben. Mit anderen Worten beinhaltet die Mehrzahl von Strobes S0 bis S9 einen Strobe S4, der mit einem normalen Übergang der Ausgangszeitcharakteristik 510 von Ausgang X der guten Schaltung 400A in Zusammenhang steht, und einen Strobe S3, der mit einem früheren Fehlerübergang der Ausgangszeitcharakteristik 705 von Ausgang X der fehlerhaften Schaltung 400B in Zusammenhang steht.
  • Ferner, aufgrund der Verwendung der Mehrzahl von Strobes, kann die Simulation 815 eine Differenz in der Zeit 715 von 4 ns bestimmen, die mit einer Mehrzahl von Strobes S3, S4, Ausgangszeitcharakteristik 510, und Ausgangszeitcharakteristik 705 in Zusammenhang steht. Die Differenz in der Zeit 715 kann ein sehr hilfreiches Werkzeug sein, wie untenstehend beschrieben werden wird, ist jedoch nicht unter Verwendung von zellbewusster Fehlstellencharakterisierungstechniken erreichbar, die nur einen Strobe während der Simulation einsetzen können.
  • Die simulierten Zeitcharakteristiken 700 beinhaltet eine Ausgangszeitcharakteristik 710 in Zusammenhang mit Ausgang X der fehlerhaften Schaltung 400C. Während des Schritts des Loggens 820 kann eine Mehrzahl von logischen Werten geloggt werden, wie in der Reihe aufgeführt, die mit „Langsam“ in Tabelle 4 bezeichnet ist, weil der steigende Übergang verzögert ist und einen logischen Wert 1 erreicht bis Strobe S6 bei 27 ns Strobe-Zeit, anstelle von bis Strobe S4 bei 19 ns Strobe-Zeit, wie für die gute Schaltung 400A angegeben. In diesem Beispiel kann die Simulation 815 eine Differenz in der Zeit 717 von 8ns bestimmen, die mit einer Mehrzahl von Strobes S4, S6, Ausgangszeitcharakteristik 510, und Ausgangszeitcharakteristik 710 für die fehlerhafte Schaltung 400C in Zusammenhang steht.
  • Falls der Widerstandswert einer Fehlstelle extrem genug ist, also niedriger oder höher als ein Fehlstellenwiderstand, der es der Schaltung ermöglichen würde, einen Übergang an dem Ausgang zu erzeugen, kann ein statischer Fehler auftreten. Eine Ausgangszeitcharakteristik 720 ist ein Beispiel einer statischen Fehlstelle, die mit einer „Bleibt bei 1“ Fehlstelle in Zusammenhang steht und als logisch 1 für alle S0 bis S9 geloggt 820 wird. Eine Ausgangszeitcharakteristik 725 ist ein Beispiel einer statischen Fehlstelle, die mit einer „bleibt bei 0“ Fehlstelle in Zusammenhang steht und als logische 0 für alle S0 bis S9 geloggt 820 wird.
  • 9 zeigt ein beispielhaftes Ablaufdiagramm für den Schritt des Identifizierens 225 eines Zusammenhangs zwischen dem zumindest einen Testvektor und zumindest einer Fehlstelle, wie in 2 dargestellt, gemäß einer Ausführungsform der vorliegenden Erfindung. Unter gleichzeitiger Bezugnahme auf die 4A, 4B, 7 und 9, kann der Schritt des Identifizierens 225 eines Zusammenhangs das Lesen 905 der logischen Werte beinhalten, also 0 oder 1, in Zusammenhang mit einer Strobe-Zeit für jeden unterschiedlichen aus der Mehrzahl von Strobes S0 bis S9 in Zusammenhang mit der guten Schaltung 400A ohne Fehlstellen, wie in der Reihe in Tabelle 4 aufgeführt, die mit „gut“ beschriftet ist.
  • Parallel oder in jedweder Reihenfolge beim Lesen 905 kann der Schritt des Identifizierens 225 eines Zusammenhangs ferner das Lesen 910 der logischen Werte umfassen, also 0 oder 1, in Zusammenhang mit einer Strobe-Zeit für jeden unterschiedlichen aus der Mehrzahl von Strobes S0 bis S9 im Zusammenhang mit fehlerhaften Schaltungen 400B, 400C, für jede unterschiedliche aus der Mehrzahl von Fehlstellen, bzw. Kurzschluss 435, Unterbrechen 440, beispielsweise in den Reihen aufgeführt, die jeweils mit „schnell“, „langsam“ in Tabelle 4 beschriftet sind, und für jedes unterschiedliche aus der Mehrzahl von benachbarten Testvektorpaaren aus der Menge von kompakten Testvektoren wie in Tabelle 3 gelistet.
  • Die obigen logischen Fehlstellendaten können aufgezählt werden mit 10 Strobes ×2 Fehlstellen ×8 robuste unmittelbar benachbarte Testvektorpaare, was zu 160 Logikdateneinträgen insgesamt führt. Alternativ können in einer anderen Ausführungsform, die Daten anstatt für Paare von Testvektoren für jeden Testvektor geloggt werden, und die logischen Fehlstellendaten können aufgezählt werden mit 10 Strobes ×2 Fehlstellen ×17 Testvektoren der kompakten Testvektormenge, was zu insgesamt 340 Logikdateneinträgen führt. Wie oben beschrieben hängt die Anzahl von Fehlstellen, wenn vollständig aufgezählt für eine zellbewusste Fehlstellencharakterisierung, vor allem von der Anzahl an Transistoren in der guten Schaltung ab und kann eine viel größere logische Datenmenge erzeugen im Vergleich zu nur den beiden Fehlstellentypbeispielen, die für die fehlerhaften Schaltungen 400B, 400C beschrieben werden.
  • Als nächstes kann die Ausgangszeitcharakteristik 510 der guten Schaltung 400A verglichen 915 werden mit der Ausgangszeitcharakteristik 705 oder 710 der jeweiligen fehlerhaften Schaltungen 400B, 400C unter Verwendung von zumindest einem Testvektor der Menge von kompakten Testvektoren an jedem einzelnen aus der Mehrzahl von Strobes S0 bis S9, was für jedes einzelne aus der Mehrzahl von benachbarten Testvektorpaaren oder für jeden Testvektor wiederholt wird, und für jeden einzelnen aus der Mehrzahl von Fehlstellen, die in Tabelle 1 aufgeführt sind, und mit jeder Schaltung in Zusammenhang stehen, die fehleranfällig ist, wiederholt wird.
  • Als nächstes wird bestimmt, ob 920 die Ausgangszeitcharakteristik 705 bzw. 710 ein Zeitfehler ist, z.B. die logischen Werte in Zusammenhang mit den Strobes S0 bis S9 für die fehlerhafte Schaltung nicht mit den logischen Werten in Zusammenhang mit den Strobes S0 bis S9 für die gute Schaltung übereinstimmen, und, falls dies der Fall ist, wird dann bestimmt, ob es sich bei der Ausgangszeitcharakteristik 705 bzw. 710 um einen statischen Fehler oder um einen dynamischen Fehler handelt. 10 zeigt ein beispielhaftes Ablaufdiagramm für den Schritt des Bestimmens 920, ob die Ausgangszeitcharakteristik 705 bzw. 710 ein Fehler ist und welche Art von Fehler, wie in 9 dargestellt, gemäß einer Ausführungsform der vorliegenden Erfindung. Unter gleichzeitiger Bezugnahme auf die 4B bis 4C, 7 und 10 und Tabelle 4 kann der Schritt des Bestimmens 920 das Erfassen 1005 des Fehlers in der Ausgangszeitcharakteristik 705 bzw. 710 umfassen, und dann das Bestimmen, ob 1010 ein Grenzwert auf logischer Ebene, beispielsweise 50 % überschritten wird, und falls dies der Fall ist, wird bestimmt, ob 1015 die Ausgangszeitcharakteristik 705 bzw. 710 einen Übergang beinhalten, der vor oder nach einem Übergang der Ausgangszeitcharakteristik 510 auftritt.
  • Falls die Ausgangszeitcharakteristik 705 bzw. 710 keinen Übergang beinhaltet, der vor oder nach einem Übergang der Ausgangszeitcharakteristik 510 erfolgt, wird bestimmt, ob 1020 der Zeitfehler in der Ausgangszeitcharakteristik 705 bzw. 710 wiederholbar ist. Das bedeutet, dass Schritt 1015 bestimmt, ob die Ausgangszeitcharakteristik 710 einen Zeitübergang von Ausgang X für die fehlerhafte Schaltung 400C beinhaltet, der nach einem Zeitübergang der Ausgangszeitcharakteristik 510 der guten Schaltung 400A auftritt, oder bestimmt, ob die Ausgangszeitcharakteristik 705 einen Zeitübergang von Ausgang X für die fehlerhafte Schaltung 400B beinhaltet, der vor einem Zeitübergang der Ausgangszeitcharakteristik 510 der guten Schaltung 400A stattfindet.
  • Falls der Zeitfehler in der Ausgangszeitcharakteristik 705 bzw. 710 wiederholbar ist, wird bestimmt 1025 dass der Zeitfehlertyp in der Ausgangszeitcharakteristik 705 bzw. 710 ein dynamischer Zeitfehler ist und die damit in Zusammenhang stehende Fehlstelle, z.B. Kurzschluss 435 bzw. Unterbrechung 440, eine Fehlstelle dynamischen Typs ist. Als nächstes wird ein Wert assoziiert 1030, z.B. 100 KOhm, eines Parameters, beispielsweise des Widerstands, der die dynamische Wirkung charakterisiert, beispielsweise Unterbrechung 440, gemäß einer Differenz der Zeit, beispielsweise Zeit 717, die mit der Mehrzahl von Strobes S4, S6 assoziiert ist. Die Differenz in der Zeit, beispielsweise Zeitdifferenz 717, ist gleich der Differenz zwischen einer Strobe-Zeit in Zusammenhang mit Strobe S4, z.B. 19 ns (aus Tabelle 4), und einer Strobe-Zeit in Zusammenhang mit Strobe S6, beispielsweise 27 ns. Deshalb ist die Zeitdifferenz, beispielsweise die Zeitdifferenz 717, gleich 27 – 19 = 8 ns.
  • Unter Berücksichtigung eines anderen Beispiels, bei dem der Wert des Widerstands für die Unterbrechung 440 auf 200 KOhm erhöht wird und mithilfe der oben beschriebenen Ausführungsformen bestimmt wird, dass der Übergang von Ausgangszeitcharakteristik 710 weiter verzögert wird, um so den logischen 50% – Grenzwert kurz vor Strobe S8 zu steigen. Dann beträgt die Zeitdifferenz 717 gleich 35 – 19 = 16 ns, wodurch ein Modell zwischen dem Grad bzw. der Schwere der Fehlstelle und dem Zeitverhalten der Schaltung begründet wird. Deshalb ist es mithilfe der hier beschriebenen Ausführungsformen nun möglich, sehr viel genauere Informationen zu erlangen, um Herstellungsfehler zu diagnostizieren, als dies bei der zellbewussten Fehlstellencharakterisierung mithilfe eines einzelnen Strobes möglich ist.
  • Falls in Schritt 1010 bestimmt wird, dass ein Grenzwert auf logischer Ebene, beispielsweise 50 %, nicht überschritten wird, dann wird bestimmt, ob 1040 es eine Musterabhängigkeit gibt, also die Ausgangszeiteigenschaft 705 bzw. 710 Ergebnis einer Änderung gemäß dem Eingangsvektor der kompakten Vektormenge ist. Falls es keine Musterabhängigkeit gibt, sich also das Ausgangszeiteigenschaft 705 bzw. 710 Ergebnis nicht in Abhängigkeit von dem Eingangsvektor der kompakten Vektormenge verändert, dann wird bestimmt, ob 1045 der Zeitfehler in der Ausgangszeitcharakteristik 705 bzw. 710 wiederholbar ist. Falls der Zeitfehler wiederholbar ist, wird bestimmt 1050, dass die Ausgangszeitcharakteristik 705 bzw. 710 während jeder der Mehrzahl von Strobes S0 bis S9 im Wesentlichen statisch ist und die damit im Zusammenhang stehende Fehlstelle eine Fehlstelle statischen Typs ist. In diesem Zusammenhang bedeutet im Wesentlichen statisch, dass die Ausgangszeitcharakteristik für Ausgang X während einem der Mehrzahl von Strobes S0 bis S9 entweder nie über den Pegel des logischen Grenzwerts, der aus der Lib-Datei extrahiert wurde, gestiegen ist oder unter diesen Grenzwert gefallen ist. Dementsprechend identifiziert das Verfahren während eines einzelnen Durchgangs durch das Computer-implementierte Verfahren in Abhängigkeit von der Mehrzahl von kompakten Testvektoren einen Zeitfehler und/oder einen Fehlstellentyp, bei dem es sich um einen statischen Fehler und/oder einen dynamischen Fehler handelt, was die Berechnungszeit und/oder Ressourcen verringert im Vergleich zu bekannten Verfahren, bei denen ein Charakterisierungsdurchlauf zur Identifizierung nur statischer Fehler und ein weiterer separater Charakterisierungsdurchlauf zur Identifizierung nur dynamischer Fehler eingesetzt wird.
  • Statische Fehlstellen können ferner in zwei Arten von statischen Fehlstellentypen klassifiziert werden, „bleibt bei 1“ und „bleibt bei 0“. Die simulierten Zeitcharakteristiken 700 beinhalten ferner die Ausgangszeitcharakteristik 720, die in eine „bleibt bei 1“-Typ statische Fehlstelle klassifiziert und/oder mit dieser/n in Zusammenhang steht, und Ausgangszeitcharakteristik 725, die in eine „bleibt bei 0“-Typ statische Fehlstelle klassifiziert wird bzw. mit dieser in Zusammenhang steht. Tabelle 4 zeigt die logischen Werte und Strobe-Zeit-Informationen für „bleibt bei 1“ und „bleibt bei 0“-Typ einer statischen Fehlstelle, wie durch die obigen Ausführungsformen aufgezeichnet.
  • Falls in Schritt 1015 bestimmt wird, dass die Ausgangszeitcharakteristik 705 bzw. 710 keinen Übergang beinhaltet, der vor oder nach einem Übergang der Ausgangszeitcharakteristik 510 stattfindet, oder falls bei Schritt 1020 oder 1045 bestimmt wird, dass der Fehler in der Ausgangszeitcharakteristik 705, 710, 720, 725 nicht wiederholbar ist, kann die Fehlstelle erfasst 1035 werden als ein inkonsistenter aber manchmal gültiger Fehler.
  • Unter nochmaliger Bezugnahme auf 9, nach dem Bestimmen und Klassifizieren der Zeitfehlstellen, kann der Schritt des Identifizierens 225 eines Zusammenhangs ferner das Schreiben 230 an eine CTM-Datei und Einbinden von Fehlstelleninformationen für jede einzelne der Mehrzahl von Fehlstellen beinhalten, falls Zeitfehler erkannt wurden. Falls ein statischer Fehler erkannt wird, können die Daten, die mit der statischen Fehlstelle in Zusammenhang stehen und assoziierte Testvektoren zur Erfassung der statischen Fehlstelle in die CTM Dateien eingebunden werden. Falls ein dynamischer Fehler erfasst wird, können Daten, die mit der dynamischen Fehlstelle in Zusammenhang stehen und assoziierte Testvektoren zur Erfassung der dynamischen Fehlstelle in die CTM Datei eingebunden werden. Die CTM Datei kann als Eingabe für ein anderes Werkzeug zur Logiksimulation eingesetzt werden, das zur Simulation des logischen Verhaltens einer großen Mehrzahl von Standardzellen oder selbst einer ganzen integrierten Schaltung gleichzeitig verwendet wird, welche den Herstellungsfehlern, die durch die oben beschrieben Ausführungsformen beschrieben wurden, unterliegen.
  • Ein Beispiel einer CTM Datei ist untenstehend lediglich zu Referenzwecken mit Zeilennummern versehen, für jede vorstehende Zeile der Datei.
    Figure DE102017117496A1_0002
    Figure DE102017117496A1_0003
    Figure DE102017117496A1_0004
  • Unter gleichzeitiger Bezugnahme auf die obige CTM-Datei-Liste und die 4B, 4C, entspricht D464 dem Kurzschluss 435 und D595 entspricht der Unterbrechung 440. Beispielsweise gibt die CTM-Dateiliste oben an, dass die Fehlstelle D595 eine Fehlstelle vom Unterbrechungstyp ist in Zeile 20 und 100 K Ohm verantwortlich für einen dynamischen Zeitfehler in Zeile 21 entspricht. Die CTM-Datei Liste oben gibt ferner an, dass die Fehlstelle D464 eine dynamische Fehlstelle ist, die durch die Vektoren „A1 = F, A2 = 2“ und „A1 = 1, A2 = F“ erfasst wird, wie in Zeile 37 bzw. 38 angegeben. Die Fehlstelle 595 wird durch die Vektoren „A1 = R, A2 = 1“ und „A1 = 1, A2 = R“ erfasst, wie bei Zeilennummern 35 und 36 angegeben.
  • 11 ist ein beispielhaftes Blockdiagramm eines Computersystems 1100, welches Ausführungsformen der vorliegenden Erfindung umfassen kann. 11 ist lediglich beispielhaft für eine Ausführungsform, in der die vorliegende Erfindung umfasst ist, und beschränkt den Schutzbereich der Erfindung, wie in den Ansprüchen angegeben, nicht. Ein Fachmann würde Variationen, Modifikationen, und Alternativen erkennen. In einer Ausführungsform beinhaltet das Computersystem 1100 typischerweise einen Bildschirm 1110, einen Computer 1120, Nutzerausgabevorrichtungen 1130, Nutzereingabevorrichtungen 1140, eine Kommunikationsschnittstelle 1150, und dergleichen.
  • Wie in 11 gezeigt, kann der Computer 1120 einen Prozessor(en) 1160 beinhalten, der mit einer Reihe von Peripheriegeräten über ein Bus-Subsystem 1190m kommuniziert. Diese Peripheriegeräte können Nutzerausgabevorrichtungen 1130, Nutzereingabevorrichtungen 1140, Kommunikationsschnittstelle 1150, und ein Speichersubsystem, beispielsweise einen RAM 1170 oder eine Festplatte 1180, beinhalten.
  • Die Nutzereingabevorrichtungen 1140 umfassen jede mögliche Art von Vorrichtungen und Mechanismen zur Eingabe von Informationen an den Computer 1120. Diese können eine Tastatur, ein Keypad, einen berührungsempfindlichen Bildschirm bzw. Touchscreen, der in einer Anzeige eingebaut ist, Audioeingabevorrichtungen wie Spracherkennungssysteme, Mikrofone, und andere Arten von Eingabevorrichtungen umfassen. In verschiedenen Ausführungsformen sind Nutzereingabevorrichtungen 1130 typischerweise als Computermaus, Trackball, Track-Pad, Joystick, Drahtlos-Fernsteuerung, Zeichen-Tablet, Sprachbefehlssystem, Eye-Tracking-System, und dergleichen ausgebildet. Die Nutzereingabevorrichtungen 1140 ermöglichen es einem Nutzer typischerweise, Objekte, Icons, Text, und dergleichen, die auf dem Monitor 1110 auftauchen, über einen Befehl wie etwa einen Klick auf einen Button oder dergleichen auszuwählen.
  • Die Nutzerausgabevorrichtungen 1140 beinhalten alle möglichen Typen von Vorrichtungen und Mechanismen zur Ausgabe von Informationen von dem Computer 1120. Diese können eine Anzeige (z.B. einen Monitor 1110), nicht-visuelle Anzeigen wie Audioausgabevorrichtungen etc. beinhalten.
  • Die Kommunikationsschnittstelle 1150 stellt eine Schnittstelle zu anderen Kommunikationsnetzwerken und Vorrichtungen bereit. Die Kommunikationsschnittstelle 1150 kann als Schnittstelle zum Empfangen von Daten von und Senden von Daten an andere Systeme dienen. Ausführungsformen der Kommunikationsschnittstelle 1150 beinhalten typischerweise eine Ethernet Karte, ein Modem (Telefon, Satellit, Kabel, ISDN), eine (A)DSL-Einheit, eine FireWire Schnittstelle, USB Schnittstelle, und dergleichen. Beispielsweise kann die Kommunikationsschnittstelle 1150 an ein Computernetzwerk, einen FireWire Bus, oder dergleichen gekoppelt werden. In anderen Ausführungsformen können Kommunikationsschnittstellen 1150 physisch auf der Hauptplatine des Computers 1120 integriert sein, und können ein Softwareprogramm, wie etwa Soft-DSL, oder dergleichen sein.
  • In verschiedenen Ausführungsformen kann das Computersystem 1100 auch Software beinhalten, die Kommunikation über ein Netzwerk wie etwa HTTP, TCP/IP, RTP/RTSP Protokolle und dergleichen ermöglicht. In alternativen Ausführungsformen der vorliegenden Erfindung kann auch andere Kommunikationssoftware und Übertragungsprotokolle verwendet werden, beispielsweise IP, UDP, oder dergleichen. In manchen Ausführungsformen beinhaltet der Computer 1120 einen oder mehr XEON Mikroprozessor(en) von Intel als Prozessor(en) 1160. Ferner, in einer Ausführungsform, beinhaltet der Computer 1120 ein UNIX-basiertes Betriebssystem.
  • Der RAM 1170 und die Festplatte 1180 sind Beispiele für dinghafte bzw. physische Medien, die eingerichtet sind, Daten wie etwa Ausführungsformen der vorliegenden Erfindung zu speichern, einschließlich ausführbaren Computercode, menschenlesbaren Code, oder dergleichen. Andere Typen von Medien umfassen Disketten, entnehmbare Festplatten, optische Speichermedien wie CD-ROMs, DVDs, und andere Var-Codes, Halbleiterspeicher wie Flash-Speicher, nichtflüchtige ROMs, batterieversorgte flüchtige Speicher, Netzwerkspeichervorrichtungen, und dergleichen. RAM 1170 und Festplatte 1180 können eingerichtet sein, die grundlegende Programmierung und Datenkonstrukte zu speichern, welche die Funktionalität der vorliegenden Erfindung bereitstellen.
  • Softwarecode-Module und Anweisungen, welche die Funktionalität der vorliegenden Erfindung bereitstellen, können im RAM 1170 und dem Plattenlaufwerk 1180 gespeichert werden. Diese Softwaremodule können von Prozessoren 1160 ausgeführt werden. RAM 1170 und Plattenlaufwerk 1180 können ein Repository zum Speichern von Daten bereitstellen, die gemäß der vorliegenden Erfindung verwendet werden.
  • RAM 1170 und Plattenlaufwerk 1180 können eine Reihe von Speichern wie einen Haupt-RAM zur Speicherung von Anweisungen und Daten während der Programausführung und einen ROM, in dem feststehende nichtflüchtige Anweisungen gespeichert werden, beinhalten. RAM 1170 und Plattenlaufwerk 1180 können ein Dateispeicher-Subsystem beinhalten, welche eine persistente (nichtflüchtige) Speicherung für Programm- und Datendateien bereitstellt. RAM 1170 und Plattenspeicher 1180 können auch entfernbare Speichersysteme beinhalten, etwa einen entnehmbaren Flash-Speicher.
  • Das Bus-Subsystem 1190 stellt einen Mechanismus bereit, um die verschiedenen Bauteile und Teilsysteme des Computers 1120 wie beabsichtigt miteinander kommunizieren zu lassen. Obgleich das Bus-Subsystem 1190 schematisch als einzelner Bus dargestellt ist, können bei einzelnen Ausführungsformen des Bus-Subsystems mehrere Busse zum Einsatz kommen.
  • 11 ist eine Veranschaulichung eines Computersystems, das in der Lage ist, die vorliegende Erfindung zu verkörpern. Es ist für einen Fachmann ersichtlich, dass viele andere Hardware- und Software-Ausgestaltungen zur Verwendung mit der vorliegenden Erfindung denkbar sind. Beispielsweise kann der Computer ein Desktop Computer, ein tragbarer Computer, ein Computer, der in einem Computerrack eingerichtet wird, oder eine Ausgestaltung als Tablet sein. Zudem kann der Computer eine Reihe von vernetzten Computern sein. Ferner wird die Nutzung anderer Mikroprozessoren angedacht, etwa PentiumTM oder ItaniumTM Mikroprozessoren; OpteronTM oder AthlonXPTM Mikroprozessoren von AMD, Inc., und dergleichen. Ferner können andere Arten von Betriebssystemen angedacht werden, wie Windows®, Windows XP®, Windows NT®, oder dergleichen der Microsoft Corporation, Solaris von Sun Microsystems, LINUX, UNIX, und dergleichen. In noch anderen Ausführungsformen können die oben beschriebenen Techniken auf einem Chip oder einer Hilfsprozessor-Platine implementiert werden.
  • Verschiedene Ausführungsformen der vorliegenden Erfindung können in Form von Logik in Software oder Hardware oder einer Kombination von Software und Hardware implementiert werden. Die Logik kann in einem Computer-lesbaren oder maschinenlesbaren nichtflüchtigen Speichermedium als eine Menge von Anweisungen gespeichert werden, die eingerichtet sind, einen Prozessor eines Computersystems anzuweisen, eine Reihe von Schritten durchzuführen, die in Ausführungsformen der vorliegenden Erfindung beschrieben werden. Die Logik kann einen Teil eines Computerprogrammprodukts bilden, das eingerichtet ist, eine Informationsverarbeitungsvorrichtung anzuweisen, eine Reihe von Schritten durchzuführen, die in den Ausführungsformen der vorliegenden Erfindung offenbart sind. Auf Grundlage der Offenbarung und den hier bereitgestellten Lehren wird ein Fachmann andere Wege und/oder Verfahren zur Implementierung der vorliegenden Erfindung erkennen.
  • Die hier beschriebenen Datenstrukturen und Code können teilweise oder vollständig auf einem Computer-lesbaren Speichermedium und/oder einem Hardware-Modul und/oder einer Hardware-Vorrichtung gespeichert werden. Ein Computer-lesbares Speichermedium beinhaltet, ohne hierauf beschränkt zu sein, einen flüchtigen Speicher, nicht-flüchtigen Speicher, magnetische oder optische Speichervorrichtungen wie etwa Plattenlaufwerke, Magnetbänder, CDs, DVDs, oder andere Medien, die derzeit bekannt sind oder noch entwickelt werden, die in der Lage sind, Code und/oder Daten zu speichern. Vorliegend beschriebene Hardwaremodule oder -vorrichtungen umfassen, ohne jedoch hierauf beschränkt zu sein, Anwendungs-spezifische integrierte Schaltungen (ASICs), Feld-programmierbare Gate-Arrays (FPGAs), dedizierte oder geteilte Prozessoren, und/oder andere Hardwaremodule oder Vorrichtungen, die nicht bekannt sind oder später entwickelt wurden.
  • Die in der vorliegenden Schrift beschriebenen Prozesse und Verfahren können vollständig oder teilweise als Code und/oder Daten gespeichert in einem Computer-lesbaren Speichermedium oder einer Computer-lesbaren Vorrichtung verkörpert sein, so dass wenn ein Computersystem den Code und/oder die Daten ausliest, das Computersystem die zugehörigen Verfahren und Prozesse durchführt. Die Verfahren und Prozesse können auch teilweise oder vollständig in Hardwaremodulen oder -vorrichtungen verkörpert sein, so dass wenn die Hardwaremodule oder -vorrichtungen aktiviert werden, sie die zugehörigen Verfahren und Prozesse durchführen. Die in der vorliegenden Schrift offenbarten Verfahren und Prozesse können mithilfe einer Kombination aus Code, Daten und Hardwaremodulen- oder Vorrichtungen verkörpert werden.
  • Die obenstehenden Beschreibungen von Ausführungsformen der vorliegenden Erfindung sind beispielhaft und nicht beschränkend. Auch können ähnliche Prinzipien, wie bezüglich Sperren und/oder Flops (Floating Point Operations Per Second) auf andere sequentielle Elemente logischer Schaltungen angewendet werden. Andere Modifikationen und Variationen werden einem Fachmann ersichtlich und sollen als vom Schutzumfang der anhängigen Ansprüche umfasst definiert sein.

Claims (19)

  1. Computer-implementiertes Verfahren zur Charakterisierung einer Schaltung, das Verfahren umfassend: Empfangen, durch den Computer, von Daten, welche die Schaltung und zumindest eine Fehlstelle der Schaltung darstellen; Simulieren, mithilfe des Computers, der Schaltung, um eine erste Zeitcharakteristik zu erhalten; Simulieren, mithilfe des Computers, der Schaltung mit der zumindest einen Fehlstelle, um eine zweite Zeitcharakteristik zu erhalten; und Identifizieren, mithilfe des Computers, eines Zusammenhangs zwischen zumindest einem Testvektor und der zumindest einen Fehlstelle gemäß der ersten Zeitcharakteristik, der zweiten Zeitcharakteristik, und einer Vielzahl von Strobes, die während eines ersten Zeitintervalls angelegt werden, welches in Zusammenhang mit dem zumindest einen Testvektor steht, wenn der Computer dazu veranlasst wird, die Schaltung zu charakterisieren.
  2. Computer-implementiertes Verfahren nach Anspruch 1, ferner umfassend das Vergleichen der ersten Zeitcharakteristik mit der zweiten Zeitcharakteristik mithilfe des zumindest einen Testvektors.
  3. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Identifizieren ferner ein Bestimmen umfasst, ob die zweite Zeitcharakteristik während jedem der Vielzahl von Strobes im Wesentlichen statisch ist.
  4. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Identifizieren ferner ein Bestimmen umfasst, ob die zweite Zeitcharakteristik einen ersten Übergang beinhaltet, der nach einem zweiten Übergang der ersten Zeitcharakteristik auftritt.
  5. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Identifizieren ferner ein Bestimmen umfasst, ob die zweite Zeitcharakteristik einen ersten Übergang beinhaltet, der vor einem zweiten Übergang der ersten Zeitcharakteristik auftritt.
  6. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Identifizieren ferner ein Bestimmen umfasst, ob die zweite Zeitcharakteristik ein Zeitfehler ist.
  7. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Identifizieren ferner ein Bestimmen umfasst, ob die zweite Zeitcharakteristik ein statischer Fehler oder ein dynamischer Fehler ist, wenn die zweite Zeitcharakteristik als Zeitfehler bestimmt wird.
  8. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Empfangen ein Erzeugen, mithilfe des Computers, der Daten umfasst, welche die zumindest eine Fehlstelle gemäß Daten darstellen, die zumindest ein Element der Schaltung darstellen.
  9. Computer-implementiertes Verfahren nach Anspruch 1, wobei die Schaltung eine Zelle einer Bibliothek einer Vielzahl von Zellen ist.
  10. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Identifizieren ferner das Bestimmen einer Differenz der Zeit im Zusammenhang mit der Vielzahl von Strobes, der ersten Zeitcharakteristik, und der zweiten Zeitcharakteristik umfasst.
  11. Computer-implementiertes Verfahren nach Anspruch 1, wobei die Vielzahl von Strobes einen ersten Strobe im Zusammenhang mit einem ersten Übergang der ersten Zeitcharakteristik und einen zweiten Strobe im Zusammenhang mit einem Übergang der zweiten Zeitcharakteristik umfasst.
  12. Computer-implementiertes Verfahren nach Anspruch 1, wobei das identifizieren ferner ein Assoziieren eines Werts eines Parameters, der die zumindest eine Fehlstelle kennzeichnet, gemäß einer Differenz der Zeit im Zusammenhang mit der Vielzahl von Strobes umfasst.
  13. Computer-implementiertes Verfahren nach Anspruch 12, wobei die Differenz der Zeit gleich der Differenz zwischen einer ersten Zeit in Zusammenhang mit dem ersten Strobe und einer zweiten Zeit im Zusammenhang mit dem zweiten Strobe ist.
  14. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Empfangen ein Erzeugen einer ersten Vielzahl von Testvektoren umfasst, wobei der zumindest eine Testvektor in der ersten Vielzahl von Testvektoren beinhaltet ist, welche durch eine erste Nummer aufgezählt werden, die kleiner ist als eine zweite Nummer, die eine zweite Vielzahl von Testvektoren aufzählt, welche zumindest ein benachbartes Paar von Testvektoren beinhaltet, die sich dadurch auszeichnen, dass sie gleichzeitig einen Signalübergang für mehr als eines aus einer Vielzahl von Eingangssignalen der Schaltung haben.
  15. Computer-implementiertes Verfahren nach Anspruch 14, wobei die erste Vielzahl von Testvektoren jede Kombination eines benachbarten Paars von Testvektoren beinhaltet, die sich dadurch auszeichnen, dass sie gleichzeitig einen Signalübergang für einen Eingang einer Vielzahl von Eingangssignalen der Schaltung aufweisen.
  16. Computer-implementiertes Verfahren nach Anspruch 14, wobei die erste Vielzahl von Testvektoren kein benachbartes Paar von Testvektoren beinhaltet, die sich dadurch auszeichnen, dass sie gleichzeitig einen Signalübergang für mehr als eines aus einer Vielzahl von Eingangssignalen der Schaltung aufweisen.
  17. Computer-implementiertes Verfahren nach Anspruch 1, wobei das Identifizieren ferner ein Identifizieren eines Fehlers ausgewählt aus der Gruppe bestehend aus statischem Fehler und dynamischem Fehler während eines einzelnen Durchgangs durch das computerimplementierte Verfahren gemäß einer ersten Vielzahl von Testvektoren, die den zumindest einen Testvektor beinhalten, umfasst.
  18. Nichtflüchtiges Computer-lesbares Speichermedium aufweisend Anweisungen, die, wenn sie durch einen Computer ausgeführt werden, den Computer dazu veranlassen: Daten zu empfangen, welche die Schaltung und zumindest eine Fehlstelle der Schaltung darstellen; die Schaltung zu simulieren, um eine erste Zeitcharakteristik zu erhalten; die Schaltung mit der zumindest einen Fehlstelle zu simulieren, um eine zweite Zeitcharakteristik zu erhalten; und einen Zusammenhang zwischen zumindest einem Testvektor und der zumindest einen Fehlstelle gemäß der ersten Zeitcharakteristik, der zweiten Zeitcharakteristik, und einer Vielzahl von Strobes, die während eines ersten Zeitintervalls im Zusammenhang mit dem zumindest einen Testvektor angelegt werden, zu identifizieren, wenn der Computer dazu veranlasst wird, die Schaltung zu charakterisieren.
  19. Computersystem, welches betreibbar ist, um: Daten zu empfangen, welche die erste Schaltung und zumindest eine Fehlstelle der Schaltung darstellen; die Schaltung zu simulieren, um eine erste Zeitcharakteristik zu erhalten; die Schaltung mit der zumindest einen Fehlstelle zu simulieren, um eine zweite Zeitcharakteristik zu erhalten; und einen Zusammenhang zwischen zumindest einem Testvektor und der zumindest einen Fehlstelle gemäß der ersten Zeitcharakteristik, der zweiten Zeitcharakteristik, und einer Vielzahl von Strobes, die während eines ersten Zeitintervalls im Zusammenhang mit dem zumindest einen Testvektor angelegt werden, zu identifizieren, wenn das Computersystem dazu veranlasst wird, die Schaltung zu charakterisieren.
DE102017117496.6A 2016-08-05 2017-08-02 Zell-Bewusste Fehlstellen-Charakterisierung und Wellenformanalyse mithilfe mehrerer Strobe-Punkte Pending DE102017117496A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/230,079 2016-08-05
US15/230,079 US10515167B2 (en) 2016-08-05 2016-08-05 Cell-aware defect characterization and waveform analysis using multiple strobe points

Publications (1)

Publication Number Publication Date
DE102017117496A1 true DE102017117496A1 (de) 2018-03-15

Family

ID=61069561

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017117496.6A Pending DE102017117496A1 (de) 2016-08-05 2017-08-02 Zell-Bewusste Fehlstellen-Charakterisierung und Wellenformanalyse mithilfe mehrerer Strobe-Punkte

Country Status (5)

Country Link
US (1) US10515167B2 (de)
KR (1) KR101991393B1 (de)
CN (1) CN107688694B (de)
DE (1) DE102017117496A1 (de)
TW (1) TWI732909B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528692B1 (en) * 2017-11-07 2020-01-07 Synopsis, Inc. Cell-aware defect characterization for multibit cells
CN113126481A (zh) * 2019-12-31 2021-07-16 钟国诚 控制目标装置及用于控制可变物理参数的方法
US11379649B2 (en) * 2020-01-31 2022-07-05 Synopsys, Inc. Advanced cell-aware fault model for yield analysis and physical failure analysis
CN116973736B (zh) * 2023-09-22 2023-12-19 悦芯科技股份有限公司 一种基于fail周期的ATE测试方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247165B1 (en) 1998-03-31 2001-06-12 Synopsys, Inc. System and process of extracting gate-level descriptions from simulation tables for formal verification
US7194668B2 (en) * 2003-04-11 2007-03-20 Advantest Corp. Event based test method for debugging timing related failures in integrated circuits
EP1480227A1 (de) * 2003-05-22 2004-11-24 Koninklijke Philips Electronics N.V. Test von integrierten Schaltungen mit Fehler-Wörterbuch
WO2007050799A2 (en) 2005-10-24 2007-05-03 Clearshape Technologies, Inc. Incorporating manufacturing variations in the analysis of integrated circuit design
CN102751734B (zh) * 2011-04-18 2014-12-10 周锡卫 一种多电力多蓄电智能平衡供电系统
CN103650345A (zh) 2011-07-22 2014-03-19 辉达公司 部件分析系统及方法
TWI537760B (zh) 2012-01-05 2016-06-11 聯華電子股份有限公司 積體電路設計與製造方法
US8683400B1 (en) 2012-11-21 2014-03-25 Cadence Design Systems, Inc. System and method for fault sensitivity analysis of mixed-signal integrated circuit designs
KR20200084600A (ko) * 2019-01-03 2020-07-13 에스케이하이닉스 주식회사 집적회로 칩

Also Published As

Publication number Publication date
KR101991393B1 (ko) 2019-06-20
CN107688694B (zh) 2021-05-04
CN107688694A (zh) 2018-02-13
KR20180016319A (ko) 2018-02-14
US20180039721A1 (en) 2018-02-08
TW201807607A (zh) 2018-03-01
TWI732909B (zh) 2021-07-11
US10515167B2 (en) 2019-12-24

Similar Documents

Publication Publication Date Title
DE69924296T2 (de) Ic-test programmiersystem zur zuordnung logischer funktionstestdaten von logischen integrierten schaltung zu einer physikalischen darstellung
DE102017117496A1 (de) Zell-Bewusste Fehlstellen-Charakterisierung und Wellenformanalyse mithilfe mehrerer Strobe-Punkte
DE102006037162A1 (de) Verfahren und Vorrichtung und deren Verwendung zur Prüfung des Layouts einer elektronischen Schaltung
DE3702408C2 (de)
DE112015002183T5 (de) Computerimplementiertes System und Verfahren zum Übersetzen von Verifizierungs-Befehlen eines elektronischen Designs
DE102004058753A1 (de) Verifizierung von Integrierte-Schaltung-Tests unter Verwendung einer Testsimulation und einer Integrierte-Schaltungs-Simulation mit einem simulierten Ausfall
DE112020006021T5 (de) Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen
DE102006020186A1 (de) Vorrichtung und Verfahren von Verzögerungsberechnung für strukturierte ASIC
WO2005024672A1 (de) Esd-testanordnung und verfahren
DE60012735T2 (de) Verfahren zur unterscheidung von verschiedenen typen von abtastfehlern, rechnerbasierte schaltungsemulation und fehlerdetektionssystem
DE10296464T5 (de) Verfahren und Gerät zur Validierung des Entwurfes einer komplexen integrierten Schaltungen
DE69533567T2 (de) Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen
DE102013114558B4 (de) Ausschneiden-bei-der Diagnose (CID) - Ein Verfahren zur Verbesserung des Durchsatzes des Vorgangs für Anhebung der Ausbeute
DE112019004358T5 (de) Verfahren zur takt-gate-analyse von entwürfen für elektronische systeme und zugehörige systeme, verfahren und vorrichtungen
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
DE60104015T2 (de) Entschlüsselungsverfahren zur datenabbildung in speicherschaltungen
EP1771799B1 (de) Verfahren zur bewertung der güte eines testprogramms
DE60202443T2 (de) Methode zum Testen eines elektronischen Bauteils
DE102006007439A1 (de) Verfahren und Vorrichtung zum Testen von Halbleitern unter Verwendung von Einzelchips mit integrierten Schaltungen
DE10138142A1 (de) Verfahren zur Analyse einer integrierten elektrischen Schaltung
DE102004029944B4 (de) Verfahren zur Ermittlung ESD-relevanter Schaltungsteile in einer Schaltung
DE60124008T2 (de) Verfahren zum lesen der information von halbleiter-wafern bei einem parallelen test- und einbrenn-system
EP1771798B1 (de) Verfahren der bewertung der güte eines computerprogramms
DE102008046397A1 (de) Verifizierung auf Basis von Transaktionen eines Systems auf einem Chip auf Systemebene durch Übersetzen von Transaktionen in Maschinencodierung
DE112013005831T5 (de) Netzlistenabstraktion

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000