Hintergrund der Erfindung
1. Bereich der Erfindung
Die vorliegende Erfindung betrifft die elektronische Entwurfsautomatisierung
und, insbesondere, Systeme zum Testen integrierter Schaltungen während Herstellungs-
und/oder Fabrikationsstadien gemäß dem Oberbegriff des unabhängigen
Anspruchs 1. Solche Systeme werden beispielsweise in dem US-Patent
4,354,268 offenbart.
Hintergrund
Schaltkreischip-Designer verwenden oft elektronische Entwurfsautomatisierungs
(EDA)-Softwaretools zum Unterstützen des Designprozesses und zum Erlauben der
Simulation des Chipdesigns vor dem Bau eines Prototyps oder der Produktion. Das
Designen von Chips unter Verwendung von EDA-Softwaretools umfasst einen iterativen
Prozess, mit dem das Chipdesign schrittweise perfektioniert wird. Typischerweise
designen Chipdesigner einen Schaltkreis durch Eingeben von Informationen auf einer
Computerarbeitsstation, die im Allgemeinen eine hochqualitative Graphikfähigkeit
hat, um so Teile der Chipdesigns wie benötigt anzuzeigen. Eine von-oben-nach-unten-Methodik
wird herkömmlicherweise angewandt unter Verwendung von Hardwarebeschreibungssprachen
(HDL), beispielsweise Verilog® oder VHDL, zum Beispiel, durch welche
der Designer einen integrierten Schaltkreis schafft durch hierarchisches Definieren
funktionaler Komponenten (Bauelemente) des Schaltkreises und dann Zerlegen jeder
Komponente in kleinere und kleinere Komponenten.
Die verschiedenen Komponenten eines integrierten Schaltkreises werden
anfänglich definiert durch deren Funktionsoperationen und relevanten Eingaben
und Ausgaben. Aus der HDL oder einer anderen Beschreibung auf hohem Niveau wird
die tatsächliche Logikzellenimplementierung typischerweise durch logische Synthese
bestimmt, welche die Funktionsbeschreibung des Schaltkreises in eine spezifische
Schaltkreisimplementierung umwandelt. Die logischen Zellen werden dann "platziert"
(d.h., gegebene spezifische Koordinatenpunkte in dem Schaltkreislayout) und "geroutet"
(d.h. verdrahtet oder zusammengekoppelt gemäß den Definitionen des Schaltkreisdesigners).
Die Platzierungs- und Routingsoftware-Routinen akzeptieren als deren Eingabe gewöhnlich
eine verflachte Netzliste, die gewöhnlich durch einen logischen Syntheseprozess
erzeugt wurde. Die verflachte Netzliste identifiziert die spezifischen logischen
Zelleninstanzen aus einer Ziel-Standardzellenbibliothek und beschreibt die spezifische
Zellen-zu-Zelle Konnektivität. Nachdem diese spezifische Zellen-zu-Zelle Konnektivität
errichtet wurde, schafft die Software für das physikalische Design und Layout
eine Datei des pysikalischen Layouts des integrierten Schaltkreises, einschließlich
der physikalischen Position jeder Metall-Leitung (d.h. Draht) und jedes Vias (d.h.
Metallverbindung zwischen Chipschichten).
Als letzten Schritt vor der Schaffung der Maskendatei zum Ausliefern
an die Fabrikationseinrichtung führt die Software für physikalische Verifizierung
und Layoutvalidierung verschiedene Entwurfsregelprüfungen (DRC) an der Layoutdatei
aus. In jüngerer Zeit wird, um sehr große und komplexe Designs zu handhaben,
eine Netzliste für jeden Abschnitt oder Block in dem Design geschaffen. Die
nachfolgend platzierten und gerouteten Blocks werden dann beim nächsten, Volldesign-Niveau
hierarchisch als "Zellen" betrachtet und wieder platziert und geroutet, um das Layout
des gesamten Chips zu bilden. In diesem hierarchischem Ansatz werden die DRCs auch
hierarchisch ausgeführt. Eine weitere Erklärung eines besonderen Chipdesigns
wird beispielsweise in dem US-Patent 5,838,583
dargestellt.
Während der Fabrikation in einer Halbleiter-Gießerei werden
integrierte Schaltkreise typischerweise als Teil eines vielstufigen Prozesses auf
Halbleiterwafern hergestellt. Ein einzelnes Design eines integrierten Schaltkreises
wird gewöhnlich viele Male über einen einzigen Halbleiterwafer, mit gleichmäßig
in Reihen und Spalten ausgelegten Iterationen des integrierten Schaltkreises, dupliziert.
Die Fabrikation eines Halbleiterwafers, der integrierte Schaltkreise enthält,
kann Ätz-, Abscheidungs-, Diffusions-, und Reinigungsprozesse umfassen, die
innerhalb spezifischer Toleranzen ausgeführt werden.
Typischerweise sind, aufgrund von Mängeln in dem Herstellungsprozess,
einige von den integrierten Schaltkreisen auf dem Halbleiterwafer nicht für
die kommerzielle Verwendung geeignet. Die Anzahl der integrierten Schaltungen auf
jedem Wafer, die problematisch sein wird, hängt zum Teil von der Qualität
und Konsistenz des Fabrikationsprozesses ab. Jedoch werden, ungeachtet der oft besten
Bemühungen der Halbleiter-Gießereien, üblicherweise auf jedem Wafer
eine Anzahl von integrierten Schaltkreisen vorhanden sein, die ausgeschieden werden
müssen, selbst wenn das Design des "Blaudrucks" korrekt ist, weil während
des Fabrikationsprozesses elektrischer Komponenten nicht die angemessenen Toleranzen
erreicht werden, weil elektrische Kopplungen, die gemacht werden sollten, nicht
ausreichend leitend gemacht werden, weil elektrische Pfade, die isoliert sein sollten,
sich zu nahe kommen oder kurzgeschlossen werden, oder aufgrund anderer Mängel,
die an jedem Punkt auftreten können beim Ätz-, Abscheidungs-, Diffusions-
oder Reinigungsprozess. Das endlose Schieben zum Verringern der
Größe von integrierten Schaltkreisen, einschließlich der darauf gebildeten
Mikro-Schaltkreise, Drähte und Komponenten, erhöht lediglich die Wahrscheinlichkeit,
dass Mängel während des Fabrikationsprozesses auftreten, das Ausscheiden
von wenigstens Einigen (und manchmal aller) der integrierten Schaltkreise auf dem
Halbleiterwafer erfordernd.
Nach dem Fabrikationsprozess geht der Halbleiterwafer typischerweise
durch einen Verkapselungsprozess, in welchem der Wafer in Würfel zerteilt und
dann zum Versand oder zur Integration auf elektronische Vorrichtungen verkapselt
wird. Es zu unterlassen, problematische integrierte Schaltkreise vor solch einem
Versand oder solch einer Integration zu identifizieren, kann sich verheerend auswirken.
Falls ein mangelhafter integrierter Schaltkreis vor einem Versand nicht identifiziert
wird, kann er in einem Produkt platziert werden und an einen Verbraucher oder Endbenutzer
verkauft werden, woraufhin er möglicherweise während des Betriebs versagt.
Neben dem Verletzen des guten Rufes des Chipdesigners und der Halbleiterfabrikationsstätte
können solche Funktionsfehler große Probleme für die Anwendung des
Verbraucher oder Endbenutzer verursachen. Ferner sind die Kosten für den Austausch
des gesamten defekten Produktes viel größer als das Entfernen der defekten
Komponente aus dem Herstellungsprozess, bevor sie in das fertige Produkt eingebaut
ist.
Folglich sollten integrierte Schaltkreise getestet werden, um sicherzustellen,
dass sie richtig funktionieren. Ein solches Testen kann stattfinden an dem Punkt,
wenn die Herstellung des Halbleiterwafers vollendet ist und/oder nach dem die Würfel
verkapselt worden sind. Eine Vielfalt von Tests wurden entwickelt zur Anwendung
während einer dieser Stufen der Herstellung. Die meisten dieser Tests werden
durch eine "Testkarte" (Nadelkarte) verwaltet, die mit einer automatisierten Maschine
gekoppelt ist. Die Testkarte ist eine Test-Aufnahmevorrichtung, die direkt mit dem
zu testenden integrierten Schaltkreis kontaktiert (in diesem Zusammenhang auch bekannt
als das "Messobjekt" oder "DUT" (Device Under Test = Messobjekt). In einer Ausführungsform
enthält die Testkarte eine elektrische Schnittstelle, die zu dem DUT kompatibel
ist. Die automatische Maschine, die die Testkarte steuert, enthält im allgemeinen
einen Computer, der verschiedene gespeicherte Testinformationen hat, die durch die
Design- oder Testingenieure speziell für das DUT entwickelt wurden. Die ausgeführten
Klassen des Tests können sein Funktionstests, wie zum Beispiel Diagnostiktests
und Belastungstests zum Sicherstellen, dass die Funktionalität des integrierten
Schaltkreises vollständig ist, und Strukturtests, wie zum Beispiel eingebaute
Selbsttests (BIST), und Abtast-basierte Tests zum Sicherstellen, dass keine strukturellen
Fehler in der Logik des DUT existieren.
Einer der Gesichtspunkte zum Auswählen des Typs/der Typen von
Tests zum Anwenden für einen integrierten Schaltkreis, ist der Zeitaufwand,
welcher jeder Test benötigt. Weil integrierte Schaltkreise oft Teil eines Massenproduktionsprozesses
sind, in welchem zehntausende oder sogar Millionen von Einheiten produziert werden
können, können sogar relativ kurze Tests in der Gesamtsumme signifikante
Prozessverzögerungen zur Folge haben. Darüberhinaus benötigen Nach-Fabrikations-Tests
typischerweise teures, spezialisiertes Testequipment, welches sich in die Zehntausende
oder Millionen Dollars pro Testmaschine bewegen kann. Weil integrierte Schaltkreise
zunehmend Millionen oder Zehnmillionen von Gates enthalten, werden herkömmliche
Testtechniken schnell entweder zu zeitaufwändig oder ineffizient bei Volltests
von integrierter Schaltkreisen. Aus demselben Grund werden die Testkosten schnell
zum teuersten Anteil bei der Herstellung eines integrierten Schaltkreises.
Ein Nachteil bei herkömmlichen Testverfahren sind die großen
Mengen an Daten in der Form von Testmustern, die oft zwischen dem Tester und der
internen Schaltung des integrierten Schaltkreises über die Testkarte übertragen
werden müssen, die mit dem integrierten Schaltkreis gekoppelt ist. Mit möglicherweise
Millionen von zu testenden Gates auf einem einzelnen integrierten Schaltkreis können
die Testmuster lang sein. Die Verwendung der normalen Schnittstellenschaltung des
integrierten Schaltkreises zum Laden der Testmuster und Auslesen der Ergebnisse
kann eine relativ große Menge an Zeit beanspruchen. Auf-Geschwindigkeit Belastungstests,
welche typischerweise die Systemniveau-Funktionalität an den Grenzen der operativen
Arbeitsleistung des integrierten Schaltkreises testet, können besonders schwierig
zu implementieren sein aufgrund der Bandbreitengrenzen zwischen dem Tester und dem
integrierten Schaltkreis-Messobjekt.
Es wurden einige Ansätze gemacht, die Geschwindigkeit des Testens
zu erhöhen, indem Tester mit höherer Geschwindigkeit verwendet werden
(beispielsweise einer mit einer Geschwindigkeit von 200 MHz im Gegensatz zu den
typischen 25 MHz). Jedoch können Hochgeschwindigkeitstester außerordentlich
teuer sein. Auch kann bei solchen hohen Geschwindigkeiten die Länge der Drähte,
die den Tester mit dem integrierten Schaltkreis koppeln (durch die Testkarte), ein
signifikanter geschwindigkeitsbegrenzender Faktor werden aufgrund der Impedanzen,
die teilweise frequenzbezogen sind. Daher werden, um einen Hochgeschwindigkeitstest
durchzuführen, kurze Drähte benötigt, welche Design-Einschränkungen
für das Testequipment mit sich bringen und den automatischen Betrieb des Testequipments
möglicherweise beschwerlicher und teuerer machen.
Eine andere vorgeschlagene Lösung war, zusätzliche Test-I/O-Pins
auf der zu testenden Vorrichtungen zu platzieren. Das Problem bei diesem Ansatz
ist, dass jede Verbesserung bestenfalls linear ist und daher relativ unsignifikant
ist im Vergleich zu der Erhöhung der Dichte der für einen integrierten
Schaltkreis zu testenden Gates. Mehrfachabtastungs-Teststrings könnten unter
Verwendung der zusätzlichen Eingabe/Ausgabe-Pins in das DUT eingegeben werden,
aber wieder hat aufgrund des begrenzten realen Leistungsvermögens die Verbesserung
der Leistung eine niedrige Obergrenze. Ferner werden durch das Aufnehmen zusätzlicher
Pins die Kosten für das Chip-Verkapseln erhöht.
Analog wurde auch vorgeschlagen, die Testeingaben unter Verwendung
von Signal-I/O-Pins für Tests schneller in das DUT zu übertragen. Um dies
zu tun, werden Test- und Verwendungs-Eingaben/Ausgaben (I/O) für einen Bereich
des Satzes von Signal-I/O-Pins gemultiplext. Diese Option zieht jedoch zusätzliche
Leistungserfordernisse auf sich. Weil außerdem das reale Leistungsvermögen
für Eingabe/Ausgabe-Pins begrenzt ist, liefert diese Alternative auch nur begrenzt
einen Vorteil.
Eine der neueren Entwicklungen in Schaltkreisdesigns ist das Aufkommen
von sogenannten virtuellen Komponenten-Blocks (Bauelement-Gruppen), welche von einem
generellen Standpunkt aus gesehen vor-designte und vor-gehärtete (pre-hardened)
(oder halb-gehärtete) Schaltkreisdesigns in Software-Form (beispielsweise im
GDSII-Format) sind, welche in unterschiedlichen, größeren Schaltkreisdesings
leicht wiederverwendet oder wiederaufbereitet werden können. Ein Vorteil von
virtuellen Komponenten (oder VC)-Blocks ist, dass sie die Zeit, um einen gesamten
Schaltkreis zu designen, reduzieren und dadurch die Geschwindigkeit merklich erhöhen.
Virtuelle Kompontenten-Blocks können auch von einem logischen und funktionellen
Standpunkt aus verifiziert werden, auch Zeit in dem Verifizierungsabschnitt des
Designprozesses sparend.
Während virtuelle Komponenten-Blocks vom Design-Blickwinkel her
als bequem befunden wurden, wenn sie in größere Schaltkreisdesigns eingearbeitet
und auf Silizium fabriziert sind, neigen sie immer noch dazu, zu versagen, entweder
aufgrund eines Fehlers in dem Herstellungsprozess oder aufgrund von Problemen, die
aus einer versuchten Integration in das größere Schaltkreisdesign entstehen.
Daher müssen integrierte Schaltkreise, die teilweise auf virtuelle Komponenten-Blocks
basieren, genauso wie jeder andere Typ eines integrierten Schaltkreises, im Allgemeinen
im Herstellungsstadium getestet und verifiziert werden. Folglich müssen, gemäß
dem herkömmlichen Elektronikdesign-Automatisierungsprozess, für jedes
neue integrierte Schaltkreisdesign, das einen virtuellen Komponenten-Block umfasst,
neue Tests (ob Funktions-, Diagnostik- oder Belastungstests) geschrieben werden.
Diese Tests können, wie oben erwähnt, genauso zeitaufwändig und teuer
zu designen sein, wie sie während des Herstellens ausgeführt werden können.
Demgemäß wäre es vorteilhaft, verbesserte Mittel zum
Testen integrierter Schaltkreise zu schaffen, einschließlich von Designtests,
Ausführungstests, und Test-Systemen und -Komponenten am Punkt des Fabrizierens
und/oder Verkapselns. Es wäre ferner vorteilhaft, verbesserte Mittel zum Testen
von integrierten Schaltkreisen zu schaffen, die aus vordefinierten und vor-gehärteten
virtuellen Komponenten-Blocks entwickelt wurden.
Zusammenfassung der Erfindung
Die Erfindung schafft ein System zum Testen von integrierten Schaltkreisen
gemäß dem kennzeichnenden Teil des unabhängigen Anspruchs 1. Bevorzugte
Ausführungsbeispiele sind in den abhängigen Ansprüchen offenbart.
Die Erfindung offenbart ein nicht-beanspruchtes Verfahren zum Testen
eines integrierten Schaltkreises, der Komponenten-Blocks zufälliger Logik (random
logic) in einer Herstellungsumgebung enthält. Das Verfahren enthält vorzugsweise
die Schritte des Durchführens von eingebauten Selbsttests, mindesten zum Teil
zum Testen von Speicher- und Datenpfaden des integrierten Schaltkreises; Durchführens
von Diagnostiktests, mindesten zum Teil zum individuellen Testen der Komponenten-Blocks
zufälliger Logik; Durchführens von Belastungstests unter Verwendung von
Testvektoren, mindesten zum Teil zum kollektiven Testen der Komponenten-Blocks zufälliger
Logik; und Durchführens von Abtast-basierten Tests des integrierten Schaltkreises,
mindesten zum Teil zum Testen auf struktureller Fehler in dem integrierten Schaltkreis
hin.
Die Erfindung offenbart auch ein nicht-beanspruchtes System zum Testen
eines integrierten Schaltkreises, der einen Speicher zum Speichern von Signaturen
zum Initialisieren von eingebauten Selbsttests, von Eingaben für Diagnostiktests,
von Testvektoren für Belastungstests, und von Abtastmustern für Abtast-basierten
Tests enthält. Das System enthält ferner vorzugsweise einen Prozessor
zum Initialisieren und Evaluieren des Leistungsvermögens des integrierten Schaltkreises
bei den eingebauten Selbsttests, den Diagnostiktests, den Belastungstests und den
Abtast-basierten Tests.
Die Erfindung offenbart ein nicht-beanspruchtes computerlesbares Medium,
das eine Sequenz von Instruktionen zum Testen eines hergestellten integrierten Schaltkreises
speichert. Der integrierte Schaltkreis enthält vorzugsweise einen Speicher,
Komponenten-Blocks von zufälliger Logik und Datenpfade. Die Sequenz von Instruktionen
ist zum Durchführen eines Satzes von Aktionen, die enthalten (a) Durchführen
von eingebauten Selbsttests, mindesten zum Teil, um den Speicher und die Datenpfade
des integrierten Schaltkreises zu testen; (b) Durchführen von Diagnostiktests,
mindesten zum Teil, um die Komponenten-Blocks der zufälligen Logik individuell
zu testen; (c) Durchführen von Belastungstests unter Verwendung von Testvektoren,
mindesten zum Teil, um die Komponenten-Blocks der zufälligen Logik kollektiv
zu testen; und (d) Durchführen von Abtast-basierten Tests des integrierten
Schaltkreises, mindesten zum Teil, um auf strukturelle Fehler in dem integrierten
Schaltkreis hin zu testen.
Die Erfindung offenbart eine nicht-beanspruchte Testkarte zum Testen
eines Messobjekts. Die Testkarte enthält vorzugsweise eine Messobjekt-Schnittstelle,
eine Tester-Schnittstelle, und einen Speicher zum Speichern von Testeingaben für
das Messobjekt. Die Testkarte enthält ferner vorzugsweise einen Datenübersetzer,
der zwischen dem Speicher und der Tester-Schnittstelle gekoppelt ist zum Formatieren
von zwischen dem Speicher und der Tester-Schnittstelle kommunizierten Testdaten.
Die Erfindung offenbart eine nicht-beanspruchte Testkarte zum Testen
eines Messobjekt, vorzugsweise enthaltend eine Messobjekt-Schnittstelle, eine Tester-Schnittstelle,
und einen analogen Signalgenerator, der zwischen der Tester-Schnittstelle und der
Messobjekt-Schnittstelle gekoppelt ist. Der analoge Signalgenerator ist vorzugsweise
dazu konfiguriert, analoge Tests kennzeichnende digitale Signale von der Tester-Schnittstelle
zu empfangen, basierend auf die digitalen Signale ein analoges Signal zu erzeugen,
und das analoge Signal an das Messobjekt zu senden. Die Testkarte enthält ferner
einen Datenübersetzer, der zwischen der Messobjekt-Schnittstelle und der Tester-Schnittstelle
gekoppelt ist zum Formatieren von zwischen dem Messobjekt und der Tester-Schnittstelle
kommunizierten Testdaten.
Die Erfindung beansprucht eine Testkarte zum Testen eines Messobjekts,
vorzugsweise enthaltend eine Messobjekt-Schnittstelle, eine Tester-Schnittstelle,
eine Foldback-Schaltung (Zurückfalt-Schaltung), die mindestens zwei Pins des
Messobjekts verbindet, und einen Datenübersetzer, der zwischen der Messobjekt-Schnittstelle
und der Tester-Schnittstelle elektrisch gekoppelt ist. Vorzugsweise formatiert der
Datenübersetzer zwischen dem Messobjekt-Schnittstelle und der Tester-Schnittstelle
kommunizierte Testdaten.
Die Erfindung offenbart einen nicht-beanspruchten integrierten Schaltkreis,
der Schaltkreis-Komponenten-Blocks, die über einen Bus gekoppelt sind, und
Eingabe/Ausgabe-Pins mit entsprechenden, mit dem Bus gekoppelten Leitern enthält.
Die Eingabe/Ausgabe-Pins stellen vorzugsweise eine Fähigkeit zur Kommunikation
mit Außerhalb des Schaltkreises bereit. Der integrierte Schaltkreis enthält
ferner eine Foldback-Schaltung zum Zurückführen (foldback) eines auf einer
der Leitungen an einen von den Pins gesendeten Signals, und Foldback-Logik zum Aktivieren
oder Deaktivieren der Foldback-Schaltung.
Die Erfindung offenbart ein nicht-beanspruchtes computerlesbares Medium,
das eine Sequenz von Instruktionen zum Spezifizieren eines integrierten Schaltkreises
speichert. Die Sequenz von Instruktionen ist zum Ausführen eines Satzes von
Aktionen, die enthalten Spezifieren eines über einen Bus verbundenen Schaltkreis-Komponenten-Blocks,
und Spezifizieren von Eingabe/Ausgabe-Pins mit Leitungen, die mit dem Bus gekoppelt
sind. Die Eingabe/Ausgabe-Pins schaffen vorzugsweise die Fähigkeit zum Kommunizieren
mit Außerhalb des integrierten Schaltkreises. Der Satz von Aktionen enthält
vorzugsweise ferner Spezifizieren eines Foldback-Schaltkreises zum Zurückführen
eines auf einen der Leitungen zu einen der Pins gesendeten Signals, und Spezifizieren
einer Foldback-Logik zum Aktivieren und Desaktivieren des Foldback-Schaltkreises.
Die Erfindung offenbart eine nicht-beanspruchte Teststation zum Testen
eines Messobjekts. Die Teststation enthält vorzugsweise das Messobjekt, wobei
das Messobjekt einen Speicher und Testlogik zum Sperren mindestens eines Bereichs
des Speichers während eines Tests des Messobjekts enthält. Die Teststation
enthält ferner einen Tester, wobei der Tester mit dem Messobjekt elektrisch
gekoppelt ist und zum Senden von digitalen Signalen zum Sperren mindestens eines
Bereichs des Speichers ist. Die Teststation enthält ferner eine Testkarte,
die mit dem Messobjekt und dem Tester elektrisch gekoppelt ist, wobei die Testkarte
einen Taktgenerator zum Senden von Taktsignalen an das Messobjekt und einen zwischen
der Chip-Schnittstelle und der Tester-Schnittstelle elektrisch gekoppelten Datenübersetzer
enthält. Vorzugsweise formatiert der Datenübersetzer zwischen der Chip-Schnittstelle
und der Tester-Schnittstelle kommunizierte Testdaten.
Die Erfindung offenbart ein nicht-beanspruchtes Verfahren des Erzeugens
von Testvektoren zum Testen eines integrierten Schaltkreises auf einer Herstellungs-Testbank
(Prüfstand). Das Verfahren enthält vorzugsweise Schritte des Erhaltens
von Funktionsniveau-Testvektoren, Umwandelns der Testvektoren in eine Reihe von
Nachrichtenblocks, Anwenden eines Schnittstellen-Protokolls auf die Reihe von Nachrichtenblocks,
um Testdaten zu erzeugen, und Anwenden eines Schnittstellen-Protokolls
für ein Messobjekt auf die Testvektordaten.
Die Erfindung offenbart ein nicht-beanspruchtes System zum Erzeugen
von Testvektoren zum Testen eines integrierten Schaltkreises auf einer Herstellungs-Testbank.
Das System enthält vorzugsweise einen Speicher zum Speichern von Funktionsniveau-Testvektoren,
und einen mit dem Speicher gekoppelten Prozessor zum Übersetzen der Testvektoren
in Nachrichtenblocks, zum Anwenden eines Schnittstellen-Protokolls auf die Nachrichtenblocks,
um Testvektordaten zu erzeugen, und zum Anwenden eines Schnittstellen-Protokolls
für ein Messobjekt, um die Testvektordaten zu testen.
Die Erfindung offenbart ein nicht-beanspruchtes computerlesbares Medium,
das eine Sequenz von Instruktionen zum Erzeugen von Testvektoren zum Testen eines
integrierten Schaltkreises auf einer Herstellungs-Testbank speichert. Die Sequenz
von Instruktionen ist zum Durchführen eines Satzes von Aktionen, die enthalten
(a) Spezifizieren von Funktionsniveau-Testvektoren; (b) Übersetzen der Testvektoren
in Nachrichtenblocks; (c) Anwenden eines Schnittstellen-Protokolls auf die Nachrichtenblocks,
um Testvektordaten zu erzeugen; und (d) Anwenden eines Schnittstellen-Protokolls
für den integrierten Schaltkreis auf die Testvektordaten.
Die Erfindung offenbart ein nicht-beanspruchtes Verfahren des Erzeugen
von Diagnostiktests zum Testen eines integrierten Schaltkreises auf einer Herstellungs-Testbank.
Das Verfahren enthält vorzugsweise Schritte des Erhaltens von Funktionsniveau-Testvektoren
für virtuelle Komponenten-Blocks eines integrierten Schalkreisdesigns, Übersetzens
der Diagnostiktests in zeitakkurate Diagnostiktests, Umwandelns der zeitakkuraten
Diagnostiktests in Speicherladeinstruktionen, und Anwendens eines Schnittstellen-Protokolls
für ein Messobjekt, um die Speicherladeinstruktionen zu testen.
Die Erfindung offenbart ein nicht-beanspruchtes computerlesbares Medium,
das eine Sequenz von Instruktionen zum Spezifizieren und Testen eines hergestellten
integrierten Schaltkreises speichert. Die Sequenz von Instruktionen ist zum Durchführen
eines Satzes von Aktionen, die enthalten (a) Spezifizieren von virtuellen Komponenten-Blocks;
(b) Spezifizieren von Kopplungen zwischen den virtuellen Komponenten-Blocks; (c)
Spezifizieren von Sätzen von Diagnostiktests zum Testen hergestellter Formen
der virtuellen Komponenten-Blocks, wobei jeder Satz von Diagnostiktests mit einem
der virtuellen Komponenten-Blocks korrespondiert; und (d) Spezifizieren eines Satzes
von Testvektoren zum Testen des gefertigten integrierten Schaltkreises.
Die Erfindung offenbart ein nicht-beanspruchtes computerlesbares Medium,
das eines Sequenz von Instruktionen zum Erzeugen und/oder Übersetzen von Testvektoren
zum Testen eines integrierten Schaltkreises auf einer Herstellungs-Testbank speichert.
Die Sequenz von Instruktionen ist zum Durchführen eines Satzes von Aktionen,
die enthalten (a) Spezifizieren von Funktionsniveau-Testvektoren zum Testen einer
Funktionsspezifizierung des integrierten Schaltkreises; (b) Übersetzen der
Testvektoren in Nachrichtenblocks; (c) Anwenden eines Schnittstellen-Protokolls
auf die Nachrichtenblocks, um Testvektordaten zu erzeugen; (d) Anwenden eines Schnittstellen-Protokolls
des integrierten Schaltkreises auf die Testvektordaten.
Die Erfindung offenbart ein nicht-beanspruchtes Verfahren des Herstellens
eines computerlesbaren Mediums, das ein Design für einen integrierten Schaltkreis
und eine Ansammlung von Testeingaben zum Herstellen und Funktions-Testen einer hergestellten
Form des integrierten Schaltkreises speichert. Das Verfahren enthält ferner
die Schritte des (a) Designens von virtuellen Komponenten-Blocks, um in dem Design
des integrierten Schalkreises verwendet zu werden, (b) Designens eines Diagnostiktests,
spezifisch für jeden virtuellen Komponenten-Block, (c) Bestimmens des Designs
für den integrierten Schalkreis, der die virtuellen Komponenten-Blocks aufweist,
(d) Erhaltens von Hochniveau-Testvektoren für den integrierten Schaltkreis,
(e) Verifizierens des integrierten Schaltkreises unter Verwendung der Testvektoren
und der Diagnostiktests, (f) Vermehrens der Diagnostiktests und der Testvektoren
für eine Herstellungsumgebung, und (g) Verkapselns des Designs für den
integrierten Schaltkreis mit den vermehrten Testvektoren.
Kurze Beschreibungen der Zeichnungen
1 ist ein Diagramm eines Computersystems, das in Verbindung
mit verschiedenen Ausführungsbeispielen der hierin beschriebenen Erfindung
verwendet werden kann.
2 ist ein Diagramm eines vereinfachten integrierten
Schaltkreises, wie er unter Verwendung eines Computersystems, wie zum Beispiel dem
in 1 gezeigten, erzeugt werden kann, nachdem die Komponenten-Blocks
auf dem integrierten Schaltkreis-Chip platziert wurden.
3 ist ein Diagramm eines allgemeinen Prozessablaufs
für ein Schaltkreisdesign, verschiedene Niveaus der Schaltkreisabstraktion
zeigend.
4 ist ein Diagramm eines virtuellen Komponenten-Blocks-
und Diagnostiktestinformations-Managementsystems, die Anwendung von Informationen
über virtuelle Komponenten-Block-(einschließlich von Test- und Diagnostikinformation)
auf verschiedenen Stufen in einem Elektronikdesign-Automatisierungsprozess
zeigend.
5 ist ein Blockdiagramm eines Ausführungsbeispiels
einer Testbank, wie sie in 4 allgemein dargestellt
ist.
6a ist ein Diagramm eines Prozessablaufs zum Übersetzen
von Tests aus einer Designverifizierungsphase in eine Herstellungsphase (Fertigungsphase),
in welcher individuell hergestellte integrierte Schaltkreise getestet werden.
6b ist eine Darstellung der Migration eines Verifizierungstests
für ein virtuelles IC-Design in eine Herstellungsphase zum Testen tatsächlicher
ICs, die das Design manifestieren.
7 ist ein Diagramm eines Satzes von Schritten zum Konfigurieren
einer Testbank, um vorteilhaft Testvektoren und Diagnostiktests auszuführen,
die in der Herstellungsumgebung vermehrt wurden.
8 ist ein Diagramm eines physikalischen Layouts für
einen Chip mit Schnittstellen zum Übertragen von Diagnostikdaten an Schaltkreisblocks,
um spezifische Diagnostiktests durchzuführen, und Testvektordaten an einen
geeigneten Speicher, um eine lokale Ausführung eines Auf-Geschwindigkeit-Belastungstests
zu aktivieren.
9A ist ein Diagramm einer bevorzugten Implementierung
eines Foldback-Schemas, wie beispielsweise das in 7
allgemein angegebene, wobei das Foldback-Schema gänzlich auf dem zu testenden
Chip angeordnet ist.
9B ist ein Diagramm einer alternativen Ausführungsform
eines Foldback-Schemas, wie beispielsweise das in 7
angegebene, wobei Testdaten aus einer PCI-Schnittstelle und dann aus einem I/O-Pin
ausgelesen werden.
10 ist ein Diagramm eines physikalischen Layouts für
eine Testkarte und von Schnittstellen zu einem DUT und einem Tester.
11 ist ein Diagramm eines Prozessablaufs für eine
bevorzugte Reihenfolge von Tests in einem Chipfertigungs-Testprozess.
Ausführliche Beschreibung von bevorzugten Ausführungsbeispielen
Bevorzugte Ausführungsbeispiele werden nun beschrieben unter
Bezugnahme, wenn notwendig, auf die beigefügten Zeichnungen. Zunächst
jedoch wird zusätzliche allgemeine Hintergrundinformation bezüglich Automatisierungs
(EDA)-Softwaretools zur Verfügung gestellt.
Wie hierin in dem Hintergrund-Abschnitt ausführlich erklärt
wurde, verwenden Chipdesigner im Allgemeinen eine von-oben-nach-unten-Methodik,
mit Hardwarebeschreibungssprachen (HDLs) startend, wie beispielsweise Verilog®
oder VHDL, um einen integrierten Schaltkreis durch hierarchisches Definieren von
funktionalen Komponenten des Schaltkreises und dann Zerlegen jeder Komponente in
immer kleinere und kleinere Komponenten zu schaffen. Die in den integrierten Schaltkreisen
verwendeten Komponenten können entweder als Funktions- oder als Kommunikations-Blocks
oder -Komponenten charakterisiert sein.
Aus der HDL- oder anderer Hochniveau-Beschreibung wird die aktuelle
Logikzellenimplementierung typischerweise durch logische Synthese bestimmt, welche
die Funktionsbeschreibung des Blocks in eine spezifische Schaltkreisimplementierung
des Blocks umwandelt. Die Schaltkreisimplementierung existiert typischerweise als
eine Netzliste, die Logikzellen oder Komponenten-Blocks aufweist und eine oder mehrere
Kommunikationsblocks enthält. Die Komponenten-Blocks werden dann platziert
und geroutet, eine Datei des physikalischen Layouts zur Folge habend. Die Datei
des physikalischen Layouts wird allgemein als ein Design-"Blaudruck" zum Fertigen
des integrierten Schaltkreises bezeichnet. Auf jeder Stufe des Designprozesses sowie
auf der Herstellungs-Stufe können verschiedene Tests ausgeführt werden,
um die korrekte Arbeitsweise des Schaltkreisdesigns sicherzustellen.
1 ist ein Diagramm eines nicht beanspruchten Computersystems
100, das in Verbindung mit verschiedenen Ausführungsbeispielen der
hierin beschriebenen Erfindung verwendet werden kann. Wie in 1
gezeigt ist, enthält das Computersystem 100 einen Computer
110, der mit einer Anzeigevorrichtung 191 und verschiedenen I/O-Vorrichtungen
192 gekoppelt ist. Der Computer 110 kann einen oder mehrere Prozessoren
(nicht gezeigt) aufweisen, sowie Arbeitsspeicher (beispielsweise RAM) in einer Menge,
die ausreicht, den Geschwindigkeits- und Verarbeitungserfordernisse des Systems
100 zu genügen. Der Computer 110 kann beispielsweise eine
SPARCTM Arbeitsstation, die kommerziell verfügbar ist von Sun Microsystems,
Inc., Santa Clara, Kalifornien, oder einen anderen geeigneten Computer aufweisen.
Wie oben verwendet ist der Ausdruck "Prozessor" vorzugsweise ein Mehrzweck-Prozessor
zum Ausführen von Software (im Vergleich zu einem komplett festverdrahteten
Prozessor), aufgrund der Brauchbarkeit und Flexibilität beim Programmieren
des Prozessors und eventuellen Modifizieren oder Ersetzen der Software. Im Allgemeinen
jedoch, in seiner durchgängigen Verwendung, bezeichnet der
Ausdruck "Prozessor" eine beliebige Form eines Prozessors oder Prozessoren, die
die hierin beschriebenen verschiedenen elektronischen Funktionen ausführen
können. Daher bezeichnet der Ausdruck "Prozessor" eine große Vielfalt
von Berechnungs-Vorrichtungen oder -Mitteln, einschließlich von, beispielsweise,
der Verwendung von vielen Prozessoren, die unterschiedliche Verarbeitungsaufgaben
durchführen oder dieselbe Aufgabe zwischen verschiedene Prozessoren aufteilen.
Der Prozessor (bzw. die Prozessoren) können Mehrzweck-CPUs oder Sonderzweck-Prozessoren
sein, wie sie herkömmlicherweise beispielsweise oft in Signalverarbeitungssystemen
verwendet werden. Ferner können viele Prozessoren in eine Server-Client- oder
Netzwerk-Konfiguration implementiert sein, als ein Pipeline-Array oder eine Reihe
von Prozessoren, usw. Ferner ist ein Teil der Verarbeitung oder die gesamte Verarbeitung
alternativ implementiert mit individuell angepassten und/oder festverdrahteten Schaltkreisen,
wie beispielsweise einem anwendungsspezifischen integrierten Schaltkreis (ASIC),
einem feldprogrammierbaren Gatearray (FDGA) oder einer anderen logischen Vorrichtung.
In Verbindung mit dem Ausdruck "Prozessor" bezeichnet der Ausdruck
"Speicher", wie er verwendet wird, durchgängig ein Speichermedium, das für
einen Prozessor zugreifbar ist, der den Speichererfordernissen des Speichers für
ein System oder eine Systemkomponente zum Ermöglichen der verschiedenen hierin
beschriebenen durchgeführten elektronischen Funktionen genügt. Vorzugsweise
enthält der Speicher einen wahlfreien Zugriffsspeicher (RAM), auf den durch
den Prozessor direkt zugegriffen wird. Optional kann der Speicher in Form einer
Festplatte oder einer anderen nichtflüchtigen Speichervorrichtung oder Komponente
zum Speichern von Daten, Software, und/oder anderen Formen von elektronisch vorliegenden
Informationen vorliegen.
Wieder bezugnehmend auf 1 enthält
der Computer 110 gespeicherten Programmcode, einschließlich einem
Block-Grundrissplaner 120, einem Blockplatzierer 130, einem Logiksynthetisierer
135 und einem Routing-Raum-Schätzer 140. Der Block-Grundrissplaner
120 sorgt für die Definition von Blockfunktionen, Blockregionen, und
beschränkt auf diese für den Zweck von interaktiven Grundrissplanungsoperationen
durch den Schalkreisdesigner, und die Steuerung von Platzierungsoperationen des
Blockplatzierers 130. Der Blockplatzierer 130 bestimmt die Platzierung
von Zellen innerhalb von Blocks gemäß den durch den Schaltkreisdesigner
definierten Randbedingungen (Beschränkungen). Der Routing-Raum-Schätzer
140 schätzt den zum Routen der Blocks benötigten Routing-Raum,
gegeben durch die Platzierung solcher Blocks durch den Blockplatzierer
130.
Zur Stützung der oben erwähnten Systemkomponenten können
ein Chip-Grundrissplaner 150, ein globaler/ausführlicher Router
160, ein Standardzellenplatzierer 170, ein Logiksynthetisierer
180, und ein HDL-Editor 190 nutzbringend angewendet werden. Der
Betrieb dieses Chip-Grundrissplaners 150, globalen/ausführlichen Routers
160, Standardzellenplatzierer 170, Logiksynthetisierers
180, und HDL-Editors 190 ist von herkömmlicher Art und Weise,
da das Design dieser Komponenten wohlbekannt ist in dem Bereich von elektronischer
Design-Automatisierung. Kommerziell erhältliche Beispiele dieser Systemkomponenten
sind PreviewTM, Cell3TM, QplaceTM, SynergyTM,
und Verilog®.
Der Computer 110 ist vorzugsweise mit einer Massenspeichervorrichtung
(z.B. ein magnetische Scheibe oder ein magnetische Bandspeichervorrichtung) gekoppelt,
die eine Layout-Datenbank 195 bereitstellt, mit der die vorangehenden Systemkomponenten
koppeln. Die Layout-Datenbank 195 kann implementiert werden unter Verwendung
irgendeines Datenbankstandards, wie beispielsweise EDIF, LEF oder DEF. Der Computer
110 kann auch aufweisen oder verbunden sein mit einem Massenspeicher, der
eine oder mehrere Komponenten-Bibliotheken (nicht gezeigt) enthält, die Merkmale
von elektrischen Komponenten spezifizieren, die zur Verwendung in Schaltkreisdesigns
erhältlich sind.
Nun bezugnehmend auf 2 wird eine Blockdarstellung
eines Beispiels eines nicht-beanspruchten, vereinfachten ICs 200 gezeigt,
wobei einen Fundierungsblock 202 und eine Anzahl von peripheren Komponenten-Blocks
B1, ..., B12 spezifiziert wurden und deren Position auf dem integrierten Schaltkreis
200 und die Verbindungen zwischen diesen bestimmt wurden. In tatsächlichen,
realistischeren integrierten Schaltkreisdesigns würde der integrierte Schaltkreis
200 wahrscheinlich viel komplizierter sein. Jedoch ist 2
nützlich zum Zwecke der Veranschaulichung. Der Fundierungsblock 202
enthält vorzugsweise einen Prozessor 204, einen Speicher
206, verschiedene andere Komponenten-Blockes, A1, ..., A5, und einen Kommunikationsblock,
der einen Bus 208 und zwölf Ports 210 aufweist. Die Ports
210 darin sind vorzugsweise zwitterartig, so dass jeder als Ziel oder als
Initiator in der Kommunikations-Schnittstelle konfiguriert werden kann, nachdem
das Layout des integrierten Schaltkreises 200 abgeschlossen ist. Der Fundierungsblock
202, einschließlich dessen Komponenten (der Prozessor 204,
der Speicher 206, und die Komponenten A1 bis A5), und die anderen peripheren
Komponenten-Blocks sind vorzugsweise voll in der Layoutdatenbank 195 charakterisiert.
Vorzugsweise erfolgt die Platzierung der Blocks auf eine Art und Weise, mit Hinsicht
auf die Positionen und Längen der Kopplungen zu den Ports auf dem Fundierungsblock
202 die optimal ist.
3 ist ein Diagramm eines nicht-beanspruchten allgemeinen
Prozessablaufs 300 für ein Block-basiertes Schaltkreisdesign, einige
der verschiedenen Niveaus der integrierten Schaltkreisdesign-Abstraktion veranschaulichend.
Wie in 3 gezeigt ist, erfährt eine Registerübertragungslogik
(register tranfer logic) (RTL)-Datei 301 in der Form einer HDL-Datei oder
einer anderer Hochniveau-Funktionsbeschreibungen einen Spezifizierungs (Grundrissplanungs-
und Bereichs-Zuweisungs)-Prozess 302. In diesem Prozess 302 werden
Komponenten-Blocks aus einer Komponentenbibliothek identifiziert 306, um
spezifische Funktionen auszuführen, die in der RTL-Datei 301 enthalten
sind. Die Komponenten-Blocks sind vorzugsweise vordefiniert, und obwohl einer oder
mehrere auf einem individuell angepassten Design basieren können, nicht gespeichert
oder erst kürzlich in der Bibliothek 306 gespeichert.
In dem nächsten Schritt 303 wird eine Art einer logischen
Synthese ausgeführt, wobei in einem bevorzugten Ausführungsbeispiel die
funktionale Beschreibung der Kopplungen zwischen den Komponenten in eine spezifische
Kopplungs-Implementierung umgewandelt wird, die in Form einer Netzlisten-Datei
304 gespeichert sein kann. Als Teil dieses Kompilierungsprozesses
303 wird die Komponentenbibliothek 306, welche Informationen betreffend
den Kommunikationsschnittstellen speichert, allgemein referenziert, und die Eigenschaften
der Komponenten, welche benötigt werden, um deren funktionelle Konnektivität
zu bestimmen. Die Netzlistendatei 304 identifiziert, wie vorher bemerkt,
allgemeinen die Komponenten-Blocks aus der Bibliothek 306 und beschreibt
die spezifische Komponenten-zu-Komponenten-Konnektivität.
Durch Anwendung eines physikalischen Designprozesses 309,
der in 3 gezeigt ist, werden die Komponenten-Blocks
der Netzlistendatei 304 dann platziert und geroutet, eine Layoutdatei zur
Folge habend. In dieser Prozessstufe wird die Komponentenbibliothek 306
verwendet, um Informationen betreffend der Größen der Komponenten zu erhalten,
die in der Netzliste 304 vorhanden sein können. Vorher beziehen diese
Information Schnittstellen-Spezifizierungen ein, wie beispielsweise die Anzahlen
und Positionen der Schnittstellen, ob jede Schnittstelle ein Ziel oder ein Initiator
ist, und die Anzahl der Pins und deren Signalzuweisungen. Wie oben in dem Hintergrundabschnitt
beschrieben ist, wird dann die Platzierungs- und Routing-Operation durchgeführt
und kann in einer Weise automatisiert werden, bei der die ultimative Leistungsfähigkeit
des integrierten Schaltkreises durch Minimieren der Verbindungslängen und der
gesamten Grundfläche (Fußabdruck) des integrierten Schaltkreises optimiert
wird. Dieser Platzierungs- und Routing-Prozess hängt jedoch mit den aus der
Komponentenbibliothek 306 erhaltenen Schnittstellen-Spezifizierungen zusammen.
Von der Layout-Datei 310 ausgehend kann, wie ferner in
3 gezeigt ist, ein Verifizierungsprozess
312 ausgeführt werden, eine Maskendatei in, beispielsweise, einem
GDSII- oder CIF-Format zur Folge habend. Die Maskendatei 315 kann an eine
Halbleiter-Gießerei geliefert werden und enthält genügend Informationen,
um der Halbleiter-Gießerei zu erlauben, daraus einen tatsächlichen integrierten
Schaltkreis herzustellen.
Gemäß einem Aspekt werden Systeme bereitgestellt in Verbindung
mit bestimmten, hierin offenbarten Ausführungsbeispielen zum Testen von Schaltkreisdesigns,
insbesondere diesen Schaltkreisdesigns, die virtuelle Komponenten-Blocks enthalten
und die auf Silizium als Bestandteil eines Halbleiterfabrikationsprozesses reduziert
wurden.
Es ist eine nicht-beanspruchte Datenbank virtueller Komponenten-Blocks
zusammen mit vor-entwickelten Diagnostiken vorgesehen, die speziell auf die Architektur
der virtuellen Komponenten-Blocks zugeschnitten ist, so dass die virtuellen Komponenten-Blocks
und die assoziierten Diagnostiken leicht wiederverwendet und in eine Vielfalt von
unterschiedlichen Schaltkreisdesigns recycelt werden können.
4 ist ein Diagramm eines nicht-beanspruchten Design-
und Verifikations-Managementsystems 400, das eine Anwendung von virtueller
Komponenten-Block-Information (einschließlich von Test- und Diagnostikinformation)
auf verschiedenen Stufen eines Elektronikdesign-Automatisierungsprozesses zeigt.
In einem Aspekt zeigt 4 einen Elektronikdesign-Automatisierungsprozessablauf
ähnlich zu dem aus 3. Daher zeigt 4
beispielsweise eine Funktionsdesign- und/oder Registertransferlogik (RTL)-Datei
401, welche in Form einer Hardwarebeschreibungssprachen (HDL)-Datei oder
einer anderen Hochniveau-Funktionsbeschreibung vorliegen kann. Ähnlich dem
in 3 gezeigten Prozess durchläuft die Funktionsdesigndatei
401 einen Kompilierungsprozess 403, welcher die Funktionsbeschreibung
des Schaltkreises in eine spezielle Schaltkreisimplementierung umwandelt, welche
in Form einer Netzlistendatei 404 gespeichert werden kann. Ein physikalischer
Designprozess 409 bewirkt, dass die Logikzellen der Netzlistendatei
404 platziert und geroutet werden, eine Layoutdatei zur Folge habend. Von
der Layoutdatei 410 ausgehend kann ein Verifikationsprozess 412
gestartet werden, eine Maskendatei 415 zur Folge habend, welche beispielsweise
in einem GDSII- oder CIF-Format dargestellt werden kann. Die Maskendatei
415 kann an eine Halbleiter-Gießerei geliefert werden, die Erzeugung
eines Halbleiterwafers 460 zur Folge habend.
Um das Schaltkreisdesign während der unterschiedlichen Designstufen
zu testen, können Testvektoren 420 gemäß irgendwelchen herkömmlichen
Verfahren erzeugt werden. Die Testvektoren 420 können angewendet werden,
um die Funktionalität der Funktionsdesigndatei 401 zu testen. Dieselben
Testvektoren 420 können, falls geeignet, übersetzt, auch verwendet
werden, um die Netzlistendatei 404 und/oder die Layoutdatei 410
zu testen.
Eine nicht-beanspruchte Datenbank 430 wird bereitgestellt
zum Speichern von virtuellen Komponenten-Block-Daten 431 in Form einer
Vielzahl von virtuellen Komponenten-Blocks 440 und zum Speichern von Diagnostikdaten
432 in Form von Diagnostiktest-Eingabesätzen 441. Jeder Diagnostiktestsatz
441 ist auf die besondere Architektur eines spezifischen virtuellen Komponenten-Blocks
440 zugeschnitten. Ein Diagnostiktestsatz 441 wird daher mit einem
spezifischen virtuellen Komponenten-Block 440 assoziiert. Dieser Aspekt
wird in 4 dargestellt durch virtuelle Komponenten-Blocks
1 ... N in der Datenbank 430, entlang der Diagnostiktestsätze 1 ...
N in der Datenbank 430. Jedes mal, wenn ein bestimmter virtueller Komponenten-Block
in einem Design verwendet wird, kann derselbe Diagnostiktestsatz 441, der
mit dem vorzugsweise verwendeten virtuellen Komponenten-Block assoziiert wird, verwendet
werden, weil er vorzugsweise speziell für die Architektur des virtuellen Komponenten-Blocks
440 vorbereitet wurde. Optional können für einen gegebenen virtuellen
Komponenten-Block mehrere Diagnostiktestsätze 441 vorgesehen sein.
Virtuelle Komponenten-Blocks 440 sind eine Ressource für
das Design großangelegter Schaltungen. Virtuelle Komponenten-Blocks
440 können teilweise vor-gehärtet und (von einem logischen und
funktionellen Standpunkt aus) vor-getestet und vor-definiert sein. Im Allgemeinen
werden so viele interne Schaltkreise des virtuellen Komponenten-Blocks
440 wie möglich vorgehärtet, während die äußeren
Kopplungen (beispielsweise PIN-Orte) "weich" oder konfigurierbar sein können
nach der Erzeugung des virtuellen Komponenten-Blocks 440. Virtuelle Komponenten-Blocks
440 können aus der Datenbank 430 herausgezogen und in eine
Funktionsdesigndatei 401 (oder sogar in eine Datei niedrigeren Niveaus)
aufgenommen werden. Weil virtuelle Komponenten-Blocks 440 weitgehend vor-gehärtet
sind, müssen deren internen Schaltkreise nicht synthetisiert oder validiert
noch platziert oder geroutet werden. Stattdessen wird der virtuelle Komponenten-Block
440 vorzugsweise als Ganzes in das gesamte Schaltkreisdesign platziert
und mit anderen Komponenten des Designs gekoppelt.
Als ein Teil des Designprozess sind Einrichtungen vorzugsweise zum
Testen des Designs während der Verifizierungs-Stufe und, später, nach
der Herstellung des Halbleiterwafers 460 und/oder dem Verkapseln des integrierten
Schaltkreises vorgesehen. Speziell wird für das Leistungsvermögen der
Abtast-basierten Tests eine Abtastlogik in das Design aufgenommen, vorzugsweise
während der Netzlisten-Stufe. Daher werden auf dieser Ebene der Gestaltung
Abtastmuster, die mit der reduzierten Masken-Datei 415 korrespondieren,
zur Verwendung während der Herstellungs-Stufe erzeugt. Gleichermaßen wird
eine Logik in das Design des integrierten Schaltkreises (IC) aufgenommen, um die
Ausführung des eingebauten Selbsttests (BIST) zu ermöglichen. Diese Tests
werden durch den hergestellten IC selbst ausgeführt, wenn der Vorrichtung eine
bestimmte Testsignatur bereitgestellt wird.
Daher sind die Maskendatei für den IC und Testeingaben aus der
Gestaltungs- und Verifizierungsphase als Packet (beispielsweise als eine elektronische
Datei zur Speicherung und/oder Übertragung) für die Gießerei bereitgestellt,
um den Herstellungsprozess zu initiieren. In einem Ausführungsbeispiel enthalten
die Testeingaben Sätze von Diagnostiktesteingaben und Testvektoren, die an
die Herstellungsprozessumgebung angepasst wurden, und vorzugsweise Sätze von
Abtastmustern und Eingabesignaturen zum Initiieren der BISTs. Beispielsweise können
die Testeingaben (d.h. Diagnostiktests, Belastungstests, Abtast-basierte Tests und
BIST-Eingaben) an eine Testbank 450 angepasst sein, die für die Fertigungs-
und Testvorgänge der Gießerei spezifisch sind. Solche Testeingaben sind
vorzugsweise als ein Teil eines computerlesbaren Pakets geistigen Eigentums enthalten,
das die Maskendatei für den der Gießerei gelieferten IC enthält.
Die Diagnostiktesteingaben und Testvektoren werden direkt in die Herstellungs-Testbank
450 eingegeben und werden durch die Testbank 450 zur Anwendung
auf das Messobjekt (DUT) übersetzt. Beispielsweise kann ein Testübersetzter
in der Testbank 450 (d.h. eine Testübersetzungsfunktion) eine Prozessor
(beispielsweise ein Mehrzweck-Prozessor)-Ausführungssoftware enthalten, wobei
die Software vorzugsweise auch in dem Paket geistigen Eigentums vorgesehen ist,
das die Testvektoren übersetzt, bevor sie in das Messobjekt (DUT) eingegeben
werden. Alternativ sind die übersetzten Diagnostiktests und Testvektoren in
dem der Gießerei gelieferten Paket geistigen Eigentums vorgesehen, so dass
der äquivalente Testübersetzer in der Testbank 450 nicht erforderlich
ist.
5 stellt ein bevorzugtes Ausführungsbeispiel einer
Testbank 500 zum Robustheits-Testen von komplexen integrierten Schaltkreisen
dar, die, ob auf Wafer konfiguriert oder verkapselt, in Hinblick auf die Testzeit
und Testkosten pro Wafer (oder Paket) praktikabel sind. Die Testbank 500
enthält vorzugsweise einen Tester 502 und eine Testkarte
504, auf welcher individuelle IC-Wafer zum Testen angeordnet
sind. Die Testkarte 504 ist vorzugsweise an das Design des IC angepasst
und enthält mehrere Komponenten zum Aktivieren eines Auf-Geschwindigkeit-Testens
des Messobjekts ohne das Erfordern einer Kommunikation mit hoher Bandbreite mit
dem Tester 502.
Die Testbank 500 ist vorzugsweise im Allgemeinen dazu designed,
eine Anzahl von Zielen über die herkömmliche Herstellungstestfunktion
hinaus zu erreichen. Erstens verwendet die Testbank 500 die Testeingaben,
die vorher erzeugt wurden, um die Verifizierungsphase für den IC zu vervollständigen.
Zweitens ist die Testbank 500 dazu konfiguriert, verarbeitungsintensive
Testoperationen zu haben, die vorzugsweise auf dem Messobjekt selbst ausgeführt
werden, untergeordnet auf der Testkarte 504, und zuletzt auf dem Tester
502, in einer solchen Art und Weise, dass die I/O zwischen dem Tester
502 und der Testkarte 504 minimiert ist. Drittens konfiguriert
die Testbank 500 das Ordnen von Tests, um die minimale Testzeit pro DUT
zu minimieren. Vorzugsweise ist das Ordnen der Tests für jedes IC-Design angepasst.
In einem Ausführungsbeispiel enthält der Tester
502 vorzugsweise eine Teststeuereinheit (Test-Kontroller) 510,
einen Testeingabenübersetzer, und einen Testsequenzer 508. Die Teststeuereinheit
510 steuert vorzugsweise übergreifende Testoperationen und enthält
vorzugsweise allgemeine Testinstruktionen für die Testkarte 504. Der
Testeingabenübersetzer 506 kann die Testvektoren und Diagnostiktests
aus der Verifizierungsphase der IC-Entwicklung zur Anwendung in der Herstellungstestumgebung
übersetzen. Optional wird die Übersetzung auf der Testkarte
504 (siehe den Datenübersetzer 1004 aus 10
und hierin später diskutiert) oder anderswo auf der Testbank 500 durchgeführt.
Wie oben diskutiert wurde, werden in der Verifizierungsphase eines ausführlichen
Designs für einen integrierten Schaltkreis Diagnostiktests vorzugsweise erzeugt,
um das Leistungsvermögen jeder der virtuellen Komponenten-Blocks zu verifizieren.
Ferner werden die Testvektoren, variierende Feinheits-Niveaus habend, vorzugsweise
erzeugt, um das Leistungsvermögen des virtuellen IC als Ganzes zu testen.
Der Testsequenzer 508 steuert vorzugsweise die Anordnung
der Tests, die für ein spezielles IC-Design durchgeführt werden. Vorzugsweise
ordnet der Testsequenzer 508 Tests, um die insgesamte Testzeit pro DUT
zu minimieren. Der Testsequenzer 508 kann in Software oder auf einem speziellen
Mehrzweck-Prozessor implementiert sein oder voll in Hardware oder als eine Kombination
von Hardware und Software implementiert sein. Optional ist die Funktionalität
des Testsequenzers 508 in dem der Gießerei gelieferten, vorzugsweise
computerlesbaren Paket geistigen Eigentums (d.h. der Maskendatei, Testkarte
504, und den Testeingaben) enthalten.
6A stellt ein nicht beanspruchtes Verfahren
600 zum Übersetzen der Testvektoren und Diagnostiktests dar, die für
eine Verifizierungsphase eines IC-Designs auf eine Herstellungsphase abgeleitet
wurden, in welcher hergestellte ICs individuell getestet werden. Optional führt
ein Testeingabevektor, wie beispielsweise der oben beschriebene und in
5 gezeigte, den Übersetzungsvorgang durch und
enthält Software, Hardware, oder eine herkömmliche Kombination dieser
beiden, um das Testeingabenübersetzungsverfahren 600 zu implementieren.
Beim Übersetzen der Verifizierungstests sind hinsichtlich der Diagnostiktests
zum Testen individueller Komponenten-Blocks die Diagnostiktests zum Testen eines
Satzes von virtuellen Komponenten vorgesehen. Vorzugsweise kann eine Gruppe von
Diagnostiktests in Sätze von Tests herunter gebrochen werden, von denen jeder
mit einem speziellen virtuellen Komponenten-Block korrespondiert, der physikalisch
auf dem IC vertreten ist. Jeder Satz von Diagnostiktest testet vorzugsweise nur
einen Komponentenblock und testet im Allgemeinen keine Teile von anderen Komponenten-Blocks.
Ferner erfordert jeder Satz von Diagnostiktests vorzugsweise ein wenig oder keine
Verwendung anderer Komponenten-Blocks, um den Test seines korrespondierenden Komponenten-Blocks
zu vervollständigen.
Sobald die Diagnostiktests mit Komponenten-Unabhängigkeit zum
Testen bereitgestellt sind, ist ein nächster Schritt 604 vorzugsweise
zum Erhalten der Diagnostiktests, die Test einer bezüglich einer Datentransaktion
spezifischen Architektur aktivieren. Insbesondere können die Diagnostiktests
aus Schritt 602 spezifisch für eine spezielle Funktion aber nicht
eine spezielle Architektur für die Funktion sein. In einem Ausführungsbeispiel
können Diagnostiktests für die Architektur, die gewählt wurde, um
die gegebene Funktion durchzuführen, verfügbar sein, in welchem Fall die
Diagnostiktests für diese Komponente zurückerlangt werden können.
Alternativ werden die Diagnostiktests auf der funktionellen Ebene für die neue
Architektur verfeinert. Beispielsweise kann ein Funktionsniveau-Diagnostiktest in
der Form einer C-Kode-Routine sein, welche durch die Funktion iteriert. Um den Diagnostiktest
auf das Architektur-spezifische Niveau zu verfeinern, kann die C-Kode-Routine in
eine Assemblerkode-Beschreibung (d.h. aus Mnemoniks in binäre Instruktionen)
umgewandelt werden. Auf diesem Niveau können die Diagnostiktests verwendet
werden, um die Funktion des Komponenten-Blocks und die Bitfehler in den physikalischen
Blocks zu verifizieren, wie es für Herstellungstest erforderlich ist.
In einem nächsten Schritt 606 werden die Diagnostiktests
vorzugsweise in Speicherladeinstruktionen für die Fertigungs-Testbank umgewandelt.
Die spezielle Form der Speicherladeinstruktionen hängt erstens
davon ab, ob es gewünscht wird, die Tests aus dem Tester, die Testkarte, oder
dem Messobjekt (DUT) auf der Testbank auszuführen. Vorzugsweise werden die
Tests aus dem DUT ausgeführt, oder, falls dies nicht machbar oder nicht vorteilhaft
ist, aus der Testkarte. Sobald bestimmt, werden die Diagnostiktests auf einen bestimmten
Satz von Adressen in einem Cache- oder Notizblock-Speicher festgemacht, basierend
auf die Größe und den Typs des Cache oder Notizblock-Speichers. Jeder
Diagnostiktest ist dadurch einer bestimmten Adresse in dem Speicher zugeordnet,
die vollständige Liste von Zuordnungen ist dann einem Diagnostiktestplaner
zugeführt.
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 Testkarte 1000 und Schnittstellen zu einem
DUT 1002 und einem Tester 1001. Vorzugsweise ist die spezielle
Implementierung der Testkarte 1000 so, dass sie angepasst ist für
das spezifische, durch das Messobjekt repräsentierte IC-Design. Als eine angepasste
Komponente kann die Testkarte 1000 parallel mit oder in jedem üblichen
Zeitraum nach dem IC-Designprozess designed werden. In einem Ausführungsbeispiel
enthält das Paket geistigen Eigentums, das die Maskendatei für den IC
und die Testeingaben enthält, die für die Gießerei vorgesehen sind,
auch die Testkarte, die speziell zum Testen der integrierten Schaltkreise designed
wurde, die basierend auf das Design in der Maskendatei und zum
Ausführen der spezifischen Testeingaben hergestellt wurden. Die Gießerei
spezifiziert vorzugsweise den Fußabdruck für die Testkarte (d.h. die Größe
und die Form der Karte, die Orte der Proben, und Schnittstellen zum DUT) und deren
Schnittstelle, einschließlich dem Satz von Signalen zum Kommunizieren mit dem
Tester. Basierend auf diesen beschränkten Satz von Informationen aus der Gießerei
ist die Testkarte 1000 vorzugsweise Bestandteil des der Gießerei gelieferten
Pakets geistigen Eigentums.
Die Testkarte 1000 enthält vorzugsweise irgend eines
oder mehrere der folgenden, wie benötigt: einen Datenübersetzer
1004, eine Speicher- und Steuerungslogik 1006, einen Hochgeschwindigkeits-Taktgenerator
1008, einen analogen Signalgenerator 1012, eine Abtast-Tester-Schnittstelle
1010 und eine direkte Tester-Schnittstelle 1014. Die Kopplungen
zwischen der Testkarte 1000 und dem Tester 1001 weisen im Allgemeinen
eine Tester-Schnittstelle auf, und die Verbindungen zwischen der Testkarte
1000 und dem DUT 1002 weisen im Allgemeinen eine DUT-Schnittstelle
auf. Das DUT 1002 ist vorzugsweise positioniert, um mit jeder der Komponenten
auf der Testkarte 1000 zu elektrisch koppeln. Die Komponenten auf der Testkarte
1000 sind besonders positioniert, um das Leistungsvermögen von Auf-Geschwindigkeit-Diagnostiktests
von Komponenten-Blocks auf dem DUT 1002, und von Auf-Gschwindigkeit-Belastungstests,
unter Verwendung von Testvektoren, zu aktivieren.
Der Datenübersetzer 1004 kann als eine hardwaremäßig
verdrahtete Komponente, ein FPGA, ein Software-ausführender Mehrzweck-Prozessor,
oder eine andere Art von Prozessor implementiert sein. Der Datenübersetzer
1004 enthält vorzugsweise Verbindungen mit der Speicher- und Steuerungslogik
1006 und dem Tester 1001. Der Datenübersetzer 1004
enthält ferner eine VCI- und Chip-Schnittstelle, um vorzugsweise direkten Zugriff
bereitzustellen auf den Systembus auf dem Messobjekt 1002. Der Datenübersetzer
1004 kann Testdaten aus dem Tester 1001 für das Messobjekt
1002 oder die Speicher- und Steuerungslogik 1006 mit Protokoll-
und/oder Präambel-Informationen formatieren. Falls er als programmierbare Vorrichtung
implementiert ist, kann der Datenübersetzer 1004 der Testkarte
1000 ermöglichen, an eine Vielfalt von unterschiedlichen Designs von
integrierten Schaltkreisen, insbesondere herkömmlich abgeleitete Designs, wie
zum Beispiel diese, die auf einen herkömmlichen Fundierungsblock basieren,
angepasst zu sein.
Der Taktgenerator 1008 hat Steuerungskopplungen mit dem Tester
1001 und Kopplungen mit dem DUT 1002 und der Speicher- und Steuerungslogik
1006. Der Taktgenerator 1008 befindet sich auf der Testkarte
1000, um die Kosten und Komplikationen des Verteilens von Hochgeschwindigkeitstakten
aus dem Tester 1001 zu minimieren. Zum Teil, weil das DUT 1002
im Allgemeinen keinen Kristalloszillator enthält, um einen Taktgeber anzusteuern
und, möglicherweise, aufgrund von Betrachtungen über Rauschen, ist der
Taktgenerator 1008 vorzugsweise auf der Testkarte 1000 lokalisiert.
Der analoge Signalgenerator 1012 enthält Kopplungen
mit dem Tester 1001 und dem DUT 1002. Ferner stellt die Testkarte
1000 vorzugsweise die direkte Tester-Schnittstelle 1014 für
direkte Tests des DUT 1002 aus dem Tester 1001 bereit. Die Testkarte
1000 stellt auch die Abtasttestschnittstelle zwischen dem Tester
1001 und dem DUT 1002 bereit, um Abtasttests zu erlauben, die
der Tester 1001 direkt an unterschiedlichen logischen Punkten innerhalb
des DUT 1002 durchführen kann.
7 stellt einen nicht-beanspruchten Satz von Merkmalen
der Testbank zum vorteilhaften Ausführen der Testvektoren und der Diagnostiktests
dar, die zu der Herstellungsumgebung hinzugefügt wurden. Die Merkmale ziehen
im Allgemeinen einen Vorteil aus den Verarbeitungs- und Speicherkapazitäten
des DUT und, zweitens, der Testkarte, um die Tests zu vervollständigen. Für
unterschiedliche IC-Designs können einige von den Merkmalen optional nicht
vorhanden sind, wie einige Merkmale nur für Designs vorteilhaft sein können,
die bestimmte Attribute haben.
Ein Merkmal ist, dass der Speicher auf dem Chip, vorzugsweise Cache,
sperrbar ist, um sicherzustellen, dass die geladene Diagnostik während ihrer
Operation nicht entfernt wird. Der Speicher ist vorzugsweise, aufgrund der Logik-
und/oder Speicher-Elemente in dem Speicher und/oder woanders auf dem Chip, auch
als ein Übertragungsziel für ein externes Laden des Tests spezifizierbar.
Mit diesem Merkmal kann dann ein Speicher, der ansonsten nicht konfiguriert ist,
um Daten aus einer externen Quelle zu empfangen, verwendet werden, um Tests zu speichern,
und wird effektiv ein Teil des Herstellungstestprozesses. Vorzugsweise wird diese
Parametrisierung des Speichers durchgeführt, indem er ein Protokoll aufweist,
das dem Speicher erlaubt, als ein Ziel für externe Daten spezifiziert zu sein.
Das oben diskutierte VCI-Protokoll stellt vorzugsweise diese Funktionalität
bereit. Ferner können bestimmte Cache- oder andere Speicher automatisch ausgelagert
werden, bis sie speziell als abgeschlossen konfiguriert sind, um den Verlust der
Test- und Diagnostikdaten zu vermeiden. Durch Sperren bestimmter Speicherplätze
werden die Testdaten, die ansonsten verloren wären, vorzugsweise für die
Dauer des Tests gehalten. Zusätzliche Einzelheiten und Alternativen hinsichtlich
der Verwendung von Speicher, einschließlich von Speichercache, zum Testen eines
Schaltkreises sind in dem US-Patent Nr. 6,003,142, erteilt
an Mori, offenbart.
Gleichermaßen werden, als ein anderes Merkmal, andere Chipinterne
Blocks vorzugsweise mit einer Schnittstelle zum Aktivieren direkten Adressierens
aus einem Testport an eine externe Datenquelle konfiguriert. Vorzugsweise enthalten
diese Komponenten auch eine virtuelle Komponenten (VC)-Schnittstelle, um die als
Ziele für Diagnostiktests zu spezifizierenden Komponenten zu aktivieren. Der
Testport enthält vorzugsweise eine VC-Schnittstelle direkt zu dem Systembus
auf dem Chip und spezifiziert vorzugsweise sich selbst als ein Nachrichteninitiator
für Kommunikationstestdaten. Aus diesem Testport auf dem Messobjekt (DUT),
werden die Testvektoren (welche vorzugsweise schon in zeitakkurate Vektoren übersetzt
wurden) in die spezifischen Komponenten auf dem Chip geschrieben, wobei jede Komponente
ihre eigene VC-Schnittstelle (oder eine andere Punkt-zu-Punkt-Schnittstelle) hat,
um Testdaten anzunehmen.
8 stellt ein physikalisches Layout eines nicht-beanspruchten
Chips 800 mit Schnittstellen zum Senden von Diagnostikdaten an geeignete
Blocks für bestimmte Diagnostiktests, und Testvektordaten an geeignete Speicher,
um eine lokale Ausführung der Auf-Geschwindigkeit-Belastungstests zu ermöglichen.
Mit der VC-Schnittstelle kann jede Komponente (einschließlich eines Prozessors
802, eines Speichers 804, und Schaltkreisblocks A ... N
806), die nicht Teil des Systembusses 808 ist, konfiguriert sein,
Testdaten zu empfangen und auszuführen. Falls ein direkter Zugriff auf eine
Komponente erforderlich ist, dann ist vorzugsweise eine VC-Schnittstelle auf der
Komponente enthalten. Alternativ enthält jede Komponente eine androgyne Version
der Standard-VC-Schnittstelle, die jeder Komponente ermöglicht, dynamisch umzuschalten
zwischen der Ziel-Seite der Schnittstelle zu der Initiator-Seite der Schnittstelle,
und umgekehrt. Einzelheiten der Implementierung der androgynen Schnittstelle sind
in der mitanhängigen Anmeldung mit dem Titel "Circuit Component Interface"
(= Schaltkreis-Komponenten-Schnittstelle) offenbart, auf die oben Bezug genommen
wurde. Vorzugsweise enthält der Chip 800 eine periphere Komponenten-Kopplungs
(Peripheral Component Interconnect) (PCI)- und/oder serielle Eingaben/Ausgaben (Seriell
Input Output) (SIO)-Schnittstelle 810, um die Kommunikation zwischen den
Chip-Komponenten und peripheren Komponenten des Chips, die nicht Teil des Chips
800 sind, zu ermöglichen. Die Implementierung einer Standardschnittstelle
für jede Komponente auf dem Chip 800 und bei einem Testport
812 ermöglicht den Testvektoren und den Diagnostiken, von dem verwendeten
Systembus 808 unabhängig zu sein.
Wieder bezugnehmend auf 7 ist ein anderes
Merkmal der Auf-Geschwindigkeit-Testbank eine Foldback-Fähigkeit bei den I/O-Schnittstellen
des Chips. Eine Foldback-Implementierung kann die Geschwindigkeit und Effizienz
der Diagnostiktests und der Tests, die die Testvektoren anwenden, erhöhen.
Die 9A und 9B zeigen im
Detail zwei Formen des Foldback-Schemas, von denen beide zum Testen von unterschiedlichen
Bereichen des ICs verwendet werden können. Typischerweise werden die Diagnostiktests
und die Testvektoren nicht in dem Herstellungsprozess zum Testen des Chips auf Takt-für-Takt-Basis
verwendet. Die Ergebnisse des Tests haben vorzugsweise die Form einer Prüfsumme,
die Testeingabe mit Testausgabe vergleicht. Um die Effizienz solcher Tests zu erhöhen,
ermöglicht eine Foldback-Fähigkeit das simultane Testen von Ausgangsleitungen
aus dem Chip und Eingangsleitungen in den Chip. 9A
stellt eine bevorzugte Implementierung eines Foldback 900 dar, die gänzlich
auf dem Chip liegt, ohne eine Übertragung von Signalen zu gebrauchen, die nicht
zu dem Chip gehören und auf der Testkarte 1000 vorhanden sind. In
9A ist ein logischer Zustand vorgesehen, um das simultane
Lesen und Schreiben der Testdaten in Einem auf den I/O-Pins 902 zu aktivieren.
In diesem logischen Zustand wird ein Test, der, beispielsweise, in den Speicher
des DUT geladen wurde, durch die Vorrichtung ausgeführt, wobei der Prozessor
auf dem DUT die I/O-Operationen handhabt. Testdaten, die ausgelesen werden, werden
in den Chip zurückgefaltet, um eingelesen zu werden, wobei eine Prüfsummierung
durchgeführt wird. Solch eine Foldback-Logik wird vorzugsweise in das Design
das ICs integriert und wird dazu verwendet, die Effizienz des Testens des ICs während
der Herstellung zu erhöhen. Foldbacks können auch in individuelle Schaltkreis-Blocks
innerhalb des DUTs eingebaut sein, um die Effizienz des Testens solcher Blocks zu
erhöhen. Wo das DUT oder individuelle Blocks sowohl analoge Eingänge als
auch Ausgänge enthalten, können analoge Zurückfaltungen (fold-backs)
in den integrierten Schaltkreis hineingestaltet sein.
9B zeigt ein anderes Ausführungsbeispiel einer
Zurückfaltung (fold-back) 910, wobei Testdaten herausgeschrieben werden
aus einer Kommunikations-Schnittstelle 912 (beispielsweise eine PCI-Schnittstelle)
auf einen Chip 920 und dann aus einem I/O-Pin 914. Eine Kommunikationsschnittstelle
916, die nicht Teil des Chips ist, (beispielsweise eine PCI-Schnittstelle)
strippt die Protokollinformation heraus und sendet die Roh-Testdaten an einen Prüfsummierer
918. Die Kommunikations-Schnittstelle 916 faltet dann die Daten
zurück (fold-back) in den Chip 920. Am Ende eines Tests kann eine
(nicht gezeigte) Prüfsumme aus dem DUT 920 mit der Prüfsumme
918 auf der Testkarte 1000 verglichen werden, um den Ort (d.h.
die Eingabe in das oder die Ausgabe aus dem DUT) irgendeines Fehlers zu isolieren.
Die Prüfsumme auf der Testkarte zu haben, verhindert, die
Daten an den Tester senden zu müssen. In einem Ausführungsbeispiel geschieht
die Zurückfaltung (Zurückführung) 910 in den Chip
920 über einen seriellen Eingabe/Ausgabe (SIO)-Pin 922. In
einem anderen Ausführungsbeispiel steuert die Zurückfaltung in den Chip,
gezeigt in 9A, auch eine externe Prüfsumme auf
der Testkarte 1000, um den Ort irgendeines Fehlers zu isolieren. Verzugsweise
ist die Logik, die nicht Teil des Chips ist, in das Design der Testkarte
1000 eingebaut und kann, beispielsweise, in einem Datenübersetzer
implementiert sein, wie er beispielsweise in 10 dargestellt
ist.
Wieder bezugsnehmend auf 7 können
zusätzliche Merkmale ein Auf-Geschwindigkeit-Testen ermöglichen ohne Beanspruchung
der untragbaren Kosten von Hochgeschwindigkeitstestern. Diese zusätzlichen
Merkmale minimieren die Bandbreite zwischen der Testkarte und dem Tester, ohne den
Wunsch nach einem Auf-Geschwindigkeit-Testen des DUT zu gefährden. In einem
Ausführungsbeispiel enthält die Testkarte vorzugsweise eine signifikante
Menge an Speicher, um die Bandbreite zu dem Tester (beispielsweise 500 MBit RAM)
zu reduzieren. Durch Verschieben von signifikantem Speicher nach außerhalb
des Testers und auf die Testkarte können bestimmte Hochgeschwindigkeits-Transaktionen
zwischen dem DUT und der Testkarte durchgeführt werden, ohne den Tester involvieren
zu müssen. Zum Beispiel, obgleich zwischen der Testkarte und dem DUT Daten
mit, relativ zu der Bandbreite zwischen dem Tester und der Testkarte, hoher Geschwindigkeit
übertragen werden, werden die Daten in seltenen Häufungen ausgetauscht.
Daher werden Daten durch Aufnehmen eines FIFO auf die Testkarte regulär aus
dem Tester auf die Testkarte übertragen, um Daten in dem FIFO zu halten, während
sie, in Hochgeschwindigkeits-Ausbrüchen, heraus aus dem FIFO zum DUT übertragen
werden. Während eine Vergrößerung des Speichers auf der Testkarte
im Allgemeinen die Kosten der Testkarte vergrößert, minimiert eine Verwendung
von soviel von auf dem Chip gelegenen Speicher wie möglich vorzugsweise solche
Kosten. Ferner ist ein vergrößerter Speicher auf der Testkarte ein relativ
geringer Aufwand, wenn er sich über alle Chips, die getestet werden können,
amortisiert hat.
Ein anderes bevorzugtes Merkmal der Testbank ist, dass die analogen
Schnittstellen des DUT effektiv in digitale Schnittstellen umgewandelt werden. Dies
Umwandlung wird vorzugsweise implementiert durch Aufnehmen eines analogen Signalgenerators
auf der Testkarte. In einem bevorzugten Ausführungsbeispiel werden, anstatt
dass der Tester analoge Signale an die analogen Schnittstellen des DUT sendet, digitale
Kodes, die bestimmte analoge Signale darstellen, aus dem Tester an die Testkarte
gesendet. Dann erzeugt die Testkarte basierend auf dem digitalen Kode aus dem Tester
ein geeignetes analoges Signal und liefert das Signal als Eingabe an das DUT.
Ferner werden die aus der Verifizierungsphase migrierten Testvektoren
und Diagnostiktests und andere Tests, die vielleicht ausgeführt werden (beispielsweise
Abtasttest), vorzugsweise in einer minimalen Form aus dem Tester zu der Testkarte
übertragen, um den Bandbreiten-Zuschlag zwischen den zwei Komponenten der Testbank
minimieren. Beispielsweise werden die Diagnostiktests vorzugsweise als kurzer String
referenziert, der an die Testkarte gesendet wird. Der String führt dann vorzugsweise
einen verarbeitungsintensiven Test aus, der eine durch den Tester verursachte Bandbreitenbegrenzung
entfernt. Der kurze String kann in Form eines Kodes für den Testvektor vorliegen,
welcher auf der Testkarte gespeichert ist. Alternativ kann der String einen aktuellen
Diagnostiktest repräsentieren, der verwendet wird, zeitaufwändige Tests
durchzuführen, und wird dann optional automatisch durch die Testkarte modifiziert,
um zusätzliche Diagnostiktests zu erzeugen. Bezüglich der Testvektoren
kann der Tester konfiguriert sein, nur die kritische Funktionsinformation bezüglich
einem Satz von Testvektoren zu übertragen und eine Logik auf der Testkarte
bereitzustellen, um die geeigneten Steuersignale zu erzeugen, die auf das DUT angewendet
würden, um den Test auszuführen. Optional können auch Abtast-basierte
Tests auf der Testkarte erzeugt werden, basierend auf einen durch den Tester bereitgestellten
Abtast-Muster-Identifikator.
Ein anderes bevorzugtes Merkmal ist die Verwendung von separaten Spannungsquellen
für die Testkarte und das DUT, um das DUT zu schützen. Mittels separater
Spannungsquellen kann ein DUT eingeschaltet werden, ohne dass das Einschalten der
Testkarte für jedes DUT wiederholt werden muss. Ferner können durch Unterhalten
separater Quellen Tests bezüglich der Spannungsversorgung des DUT leichter
durchgeführt werden. Beispielsweise kann durch Verwendung separater Spannungsversorgungen
für die Testkarte und das DUT eine Prüfung des elektrischen Stroms des
DUTs durchgeführt werden, wenn Spannung aus dessen separater Spannungsversorgung
angelegt ist.
Noch ein anderes bevorzugtes Merkmal der Testbank ist, dass direkte
Schnittstellen zwischen dem Tester und den Pins des DUTs vorgesehen sind. Durch
Aufnehmen dieser Schnittstellen können analoge Tests des DUTs, beispielsweise
der Ansteuerungsstärke und Spannungsniveaus der Ansteuereinheiten der Pins,
durchgeführt werden.
Bevorzugte, nicht-beanspruchte Verfahren zum IC-Testen werden bereitgestellt,
welche die aus der Designverifizierungsphase zur Herstellungsphase migrierten Testvektoren
und Diagnostiktests verwenden. Die bevorzugten Testverfahren erreichen
die Ziele eines robusten, noch immer Kosteneffizienten Herstellungsphasen-Testens.
Bei diesen Verfahren werden vorzugsweise mindestens vier Arten von Tests ausgeführt,
einschließlich der Diagnostiktests und Belastungstests, eingebauten Selbsttests
(BISTs) und Abtasttests zum Durchführen eines vollständigen und robusten
Testens eines DUTs. Die BISTs sind im Allgemeinen effizient beim Testen von Speichern
und Datenpfaden, einschließlich deren Zeitsteuerungs- und festgefahrenen Fehler,
die herkömmlicherweise benötigte Fehlerprüfungs-Effizienz von ungefähr
99,9% erreichend. Jedoch sind die BISTs im Allgemeinen nicht so effizient beim Testen
zufälliger Logik, einschließlich von Steuerungsfunktionen. Um diese anderen
Bereiche des ICs zu Testen, können Diagnostiktests, Belastungstests und Abtast-basierte
Tests angewandt werden.
Die Diagnostiktests werden ausgeführt, vorzugsweise Auf-Geschwindigkeit,
um die individuellen Schaltkreisblocks zu Testen, für welche sie designed sind.
Die Belastungstests, welche vorzugsweise die migrierten Testvektoren Auf-Geschwindigkeit
ausführen, schaffen einen Test-Schnappschuss des gesamten Systems. Die Belastungstests
testen typischerweise die Funktionalität der Komponenten auf einem Systemniveau
bei den operativen Leistungsgrenzen des ICs. Diese zwei Tests erreichen jedoch im
Allgemeinen nicht die herkömmliche Erfordernis von ungefähr 99,9% für
strukturelles Fehlertesten. Um dieses Testeffizienz-Niveau zu erreichen, werden
vorzugsweise Abtast-basierte Tests ausgeführt, um den Testprozess zu vervollständigen.
11 stellt einen nicht-beanspruchten Prozessfluss in
Form einer bevorzugten Reihenfolge der Ausführung von Tests in einem Chipfabrikations-Testprozess
1100 dar. Die Reihenfolge der Prozessschritte wird vorzugsweise durch einen
Wunsch geleitet, die schnellsten und am wenigsten teueren zuerst durchzuführen,
um zu bestimmen, ob ein Fehler in einem bestimmten Chip existiert, und um die zeitaufwändigen
und teuren Tests bis zum Ende des Testprozesses 1100 aufzusparen. Der in
11 dargestellte Testprozess 1100 ist vorzugsweise
basierend auf eine Gewichtung in Richtung eines Identifizierens des Ortes des Fehlers
(im Vergleich zu einem lediglich Bestimmen, dass ein Fehler existiert), welches
eine Priorität sein kann, falls beispielsweise die Herstellungs-Tests auf einer
Prototyp-Fehlersuch-Stufe durchgeführt werden. Daher ist ein Protokoll zum
Bestimmen der Reihenfolge der Tests, dass Tests die vorherige Verifizierung von
bestimmten Komponenten als nicht durchgeführt voraussetzen können bis
die bestimmten Komponenten durch andere Tests verifiziert wurden. In einem Ausführungsbeispiel
steuert ein Testsequenzer, wie beispielsweise der oben diskutierte und in
5 dargestellte, die Reihenfolge der Tests basierend
auf die Fehlerdetektions- und/oder Identifikationsprioritä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 1102 vorzugsweise die Auf-Geschwindigkeit-Diagnostiktests
durchgeführt, um das Leistungsvermögen der individuellen Komponenten-Blocks
auf dem Chip zu verifizieren. Als ein nächster Schritt 1106 werden
die Auf-Geschwindigkeit-Belastungstests unter Verwendung der Testvektoren auf den
Chip angewandt. Weil diese Tests im Allgemeien das gesamte System testen, setzten
sie die Validierung der individuellen Komponenten voraus. Daher werden diese Test
vorzugsweise nach den Diagnostiktests und BISTs durchgeführt. Dann wird in
einem nächsten Schritt 1108 von dem Tester Abtast-basiertes Testen
des DUT durchgeführt, wobei unter Verwendung von existierenden Software-Tools
(beispielsweise die "Automatic Test Pattern Generation" = automatische Testmuster-Erzeugungs
(ATPG)-Software) Abtastmuster erzeugt werden können. Die Abtast-basierten Tests
sind normalerweise die zeitaufwändigsten und teuersten von den Tests auf der
Herstellungs-Testbank und werden daher vorzugsweise als ein abschließender
oder Abschluss-naher Test durchgeführt. Weil die Diagnostiktests und die Belastungstests
für die überwältigende Mehrheit der Fehler testen, können weniger
Abtastmuster ausgeführt werden als dies ansonsten erforderlich wäre für
die notwendige 99,9%-Verifizierung.
Alternativ kann die Reihenfolge der ersten zwei Schritte
1102, 1104 umgekehrt werden, in Abhängigkeit von den relativen
Kosten der Tests. Als eine andere Alternative kann die Reihenfolge der Schritte
1104 und 1106 umgekehrt werden. Im Zusammenhang der Herstellung-für-Produktion,
wo die getesteten ICs nacheinander in elektronische Produkte eingearbeitet werden
und/oder an Verbraucher geliefert werden (d.h. "hinaus auf das Feld"), ist die Fehlerdetektion
statt die Fehleridentifizierung im Allgemeinen von höherer Priorität.
Daher ist die Testreihenfolge vorzugsweise durch den Wunsch, IC-Fehler schnell zu
identifizieren, geleitet, so dass diese verworfen werden können und die Tests
an potentiell guten ICs fortgeführt werden können. Die Belastungstests,
welche das gesamte System testen und dadurch größere Bereiche des IC-"Grundstücks"
testen als Diagnostiktests, können geeigneter sein, um Fehler schneller zu
identifizieren als Diagnostiktests. Daher werden im Rahmen der Herstellung-für-Produktion
Belastungstests vorzugsweise vor den Diagnostiktests und, optional, vor den BISTs
durchgeführt.
Alternativ, aber nicht beansprucht, können analoge Test in das
Testordnungsverfahren eingebaut werden. Typischerweise sind analoge Tests langsamer
als digitale Tests, weil analoge Tests der natürlichen Einschwingzeit von analogen
Vorrichtung unterliegen. Jedoch sind sie nicht so zeitaufwändig
und teuer wie Abtast-basierte Tests. Daher werden für ICs, die einen relativ
kleinen analogen Bereich haben können, die analogen Tests vorzugsweise durchgeführt,
nachdem die Funktionstests durchgeführt wurden (d.h. der Diagnostiktestschritt
1104 und der Belastungstestschritt 1106), aber bevor die Abtast-basierten
Tests 1108 ausgeführt werden. Alternativ werden für ICs, bei
denen analoge Vorrichtungen überwiegen, die analogen Tests vorzugsweise als
ein erster Testschritt durchgeführt, insbesondere im Zusammenhang mit Herstellung-für-Produktion,
wo frühe Fehlerdektion von höchster Priorität sein kann und analoge
Tests die größten Bereiche des ICs testen.
Das Durchführen von Abtast-basierten Tests kann aufgeteilt werden
in vorzugsweise zwei separate Schritte. Wo Block-Niveau-Abtastmuster in der Designverifizierungsphase
erzeugt wurden, werden solche Block-Niveau-Abtasttests vorzugsweise durchgeführt,
nachdem Diagnostiktests auf dem Block-Niveau ausgeführt wurden. Diese Bevorzugung
ist insbesondere anwendbar im Prototyp, Fehlersuche-Zusammenhang, wo Fehlerort-Identifizierung
die höchste Priorität haben kann anstatt frühe Fehlerdetektion. In
diesem Fall weist das Ausführen von Zwischen-Block-Abtastmustern vorzugsweise
das Durchführen der Abtast-basierten Tests 1108 als einen abschließender
oder Abschluss-naher Testschritt auf. In anderen Ausführungsbeispielen kann
die Sequenz von Tests variiert werden, um ein Gesamtziel des Minimierens der Testkosten
pro DUT zu erreichen.
Weitere Informationen über bevorzugte Test- und Verifizierungs-Methodologien
und Systeme ist in den beigleitenden Unterlagen beschrieben. Zusätzliche Informationen
bezüglich der verschiedenen Aspekten von virtuellen Komponenten-Blocks können
in der mitanhängigen vorläufigen US-Patentanmeldung
mit der Seriennummer 60/176,879, eingereicht am 18. Januar 2000, gefunden
werden.
Weitere bevorzugte Ausführungsbeispiel der Erfindung, welche
nicht beansprucht werden, werden in den folgenden Absätzen gegeben:
Ein erstes weiteres bevorzugtes Ausführungsbeispiel der Erfindung ist ein Verfahren
des Testens eines integrierten Schaltkreises, der Komponenten-Blocks von zufälliger
Logik in einer Herstellungsumgebung aufweist, welches die Schritte aufweist des:
(a) Durchführens von eingebauten Selbsttests, mindestens zum Teil, um einen
Speicher und Datenpfade des integrierten Schaltkreises zu testen; (b) Durchführens
von Diagnostiktests, mindestens zum Teil, um die Komponenten-Blocks von zufälliger
Logik individuell zu testen; (c) Durchführens von Belastungstests unter Verwendung
von Testvektoren, mindestens zum Teil, um die Komponenten-Blocks von zufälliger
Logik gemeinsam zu testen; und (d) Durchführens von Abtast-basierten Tests
des integrierten Schaltkreises, mindestens zum Teil auf strukturelle Fehler in dem
integrierten Schaltkreis hin.
Gemäß einem ersten Aspekt des ersten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist das Verfahren ferner den Schritt des
Durchführens von analogen Tests der analogen Bereiche des integrierten Schaltkreises
auf.
Gemäß einem zweiten Aspekt des ersten weiteren Ausführungsbeispiels
der Erfindung ist der integrierte Schaltkreis ein Prototyp und die Schritte werden
in der Reihenfolge Schritt (a), dann Schritt (b), dann Schritt (c), und dann Schritt
(d) durchgeführt. Der integrierte Schaltkreis kann einen analogen Bereich und
einen digitalen Bereich enthalten, wobei der digitale Bereich wesentlich größer
ist als der analoge Bereich und das Verfahren ferner einen zwischen den Schritten
(c) und (d) durchgeführten Schritt des Durchführens analoger Tests des
analogen Bereichs des integrierten Schaltkreises aufweist. Alternativ kann der integrierte
Schaltkreis einen analogen Bereich und einen digitalen Bereich enthalten, wobei
der analoge Bereich wesentlich größer ist als der digitale Bereich und
das Verfahren ferner den vor dem Schritt (a) durchgeführten Schritt des Durchführens
analoger Tests des analogen Bereichs des integrierten Schaltkreises aufweist.
Gemäß einem dritten Aspekt des ersten weiteren Ausführungsbeispiels
der Erfindung ist der integrierte Schaltkreis einer aus einer Produktion von integrierten
Schaltkreisen für die Feld-Verwendung und die Schritte werden in der Reihenfolge
Schritt (c), dann Schritt (a), dann Schritt (b), und dann Schritt (d) durchgeführt.
Der integrierte Schaltkreis kann einen analogen Bereich und einen digitalen Bereich
enthalten, wobei der digitale Bereich wesentlich größer ist als der analoge
Bereich und das Verfahren ferner zwischen den Schritten (b) und (d) einen Schritt
des Durchführens analoger Tests des analogen Bereichs des integrierten Schaltkreises
aufweist. Alternativ kann der integrierte Schaltkreis einen analogen Bereich und
einen digitalen Bereich enthalten, wobei der analoge Bereich wesentlich größer
ist als der digitale Bereich und das Verfahren ferner vor dem Schritt (c) einen
Schritt des Durchführens analoger Tests des analogen Bereichs des integrierten
Schaltkreises aufweist.
Ein zweites weiteres Ausführungsbeispiel der Erfindung ist ein
System zum Testen eines integrierten Schaltkreises, aufweisend: (a) einen Speicher
zum Speichern von Signaturen zum Initiieren von eingebauten Selbsttests, Eingaben
für Diagnostiktests, Testvektoren für Belastungstests, und Abtastmustern
für Abtast-basierte Tests; und (b) einen Prozessor zum Initiieren und Evaluieren
des Leistungsvermögens des integrierten Schaltkreises über
die eingebauten Selbsttest, die Diagnostiktests, die Belastungstests und die Abtast-basierten
Tests.
Gemäß einem ersten Aspekt des zweiten weiteren bevorzugten
Ausführungsbeispiels der Erfindung ist der Prozessor konfiguriert, die Tests
des integrierten Schaltkreises basierend auf die relativen Prioritäten einer
frühen Fehlerdetektion gegen eine frühe Fehleridentifizierung ablaufen
zu lassen. Die Priorität der frühen Fehleridentifizierung kann die Priorität
der frühen Fehlerdetektion übertreffen, und der Prozessor kann konfiguriert
sein, die Tests in der Reihenfolge eingebaute Selbsttests, Diagnostiktests, Belastungstests,
und dann Abtast-basierte Tests ablaufen zu lassen. Alternativ kann die Priorität
der frühen Fehlerdetektion die Priorität der frühen Fehleridentifizierung
übertreffen und der Prozessor kann konfiguriert sein, die Tests in der Reihenfolge
Belastungstests, eingebaute Selbsttests, Diagnostiktests, und dann Abtast-basierte
Tests ablaufen zu lassen.
Gemäß einem zweiten Aspekt des zweiten weiteren bevorzugten
Ausführungsbeispiels der Erfindung speichert der Speicher ferner Tests zum
Testen von analogen Komponenten des integrierten Schaltkreises, und der Prozessor
ist konfiguriert, das Leistungsvermögen der integrierten Schalkreises über
die analogen Tests zu initiieren und evaluieren.
Ein drittes weiteres bevorzugtes Ausführungsbeispiel der Erfindung
ist ein computerlesbares Medium mit einer oder mehreren darin gespeicherten Sequenzen
von Instruktionen zum Testen eines hergestellten integrierten Schaltkreises, wobei
der integrierte Schaltkreis einen Speicher, Komponenten-Blocks von zufälliger
Logik und Datenpfade aufweist, wobei eine oder mehrere der Sequenzen von Instruktionen
einen oder mehrere Prozessoren dazu veranlasst, eine Mehrzahl von Aktionen durchzuführen,
wobei die Aktionen aufweisen: (a) Durchführen von eingebauten Selbsttests,
mindestens zum Teil, um den Speicher und Datenpfade des integrierten Schaltkreises
zu testen; (b) Durchführen von Diagnostiktests, mindestens zum Teil, um die
Komponenten-Blocks von zufälliger Logik individuell zu testen; (c) Durchführen
von Belastungstests unter Verwendung von Testvektoren, mindestens zum Teil, um die
Komponenten-Blocks von zufälliger Logik gemeinsam zu testen; und (d) Durchführen
von Abtast-basierten Tests des integrierten Schaltkreises, mindestens zum Teil,
um für die strukturellen Fehler in dem integrierten Schaltkreis zu testen.
Gemäß einem ersten Aspekt des dritten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weisen die Aktionen ferner einen analogen
Test eines analogen Bereichs des integrierten Schaltkreises auf.
Gemäß einem zweiten Aspekt des dritten weiteren bevorzugten
Ausführungsbeispiels der Erfindung ist der integrierte Schaltkreis ein Prototyp
eines integrierten Schaltkreises, und die Aktionen werden in der Reihenfolge Aktion
(a), dann Aktion (b), dann Aktion (c), und dann Aktion (d) durchgeführt.
Gemäß einem dritten Aspekt des dritten weiteren bevorzugten
Ausführungsbeispiels der Erfindung ist der integrierte Schaltkreis einer aus
einer Produktion von integrierten Schaltkreisen zur Feld-Verwendung, und die Aktionen
werden in der Reihenfolge Aktion (c), dann Aktion (a), dann Aktion (b), und dann
Aktion (d) durchgeführt.
Ein viertes weiteres bevorzugtes Ausführungsbeispiel der Erfindung
ist eine Testkarte zum Testen eines Messobjekts, wobei die Testkarte aufweist: (a)
eine Messobjekt-Schnittstelle; (b) eine Tester-Schnittstelle; (c) einen Speicher
zum Speichern von Testeingaben für das Messobjekt; und (d) einen Datenübersetzter,
wobei der Datenübersetzer zwischen dem Speicher und der Tester-Schnittstelle
gekoppelt ist zum Formatieren von zwischen dem Speicher und der Testerschnittstelle
kommunizierten Testdaten.
Gemäß einem ersten Aspekt des vierten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner einen mit der
Tester-Schnittstelle und dem Messobjekt gekoppelten Taktgenerator zum Empfangen
von Steuersignalen aus der Testerschnittstelle und Übertragen von Taktsignalen
an das Messobjekt auf.
Gemäß einem zweiten Aspekt des vierten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner mit dem Speicher
gekoppelte Steuerungslogik zum Anwenden der Testeingaben für das Messobjekt
auf. Die Testkarte kann ferner einen mit der Tester-Schnittstelle und der Steuerungslogik
gekoppelten Taktgenerator zum Empfangen von Steuersignalen von der Testerschnittstelle
und Übertragen von Taktsignalen an die Steuerungslogik aufweisen. Außerdem
kann die Testkarte ferner einen zwischen der Tester-Schnittstelle und dem Messobjekt
gekoppelten analogen Signalgenerator aufweisen, wobei der analoge Signalgenerator
konfiguriert ist, von der Testerschnittstelle digitale Signale zu empfangen, die
kennzeichnend für einen analogen Test sind, ein analoges Signal basierend auf
die digitalen Signale zu erzeugen, und die analogen Signale an das Messobjekt-Schnittstelle
zu übertragen. Der Datenübersetzer kann ferner zwischen der Messobjekt-Schnittstelle
und der Tester-Schnittstelle gekoppelt sein zum Formatieren von Testdaten, die zwischen
dem Messobjekt und der Testerschnittstelle kommuniziert werden, und der Taktgenerator
ferner mit der Messobjekt-Schnittstelle gekoppelt sein zum Übertragen von Taktsignalen
an das Messobjekt.
Gemäß einem dritten Aspekt des vierten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist der Speicher einen FIFO auf.
Gemäß einem vierten Aspekt des vierten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine Foldback-Schaltung
auf, die mindestens zwei Pins des Messobjekt verbindet. Die Foldback-Schaltung kann
eine mit einer Prüfsummenlogik gekoppelte Komponenten-Schnittstelle aufweisen.
Gemäß einem fünften Aspekt des vierten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner einen zwischen
der Tester-Schnittstelle und der Messobjekt-Schnittstelle gekoppelten analogen Signalgenerator
auf, wobei der analoge Signalgenerator konfiguriert ist, von der Tester-Schnittstelle
digitale Signale zu empfangen, die kennzeichnend für einen analogen Test sind,
ein analoges Signal basierend auf die digitalen Signale zu erzeugen, und das analoge
Signal an die Messobjekt-Schnittstelle zu übertragen. Die Testkarte kann ferner
einen mit der Tester-Schnittstelle und der Messobjekt-Schnittstelle gekoppelten
Taktgenerator zum Empfangen von Taktsteuerungssignalen von der Tester-Schnittstelle
und Übertragen von Taktsignalen an das Messobjekt aufweisen.
Gemäß einem sechsten Aspekt des vierten weiteren bevorzugen
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine mit dem
Speicher und dem Datenübersetzer gekoppelte und von dem Messobjekt elektrisch
isolierte Spannungsquelle auf.
Gemäß einem siebten Aspekt des vierten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine direkte
Tester-Schnittstelle zum Durchführen von Tests des Messobjekts direkt von einem
Tester auf.
Gemäß einem achten Aspekt des vierten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine Abtasttest-Schnittstelle
zum Durchführen von Abtast-Tests des Messobjekts direkt von einem Tester auf.
Ein fünftes weiteres bevorzugtes Ausführungsbeispiel der
Erfindung ist eines Testkarte zum Testen eines Messobjekts, wobei die Testkarte
aufweist: (a) eine Messobjekt-Schnittstelle; (b) eine Tester-Schnittstelle; (c)
einen analogen zwischen der Tester-Schnittstelle und dem Messobjekt gekoppelten
analogen Signalgenerator, wobei der analoge Signalgenerator konfiguriert ist, von
der Tester-Schnittstelle digitale Signale zu empfangen, die kennzeichnend für
einen analogen Test sind, ein analoges Signal basierend auf die digitalen Signale
zu erzeugen, und das analoge Signal an die Messobjekt-Schnittstelle zu übertragen;
und (d) einen Datenübersetzer, der elektrisch gekoppelt ist zwischen der Messobjekt-Schnittstelle
und der Tester-Schnittstelle und zwischen der Messobjekt-Schnittstelle und der Tester-Schnittstelle
kommunizierte Testdaten formatiert.
Gemäß einem ersten Aspekt des fünften weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner einen mit der
Tester-Schnittstelle und der Steuerungslogik gekoppelten Taktgenerator zum Empfangen
von Steuersignalen aus der Testerschnittstelle und Übertragen von Taktsignalen
an die Steuerungslogik auf.
Gemäß einem zweiten Aspekt des fünften weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine Foldback-Schaltung
auf, die mindestens zwei Pins des Messobjekts verbindet. Die Foldback-Schaltung
kann eine mit einer Prüfsummenlogik gekoppelte Komponenten-Schnittstelle aufweisen.
Gemäß einem dritten Aspekt des fünften weiteren bevorzugen
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine mit dem
Speicher und dem Datenübersetzer gekoppelte und von dem Messobjekt elektrisch
isolierte Spannungsquelle auf.
Gemäß einem vierten Aspekt des fünften weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine direkte
Tester-Schnittstelle zum Durchführen von Tests des Messobjekts direkt von einem
Tester auf.
Gemäß einem fünften Aspekt des fünften weiteren
bevorzugten Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine
Abtasttest-Schnittstelle zum Durchführen von Abtast-Tests des Messobjekts direkt
von einem Tester auf.
Ein sechstes weiteres bevorzugtes Ausführungsbeispiel der Erfindung
ist eine Testkarte zum Testen eines Messobjekts, wobei die Testkarte aufweist: (a)
eine Messobjekt-Schnittstelle; (b) eine Tester-Schnittstelle; (c) eine Foldback-Schaltung,
die mindestens zwei Pins des Messobjekts koppelt; und (d) einen Datenübersetzer,
der elektrisch gekoppelt ist zwischen der Messobjekt-Schnittstelle und der Tester-Schnittstelle
und zwischen der Messobjekt-Schnittstelle und der Tester-Schnittstelle kommunizierte
Testdaten formatiert.
Gemäß einem ersten Aspekt des sechsten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner einen zwischen
der Tester-Schnittstelle und der Steuerungslogik gekoppelten Taktgenerator zum Empfangen
von Steuersignalen von der Tester-Schnittstelle und Übertragen
von Taktsignalen an die Steuerungslogik auf.
Gemäß einem zweiten Aspekt des sechsten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine mit dem
Speicher und dem Datenübersetzer gekoppelte und elektrisch von dem Messobjekt
isolierte Spannungsquelle auf.
Gemäß einem dritten Aspekt des sechsten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine direkte
Tester-Schnittstelle zum Durchführen von Tests des Messobjekt direkt von einem
Tester auf.
Gemäß einem vierten Aspekt des sechsten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist die Testkarte ferner eine Abtasttest-Schnittstelle
zum Durchführen von Abtasttests des Messobjekts direkt von einem Tester auf.
Ein siebtes weiteres bevorzugtes Ausführungsbeispiel der Erfindung
ist ein integrierter Schaltkreis, der aufweist: (a) eine Mehrzahl von Schaltkreis-Komponenten-Blocks,
die über einen Bus gekoppelt sind; (b) eine Mehrzahl von I/O-Pins mit einer
entsprechenden Mehrzahl von mit dem Bus gekoppelten Adern, wobei die I/O-Pins eine
Fähigkeit zum Kommunizieren mit Außerhalb des integrierten Schaltkreises
bereitstellen; (c) eine Foldback-Schaltung zum Zurückführen eines auf
einer der Mehrzahl von Adern an eine der Mehrzahl von Pins übertragenen Signals;
und (d) eine Foldback-Logik zum Aktivieren und Deaktivieren der Foldback-Schaltung.
Gemäß einem ersten Aspekt des siebten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist der integrierte Schaltkreis ferner
einen mit dem Bus gekoppelten Testport auf und enthält jeder der Schaltkreis-Komponenten-Blocks
eine Block-Schnittstelle zu dem Systembus. Der Testport kann eine Kommunikations-Initiierungs-Hülle
aufweisen, und jede Block-Schnittstelle weist eine Ziel-Hülle auf. Der integrierte
Schaltkreis kann ferner einen sperrbaren Speicher aufweisen, der über eine
Block-Schnittstelle mit dem Bus gekoppelt ist.
Ein achtes weiteres bevorzugtes Ausführungsbeispiel der Erfindung
ist ein computerlesbares Medium mit einer oder mehreren darauf gespeicherten Sequenzen
von Instruktionen zum Spezifizieren eines integrierten Schaltkreises, wobei die
eine oder mehreren Sequenzen von Instruktionen einen oder mehreren Prozessoren dazu
veranlassen, eine Mehrzahl von Aktionen durchzuführen, wobei die Aktionen aufweisen:
(a) Spezifizieren einer Mehrzahl von Schaltkreis-Komponenten-Blocks, die untereinender
über einen Bus gekoppelt sind; (b) Spezifizieren einer Mehrzahl von I/O-Pins
mit einer entsprechenden Mehrzahl von mit dem Bus gekoppelten Adern, wobei die I/O-Pins
eine Fähigkeit zum Kommunizieren mit Außerhalb des integrierten Schaltkreises
bereitstellen; (c) Spezifizieren einer Foldback-Schaltung zum Zurückführen
eines auf einer der Mehrzahl von Adern an eine der Mehrzahl von Pins übertragenen
Signals; und (d) Spezifizieren einer Foldback-Logik zum Aktivieren und Deaktivieren
der Foldback-Schaltung.
Gemäß einem ersten Aspekt des achten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weisen die Aktionen ferner Spezifizieren
eines mit dem Bus gekoppelten Testports auf und jeder der Schaltkreis-Komponenten-Blocks
enthält eine Block-Schnittstelle zu dem Systembus. Der Testport kann eine Kommunikations-Initiierungs-Hülle
aufweisen, und jede Block-Schnittstelle weist eine Ziel-Hülle auf. Der integrierte
Schaltkreis kann ferner Spezifizieren eines sperrbaren Speichers aufweisen, der
über eine Block-Schnittstelle mit dem Bus gekoppelt ist.
Ein neuntes weiteres bevorzugtes Ausführungsbeispiel der Erfindung
ist eine Teststation zum Testen eines Messobjekts, wobei die Teststation aufweist:
(a) das Messobjekt, wobei das Messobjekt einen Speicher und Testlogik zum Sperren
mindestens eines Bereichs des Speichers während eines Tests des Messobjekts
aufweist; (b) einen Tester, wobei der Tester mit dem Messobjekt elektrisch gekoppelt
ist, und digitale Signale überträgt, um den mindestens einen Bereich des
Messobjekts zu sperren; und (c) eine Testkarte, die mit dem Messobjekt und dem Tester
elektrisch gekoppelt ist, wobei die Testkarte aufweist einen Taktgenerator zum Übertragen
von Taktsignalen an das Messobjekt, und einen Datenübersetzer, der elektrisch
gekoppelt ist zwischen einer Schnittstelle für das Messobjekt und der Tester-Schnittstelle,
wobei der Datenübersetzer zwischen der Schnittstelle für das Messobjekt
und der Tester-Schnittstelle kommunizierte Testdaten formatiert.
Gemäß einem ersten Aspekt des neunten weiteren bevorzugten
Ausführungsbeispiels der Erfindung enthält das Messobjekt ferner einen
mit einem Systembus auf dem Messobjekt gekoppelten Testport und die Komponenten-Blocks
des Messobjekts enthalten jeder eine Block-Schnittstelle zu dem Systembus. Der Testport
kann eine Kommunikations-Initiierungs-Hülle aufweisen, und jede Block-Schnittstelle
weist eine Ziel-Hülle auf.
Gemäß einem zweiten Aspekt des neunten weiteren bevorzugten
Ausführungsbeispiels der Erfindung weist das Messobjekt eine Foldback-Schaltung
auf, um Ausgangssignale von dem Messobjekt in das Messobjekt einzugeben, und Logik
zum Aktivieren der Foldback-Schaltung.
Ein zehntes weiteres bevorzugtes Ausführungsbeispiel der Erfindung
ist ein Verfahren zum Erzeugen von Testvektoren zum Testen eines integrierten Schaltkreises
auf einer Herstellungs-Testbank, aufweisend die Schritte des (a) Erhaltens von Funktionsniveau-Testvektoren;
(b) Umwandelns der Testvektoren in eine Reihe von Nachrichtenblocks; (c) Anwendens
eines Schnittstellen-Protokolls auf die Reihe von Nachrichtenblocks, um Testvektordaten
zu erzeugen; und (d) Anwendens eines Schnittstellen-Protokolls für ein Messobjekt
auf die Testvektordaten.
Ein elftes weiteres bevorzugtes Ausführungsbeispiel der Erfindung
ist ein System zum Erzeugen von Testvektoren zum Testen eines integrierten Schaltkreises
auf einer Herstellungs-Testbank, aufweisend: (a) einen Speicher zum Speichern von
Funktionsniveau-Testvektoren; (b) einen mit dem Speicher gekoppelten Prozessor zum
Übersetzen der Testvektoren in Nachrichtenblocks, zum Anwenden eines Schnittstellen-Protokolls
auf die Nachrichtenblocks, um Testvektordaten zu erzeugen, und zum Anwenden eines
Schnittstellen-Protokolls für ein Messobjekt auf die Testvektordaten.
Ein zwölftes weiteres bevorzugtes Ausführungsbeispiel der
Erfindung ist ein System zum Erzeugen von Testvektoren zum testen eines integrierten
Schaltkreises auf einer Herstellungstestbank, aufweisend: (a) ein Mittel zum Speichern
von Funktionsniveau-Testvektoren; (b) einen mit dem Mittel zum Speichern von Funktionsniveau-Testvektoren
gekoppeltes Verarbeitungs-Mittel, wobei das Verarbeitungs-Mittel zum Übersetzen
der Testvektoren in Nachrichtenblocks, zum Anwenden eines Schnittstellen-Protokolls
auf die Nachrichtenblocks, um Testvektordaten zu erzeugen, und zum Anwenden eines
Schnittstellen-Protokolls für ein Messobjekt auf die Testvektordaten ist.
Ein dreizehntes weiteres bevorzugtes Ausführungsbeispiel der
Erfindung ist ein computerlesbares Medium mit einer oder mehreren darauf gespeicherten
Sequenzen von Instruktionen zum Erzeugen von Testvektoren zum Testen eines integrierten
Schaltkreises auf einer Herstellungs-Testbank, wobei die eine oder mehreren Sequenzen
von Instruktionen einen oder mehrere Prozessoren dazu veranlasst, eine Mehrzahl
von Aktionen durchzuführen, wobei die Aktionen aufweisen: (a) Spezifizieren
von Funktionsniveau-Testvektoren; (b) Übersetzen der Testvektoren in Nachrichtenblocks;
(c) Anwenden eines Schnittstellen-Protokolls auf die Nachrichtenblocks, um Testvektordaten
zu erzeugen; und (d) Anwenden eines Schnittstellen-Protokolls für ein Messobjekt
auf die Testvektordaten.
Ein vierzehntes weiteres bevorzugtes Ausführungsbeispiel der
Erfindung ist ein Verfahren des Erzeugens von Diagnostiktests zum Testen eines integrierten
Schaltkreises auf einer Herstellungs-Testbank, aufweisend die Schritte des (a) Erhaltens
von Funktionsniveau-Diagnostiktests für virtuelle Komponenten-Blocks eines
integrierten Schaltkreis-Designs; (b) Übersetzens der Diagnostiktests in zeitakkurate
Diagnostiktests; (c) Umwandelns der zeitakkuraten Diagnostiktests in Speicherladeinstruktionen;
und (d) Anwendens eines Schnittstellen-Protokolls für ein Messobjekt auf die
Speicherladeinstruktionen.
Ein fünfzehntes weiteres bevorzugtes Ausführungsbeispiel
der Erfindung ist ein computerlesbares Medium mit einer oder mehreren darauf gespeicherten
Sequenzen von Instruktionen zum Spezifizieren und Testen eines integrierten Schaltkreises
auf einer Herstellungs-Testbank, wobei die eine oder mehreren Sequenzen von Instruktionen
einen oder mehrere Prozessoren dazu veranlasst, eine Mehrzahl von Aktionen durchzuführen,
wobei die Aktionen aufweisen: (a) Spezifizieren einer Mehrzahl von virtuellen Komponenten-Blocks;
(b) Spezifizieren von Verbindungen zwischen der Mehrzahl von virtuellen Komponenten-Blocks;
(c) Spezifizieren einer Mehrzahl von Sätzen von Diagnostiktests zum Testen
hergestellter Formen der Mehrzahl von virtuellen Komponenten-Blocks, jeder Satz
von Diagnostiktests mit einem der Mehrzahl von virtuellen Komponenten-Blocks korrespondierend;
und (d) Spezifizieren eines Satzes von Testvektoren zum Testen des hergestellten
integrierten Schaltkreises.
Ein sechszehntes weiteres bevorzugtes Ausführungsbeispiel der
Erfindung ist ein computerlesbares Medium mit einer oder mehreren darauf gespeicherten
Sequenzen von Instruktionen zum Erzeugen von Testvektoren zum Testen eines integrierten
Schaltkreises auf einer Herstellungs-Testbank, wobei die eine oder mehreren Sequenzen
von Instruktionen einen oder mehrere Prozessoren dazu veranlasst, eine Mehrzahl
von Aktionen durchzuführen, wobei die Aktionen aufweisen: (a) Spezifizieren
von Funktionsniveau-Testvektoren zum Testen einer funktionellen Spezifikation des
integrierten Schaltkreises; (b) Übersetzen der Testvektoren in Nachrichtenblocks;
(c) Anwenden eines Schnittstellen-Protokolls auf die Nachrichtenblocks, um Testvektordaten
zu erzeugen; und (d) Anwenden eines Schnittstellen-Protokolls des integrierten Schaltkreises
auf die Testvektordaten.
Ein siebzehntes weiteres bevorzugtes Ausführungsbeispiel der
Erfindung ist ein Verfahren des Herstellens eines computerlesbaren Mediums, das
ein Design für einen integrierten Schaltkreis und eine Ansammlung von Testeingaben
zum Herstellen und Funktionalitäts-Testen einer hergestellten Form des integrierten
Schaltkreises aufweist, aufweisend die Schritte des (a) Designens von in dem Design
des integrierten Schaltkreises zu verwendenden virtuellen Komponenten-Blocks;
(b) Designens eines Diagnostiktests, spezifisch für jeden virtuellen Komponenten-Block;
(c) Bestimmens des Designs für den integrierten Schaltkreis, der die virtuellen
Komponenten-Blocks aufweist; (d) Erhaltens von Hochniveau-Testvektoren für
den integrierten Schaltkreis; (e) Verifizierens des integrierten Schaltkreises unter
Verwendung der Testvektoren und Diagnostiktests; (f) Vermehrens der Diagnostiktests
und der Testvektoren für eine Herstellungsumgebung; und (g) Verkapselns des
Designs für den integrierten Schaltkreis mit den vermehrten Testvektoren.
Obgleich bevorzugte Ausführungsbeispiele der Erfindung hierin
diskutiert wurden und in dem beigleitenden Unterlagen weiter erklärt werden,
sind viele Variationen möglich, die innerhalb des Konzepts und dem Rahmen der
Erfindung bleiben. Solche Variationen werden einem Fachmann nach Inspizierung der
Spezifikation und der Zeichnungen klar. Die Erfindung ist daher nicht eingeschränkt
außer durch den Rahmen der beigefügten Ansprüche.