DE60104854T2 - System und Verfahren zum Testen integrierter Schaltungen - Google Patents

System und Verfahren zum Testen integrierter Schaltungen Download PDF

Info

Publication number
DE60104854T2
DE60104854T2 DE60104854T DE60104854T DE60104854T2 DE 60104854 T2 DE60104854 T2 DE 60104854T2 DE 60104854 T DE60104854 T DE 60104854T DE 60104854 T DE60104854 T DE 60104854T DE 60104854 T2 DE60104854 T2 DE 60104854T2
Authority
DE
Germany
Prior art keywords
test
tests
integrated circuit
analog
design
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.)
Expired - Lifetime
Application number
DE60104854T
Other languages
English (en)
Other versions
DE60104854D1 (de
Inventor
H. Laurence COOKE
K. Christopher LENNARD
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.)
Cadence Design Systems Inc
Original Assignee
Cadence Design Systems 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 Cadence Design Systems Inc filed Critical Cadence Design Systems Inc
Application granted granted Critical
Publication of DE60104854D1 publication Critical patent/DE60104854D1/de
Publication of DE60104854T2 publication Critical patent/DE60104854T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • 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/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Fats And Perfumes (AREA)

Description

  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung mit dem Titel „System-on-a-Chip-1" und mit der Seriennummer 60/216,746, welche am 3. Juli 2000 eingereicht wurde, und der vorläufigen US-Anmeldung mit dem Titel „System and Method for Test and Verification of Circuit Design Incorporating Virtual Circuit Blocks" und mit der Seriennummer 60/214,928, welche am 28. Juni 2000 eingereicht wurde, wobei beide unter Bezugnahme vollständig hierin aufgenommen sind.
  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Das Gebiet dieser Erfindung betrifft die elektronische Design-Automation und insbesondere Verfahren und Systeme zum Testen integrierter Schaltungen während des Herstellens und/oder in Produktionsphasen.
  • 2. Hintergrund
  • Die Schaltkreis-Chip-Entwickler verwenden oftmals Software-Hilfsmittel zur elektronische-Design-Automation (EDA), um den Designprozess zu unterstützen und um die Simulation eines Chipdesigns vor dem Erstellen eines Prototyps oder vor der Produktion zu ermöglichen. Chipdesign unter Verwendung von EDA-Software-Hilfsmitteln betrifft im Allgemeinen einen iterativen Prozess, wobei das Chipdesign graduell vervollkommnet wird. Typischerweise entwirft ein Chipentwickler einen Schaltkreis, indem er Information an einer Computer-Workstation eingibt, welche im Allgemeinen eine hochqualitative Grafikfähigkeit hat, um Teile des Schaltkreisdesigns nach Bedarf darzustellen. Eine Top-Down-Designmethode wird üblicherweise unter Verwendung von Hardware-Beschreibungssprachen (HDLs = hardware description languages), beispielsweise Verilog® oder VHDL, eingesetzt, mittels welchen der Designer einen integrierten Schaltkreis erzeugt, indem er funktionale Bauelemente des Schaltkreises hierarchisch definiert und dann jedes Bauelement in kleinere und kleinere Bauelemente zerlegt.
  • Die verschiedenen Bauelemente eines integrierten Schaltkreises werden anfänglich mittels ihrer funktionalen Operationen und relevanten Eingänge und Ausgänge definiert. Von der HDL oder einer anderen Beschreibung auf höherer Ebene wird die aktuelle Logikzelle-Implementierung mittels logischer Synthese ermittelt, welche die funktionale Beschreibung des Schaltkreises in eine spezielle Schaltkreis-Implementierung konvertiert. Die Logikzellen werden dann „platziert" (d.h. spezielle Koordinaten-Positionen in dem Schaltkreis-Layout gegeben) und „geroutet" (d.h. entsprechend den Schaltkreis-Definitionen des Designers miteinander verdrahtet oder aneinander angeschlossen). Die Platzierungs- und Routing-Software-Routinen akzeptieren im Allgemeinen als Eingabe eine eingeebnete Netzliste, welche von dem logischen Synthese-Prozess erzeugt wurde. Diese eingeebnete Netzliste identifiziert die speziellen Logikzelle-Instanzen aus einer Ziel-Standardzell-Bibliothek und beschreibt die spezielle Zell-zu-Zell-Anschlussmöglichkeit. Nachdem diese spezielle Zell-zu-Zell-Anschlussmöglichkeit ausgebildet wurde, erzeugt die Physikalische-Design- und Layout-Software eine Physikalische-Layout-Datei des integrierten Schaltkreises, einschließlich der physikalischen Position einer jeden Metallbahn (d.h. Draht) und eines jeden Vias (d.h. Metall-Übergang zwischen Chip-Schichten).
  • Als einen letzten Schritt vor Erzeugen der Masken-Datei zum Liefern an die Herstellungsanlagen führt die physikalische Verifizierungs- und Layout-Überprüfungs-Software mehrere Design-Regel-Kontrollen (DRCs = design rule checks) an der Masken-Datei durch. Vor kurzem wurde für jede Sektion oder jede Gruppe in dem Entwurf eine Netzliste erzeugt, um sehr große und komplexe Entwürfe zu handhaben. Die aufeinander folgend platzierten und gerouteten Gruppen werden dann hierarchisch als „Zellen" in der nächsten, vollen Entwurfsebene betrachtet und wieder platziert und geroutet, um das Layout des gesamten Chips zu bilden. Bei dieser hierarchischen Vorgehensweise werden auch die DRCs hierarchisch ausgeführt. Weitergehende Erläuterung einer speziellen Chip-Designmethode wird beispielsweise in US-Patent 5,838,583 ausgeführt, das hierin unter Bezugnahme vollständig aufgenommen ist, wie wenn es hierin vollständig ausgeführt wäre.
  • Während dem Herstellen bei einem Halbleiter-Hersteller werden integrierte Schaltkreise typischerweise auf Halbleiter-Wafern als Teil eines Mehrschritt-Verfahrens hergestellt. Ein einzelnes Design eines integrierten Schaltkreises wird üblicherweise zahlreiche Male über einen einzelnen Halbleiter-Wafer dupliziert, wobei Iterationen des integrierten Schaltkreises gleichmäßig in Reihen und Spalten auf dem Halbleiter-Wafer verteilt werden. Das Herstellen eines integrierte Schaltkreise enthaltenden Halbleiter-Wafers kann Ätz-, Abscheide-, Diffusions- und Reinigungsprozesse betreffen, welche alle innerhalb spezifizierter Toleranzen ausgeführt werden.
  • Typischerweise sind einige der integrierten Schaltkreise auf dem Halbleiter-Wafer auf Grund von Mängeln beim Herstellungsprozess nicht für den kommerziellen Gebrauch geeignet. Die Zahl der integrierten Schaltkreise auf jedem Wafer, die problematisch sein werden, hängt zum Teil von der Qualität und Konsistenz des Herstellungsprozesses ab. Trotz der oftmals größten Mühe der Halbleiter-Hersteller gibt es jedoch üblicherweise eine Anzahl von integrierten Schaltkreisen auf jedem Wafer, die verworfen werden müssen, obwohl der Design-Entwurf korrekt ist, weil während des Herstellungsprozesses elektrische Bauelemente nicht die richtigen Toleranzen einhalten, weil elektrische Verbindungen, die gemacht worden sein sollten, nicht ausreichend leitfähig sind, weil elektrische Pfade, die isoliert sein sollten, zu nahe aneinander kommen oder kurzgeschlossen werden, oder auf Grund anderer Mängel, die an irgendeinem Punkt in den Ätz-, Abscheide-, Diffusions- oder Reinigungsprozessen auftreten. Die endlose Anstrengung zum Verringern der Größe der integrierten Schaltkreise, einschließlich der Mikroschaltungen, Drähte und Bauelemente, die einen Teil davon bilden, vergrößert bloß die Wahrscheinlichkeit, dass Mängel während dem Herstellungsprozess auftreten, was das Ablehnen von zumindest einigen (und manchmal allen) integrierten Schaltkreisen auf einem Halbleiter-Wafer erfordert.
  • Nach dem Herstellungsprozess läuft ein Halbleiter-Wafer typischerweise durch einen Verpackungsprozess, in welchem der Wafer in Würfel vereinzelt wird und dann zum Versenden oder zur Integration in elektronische Vorrichtungen verpackt wird. Problematische integrierte Schaltungen vor solch einem Versenden oder solch einer Integration nicht zu identifizieren, kann verheerend sein. Wenn ein mangelhafter integrierter Schaltkreis nicht vor dem Versenden identifiziert wird, kann er in einem Produkt platziert werden und an einen Verbraucher oder Endnutzer verkauft werden, woraufhin er eventuell während des Betriebs versagen wird. Neben dem Verletzen der Reputation des Chip-Designers und der Halbleiter-Herstell-Anlage können solche Betriebsfehler auch größere Probleme bei der Anwendung des Verbrauchers oder Endnutzers verursachen. Außerdem sind die Kosten zum Ersetzen des gesamten defekten Produkts viel größer als das Entfernen des defekten Bauelements aus dem Herstellungsprozess, bevor es in das Endprodukt eingebaut wird.
  • Folglich sollten integrierte Schaltkreise getestet werden, um sicherzustellen, dass sie richtig arbeiten. Solches Testen kann vorkommen an dem Punkt, wenn die Herstellung des Halbleiter-Wafers beendet ist und/oder nachdem der Würfel gehäust wurde. Eine Vielfalt von Tests wurde für die Verwendung während einer dieser Stufen der Herstellung entwickelt. Die meisten der Tests werden mittels einer Nadelkarte ausgeübt, die an eine automatisierte Maschine angeschlossen ist. Die Nadelkarte ist ein Test-Spannelement, das direkten Kontakt mit dem zu testenden integrierten Schaltkreis herstellt (in diesem Zusammenhang auch bekannt als „device under test" bzw. DUT). In einer Form enthält die Nadelkarte eine elektrische Schnittstelle, die mit dem DUT kompatibel ist. Die die Nadelkarte steuernde automatisierte Maschine enthält im Allgemeinen einen Computer, der verschiedene gespeicherte Testinformationen aufweist, welche von den Entwicklungs- oder Testingenieuren speziell für den DUT entwickelt wurden. Die Klassen der ausgeführten Tests können funktionale Tests wie beispielsweise Diagnosetests und Belastungstests zum Sicherstellen, dass die Funktionalität des integrierten Schaltkreises vollständig ist, und strukturelle Tests wie beispielsweise eingebaute Selbsttests (BISTs = built-in self-tests) oder Scan-basierte Tests zum Sicherstellen, dass keine strukturellen Fehler in der Logik des DUT existieren, enthalten.
  • Einer der Aspekte für das Auswählen der/des Testtyp(en), welche/welcher für einen integrierten Schaltkreis zu verwenden sind/ist, ist die Menge an Zeit, die jeder Test beansprucht. Da integrierte Schaltkreise oftmals Teil eines Massenherstellungsprozesses sind, in welchem Zehntausende oder auch Millionen von Einheiten hergestellt werden können, können auch relativ kurze Tests in der Gesamtsumme in signifikanten Verarbeitungsverzögerungen resultieren. Außerdem erfordern Nach-Herstellungs-Tests typischerweise teuere Spezial-Testausrüstung, welche sich auf Zehntausende oder Millionen von Dollar pro Testmaschine belaufen kann. Da integrierte Schaltkreise zunehmend Millionen oder einige Zehnmillionen an Gates umfassen, werden herkömmliche Testtechniken schnell entweder zu zeitintensiv oder ineffektiv bei vollständigem Testen von integrierten Schaltkreisen. Aus dem gleichen Grund werden die Kosten des Testens zum teuersten Teil bei der Herstellung eines integrierten Schaltkreises.
  • Ein Nachteil mit herkömmlichen Testprozeduren ist, dass große Mengen an Daten, in der Form von Testmustern, oftmals zwischen dem Tester und der internen Schaltung des integrierten Schaltkreises über die an den integrierten Schaltkreis angeschlossene Nadelkarte übertragen werden müssen. Mit möglicherweise Millionen von auf einem einzigen integrierten Schaltkreis zu testenden Gates können die Testmuster übermäßig lang werden. Unter Verwendung der normalen Schnittstellen-Schaltung des integrierten Schaltkreises können das Laden der Testmuster und das Auslesen der Ergebnisse eine relativ große Zeitdauer erfordern. Bei-Geschwindigkeit-Belastungs-Tests (at-speed stress test), welche typischerweise Systemebene-Funktionalität bei betriebsbedingten Ausführungsbeschränkungen des integrierten Schaltkreises testen, können aufgrund von Bandbreiten-Beschränkungen zwischen dem Tester und der integrierten Schaltkreis-Vorrichtung unter Test besonders schwer zu implementieren sein.
  • Einige Versuche wurden unter Verwendung eines Hochgeschwindigkeits-Testers (z.B. einer mit einer Geschwindigkeit von 200 MHz, gegenüber den typischeren 25 MHz) unternommen, um die Geschwindigkeit des Testens zu steigern. Jedoch können Hochgeschwindigkeits-Tester übermäßig teuer sein. Die Länge der Drähte, welche den Tester an den integrierten Schaltkreis koppeln (über die Nadelkarte), kann ebenfalls bei solch hohen Geschwindigkeiten aufgrund von Impedanzen, welche zum Teil Frequenz-bezogen sind, zu einem signifikanten Geschwindigkeit beschränkenden Faktor werden. Daher werden sehr kurze Drähte benötigt, um einen Hochgeschwindigkeits-Test ablaufen zu lassen, welcher der Testausrüstung Design-Beschränkungen auferlegt und den automatisierten Betrieb der Testausrüstung möglicherweise beschwerlicher und teuerer macht.
  • Eine andere Lösung wurde vorgeschlagen, um zusätzliche Test-E/A-Pins auf der getesteten Vorrichtung einzurichten. Das Problem mit dieser Anwendung ist, dass jede Verbesserung bestenfalls linear ist, und daher ist sie im Vergleich zu dem Anstieg in der Dichte der für einen integrierten Schaltkreis zu testenden Gates bedeutungslos. Mehrfach-Abtast-Tests-Abläufe können in die DUT, welche die zusätzlichen Test-E/A-Pins verwendet, eingegeben werden, aber die Verbesserung in der Ausführung weist infolge der beschränkten Grundfläche für zusätzliche Pins wiederum ein geringes Höchstmaß auf. Außerdem können die Kosten für das Chiphäusen unter Einbeziehung zusätzlicher Testpins ansteigen.
  • Analog wurde das Verwenden von Signal-E/A-Pins für den Test vorgeschlagen, um die Testeingaben schneller in die DUT zu übertragen. Um dies zu tun, werden Test- und Verwendungs-E/A für einen Abschnitt des Satzes an Signal-E/A-Pins gemultiplext. Diese Option führt jedoch zu Ausführungs-Overhead. Da außerdem die Grundfläche für E/A-Pins beschränkt ist, stellt diese Alternative einen zu beschränkten Vorteil bereit.
  • Eine der neuen Entwicklungen bei Schalkreis-Designs ist die Einführung von so genannten virtuellen Bauelement-Gruppen, welche, von einem hauptsächlichen Standpunkt aus, vordesignte und vorgehärtete (oder halb-gehärtete) Schaltkreis-Designs in Software-Form (zum Beispiel im GDSII-Format) sind, welche leicht wieder in verschiedenen, größeren Schaltkreis-Designs verwendet oder recycelt werden können. Ein Vorteil der virtuellen Bauelement-Gruppen (oder VC) ist, dass sie die Zeit, einen allumfassenden Schaltkreis zu designen, reduzieren, und dadurch die Absatzgeschwindigkeit steigern. Virtuelle Bauelement-Gruppen können ebenfalls von einem logischen und einem funktionellen Standpunkt aus verifiziert werden, wobei ebenfalls Zeit in dem Verifikations-Abschnitt des Design-Prozesses eingespart wird.
  • Während virtuelle Bauelement-Gruppen gefunden wurden, die aus Design-Sicht geeignet sind, wenn sie in ein größeres Schaltkreis-Design einbezogen und aus Silizium hergestellt werden, neigen sie dazu, entweder aufgrund von Fehlern in dem Herstellungsprozess oder aufgrund von Problemen, welche sich aus versuchter Integration in das größere Schaltkreis-Design ergeben, auszufallen. Deshalb müssen, wie mit jedem anderen Typ des integrierten Schaltkreises, teilweise auf virtuellen Bauelement-Gruppen basierende integrierte Schaltkreise bei dem Herstellungsvorgang getestet und verifiziert werden, um einwandfreies Funktionieren sicherzustellen. Gemäß herkömmlichen elektronischen Design-Automatisierungs-Prozessen müssen konsequenterweise neue Tests (ob funktionelle, diagnostische oder Belastungstests) für jedes neue integrierte Schaltkreis-Design, welches eine virtuellen Bauelement-Gruppe einbezieht, geschrieben werden, genau wie mit jedem anderen Typ des neuen integrierten Schaltkreis-Designs. Diese Tests können sowohl zeitaufwändig und teuer beim Designen als auch während der Herstellung beim Ausführen sein, genau wie oben dargelegt.
  • In US 5,539,652 werden ein Herstellungs- und Testsimulations-Verfahren für elektronisches Schaltkreis-Design offenbart, welches mit Computer-unterstützten Design-Werkzeugen (Computer Aided Design Tools) integriert ist, um gleichzeitiges Engineering von Herstellungs- und Testbarkeitsaspekten eines Produkts simultan mit dem funktionellen Design eines Produkts bereitzustellen.
  • Dementsprechend wäre es vorteilhaft, ein verbessertes Mittel zum Testen integrierter Schaltkreise bereitzustellen, welches Design-Tests, Ausführungstests und Test-Systeme und -Bauelemente zum Zeitpunkt der Fabrikation und/oder des Verpackens bereitstellt. Es wäre ferner vorteilhaft, verbesserte Mittel zum Testen von integrierten Schaltkreisen bereitzustellen, welche aus vordefinierten oder vorgehärteten virtuellen Bauelement-Gruppen entwickelt wurden.
  • Zusammenfassung der Erfindung
  • Diese Erfindung stellt gemäß dem unabhängigen Anspruch 1 ein Verfahren zum Testen eines integrierten Schaltkreises bereit. Bevorzugte Ausführungsbeispiele dieser Erfindung werden in den abhängigen Ansprüchen 2 bis 8 beschrieben.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Diagramm eines Computersystems, welches in Verbindung mit verschiedenen Ausführungsbeispielen der Erfindung, wie hierin beschrieben, verwendet werden kann.
  • 2 ist ein Diagramm eines vereinfachten integrierten Schaltkreises, wie er unter Verwendung eines solchen wie in 1 gezeigten Computersystems erzeugt werden kann, nachdem die Bauelement-Gruppen auf dem integrierten Schaltkreis-Chip aufgebracht wurden.
  • 3 ist ein Diagramm eines Hauptprozess-Flusses für ein Schaltkreis-Design, welches verschiedene Ebenen von Schaltkreis-Abstraktion darstellt.
  • 4 ist ein Diagramm einer virtuellen Bauelement-Gruppe und eines diagnostischen Testinformations-Verwaltungssystems, welches die Anwendung von virtuellen Bauelement-Gruppen-Informationen (umfassend Test- und Diagnostikinformationen) in verschiedenen Stufen in einem elektronischen Design-Automatisierungs-Prozess darstellt.
  • 5 ist ein Blockdiagramm von einem Ausführungsbeispiel eines Prüfstands wie hauptsächlich in 4 dargestellt.
  • 6A ist ein Diagramm eines Prozessflusses zum Übersetzen von Tests von aus einer Design-Verifizierungsphase in eine Herstellungsphase, in welcher individuell hergestellte ICs getestet werden.
  • 6B ist eine Illustration der Migration von Verifizierungstests für ein virtuelles IC-Design zu einer Herstellungsphase zum Testen tatsächlicher ICs, welche das Design manifestieren.
  • 7 ist ein Diagramm eines Satzes von Schritten zum Konfigurieren eines Prüfstands, um vorteilhaft Testvektoren und Diagnostik-Tests auszuführen, die der Herstellungsumgebung hinzugefügt sind.
  • 8 ist ein Diagramm eines physikalischen Layouts für einen Chip mit Schnittstellen, um diagnostische Daten an Schaltkreis-Gruppen zu übertragen, um spezielle Diagnostik-Tests durchzuführen, und Testvektor-Daten an einen geeigneten Speicher, um eine lokale Ausführung von Belastungstests unter Geschwindigkeit zu ermöglichen.
  • 9A ist ein Diagramm einer bevorzugten Implementierung eines rückkoppelnden Schemas, wie beispielsweise dieses, welches hauptsächlich in 7 dargelegt ist, in welchem sich das rückkoppelnde Schema vollständig auf dem Chip unter Test befindet.
  • 9B ist ein Diagramm eines alternativen Ausführungsbeispiels eines rückkoppelnden Schemas wie beispielsweise dieses, welches hauptsächlich in 7 dargelegt ist, in welchem Testdaten von einer PCI-Schnittstelle und danach von einem E/A-Pin ausgegeben werden.
  • 10 ist ein Diagramm eines physikalischen Layouts für eine Nadelkarte und Schnittstellen zu einer DUT und einem Tester.
  • 11 ist ein Diagramm eines Prozessflusses für bevorzugte Testfolgen in einem Chip-Fabrikations-Testprozess.
  • Ausführliche Beschreibung bevorzugter Ausführungsbeispiele
  • Bevorzugte Ausführungsbeispiele werden jetzt, wenn nötig mit Bezug auf die anhängenden Zeichnungen, beschrieben. Zuerst wird jedoch zusätzliche allgemeine Hintergrundinformation bereitgestellt, um elektronische Design-Automatisierungs(EDA) Software-Werkzeuge bereitzustellen.
  • Wie zuvor hierin allgemein in dem Hintergrund-Abschnitt erklärt, verwenden Chip-Designer hauptsächlich eine Top-Down-Design-Methodik, startend mit Hardwarebeschreibungs-Sprachen (HDLs) wie beispielsweise Verilog® oder VHDL, um zum Beispiel mittels hierarchisch definierenden Funktions-Bauelementen des Schaltkreises einen integrierten Schaltkreis zu erzeugen, und danach jedes Bauelement in kleinere und noch kleinere Bauelemente zu zerlegen. Die in integrierten Schaltkreisen verwendeten Bauelemente können entweder als Funktions- oder als Kommunikations-Bauelemente oder -Gruppen charakterisiert werden.
  • Von der HDL oder anderer High-Level-Beschreibung wird die eigentliche Logik-Zellen-Implementierung mittels Logik-Synthese ermittelt, welche die Funktions-Beschreibung der Gruppe in eine spezielle Schaltkreis-Implementierung der Gruppe konvertiert. Die Schaltkreis-Implementierung existiert typischerweise als Netzliste, welche Logik-Zellen oder Bauelement-Gruppen aufweist und einen oder mehrere Kommunikations-Gruppen umfasst. Die Bauelement-Gruppen werden dann aufgebracht und geroutet, was in einer Physikalisches-Layout-Datei resultiert. Die Physikalisches-Layout-Datei wird generell als ein Design-"Entwurf" (blueprint) zur Fabrikation des integrierten Schaltkreises verwendet. Bei jeder Stufe des Design-Prozesses und ebenso bei der Fabrikations-Stufe können verschiedene Tests laufen gelassen werden, um korrekte Funktionsfähigkeit des Schaltkreis-Designs zu ermöglichen.
  • 1 ist ein Diagramm eines Computersystems 100, welches in Verbindung mit verschiedenen Ausführungsbeispielen der hierin beschriebenen Erfindung verwendet werden kann. Wie in 1 gezeigt, weist das Computersystem 100 einen mit einem Display 191 und verschiedenen Eingabe-Ausgabe-Vorrichtungen 192 gekoppelten Computer 110 auf. Der Computer 110 kann einen oder mehrere Prozessoren (nicht gezeigt) aufweisen, ebenso wie Arbeitsspeicher (z.B. RAM) in einer Größe, welche ausreichend ist, um den Geschwindigkeits- und Verarbeitungsanforderungen des Systems 100 zu genügen. Der Computer 110 kann zum Beispiel eine SPARC® Workstation, welche kommerziell bei Sun Microsystems, Inc. in Santa Clara, Kalifornien, erhältlich ist, oder irgendeinen anderen geeigneten Computer aufweisen.
  • Der Term "Prozessor" ist, wie oben verwendet, vorzugsweise ein Prozessor für allgemeinen Zweck, welcher eingerichtet ist, um Software (entgegen einem vollständig fest verdrahteten Prozessor) aufgrund der Nützlichkeit und Flexibilität beim Programmieren des Prozessors und möglicherweise Modifizieren oder Ersetzen der Software auszuführen. Im Allgemeinen jedoch bezieht sich der Term "Prozessor" bei seinem Gebrauch immer auf jede Form eines Prozessors oder von Prozessoren, welche die verschiedenen elektronischen Funktionen, wie hierin beschrieben, durchführen können. Der Term "Prozessor" bezieht sich daher auf eine große Vielfalt von Rechner-Vorrichtungen oder Mittel, welche zum Beispiel Mehrfach-Prozessoren, welche verschiedene Verarbeitungsaufgaben durchführen oder bei denen die gleichen Aufgaben zwischen Prozessoren aufgeteilt sind, verwenden. Der/die Prozessor(en) können CPUs für allgemeine Zwecke sein oder Prozessoren für spezielle Zwecke, wie beispielsweise solche, die oftmals herkömmlich in Signal-Verarbeitungs-Systemen verwendet werden. Ferner können Mehrfach-Prozessoren in einem Server-Client oder anderer Netzwerk-Konfiguration, wie ein Pipeline-Array oder eine Reihe von Prozessoren, usw., implementiert sein. Ferner wird ein Teil oder alles der Verarbeitung alternativ mit einem kundenspezifischem und/oder fest verdrahtetem Schaltkreis, wie beispielsweise einem anwendungsspezifischen integrierten Schaltkreis (ASIC), einem feldprogrammierbaren Gate-Array (FPGA) oder einer anderen logischen Vorrichtung, implementiert.
  • In Verbindung mit dem Term "Prozessor" bezieht sich der hierin verwendete Term "Speicher" auf irgendein Speichermedium, welches von einem Prozessor ansprechbar ist, welcher die Speicher-Ablage-Bedürfnisse für ein System oder ein Systembauelement zum Erleichtern der verschiedenen elektronisch durchgeführten, hierin beschriebenen Funktionen erfüllt. Der Speicher weist bevorzugt einen Direktzugriffsspeicher (RAM) auf, welcher direkt von dem Prozessor angesprochen wird. Der Speicher kann optional in der Form einer Festplatte oder einer anderen nichtflüchtigen Speicher-Vorrichtung oder einem Bauelement zum Speichern von Daten, Software und/oder anderen Formen von elektronisch dargestellter Information sein.
  • In Bezug wiederum auf 1 enthält der Computer 110 den gespeicherten Programmcode, welcher in einem Ausführungsbeispiel einen Gruppen-Grundrissplaner 120, einen Gruppen-Platzierer 130, einen Logik-Synthesizer 135 und einen Routing-Platz-Schätzer 140 aufweist. Der Gruppen-Grundrissplaner 120 stellt für die Definition der Gruppen-Funktionen Gruppen-Bereiche und Beschränkungen für diese zum Zweck von interaktiven Grundriss-planenden Operationen mittels des Schaltkreis-Designers und die Steuerung von Platzierungs-Operationen des Gruppen-Platzieres 130 bereit. Der Gruppen-Platzierer 130 ermittelt die Platzierung der Zellen innerhalb der Gruppe gemäß den mittels des Schaltkreis-Designers definierten Beschränkungen. Der Routing-Platz-Schätzer 140 schätzt den für das Routing der Gruppe erforderlichen Routing-Platz ab, wobei der Platz solcher Gruppen mittels des Gruppen-Platzierers 130 vorgegeben wird.
  • Bei Unterstützung der oben angesprochenen System-Bauelemente können ein Chip-Grundrissplaner 150, ein globaler/detaillierter Router 160, ein Standard-Zellenplatzierer 170, ein Logik-Synthesizer 180 und ein HDL-Editor 190 hilfreich verwendet werden. Der Betrieb des Chip-Grundrissplaners 150, des globalen/detaillierten Routers 160, des Standard-Zellenplatzierers 170, des Logik-Synthesizers 180 und des HDL-Editors 190 ist herkömmlich, genauso ist das Design dieser Bauelemente in der Art und Weise der elektronischen Design-Automatisierung gut bekannt. Kommerziell verfügbare Beispiele dieser System-Bauelemente sind PreviewTM, Cell3TM, QPlaceTM, SynergyTM bzw. Verilog®.
  • Der Computer 110 wird vorzugsweise an eine Massenspeicher-Vorrichtung (z.B. Magnetplatte oder Kassettenspeicher) gekoppelt, welche eine Layout-Datenbank 195 bereitstellt, mit welcher sich die vorangehenden System-Bauelemente verbinden lassen. Die Layout-Datenbank 195 kann unter Verwendung jedes geeigneten Datenbank-Standards wie beispielsweise EDIF, LEF oder DEF implementiert werden. Der Computer 110 kann ebenfalls aufweisen oder gekoppelt sein an den Massenspeicher, welcher eine oder mehrere Bauelement-Bibliotheken (nicht gezeigt) enthält, welche Merkmale von für den Gebrauch in Schaltkreis-Designs verfügbaren elektrischen Bauelementen spezifizieren.
  • In Bezug jetzt auf 2 wird dort eine Gruppen-Darstellung eines Beispiels eines vereinfachten IC 200 gezeigt, in welcher eine Sockel-Gruppe 202 und eine Anzahl an peripheren Bauelement-Gruppen B1,..., B12 spezifiziert wurden, wobei deren Positionen auf dem integrierten Schaltkreis 200 und die Verbindungen zwischen diesen ermittelt wurden. Bei gegenwärtigen, realistischeren integrierten Schaltkreis-Designs kann der integrierte Schaltkreis 200 weit komplizierter sein. Jedoch ist 2 zum Zwecke der Darstellung hilfreich. Die Sockel-Gruppe 202 weist vorzugsweise einen Prozessor 204, einen Speicher 206, verschiedene andere Bauelement-Gruppen A1,..., A5 und eine Kommunikations-Gruppe auf, welche einen Bus 208 und zwölf Anschlüsse 210 aufweist. Die Anschlüsse 210 sind bevorzugt dahingehend androgyn, dass jeder als ein Ziel oder ein Initiator in der Kommunikations-Schnittstelle konfiguriert werden kann, nachdem das Layout des integrierten Schaltkreises 200 vollendet wurde. Die Sockel-Gruppe 202, die ihre Bauelemente (den Prozessor 204, den Speicher 206 und die Bauelemente A1 bis A5) aufweist, und die anderen peripheren Bauelement-Gruppen sind bevorzugt in der Layout-Datenbank 195 vollständig charakterisiert. Die Positionierung der Gruppen ist bevorzugt in einer Art und Weise, welche in Bezug auf die Ausrichtung und die Verbindungslängen zu den Anschlüssen auf der Sockel-Gruppe 202 optimal ist.
  • 3 ist ein Diagramm eines allgemeinen Prozessflusses 300 für ein Gruppe-basiertes Schaltkreis-Design, welches einige der verschiedenen Ebenen der Design-Abstraktion des integrierten Schaltkreises, wie oben beschrieben, zeigt. Wie in 3 dargestellt, unterzieht sich eine Register-Übertragungs-Logik (RTL)-Datei 301 in der Form einer HDL-Datei oder einer anderen High-Level-Funktionsbeschreibung einem Spezifikations- (Grundrissplanen und Teilezuweisung) Prozess 302. In diesem Prozess 302 werden Bauelement-Gruppen aus einer Bauelemente-Bibliothek 306 identifiziert, um spezielle Funktionen durchzuführen, die in der RTL-Datei 301 festgelegt sind. Die Bauelement-Gruppen werden vorzugsweise vordefiniert, und trotzdem können eine oder mehrere auf einem kundenspezifischen Design, welches nicht gespeichert oder nur kürzlich innerhalb der Bibliothek 306 gespeichert wurde, basiert sein.
  • In dem nächsten Schritt 303 wird eine Form der Logik-Synthese durchgeführt, wobei in einem bevorzugten Ausführungsbeispiel die Funktionsbeschreibung der Verbindungen zwischen den Bauelementen in eine spezielle Verbindungs-Implementierung umgewandelt wird, die in Form einer Netzlistendatei 304 gespeichert werden kann. Als Teil dieses Kompilierungs-Prozesses 303 wird die Bauelemente-Bibliothek 306, welche Informationen betreffend die Kommunikations-Schnittstellen und die Charakteristika der Bauelemente, welche benötigt werden, um deren funktionelle Anschlussfähigkeit zu ermitteln, speichert, im allgemeinen referenziert. Die Netzlistendatei 304, wie vorher angemerkt, identifiziert hauptsächlich die Bauelement-Gruppen aus der Bibliothek 306 und beschreibt die spezielle Komponente-an-Komponente-Anschlussfähigkeit.
  • Durch Anwendung eines in 3 gezeigten Physikalisches-Design-Prozesses 309 werden die Bauelement-Gruppen der Netzlistendatei 304 dann platziert und geroutet, woraus eine Layout-Datei 310 resultiert. Die Bauelemente-Bibliothek 306 wird in dieser Prozess-Stufe benutzt, um Informationen betreffend die Größen der Bauelemente, welche Größen in der Netzlisten-Datei 304 vorhanden sein können, zu erlangen. Vorher weist diese Information Schnittstellen-Spezifikationen, wie beispielsweise die Anzahl und Platzierungen der Schnittstellen, ob jede Schnittstelle ein Ziel oder ein Initiator ist, und die Anzahl von Pins und deren Signal-Anweisungen auf. Wie in dem Hintergrund-Abschnitt oben beschrieben, wird die Platzierungs- und Routing-Operation dann ausgeführt und kann in einer Art und Weise automatisiert werden, um die endgültige Ausführung des integrierten Schaltkreises mittels Minimierens der Verbindungslängen und der gesamten Basisfläche des integrierten Schaltkreises zu optimieren. Dieser Platzierungs- und Routing-Prozess hält an den Schnittstellen-Spezifikationen, welche aus der Bauelemente-Bibliothek 306 erlangt wurden, fest.
  • Von der Layout-Datei 310 kann, wie weiter in 3 dargestellt ist, ein Verifikations-Prozess 312 ausgeführt werden, was zu einer Masken-Datei 315 führt, zum Beispiel in GDSII- oder CIF-Format. Die Masken-Datei 315 kann einem Hersteller bereitgestellt werden und enthält genügend Information, um dem Hersteller zu gestatten, einen tatsächlichen integrierten Schaltkreis davon herzustellen.
  • In einem Aspekt werden Systeme und Verfahren in Verbindung mit bestimmten hierin offenbarten Ausführungsbeispielen zum Testen von Schaltkreis-Designs bereitgestellt, insbesondere jene Schaltkreis-Designs, welche virtuelle Bauelement-Gruppen berücksichtigen und welche auf Silizium als ein Teil eines Halbleiter-Herstellungsprozesses reduziert sind.
  • In einem Ausführungsbeispiel wird eine Datenbank mit virtuellen Bauelement-Gruppen zusammen mit vorentwickelten Diagnoseroutinen, welche speziell der Architektur der virtuellen Bauelement-Gruppen maßgeschneidert sind, so dass die virtuellen Bauelement-Gruppen und die assoziierten Diagnoseroutinen in einer Vielzahl von verschiedenen Schaltkreis-Designs leicht wieder verwendet und recycelt werden können.
  • 4 ist ein Diagramm eines Design- und Verifikations-Verwaltungs-Systems 400, welches die Anwendung von virtueller Bauelement-Gruppe-Information (einschließend Test- und Diagnoseinformation) bei verschiedenen Stufen in einem elektronischen Design-Automatisierungs-Prozess darstellt. In einem Aspekt zeigt 4 einen elektronischen Design- Automatisierungs-Prozessfluss ähnlich demjenigen der 3. Deshalb zeigt zum Beispiel 4 ein funktionelles Design und/oder eine Register-Übertragungs-Logik (RTL)-Datei 401, welche in der Form einer Hardware-Beschreibungssprachen(HDL) Datei oder einer anderen High-Level-Funktionsbeschreibung. Ähnlich dem in 3 gezeigten Prozessfluss, unterliegt die Funktionelles-Design-Datei 401 einem Kompilierungs-Prozess 403, welcher die Funktionsbeschreibung des Schaltkreises in eine spezielle Schaltkreis-Implementierung umwandelt, welche in der Form einer Netzlistendatei 404 gespeichert werden kann. Ein physikalischer Design-Prozess 409 bewirkt, dass die Logik-Zellen der Netzlistendatei 404 platziert und geroutet werden, was in einer Layout-Datei 410 resultiert. Von der Layout-Datei 410 kann ein Verifikations-Prozess laufen gelassen werden, was in einer Masken-Datei 415 resultiert, welche zum Beispiel in einem GDSII- oder CIF-Format repräsentiert wird. Die Masken-Datei 415 kann einem Hersteller bereitgestellt werden, was in der Erzeugung eines Halbleiter-Wafers 460 resultiert.
  • Um das Schaltkreis-Design während der unterschiedlichen Design-Stufen zu testen, können Testvektoren 420 gemäß allen herkömmlichen Verfahren erzeugt werden. Die Testvektoren 420 können angewendet werden, um die Funktionalität der Funktionelles-Design-Datei 401 zu testen. Die gleichen Testvektoren 420 können, falls entsprechend übersetzt, ebenfalls verwendet werden, um die Netzlistendatei 404 und/oder die Layout-Datei 410 zu testen.
  • In einem bevorzugten Ausführungsbeispiel wird eine Datenbank 430 zum Speichern virtueller Bauelement-Gruppen-Daten 431 in der Form einer Mehrzahl von virtuellen Bauelement-Gruppen 440 und zum Speichern von Diagnose-Daten 423 in der Form von Diagnose-Test-Eingabereihen 441 bereitgestellt. Jede Diagnose-Testreihe 441 wird für die jeweilige Architektur einer speziellen virtuellen Bauelement-Gruppe 440 maßgeschneidert. Eine Diagnose-Testreihe 441 ist deshalb mit einer speziellen virtuellen Bauelement-Gruppe 440 assoziiert. Dieser Aspekt wird in 4 mittels virtueller Bauelement-Gruppen 1...N in der Datenbank 430 neben Diagnose-Testreihen 1...N in der Datenbank 430 dargestellt. Zu jeder Zeit wird eine jeweilige virtuelle Bauelement-Gruppe 440 in einem Design verwendet, wobei vorzugsweise die gleiche Diagnose-Testreihe 441, welche mit der virtuellen Bauelement-Gruppe 440 assoziiert ist, benutzt werden kann, weil sie bevorzugt für die Architektur der virtuellen Bauelement-Gruppe 440 speziell eingerichtet wurde. Optional können Mehrfach-Diagnose-Testreihen für eine gegebene virtuelle Bauelement-Gruppe 440 bereitgestellt werden.
  • Virtuelle Bauelement-Gruppen 440 sind eine Ressource für das Design von großmaßstäblichen Schaltkreisen. Virtuelle Bauelement-Gruppen 440 können zum Teil vorgehärtet und (von einem logischen und funktionellen Standpunkt aus) vorgetestet und vorverifiziert sein. Im Allgemeinen werden so viele interne Schaltkreise der virtuellen Bauelement-Gruppen 440 wie möglich vorgehärtet, während die äußeren Verbindungen (z.B. Pin-Positionen) "weich" oder konfigurierbar nach Erzeugung der virtuellen Bauelement-Gruppe 440 sein können. Virtuelle Bauelement-Gruppen 440 können aus der Datenbank 430 herausgezogen und in eine Funktionelles-Design-Datei 401 (oder auch in eine Lower-Level-Datei) eingegliedert werden. Da virtuelle Bauelement-Gruppen 440 größtenteils vorgehärtet sind, brauchen ihre internen Schaltkreise nicht synthetisiert oder validiert werden, auch nicht platziert oder geroutet. Im Gegenteil, die virtuelle Bauelement-Gruppe 440 wird bevorzugt als Ganzes in dem gesamten Schaltkreis-Design platziert und an andere Bauelemente des Designs gekoppelt.
  • Als Teil des Design-Prozesses werden die Einrichtungen bevorzugt zum Testen des Designs bei der Verifikations-Phase bereitgestellt, und später nach Fabrikation des Halbleiter-Wafers 460 und/oder nach Verpacken des integrierten Schaltkreises. Abtast-Logik für die Ausführung von Scanbasierten Tests wird speziell in das Design eingebracht, vorzugsweise in der Netzlisten-Ebene. In dieser Ebene des Designs werden deshalb Abtastmuster, welche der reduzierten Masken-Datei 415 entsprechen, zum Gebrauch in der Herstellungsphase erzeugt. Logik wird ähnlich in das Design des integrierten Schaltkreises (IC) eingebracht, um die Ausführung von eingebauten Selbsttests (BISTs) zu ermöglichen. Diese Tests werden von dem hergestellten IC selbst durchgeführt, wenn eine bestimmte Testsignatur der Vorrichtung bereitgestellt wird.
  • In einem Aspekt werden deshalb die Masken-Datei für den IC und die Testeingaben von der Design- und Verifikationsphase als eine Packung (z.B. eine elektronische Datei zum Speichern und/oder Kommunizieren) für den Hersteller vorbereitet, um den Herstellungsprozess zu initiieren. In einem Ausführungsbeispiel weisen die Testeingaben Reihen von Diagnose-Testeingaben und -Testvektoren, welche der Herstellungsumgebung angepasst wurden, und vorzugsweise Reihen von Abtastmustern und Eingabesignaturen zum Initiieren der BISTs auf. Die Testeingaben (d.h. Diagnose-Test, Belastungs-Test, Scan-basierter Test und BIST-Eingaben) können zum Beispiel einem Prüfstand 450 angepasst werden, welcher für eine Fertigung und Test-Operationen des Herstellers speziell ist. Solche Testeingaben sind bevorzugt als Teil eines Computer-lesbaren Pakets geistigen Eigentums einbezogen, welches Paket die Masken-Datei für den IC, welcher dem Hersteller bereitgestellt wird, aufweist.
  • In einem Ausführungsbeispiel werden die Diagnose-Testeingaben und -Testvektoren direkt in den Herstellungs-Prüfstand 450 eingegeben und werden mittels des Prüfstands 450 zur Anwendung auf die Vorrichtung-unter-Test (device under test = DUT) übersetzt. Ein Test-Übersetzer in dem Prüfstand 450 (d.h. Test-Übersetzungs-Funktion) kann zum Beispiel einen Prozessor (z.B. Prozessor für allgemeinen Zweck) aufweisen, welcher die Software ausführt, wobei die Software ebenfalls vorzugsweise in dem Paket geistigen Eigentums bereitgestellt wird, welches die Testeingaben vor dem Eingeben in den DUT übersetzt. Alternativ werden die übersetzten Diagnose-Tests und -Testvektoren in dem Paket geistigen Eigentums bereitgestellt, welches dem Hersteller bereitgestellt wird, so dass der äquivalente Test-Übersetzer in dem Prüfstand 450 unnötig ist.
  • 5 zeigt ein bevorzugtes Ausführungsbeispiel eines Prüfstands 500 zum stabilen Testen von komplexen integrierten Schaltkreisen, sei es auf Wafern konfiguriert oder gepackt, solange es im Hinblick auf die Testzeit und Testkosten pro Wafer (oder Paket) praktikabel ist. Der Prüfstand 500 weist vorzugsweise einen Tester 502 und eine Nadelkarte 504 auf, auf welcher individuelle IC-Wafer zum Testen aufgebracht sind. Die Nadelkarte 504 ist vorzugsweise kundenspezifisch im Design des IC und weist mehrere Bauelemente auf, um Testen der DUTs unter Geschwindigkeit ohne Erfordernis hoher Bandbreiten-Kommunikation mit dem Tester 502 zu ermöglichen.
  • Der Prüfstand 500 ist im Allgemeinen bevorzugt entworfen, um eine Anzahl von Zielen über die herkömmlichen Herstellungs-Test-Funktion hinaus zu erreichen. Erstens, der Prüfstand 500 verwendet die Testeingaben, welche vorher erzeugt wurden, um die Verifikationsphase für den IC zu vollenden. Zweitens, der Prüfstand 500 ist konfiguriert, um Prozess-intensive Test-Operationen, welche vorzugsweise auf dem DUT selbst durchgeführt werden, sekundär auf der Nadelkarte 504 und letztendlich auf Tester 502 und in einer solchen Art und Weise aufzuweisen, dass die E/A zwischen dem Tester 502 und der Nadelkarte 504 minimiert ist. Drittens, der Prüfstand 500 konfiguriert die Reihenfolge von Tests, um die durchschnittliche Testzeit pro DUT zu minimieren. Die Reihenfolge von Tests ist vorzugsweise für jedes IC-Design kundenspezifisch.
  • In einem Ausführungsbeispiel weist der Tester 502 bevorzugt einen Test-Kontroller 510, einen Testeingabe-Übersetzer 506 und einen Test-Folgezähler 508 auf. Der Test-Kontroller 510 steuert vorzugsweise die gesamten Test-Operationen und weist bevorzugt allgemeine Test-Instruktionen für die Nadelkarte 504 auf. Der Testeingabe-Übersetzer 506 kann Testvektoren und Diagnosetests aus der Verifikationsphase der IC-Entwicklung zur Anwendung in die Herstellungs-Test-Umgebung übersetzen. Die Übersetzung wird optional auf der Nadelkarte 504 (siehe den Daten-Übersetzer 1004 der 10 und die nachfolgende Diskussion) oder anderswo auf dem Prüfstand 500 durchgeführt. Wie oben diskutiert, werden Diagnosetests in der Verifikationsphase eines detaillierten Designs für einen integrierten Schaltkreis vorzugsweise erzeugt, um die Leistung einer jeden der virtuellen Bauelement-Gruppen in dem virtuellen integrierten Schaltkreis zu verifizieren. Außerdem werden die Testvektoren mit variierenden Verfeinerungs-Ebenen bevorzugt erzeugt, um die Leistung des virtuellen IC als Ganzes zu testen.
  • Der Test-Folgezähler 508 steuert vorzugsweise die Anordnung von Tests, welche für ein spezielles IC-Design bereitgestellt wurden. Der Test-Folgezähler 508 ordnet bevorzugt Tests an, um die gesamte Testzeit pro DUT zu minimieren. Der Test-Folgezähler 508 kann in Software auf einem Prozessor für allgemeine oder spezielle Zwecke implementiert werden, wobei dies vollständig in Hardware oder als eine Kombination aus Hardware und Software implementiert sein kann. Die Funktionalität des Test-Folgezählers 508 ist optional in dem bevorzugt Computer-lesbaren Paket geistigen Eigentums (d.h. die Masken-Datei, die Nadelkarte 504 und die Testeingaben), welches Paket dem Hersteller bereitgestellt wird, enthalten.
  • 6A zeigt ein bevorzugtes Verfahren 600 zum Übersetzen der Testvektoren und der Diagnosetests, welche für eine Verifikationsphase eines IC-Designs abgeleitet wurden, in eine Herstellungsphase, in welcher gefertigte ICs individuell getestet werden. Ein Testeingabe-Übersetzer, wie beispielsweise der, der oben beschrieben und in 5 gezeigt ist, führt den Übersetzungs-Prozess durch und weist Software, Hardware oder irgendeine geeignete Kombination der beiden auf, um das Testeingabe-Übersetzungs-Verfahren 600 zu implementieren. Beim Übersetzen der Verifikations-Tests mit Bezug auf die Diagnosetests zum Testen individueller Bauelement-Gruppen werden in einem ersten Schritt 602 die zum Testen einer Reihe von virtuellen Bauelementen entworfenen Diagnosetests bereitgestellt. Bevorzugt kann eine Gruppe von Diagnosetests in Reihen von Tests aufgeteilt werden, wobei jeder einer speziellen virtuellen Bauelement-Gruppe entspricht, welcher auf dem IC physikalische repräsentiert ist. Jede Reihe von Diagnosetests testet vorzugsweise nur eine Bauelement-Gruppe und testet im Allgemeinen keine Teile von anderen Bauelement-Gruppen. Außerdem erfordert jede Reihe von Diagnosetests vorzugsweise geringen oder keinen Gebrauch von anderen Bauelement-Gruppen, um den Test ihrer entsprechenden Bauelement-Gruppe zu vollenden.
  • Sobald die Diagnosetests mit Bauelement-Unabhängigkeit zum Testen bereitgestellt sind, wird ein nächster Schritt 604 bevorzugt, um die Diagnosetests, welche Daten-Transaktionen mit Bezug auf eine spezielle Architektur ermöglichen, zu erlangen. Insbesondere können die Diagnosetests aus Schritt 602 spezifisch für eine spezielle Funktion sein, aber nicht für eine spezielle Architektur für die Funktion. In einem Ausführungsbeispiel können Diagnosetests für die Architektur, welche gewählt wurde, um die vorgegebene Funktion durchzuführen, verfügbar sein, wobei in diesem Fall die Diagnosetests für diese Komponente abgefragt werden können. Die Diagnosetests werden alternativ in der Funktions-Ebene für die neue Architektur verfeinert. Zum Beispiel kann ein Funktions-Ebenen-Diagnose-Test in der Form einer C-Code-Routine sein, welche sich durch die Funktion wiederholt. Um den Diagnose-Test auf die Architektur-spezifische Ebene zu verfeinern, muss die C-Code-Routine in eine Assembler-Code-Beschreibung (d.h. von mnemonischen Zeichen zu binären Anweisungen) umgewandelt werden. In dieser Ebene können die Diagnosetests verwendet werden, um die Funktion der Bauelement-Gruppe und die Bit-Fehler in den physikalischen Gruppen, wie es für den Herstellungs-Test erforderlich ist, zu verifizieren.
  • In einem nächsten Schritt 606 werden die Diagnosetests vorzugsweise in die Speicher-Ladeanweisungen für den Herstellungs-Prüfstand konvertiert. Die spezielle Form der Speicher-Ladeanweisungen hängen zuerst davon ab, ob es gewünscht ist, die Tests von dem Tester, der Nadelkarte oder der Vorrichtung-unter-Test (DUT) in dem Prüfstand ausführen zu lassen. Die Tests werden bevorzugt von dem DUT oder, falls es nicht durchführbar oder vorteilhaft ist, von der Nadelkarte ausgeführt. Sobald die Diagnosetests ermittelt wurden, werden sie an einer speziellen Gruppe von Adressen in einem Cache oder Notizblock-Speicher basierend auf der Größe und dem Typ des Caches oder des Notizblock-Speichers festgehalten. Jeder Diagnose-Test ist dadurch einer speziellen Adresse in dem Speicher zugewiesen, wobei die vollständige Liste von Zuweisungen dann einem Diagnosetest-Steuerprogramm bereitgestellt wird.
  • In einem nächsten Schritt 614 werden die Diagnosetests vorzugsweise in dem Schnittstellen-Protokoll formatiert, welches für die physikalisch offenbarten Gruppen des System-Busses auf dem DUT spezifiziert ist. Vorzugsweise involviert dieses Formatieren das Verpacken der Diagnosetests mit den Protokollen des System-Busses und der virtuellen Bauelemente-Schnittstelle (VCI) des IC (siehe die ebenfalls anhängige Anmeldung mit dem Titel "Circuit Component Interface" mit der Lyon & Lyon LLP Docket-Nummer 260/086, welche am 18.01.2001 eingereicht wurde und hierin unter Bezugnahme vollständig aufgenommen ist und den VSIA Virtual Component Interface Standard (OCB 2 1.0) diskutiert). Formatieren für das VCI-Protokoll vereinfacht die Probleme mit Bezug auf Design-Schnittstellen für Bauelemente. Mittels Einbringens des VCI-Protokolls in das Bauelemente-Design, können Diagnosetests in den Cache oder in andere Speicher mit geringen Bedenken bezüglich der speziellen Bus-Architektur, welche für den System-Bus verwendet wird, geladen werden. Außerdem erlaubt das Protokoll den Bauelementen vorzugsweise, dass sie programmatisch in Zustände als Initiatoren oder Ziele für Kommunikation von Daten gesetzt werden.
  • Mit Bezug auf die Testvektoren gibt es einen ersten Schritt 608, um vorzugsweise die während der Verifikationsphase festgelegten Testvektoren zu erlangen, welche Verifikationsphase verwendet wird, um das Design des virtuellen IC zu testen. Die vorzugsweise erlangten Testvektoren können verwendet werden, um Belastungstests an dem IC in einer hohen Spezifikationsebene (typischerweise in einer funktionellen Ebene) durchzuführen, und können eine Datei auf einem Computer-lesbaren Medium aufweisen. Um die Testvektoren zum Gebrauch in der Herstellungsumgebung zu übersetzen, wird die Testvektor-Datei in einem nächsten Schritt 610 vorzugsweise in eine oder mehrere Nachrichten-Gruppen oder -Pakete umgewandelt oder aufgeteilt, um die Übertragung der Testdaten in einen Speicher in einem Herstellungsprüfstand zu ermöglichen. Jede Nachrichten-Gruppe kann zum Beispiel ein umfassendes Datenstück sein, welches auf einem Bus übertragen werden kann. Die Nachrichten-Gruppen werden dann in einem nächsten Schritt 612 vorzugsweise mit einem Punkt-zu-Punkt-Schnittstellen-Protokoll formatiert, wie beispielsweise das oben diskutierte VCI-Protokoll, basierend auf den Typen der in dem Design des IC verwendeten Schnittstellen. Als ein letzter Schritt 616 werden die geeignet formatierten Diagnosetests und Testvektoren als separate Gruppen in den DUT geladen und als Teil einer optimierten Sequenz von Tests in einem Herstellungsprüfstand-Prozess (siehe 11) ausgeführt.
  • 6B zeigt eine Darstellung der Migration von Tests von der Verifikationsphase für das virtuelle IC-Design in die Herstellungsphase zum Testen tatsächlicher ICs, welche das Design offenbaren. Testvektoren in einer Design-Verifikations-Stufe können mittels variierender Verfeinerungs-Ebenen gekennzeichnet werden. Das heißt, eine Reihe von Testvektoren kann auf eine hohe oder funktionelle Design-Ebene angewendet werden, während andere Vektoren auf detailliertere oder architektonisch spezifiziertere Ebenen des Hardware-Designs angewendet werden. Das Konzept der variierenden Verfeinerungs-Ebenen in der Testeingabe für einen Design-Verifikations-Prozess wird bevorzugt dann angewendet, um funktionelle Testvektoren in einer Verifikationsumgebung in hilfreiche Testvektoren in einer Herstellungs-Test-Umgebung zu migrieren. Wie in 6B gezeigt, werden funktionelle Testvektoren unter Verwendung von Softwaremodulen zunehmend verfeinert, welche Softwaremodule entwickelt wurden, um die funktionellen Testvektoren in Testeingaben in die zeitpräzise Ebene, welche notwendig ist, um einen Chip zu testen, zu verfeinern. Wie in 6B gezeigt, kann eine ähnliche Migration von Testdaten mit Bezug auf Fehlerdiagnosedaten-Design durchgeführt werden, um virtuelle Bauelement-Gruppen im Gruppen-basierten Design-Prozess zu testen. Diese Diagnosetests werden vorzugsweise gesteigert, um die physikalischen Ergänzungen für die virtuellen Bauelement-Gruppen in den Chips innerhalb der Herstellungsumgebung zu testen.
  • 10 zeigt ein physikalisches Layout für ein bevorzugtes Ausführungsbeispiel einer Nadelkarte 1000 und von Schnittstellen zu einem DUT 1002 und einem Tester 1001. Die spezielle Implementierung der Nadelkarte 1000 ist vorzugsweise derart, dass sie für das spezielle von dem DUT 1002 repräsentierte IC-Design kundenspezifisch ist. Als ein kundenspezifisches Bauelement kann die Nadelkarte 1000 parallel mit oder in einer geeigneten Zeit nach dem IC-Design-Prozess entworfen werden. In einem Ausführungsbeispiel wird das Paket geistigen Eigentums, welches die dem Hersteller bereitgestellte Masken-Datei für den IC und die Testeingaben aufweist und welches ebenfalls die speziell zum Testen der integrierten Schaltkreise entworfene Nadelkarte aufweist, welche basierend auf dem Design in der Masken-Datei und zum Ausführen der speziellen Testeingaben hergestellt ist. Der Hersteller spezifiziert bevorzugt die Basisfläche für die Nadelkarte (d.h. die Größe und Form der Nadelkarte, die Position der Nadeln und Schnittstelle zu dem DUT) und die Schnittstelle der Nadelkarte weist den Satz an Signalen zum Kommunizieren mit dem Tester auf. Basierend auf diesem beschränkten Satz von Informationen von dem Hersteller wird die Nadelkarte 1000 vorzugsweise zum Teil des dem Hersteller bereitgestellten Pakets geistigen Eigentums gemacht.
  • Die Nadelkarte 1000 weist bevorzugt irgendeinen einen oder mehrere des Folgenden wie benötigt auf: einen Datenübersetzer 1004, eine Speicher- und Steuerlogik 1006, einen Hochgeschwindigkeits-Taktgenerator 1008, einen analogen Signalgenerator 1012, eine Abtast-Test-Schnittstelle 1010 und eine direkte Tester-Schnittstelle 1014. Die Verbindungen zwischen der Nadelkarte 1000 und dem Tester 1001 weisen im Allgemeinen eine Tester-Schnittstelle auf und die Verbindungen zwischen der Nadelkarte 1000 und dem DUT 1002 weisen im Allgemeinen eine DUT-Schnittstelle auf. Der DUT 1002 wird vorzugsweise positioniert, um elektrisch an jedes der Bauelemente auf der Nadelkarte 1000 zu koppeln. Die Bauelemente auf der Nadelkarte 1000 sind speziell positioniert, um die Ausführung von Diagnosetests unter Geschwindigkeit von Bauelement-Gruppen auf dem DUT 1002 und Belastungstests unter Geschwindigkeit unter Verwendung von Testvektoren zu ermöglichen.
  • Der Datenübersetzer 1004 kann als ein fest verdrahtetes Bauelement, ein FPGA, eine auf einem Mehrzweck-Prozessor laufende Software oder ein anderer Typ von Prozessor implementiert werden. Der Datenübersetzer 1004 weist bevorzugt Verbindungen zu der Speicher- und Steuerlogik 1006 und dem Tester 1001 auf. Der Datenübersetzer 1004 weist ferner vorzugsweise ein VCI und eine Chip-Schnittstelle auf, um bevorzugt direkten Zugriff auf den System-Bus auf dem DUT 1002 bereitzustellen. Der Datenübersetzer 1004 kann Testdaten von dem Tester 1001 für den DUT 1002 oder die Speicher- und Steuerlogik 1006 mit Protokoll- und/oder Präambel-Information formatieren. Falls als eine programmierbare Vorrichtung implementiert, kann es der Datenübersetzer 1004 der Nadelkarte 1000 ermöglichen, für eine Vielfalt von verschiedenen integrierten Schaltkreis-Designs, insbesondere üblich abgeleitete Designs wie beispielsweise solche, die auf einem gemeinsamen Sockelblock basieren, angepasst zu sein.
  • Der Taktgenerator 1008 weist Steuerverbindungen zu dem Tester 1001 und Verbindungen zu dem DUT 1002 und der Speicher- und Steuerlogik 1006 auf. Der Taktgenerator 1008 befindet sich auf der Nadelkarte 1000, um die Kosten und Komplikationen des Verteilens von Hochgeschwindigkeits-Takte von dem Tester zu minimieren. Da im Allgemeinen der DUT 1002 zum Teil keinen Kristall-Oszillator aufweist, um einen Takt zu treiben, und eventuell aufgrund von Berücksichtigung von Rauschen, wird der Taktgenerator 1008 vorzugsweise auf der Nadelkarte 1000 positioniert.
  • Der analoge Signalgenerator 1012 weist Verbindungen zu dem Tester 1001 und dem DUT 1002 auf. Außerdem stellt die Nadelkarte 1000 bevorzugt die direkte Tester-Schnittstelle 1014 für direkte Tests des DUT 1002 von dem Tester 1001 bereit. Die Nadelkarte 1000 stellt ebenfalls die Abtast-Test-Schnittstelle 1010 zwischen dem Tester 1001 und dem DUT 1002 bereit, um Abtast-Tests zu gestatten, welche der Tester 1001 direkt an verschiedenen Logikknoten innerhalb des DUT 1002 durchführt.
  • 7 zeigt einen bevorzugten Satz an Merkmalen des Prüfstands, um die Testvektoren und die Diagnosetests, welche der Herstellungsumgebung hinzugefügt werden, vorteilhaft auszuführen. Die Merkmale nehmen im Allgemeinen den Vorteil der Verarbeitungs- und Speicherfähigkeiten des DUT und sekundär der Nadelkarte zum Abschließen der Tests in Anspruch. Für verschiedene IC-Designs können einige der Merkmale optional nicht vorliegend sein, obgleich einige Merkmale nur für Designs mit speziellen Attributen vorteilhaft sein können.
  • Ein bevorzugtes Merkmal ist, dass der Speicher auf dem Chip, vorzugsweise Cache, sperrbar ist, um sicherzustellen, dass die geladene Diagnose während ihres Betriebs nicht entfernt wird. Der Speicher wird bevorzugt ebenfalls wegen der Logik- und/oder Speicherelemente in dem Speicher und/oder anderswo auf dem Chip als ein Kommunikationsziel für externes Laden der Tests spezifizierbar. Mit diesem Merkmal kann ein Speicher, der andererseits nicht zum Empfangen von Daten von einer externen Quelle konfiguriert ist, dann verwendet werden, um Tests zu speichern und effektiv Teil des Herstellungs-Test-Prozesses zu werden. Diese Parametrisierung des Speichers wird bevorzugt mittels Aufweisens eines Protokolls, welches es dem Speicher erlaubt, als ein Ziel für externe Daten spezifiziert zu werden, durchgeführt. Das oben diskutierte VCI-Protokoll stellt vorzugsweise diese Funktionalität bereit. Außerdem können Cache oder anderer Speicher automatisch ausgewechselt werden, außer wenn sie speziell als gesperrt konfiguriert sind, um den Verlust der Test- und Diagnosedaten zu verhindern. Mittels Sperrens spezieller Speicherorte werden die Testdaten, die andererseits verloren gehen könnten, vorzugsweise für die Dauer des Tests beibehalten. Zusätzliche Details und Alternativen zu dem Gebrauch des Speichers, einschließend Speicher-Cache, zum Testen eines Schaltkreises sind im US-Patent Nr. 6,003,142 offenbart, welches für Mori erteilt wurde und welches hierin durch Bezugnahme vollständig aufgenommen ist.
  • Ähnlich wie ein anderes bevorzugtes Merkmal werden andere Gruppen innerhalb des Chips vorzugsweise mit einer Schnittstelle konfiguriert, um direktes Adressieren von einem Testanschluss an eine externe Datenquelle zu ermöglichen. Vorzugsweise weisen diese Bauelemente ebenfalls eine virtuelle Bauelemente (VC) -Schnittstelle auf, um es den Bauelementen zu ermöglichen, als Ziele für Diagnosetests spezifiziert zu werden. Der Testanschluss weist bevorzugt eine VC-Schnittstelle direkt zu dem System-Bus auf dem Chip auf und spezifiziert sich vorzugsweise selbst als ein Nachrichten-Initiator zum Kommunizieren mit Testdaten. Von diesem Testanschluss an der Vorrichtung-unter-Test (DUT) werden die Testvektoren (welche vorzugsweise bereits in zeitpräzise Ebenen übersetzt wurden) und die Diagnosetests in die speziellen Bauelemente (einschließend Speicher) auf dem Chip geschrieben, wobei jedes Bauelement seine eigene VC-Schnittstelle (oder andere Punkt-zu-Punkt-Schnittstelle) hat, um Testdaten zu akzeptieren.
  • 8 zeigt ein physikalisches Layout eines Chips 800 mit Schnittstellen, um Diagnose-Daten den passenden Gruppen für die spezielle Diagnosetests und Testvektor-Daten den passenden Speichern zu übertragen, um eine lokale Ausführung von Belastungstests unter Geschwindigkeit zu ermöglichen. Mit der VC-Schnittstelle kann jedes Bauelement (aufweisend einen Prozessor 803, einen Speicher 804 und Schaltkreis-Gruppen A...N 806) außerhalb eines System-Busses 808 konfiguriert werden, um Testdaten zu empfangen und auszuführen. Falls direkter Zugriff auf ein Bauelement erforderlich ist, dann wird eine VC-Schnittstelle vorzugsweise auf dem Bauelement angebracht. Jedes Bauelement weist alternativ eine androgyne Version der VC-Standard-Schnittstelle auf, welche es jedem Bauelement ermöglicht, dynamisch zwischen der Zielseite der Schnittstelle und der Initiatorseite der Schnittstelle umzuschalten, und umgekehrt. Details der Implementierung der androgynen Schnittstelle sind in der ebenfalls anhängigen Anmeldung "Circuit Component Interface", auf welche sich oben bezogen wurde, offenbart. Der Chip 800 weist vorzugsweise eine periphere Bauelemente-Zwischenverbindung (Peripheral Component Interconnect = PCI) und/oder eine serielle Eingabe/Ausgabe (SIO) -Schnittstelle 810 auf, um Kommunikation zwischen den Chip-Bauelementen und peripheren Bauelementen außerhalb des Chips 800 zu ermöglichen. Die Implementierung einer Standard-Schnittstelle für jedes Bauelement auf dem Chip 800 und an einem Testanschluss ermöglicht, dass die Testvektoren und die -diagnosen unabhängig von dem System-Bus 800 sind, welcher verwendet wird.
  • In Bezug wiederum auf 7 ist ein anderes bevorzugtes Merkmal des Prüfstands unter Geschwindigkeit eine Rückkopplungs-Fähigkeit bei den E/A-Schnittstellen des Chips. Eine Rückkopplungs-Implementierung kann die Geschwindigkeit und Effizienz der Diagnosetests und der Tests, welche die Testvektoren anwenden, steigern. 9A und 9B zeigen detailliert zwei Formen von Rückkopplungs-Schemata, wobei beide davon zum Testen unterschiedlicher Teile des IC verwendet werden können. Die Diagnosetests und Testvektoren werden typischerweise nicht bei dem Herstellungsprozess verwendet, um den Chip auf einer Zyklus-für-Zyklus-Basis zu testen. Die Ergebnisse des Tests sind vorzugsweise in der Form einer Prüfsumme, welche Testeingabe mit Testausgabe vergleicht. Um die Effizienz von solchen Tests zu steigern, ermöglicht eine Rückkopplungs-Fähigkeit das gleichzeitige Testen von Ausgangsleitungen aus dem Chip und Eingangsleitungen in den Chip. 9A zeigt eine bevorzugte Implementierung einer Rückkopplung 900, welche sich völlig auf dem Chip ohne auf die Übertragung der Signale außerhalb des Chips und auf die Nadelkarte 1000 zurückzugreifen. In 9A wird ein logischer Zustand bereitgestellt, um das gleichzeitige Lesen und Schreiben der Testdaten bei einem der E/A-Pins 902 des Chips zu ermöglichen. In diesem logischen Zustand wird ein Test, der zum Beispiel in den Speicher des DUT geladen wird, mittels der Vorrichtung ausgeführt, wobei der Prozessor auf dem DUT die E/A-Operationen handhabt. Die Testdaten, welche ausgelesen werden, werden in den Chip zurück gekoppelt, um eingelesen zu werden, wobei eine Prüfsumme ermittelt wird. Eine solche Rückkopplungs-Logik wird bevorzugt in das Design des IC integriert und verwendet, um die Effizienz des Testens des IC während der Herstellung zu steigern. Rückkopplungen können ebenfalls in individuelle Schaltkreis-Gruppen innerhalb des DUT eingebaut werden, um die Effizienz des Testens solcher Gruppen zu verbessern. Wo der DUT oder individuelle Gruppen sowohl analoge Eingänge als auch analoge Ausgänge aufweisen, können analoge Signal-Rückkopplungen in den integrierten Schaltkreis hinein entworfen werden.
  • 9B zeigt ein anderes Ausführungsbeispiel einer Rückkopplung 910, wobei Testdaten von einer Kommunikations-Schnittstelle 912 (z.B. PCI-Schnittstelle) auf einem Chip 920 und dann von einem E/A-Pin 914 heraus geschrieben werden. Eine Außerhalb-Chip-Kommunikations-Schnittstelle 916 (z.B. PCI-Schnittstelle) schält die Protokoll-Informationen heraus und sendet die rohen Testdaten an eine Prüfsumme 918. Die Kommunikations-Schnittstelle 916 koppelt dann die Daten zurück in den Chip 920. An dem Ende eines Tests kann eine Prüfsumme (nicht gezeigt) von dem DUT 920 mit der Prüfsumme 918 auf der Nadelkarte 1000 verglichen werden, um den Ort (d.h. Eingabe an oder Ausgabe von dem DUT) irgendeines Fehlers zu isolieren. Dadurch, dass die Prüfsumme 916 auf der Nadelkarte 1000 vorhanden ist, wird vermieden, dass Daten an den Tester gesendet werden müssen. In einem Ausführungsbeispiel erfolgt das Rückkoppeln 910 in den Chip 920 über einen seriellen Eingangs/Ausgangs (SIO) -Pin 922. In einem anderen Ausführungsbeispiel treibt die in 9A gezeigte Rückkopplung in den Chip ebenfalls eine externe Prüfsumme auf der Nadelkarte 1000 an, um den Ort von irgendeinem Fehler zu isolieren. Die Außerhalb-Chip-Logik wird vorzugsweise in das Design der Nadelkarte 1000 eingebaut und kann zum Beispiel in einen Datenübersetzer, wie beispielsweise dargestellt in 10, implementiert werden.
  • Mit Bezug wiederum auf 7 können zusätzliche Merkmale das Testen unter Geschwindigkeit ohne Voraussetzen der untragbaren Kosten von Hochgeschwindigkeits-Testern ermöglichen. Diese zusätzlichen Merkmale minimieren die Bandbreite zwischen der Nadelkarte und dem Tester ohne den Wunsch nach Testen unter Geschwindigkeit zu beeinträchtigen. In einem Ausführungsbeispiel weist die Nadelkarte vorzugsweise einen signifikanten Betrag an Speicher auf, um die Bandbreite für den Tester (z.B. 500 Mbits RAM) zu reduzieren. Durch Bewegen des signifikanten Speichers aus dem Tester und auf die Nadelkarte, können spezielle Hochgeschwindigkeits-Daten-Transaktionen zwischen dem DUT und der Nadelkarte durchgeführt werden, ohne den Tester involvieren zu müssen. Zum Beispiel, obwohl Daten zwischen der Nadelkarte und dem DUT bei hoher Geschwindigkeit relativ zu der Brandbreite zwischen der Nadelkarte und dem DUT übertragen werden, werden die Daten in seltenen Bursts übertragen. Durch Einbringen eines FIFO auf der Nadelkarte werden daher Daten regulär von dem Tester zu der Nadelkarte übertragen, um Daten in dem FIFO aufrecht zu erhalten, während sie aus dem FIFO zu dem DUT in Hochgeschwindigkeits-Bursts übertragen werden. Während der Speicher auf der Nadelkarte erhöht wird, steigen im Allgemeinen die Kosten der Nadelkarte, wobei soviel Speicher auf dem Chip wie möglich verwendet wird, was diese Kosten minimiert. Außerdem ist jeder vergrößerte Speicher auf der Nadelkarte ein relativ kleiner Kostenaufwand, wenn über alle der Chips, welche getestet werden können, amortisiert wird.
  • Ein anderes bevorzugtes Merkmal des Prüfstands ist, dass die analogen Schnittstellen des DUT effektiv in digitale Schnittstellen umgewandelt werden. Diese Umwandlung wird vorzugsweise unter Anbringen eines analogen Signalgenerators auf der Nadelkarte implementiert. In einem bevorzugten Ausführungsbeispiel werden digitale Codes, welche spezielle analoge Signale darstellen, von dem Tester zu der Nadelkarte übertragen, anstatt dass die Tester analoge Testsignale an analoge Schnittstellen des DUT übertragen. Dann erzeugt die Nadelkarte basierend auf dem digitalen Signalcode von dem Tester das entsprechende analoge Signal und stellt dieses Signal als Eingabe dem DUT bereit.
  • Außerdem werden die Testvektoren und Diagnosetests, welche von der Verifikationsphase migriert werden, und andere Tests, welche ausgeführt werden können (z.B. Abtast-Tests) vorzugsweise in einer minimalen Form von dem Tester zu der Nadelkarte übertragen, um den Bandbreiten-Overhead zwischen den zwei Bauelementen des Prüfstands zu minimieren. Die Diagnosetests werden zum Beispiel als eine kurze Zeichenkette, welche zu der Nadelkarte übertragen wird, referenziert. Die Zeichenkette führt dann vorzugsweise einen verarbeitungsintensiven Test aus, welcher jede mittels des Testers bewirkte Bandbreiten-Beschränkung entfernt. Die kurze Zeichenkette kann in der Form eines Codes für den Testvektor sein, welcher auf der Nadelkarte gespeichert ist. Die Zeichenkette kann alternativ einen tatsächlichen Diagnosetest repräsentieren, welcher verwendet wird, um zeitaufwändige Tests durchzuführen, und welcher dann optional automatisch mittels der Nadelkarte modifiziert wird, um zusätzliche Diagnosetests zu erzeugen. Mit Bezug auf die Testvektoren kann der Tester konfiguriert werden, um nur die kritische funktionelle Information bezüglich eines Satzes von Testvektoren zu übertragen und stellt Logik auf der Nadelkarte bereit, um die entsprechenden Steuersignale zu erzeugen, welche auf den DUT angewendet werden, um den Test auszuführen. Optional können Scan-basierte Tests ebenfalls auf der Nadelkarte basierend auf einer von dem Tester bereitgestellten Scanmuster-Kennung erzeugt werden.
  • Ein anderes bevorzugtes Merkmal ist der Gebrauch von separaten Energieversorgungen für die Nadelkarte und den DUT, um den DUT zu schützen. Mittels Aufweisens separater Energieversorgungen kann ein DUT hochgefahren werden, ohne die Energieversorgung der Nadelkarte für jeden DUT zyklisch betreiben zu müssen. Außerdem können Tests bezüglich des Bereitstellens von Energie für den DUT mittels Aufrechterhaltens separater Quellen leichter durchgeführt werden. Eine Kontrolle des elektrischen Stroms des DUT kann zum Beispiel unter Verwendung separater Energieversorgungen für die Nadelprobe und den DUT durchgeführt werden, wenn Energie von seiner separaten Energieversorgung verwendet wird.
  • Noch ein anderes bevorzugtes Merkmal des Prüfstands ist, dass direkte Schnittstellen zwischen dem Tester und den Pins des DUT bereitgestellt werden. Mittels Aufweisens dieser Schnittstellen können analoge Kontrollen des DUT, wie beispielsweise der Antriebsstromstärken und der Spannungspegel der Treiber der Pins, durchgeführt werden.
  • Bevorzugte Verfahren des Testens von ICs werden bereitgestellt, welche Verfahren die Testvektoren und Diagnosetests, welche von der Design-Verifikationsphase zu der Herstellungsphase migriert wurden, verwenden. Die bevorzugten Testverfahren erreichen das Ziel von stabilem, sogar kosteneffektivem Herstellungsphasen-Testen. In den Verfahren werden mindestens vier Typen von Tests, einschließlich Diagnosetests und Belastungstests, eingebaute Selbsttests (BISTs) und Abtast-Tests, bevorzugt ausgeführt, um ein vollständiges und stabiles Testen eines DUT durchzuführen. Die BISTs sind im Allgemeinen beim Testen von Speichern und Datenpfaden, einschließlich derer zeitlicher Fehler und derer Hängenbleib-Fehler, effektiv, wobei sie die herkömmlich erforderliche Fehlerkontroll-Güte von 99,9% erreichen. Die BISTs sind jedoch im Allgemeinen beim Testen von Zufalls-Logik, einschließend Steuerfunktionen, nicht so effektiv. Um diese anderen Bereiche des ICs zu testen, werden Diagnosetests, Belastungstests und Scan-basierte Tests verwendet. Die Diagnosetests werden vorzugsweise unter Geschwindigkeit ausgeführt, um die individuellen Schaltkreis-Gruppen, für welche sie entworfen wurden, zu kontrollieren. Die Belastungstests, welche vorzugsweise die migrierten Testvektoren unter Geschwindigkeit ablaufen lassen, stellen Test-Momentaufnahmen des Gesamtsystems bereit. Die Belastungstests testen typischerweise die Funktionalität der Bauelemente in einer Systemebene bei betrieblichen Leistungsbeschränkungen des ICs. Jedoch erreichen diese zwei Tests im Allgemeinen nicht die herkömmliche Erfordernis von 99,9% strukturellen Fehler-Testens. Um diese Ebene des Testens von Leistung zu erreichen, werden bevorzugt Scan-basierte Tests ausgeführt, um den Testprozess zu vollenden.
  • 11 zeigt einen einzelnen bevorzugten Prozess-Fluss bezüglich einer Testausführungsfolge in einem Chip-Herstellungs-Test-Prozess 1100. Die Folge von Prozessschritten wird vorzugsweise mittels eines Wunsches geleitet, die schnellsten und am wenigsten teueren Tests zuerst auszuführen, um zu ermitteln, ob ein Fehler in einem bestimmten Chip existiert, und um sich zeitintensive und aufwändige Tests bis zum Ende des Test-Prozesses aufzuheben. Vorzugsweise wird der in 11 gezeigte Test-Prozess 1100 mit einem Schwerpunkt auf dem Identifizieren des Orts des Fehlers (entgegen bloßem Ermitteln, dass ein Fehler existiert) angeordnet, was eine Priorität sein kann, zum Beispiel falls die Herstellungs-Tests in einem Prototyp-Fehlersuche-Stadium durchgeführt werden. Daher ist ein Protokoll zum Ermitteln der Anordnung der Tests, dass Tests, welche die bisherige Verifikation von bestimmten Bauelementen annehmen können, nicht durchgeführt werden, bis die bestimmten Bauelemente von anderen Tests verifiziert wurden. In einem Ausführungsbeispiel steuert ein Test-Sequenzer, wie solch einer der beispielsweise oben in 5 diskutiert und dargelegt wurde, das Anordnen von Tests basierend auf der Fehlerdetektion und/oder den Identifizierungs-Prioritäten.
  • Als ein erster bevorzugter Test 1102 in dem Prozess 1100 werden die eingebauten Selbsttests (BISTs) vorzugsweise zuerst durchgeführt. Dann werden in einem zweiten Schritt 1104 die Diagnosetests unter Geschwindigkeit vorzugsweise durchgeführt, um die Leistung der individuellen Bauelement-Gruppen auf dem Chip zu verifizieren. Als ein nächster Schritt 1106 werden die Belastungstests unter Geschwindigkeit, welche die Testvektoren verwenden, auf den Chip angewendet. Da diese Tests im Allgemeinen das Gesamtsystem testen, nehmen sie die Gültigkeit der individuellen Bauelemente an. Deshalb werden diese Tests vorzugsweise nach den Diagnosetests und BISTs durchgeführt. In einem nächsten Schritt 1108 wird dann von dem Tester Scan-basiertes Testen des DUT durchgeführt, wobei Abtastmuster unter Verwendung existierender Software-Tools (z.B. automatische Testmuster-Erzeugungssoftware = Automatic Test Pattern Generation (ATPG) Software) erzeugt werden können. Die Scan-basierten Tests sind normalerweise die zeitintensivsten und teuersten der Tests bei dem Herstellungs-Prüfstand und werden deshalb vorzugsweise als ein letzter oder vorletzter Test durchgeführt. Da die Diagnosetests und die Belastungstests auf die überwiegende Mehrheit der Fehler hin testen, können viel weniger Abtastmuster ausgeführt werden als anderseits für die nötige 99,9%-Verifikation erforderlich wären.
  • Alternativ können die ersten beiden Schritte 1102, 1104 in Abhängigkeit von den relativen Testkosten in ihrer Reihenfolge umgedreht werden. Als eine andere Alternative können die Schritte 1104 und 1106 in ihrer Reihenfolge umgekehrt werden. In dem Kontext der Herstellung für die Produktion, bei welchem die getesteten ICs anschließend in Elektronikprodukte eingebracht und/oder dem Kunden bereitgestellt werden (d.h. "in das Feld hinaus", out into the field), hat im Allgemeinen Fehlerdetektion eher als Fehleridentifikation die höhere Priorität. Die Testanordnung wird daher vorzugsweise von dem Wunsch getrieben, fehlerhafte ICs schnell zu identifizieren, so dass sie ausrangiert werden können und das Testen auf möglicherweise guten ICs weiterlaufen kann. Die Belastungstests, welche das Gesamtsystem testen und damit größere Bereiche der IC-Grundfläche testen als Diagnosetests, können Fehler eher schneller als die Diagnosetests identifizieren. In dem Kontext der Herstellung für die Produktion werden deshalb Belastungstests vor den Diagnosetests und optional vor den BISTs bevorzugt.
  • In einem anderen Ausführungsbeispiel werden analoge Tests in das Testanordnungs-Verfahren eingebracht. Analoge Tests sind typischerweise langsamer als digitale Tests, da analoge Tests der natürlichen Einschwingzeit von analogen Vorrichtungen unterworfen sind. Jedoch sind sie im Allgemeinen nicht so zeitintensiv und teuer wie Scan-basierte Tests. Deshalb werden die analogen Tests bevorzugt für ICs, welche einen relativ kleinen analogen Anteil aufweisen, vorzugsweise durchgeführt, nachdem funktionelle Tests (d.h. Diagnosetests-Schritt 1104 und Belastungstests-Schritt 1106) ausgeführt wurden, aber bevor die Scan-basierten Tests 1108 laufen gelassen werden. Für ICs, bei denen analoge Vorrichtungen vorherrschend sind, werden alternativ die analogen Tests bevorzugt als erster Testschritt durchgeführt, insbesondere in einem Kontext der Herstellung für die Produktion, wo frühe Fehlerdetektion die höchste Priorität haben kann und analoge Tests die größten Bereiche des ICs testen.
  • In noch einem anderen Ausführungsbeispiel wird das Bereitstellen von Scan-basierten Tests in vorzugsweise zwei separate Schritte partitioniert. Wo Gruppen-Ebenen-Abtastmuster in der Design-Verifikationsphase erzeugt wurden, werden solche Gruppen-Ebenen-Abtasttests vorzugsweise durchgeführt, nachdem Diagnosetests in der Gruppen-Ebene ausgeführt wurden. Diese Präferenz ist insbesondere in dem Prototyp-Fehlersuche-Kontext anwendbar, wo Fehlerort-Identifikation eher als frühe Fehlerdetektion die höchste Priorität haben kann. In diesem Fall weist das Ausführen von Zwischen-Gruppen-Abtastmustern bevorzugt das Bereitstellen des Scan-basierten Tests 1108 als einen letzten oder vorletzten Testschritt auf. In anderen Ausführungsbeispielen kann die Reihenfolge von Tests variiert werden, um ein Gesamtziel von Minimieren der Testkosten pro DUT zu erreichen.
  • Weitere Information über bevorzugte Test- und Verifikationsmethoden und -Systeme wird in den anhängenden Materialien beschrieben. Zusätzliche Information bezüglich verschiedener Aspekte von virtuellen Bauelement-Gruppen können in der ebenfalls anhängigen provisorischen US-Patentanmeldung mit der Seriennummer 60/176,879, eingereicht am 18.01.2000, gefunden werden, welche hierin unter Bezugnahme vollständig aufgenommen ist.
  • Während bevorzugte Ausführungsbeispiele der Erfindung hierin beschreiben wurden und ferner in den anhängenden Materialien erklärt werden, sind viele Variationen möglich, welche innerhalb des Konzepts und des Schutzbereichs der Erfindung bleiben. Solche Variationen werden dem Fachmann nach Inaugenscheinnahme der Spezifikation und der Zeichnungen klar sein. Die Erfindung ist daher nicht beschränkt, ausgenommen innerhalb des Schutzbereichs jeglicher angehängter Ansprüche.

Claims (8)

  1. Verfahren zum Testen eines Bauelement-Gruppen für Zufallslogik aufweisenden integrierten Schaltkreises in einer Herstellungsumgebung, welches folgende Schritte aufweist: (a) Durchführen von eingebauten Selbsttests (1102), um Speicher und Datenpfade des integrierten Schaltkreises zu testen; (b) Durchführen von Diagnosetests (1104), um die Bauelement-Gruppen für Zufallslogik individuell zu testen; (c) Durchführen von Belastungstests unter Verwendung von Testvektoren (1106), um die Bauelement-Gruppen für Zufallslogik kollektiv zu testen; und (d) Durchführen von Scan-basierten Tests der integrierten Schaltung (1108), um die strukturellen Fehler in der integrierten Schaltung zu testen.
  2. Verfahren gemäß Anspruch 1, ferner aufweisend den Schritt des Durchführens analoger Tests von analogen Teilen des integrierten Schaltkreises.
  3. Verfahren gemäß Anspruch 1, bei dem der integrierte Schaltkreis ein Prototyp ist und die Schritte in der Reihenfolge von Schritt (a), dann Schritt (b), dann Schritt (c) und dann Schritt (d) durchgeführt werden.
  4. Verfahren gemäß Anspruch 3, bei dem der integrierte Schaltkreis einen analogen Teil und einen digitalen Teil aufweist, wobei der digitale Teil im Wesentlichen größer als der analoge Teil ist und das Verfahren zusätzlich einen zwischen den Schritten (c) und (d) durchgeführten Schritt des Durchführens analoger Tests des analogen Teils des integrierten Schaltkreises aufweist.
  5. Verfahren gemäß Anspruch 3, bei dem der integrierte Schaltkreis einen analogen Teil und einen digitalen Teil aufweist, wobei der analoge Teil im Wesentlichen größer als der digitale Teil ist und das Verfahren zusätzlich einen vor dem Schritt (a) durchgeführten Schritt des Durchführens analoger Tests des analogen Teils des integrierten Schaltkreises aufweist.
  6. Verfahren gemäß Anspruch 1, bei dem der integrierte Schaltkreis einer aus einer Herstellung von integrierten Schaltkreisen im Feldeinsatz ist, und bei dem die Schritte in der Reihenfolge von Schritt (c), dann Schritt (a), dann Schritt (b) und dann Schritt (d) durchgeführt werden.
  7. Verfahren gemäß Anspruch 6, bei dem der integrierte Schaltkreis einen analogen Teil und einen digitalen Teil aufweist, wobei der digitale Teil im Wesentlichen größer als der analoge Teil ist und das Verfahren zusätzlich zwischen den Schritten (b) und (d) einen Schritt des Durchführens analoger Tests des analogen Teils des integrierten Schaltkreises aufweist.
  8. Verfahren gemäß Anspruch 6, bei dem der integrierte Schaltkreis einen analogen Teil und einen digitalen Teil aufweist, wobei der analoge Teil im Wesentlichen größer als der digitale Teil ist und das Verfahren zusätzlich vor dem Schritt (c) einen Schritt des Durchführens analoger Tests des analogen Teils des integrierten Schaltkreises aufweist.
DE60104854T 2000-06-28 2001-06-28 System und Verfahren zum Testen integrierter Schaltungen Expired - Lifetime DE60104854T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US21492800P 2000-06-28 2000-06-28
US214928P 2000-06-28
US21674600P 2000-07-03 2000-07-03
US216746P 2000-07-03
US888054 2001-06-22
US09/888,054 US6701474B2 (en) 2000-06-28 2001-06-22 System and method for testing integrated circuits
PCT/US2001/020641 WO2002001237A2 (en) 2000-06-28 2001-06-28 System and method for testing integrated circuits

Publications (2)

Publication Number Publication Date
DE60104854D1 DE60104854D1 (de) 2004-09-16
DE60104854T2 true DE60104854T2 (de) 2005-09-15

Family

ID=27396047

Family Applications (3)

Application Number Title Priority Date Filing Date
DE60128014T Expired - Lifetime DE60128014T2 (de) 2000-06-28 2001-06-28 Intelligenter Prüfadapter
DE60138933T Expired - Lifetime DE60138933D1 (de) 2000-06-28 2001-06-28 System und Verfahren zum Testen integrierter Schaltungen
DE60104854T Expired - Lifetime DE60104854T2 (de) 2000-06-28 2001-06-28 System und Verfahren zum Testen integrierter Schaltungen

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE60128014T Expired - Lifetime DE60128014T2 (de) 2000-06-28 2001-06-28 Intelligenter Prüfadapter
DE60138933T Expired - Lifetime DE60138933D1 (de) 2000-06-28 2001-06-28 System und Verfahren zum Testen integrierter Schaltungen

Country Status (6)

Country Link
US (1) US6701474B2 (de)
EP (1) EP1299739B1 (de)
AT (3) ATE433119T1 (de)
AU (1) AU2001271590A1 (de)
DE (3) DE60128014T2 (de)
WO (1) WO2002001237A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020239731A1 (de) * 2019-05-29 2020-12-03 Continental Teves Ag & Co. Ohg Modul und verfahren zur initialisierung und kalibrierung eines produkts während dessen herstellung

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020006624A1 (en) * 2000-06-30 2002-01-17 Town Terence C. Method and assay for diagnosing substance dependency
EP1299826A1 (de) * 2000-07-03 2003-04-09 Cadence Design Systems, Inc. Schaltkreiskomponentenschnittstelle
US7139947B2 (en) * 2000-12-22 2006-11-21 Intel Corporation Test access port
GB2371640B (en) * 2001-01-26 2004-09-01 Advanced Risc Mach Ltd Validating integrated circuits
JP2002288255A (ja) * 2001-03-26 2002-10-04 Toshiba Corp ハードウェア記述言語で記述されたシステムlsiの回路部品、及びその検証方法、検証支援回路、システムlsiの製造方法
US6714828B2 (en) * 2001-09-17 2004-03-30 Formfactor, Inc. Method and system for designing a probe card
US20030229643A1 (en) * 2002-05-29 2003-12-11 Digimarc Corporation Creating a footprint of a computer file
US6630685B1 (en) * 2002-06-24 2003-10-07 Micron Technology, Inc. Probe look ahead: testing parts not currently under a probehead
US6816814B2 (en) * 2002-11-12 2004-11-09 Sonics, Inc. Method and apparatus for decomposing and verifying configurable hardware
US6961674B2 (en) 2003-08-11 2005-11-01 Hewlett-Packard Development Company, L.P. System and method for analysis of cache array test data
US8872833B2 (en) 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8775997B2 (en) 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US6957402B2 (en) * 2003-09-24 2005-10-18 Artisan Components, Inc. Yield maximization in the manufacture of integrated circuits
US7275228B1 (en) * 2003-11-17 2007-09-25 Altera Corporation Techniques for grouping circuit elements into logic blocks
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US7406509B2 (en) * 2004-01-07 2008-07-29 Network Appliance, Inc. Dynamic switching of a communication port in a storage system between target and initiator modes
US7823128B2 (en) * 2004-04-19 2010-10-26 Verigy (Singapore) Pte. Ltd. Apparatus, system and/or method for combining multiple tests to a single test in a multiple independent port test environment
US8581610B2 (en) * 2004-04-21 2013-11-12 Charles A Miller Method of designing an application specific probe card test system
US7225416B1 (en) * 2004-06-15 2007-05-29 Altera Corporation Methods and apparatus for automatic test component generation and inclusion into simulation testbench
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
JP4464237B2 (ja) * 2004-09-30 2010-05-19 Necエレクトロニクス株式会社 バーンイン試験方法,及び,それに用いるバーンイン用測定プログラム
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US7526692B2 (en) * 2004-09-30 2009-04-28 International Business Machines Corporation Diagnostic interface architecture for memory device
US8621304B2 (en) * 2004-10-07 2013-12-31 Hewlett-Packard Development Company, L.P. Built-in self-test system and method for an integrated circuit
US7539912B2 (en) 2005-12-15 2009-05-26 King Tiger Technology, Inc. Method and apparatus for testing a fully buffered memory module
US7511526B2 (en) * 2006-08-23 2009-03-31 Munt Kenneth A Circuit module testing apparatus and method
US8499208B2 (en) * 2006-10-27 2013-07-30 Qualcomm Incorporated Method and apparatus for scheduling BIST routines
US7953582B2 (en) * 2006-11-21 2011-05-31 Cadence Design Systems, Inc. Method and system for lithography simulation and measurement of critical dimensions
US7558642B2 (en) 2007-04-27 2009-07-07 International Business Machines Corporation Method, apparatus, and product for optimizing manufacturing tests by integrating part and test objects in the same order configuration application
US7620861B2 (en) * 2007-05-31 2009-11-17 Kingtiger Technology (Canada) Inc. Method and apparatus for testing integrated circuits by employing test vector patterns that satisfy passband requirements imposed by communication channels
US8724483B2 (en) 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US7757144B2 (en) * 2007-11-01 2010-07-13 Kingtiger Technology (Canada) Inc. System and method for testing integrated circuit modules comprising a plurality of integrated circuit devices
US8042086B2 (en) * 2007-12-21 2011-10-18 Oracle America, Inc. Method and apparatus for verifying integrated circuit design using a constrained random test bench
US7810006B2 (en) * 2008-01-14 2010-10-05 Emerging Display Technologies Corp. Testing system for a device under test
US7848899B2 (en) * 2008-06-09 2010-12-07 Kingtiger Technology (Canada) Inc. Systems and methods for testing integrated circuit devices
US7925949B2 (en) * 2008-10-15 2011-04-12 Micron Technology, Inc. Embedded processor
US9146277B2 (en) 2008-11-07 2015-09-29 Infineon Technologies Ag Test board and test system
US20100169715A1 (en) * 2008-12-29 2010-07-01 Dedicated Computing Llc Process for Verifying Computers
US20100305933A1 (en) * 2009-06-01 2010-12-02 Chang Chioumin M Method and Apparatus for Verifying Logic Circuits Using Vector Emulation with Vector Substitution
US8572528B1 (en) * 2009-11-25 2013-10-29 Xilinx, Inc. Method and apparatus for analyzing a design of an integrated circuit using fault costs
US8356215B2 (en) * 2010-01-19 2013-01-15 Kingtiger Technology (Canada) Inc. Testing apparatus and method for analyzing a memory module operating within an application system
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US8887136B2 (en) * 2010-05-04 2014-11-11 Synopsys, Inc. Context-based evaluation of equations
US8918686B2 (en) 2010-08-18 2014-12-23 Kingtiger Technology (Canada) Inc. Determining data valid windows in a system and method for testing an integrated circuit device
US9317351B2 (en) * 2010-09-07 2016-04-19 Advantest Corporation System, methods and apparatus using virtual appliances in a semiconductor test environment
US8729975B2 (en) * 2011-08-23 2014-05-20 International Business Machines Corporation Implementing differential resonant clock with DC blocking capacitor
US9003256B2 (en) 2011-09-06 2015-04-07 Kingtiger Technology (Canada) Inc. System and method for testing integrated circuits by determining the solid timing window
US20130074033A1 (en) * 2011-09-16 2013-03-21 International Business Machines Corporation Designing a configurable pipelined processor
US8724408B2 (en) 2011-11-29 2014-05-13 Kingtiger Technology (Canada) Inc. Systems and methods for testing and assembling memory modules
US9117552B2 (en) 2012-08-28 2015-08-25 Kingtiger Technology(Canada), Inc. Systems and methods for testing memory
US8924801B2 (en) * 2013-02-14 2014-12-30 Lsi Corporation At-speed scan testing of interface functional logic of an embedded memory or other circuit core
CN103294579A (zh) * 2013-06-09 2013-09-11 浪潮电子信息产业股份有限公司 一种高性能计算集群应用性能测试方法
CN104614659B (zh) * 2013-11-01 2017-08-29 普诚科技股份有限公司 自动化测试系统和方法
US20150153405A1 (en) * 2013-12-04 2015-06-04 Princeton Technology Corporation Automatic testing system and method
US9360523B2 (en) 2014-04-18 2016-06-07 Breker Verification Systems Display in a graphical format of test results generated using scenario models
JP6341795B2 (ja) * 2014-08-05 2018-06-13 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びマイクロコンピュータシステム
US10267853B2 (en) * 2015-12-18 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. System and method to diagnose integrated circuit
KR102494048B1 (ko) 2016-01-11 2023-02-01 삼성전자주식회사 반도체 장치의 핀 간 라우팅 설계 방법 및 그것을 적용한 설계 시스템
US10571519B2 (en) 2016-03-08 2020-02-25 International Business Machines Corporation Performing system functional test on a chip having partial-good portions
US9857422B2 (en) 2016-03-08 2018-01-02 International Business Machines Corporation Methods and systems for generating functional test patterns for manufacture test
US10598526B2 (en) 2016-03-08 2020-03-24 International Business Machines Corporation Methods and systems for performing test and calibration of integrated sensors
US10789550B2 (en) * 2017-04-13 2020-09-29 Battelle Memorial Institute System and method for generating test vectors
US10268787B2 (en) * 2017-07-17 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. Hybrid timing analysis method and associated system and non-transitory computer readable medium
US10762262B1 (en) * 2017-11-03 2020-09-01 Synopsys, Inc. Multi-dimensional constraint solver using modified relaxation process
CN108344909B (zh) * 2018-01-11 2020-10-30 福建联迪商用设备有限公司 Ic卡终端自动化测试方法及其系统、上位机
US11204849B2 (en) 2020-03-13 2021-12-21 Nvidia Corporation Leveraging low power states for fault testing of processing cores at runtime
CN112835759A (zh) * 2021-02-01 2021-05-25 百度在线网络技术(北京)有限公司 测试数据处理方法、装置、电子设备以及存储介质
US20230184821A1 (en) * 2021-12-09 2023-06-15 Nanya Technology Corporation Appratus for performing multiple tests on a device under test

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4872169A (en) 1987-03-06 1989-10-03 Texas Instruments Incorporated Hierarchical scan selection
US5539652A (en) 1995-02-07 1996-07-23 Hewlett-Packard Company Method for manufacturing test simulation in electronic circuit design
US5838583A (en) 1996-04-12 1998-11-17 Cadence Design Systems, Inc. Optimized placement and routing of datapaths
US6067409A (en) 1996-06-28 2000-05-23 Lsi Logic Corporation Advanced modular cell placement system
US6286128B1 (en) 1998-02-11 2001-09-04 Monterey Design Systems, Inc. Method for design optimization using logical and physical information
US6311302B1 (en) 1999-04-01 2001-10-30 Philips Semiconductor, Inc. Method and arrangement for hierarchical control of multiple test access port control modules

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020239731A1 (de) * 2019-05-29 2020-12-03 Continental Teves Ag & Co. Ohg Modul und verfahren zur initialisierung und kalibrierung eines produkts während dessen herstellung
US11953551B2 (en) 2019-05-29 2024-04-09 Continental Automotive Technologies GmbH Module and method for initializing and calibrating a product during the manufacture thereof

Also Published As

Publication number Publication date
ATE433119T1 (de) 2009-06-15
DE60128014D1 (de) 2007-05-31
EP1299739A2 (de) 2003-04-09
WO2002001237A3 (en) 2002-08-15
WO2002001237A2 (en) 2002-01-03
DE60104854D1 (de) 2004-09-16
US6701474B2 (en) 2004-03-02
DE60138933D1 (de) 2009-07-16
AU2001271590A1 (en) 2002-01-08
EP1299739B1 (de) 2004-08-11
US20020091979A1 (en) 2002-07-11
ATE273520T1 (de) 2004-08-15
ATE360217T1 (de) 2007-05-15
DE60128014T2 (de) 2008-01-03

Similar Documents

Publication Publication Date Title
DE60104854T2 (de) System und Verfahren zum Testen integrierter Schaltungen
US5550839A (en) Mask-programmed integrated circuits having timing and logic compatibility to user-configured logic arrays
DE602004011320T2 (de) Verfahren und struktur zur entwicklung eines testprogramms für integrierte halbleiterschaltungen
US5581562A (en) Integrated circuit device implemented using a plurality of partially defective integrated circuit chips
DE68929518T2 (de) Verfahren zur Verwendung einer elektronisch wiederkonfigurierbaren Gatterfeld-Logik und dadurch hergestelltes Gerät
DE3787431T2 (de) Verfahren zur Generierung einer Kandidatenliste von fehlerhaften Schaltungselementen und Verfahren zur Isolierung von Fehlern in einer logischen Schaltung unter Verwendung dieser Kandidatenliste.
DE10244757B3 (de) Programmierung eines Speicherbausteins über ein Boundary Scan-Register
DE10053207A1 (de) Verfahren und Vorrichtung zur Gültigkeitsprüfung bei Systemchip-Entwürfen
DE10392497T5 (de) Herstellungsverfahren und Herstellungsvorrichtung zum Vermeiden eines Prototypen-Aufschubs bei der ASIC/SOC-Herstellung
DE60309931T2 (de) Verbindung mehrerer testzugriffsportsteuerungsvorrichtungen durch ein einzeltestzugriffsport
DE10147078A1 (de) Verfahren zur Gültigkeitsprüfung von Entwürfen für komplexe integrierte Schaltungen
DE60208442T2 (de) Topologierekonfiguration einer prüfschaltung und verwendungsverfahren
DE10296464T5 (de) Verfahren und Gerät zur Validierung des Entwurfes einer komplexen integrierten Schaltungen
DE68927984T2 (de) Logikschaltung mit einer Prüffunktion
DE10393176T5 (de) Verfahren zum Evaluieren eines kernbasierten Systems auf einem Chip
DE69030792T2 (de) Methode und Gerät zur Wechselwirkung-Emulation zwischen einer anwendungsspezifischen integrierten Schaltung (ASIC) während der Entwicklung und ein Zielsystem
DE60012735T2 (de) Verfahren zur unterscheidung von verschiedenen typen von abtastfehlern, rechnerbasierte schaltungsemulation und fehlerdetektionssystem
DE2902375A1 (de) Logikbaustein fuer integrierte digitalschaltungen
DE10317431A1 (de) Verfahren zur Generierung von Testersteuerungen
US20230005562A1 (en) Scan chain compression for testing memory of a system on a chip
DE102020130212A1 (de) Verfahren zum deterministischen Clustering und Packing für Random-Logik auf programmierbaren integrierten Schaltungen
DE102020111261A1 (de) Feldadaptierbare in-system-testmechanismen
DE102020111259A1 (de) On-chip-ausführung eines in-system-tests unter verwendung eines verallgemeinerten testbildes
EP1236222B1 (de) Universelle vorrichtung sowie verfahren und werkzeuge zu ihrer verwendung
EP1473573B1 (de) Intelligenter Prüfadapter

Legal Events

Date Code Title Description
8364 No opposition during term of opposition