-
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.