-
Diese Erfindung betrifft ein Verfahren
und ein Gerät
zur Validierung des Entwurfs einer komplexen integrierten Schaltung
und insbesondere ein Verfahren und ein Gerät zur Evaluierung und Validierung des
Entwurfs einer komplexen integrierten Schaltung, wie etwa ein System
auf einem Chip, mit hoher Geschwindigkeit und bei geringen Kosten
durch Verwendung eines ereignisbasierten Testsystems ohne Verwendung
einer Logiksimulation.
-
Gegenwärtig wird ein Höchstintegrationsentwurf
in Blöcken
und Unterblöcken
durch Verwendung einer Beschreibungshochsprache wie Verflog und VHDL
beschrieben. Diese Verilog-/VHDL-Entwürfe werden dann auf Verhaltens-
und Logikgatterniveau unter Verwendung eines Verilog-/VHDL-Logiksimulators
simuliert. Solch eine Entwurfsumgebung wird eine elektronische Design-Automationsumgebung (EDA-Umgebung) genannt.
Die Simulation in der EDA-Umgebung zielt darauf ab, die Funktionalität und das
Leistungsvermögen
zu prüfen,
bevor der Entwurf als integrierte Schaltung auf Silizium hergestellt
wird. Derzeit ist die Simulationsgeschwindigkeit zu klein, um eine
Simulation eines vollständigen Chips
auszuführen,
daher werden Entwürfe
lediglich teilweise validiert.
-
Die Validierung von Entwürfen ist
eine der wichtigsten und schwierigsten Aufgaben beim Entwurf von
komplexen integrierten Schaltungen, weil ohne vollständige Prüfung der
funktionalen Richtigkeit Fehler im Entwurf nicht gefunden und beseitigt werden.
Gleichzeitig ist die Validierung eines Entwurfes auf dem Niveau
eines vollständigen
Chips eine absolute Notwendigkeit im Produktentwicklungszyklus.
Wegen der geringen Geschwindigkeit der Simulation und der riesigen
Größe der heutigen
Entwürfe ist
die Validierung eines Entwurfes auf dem Niveau eines Chips mit den
gegenwärtigen
Werkzeugen und Vorgehensweisen eine unmögliche Aufgabe (M. Keating
und P. Bricaud, „Reuse
methodology manual for a system-on-a-chip design", Kluwer Academic publishers, ISBN 0-7923-8175-0,
1998; R. Rajsuman, „System-on-a-chip:
Design and Test",
Artech House Publishers Inc., ISBN 1-58053-107-5, 2000).
-
Die Validierung von Entwürfen ist
eines der wichtigsten Aufgaben bei jedem Entwurfsprojekt wie etwa
ein Entwurf eines oben erwähnten
Systems auf einem Chip (R. Rajsuman, „System-on-a-chip: Design
and Test", 2000).
Die Validierung eines Entwurfes bedeutet, nachzuweisen, dass das
System tut wozu es gedacht ist. Sie sorgt im Wesentlichen für das Vertrauen
in die Funktionsweise des Systems. Das Ziel der Validierung eines
Entwurfs ist es, nachzuweisen, dass das Produkt wirklich wie beabsichtigt arbeitet
(herauszufinden, ob es wie beabsichtigt arbeitet). Die Validierung
des Entwurfs einer komplexen integrierten Schaltung kann als die
Validierung der Funktionsweise einer Hardware angesehen werden,
was sowohl die Funktionalität
als auch das Taktleistungsvermögen
einschließt.
In der gegenwärtigen Technologie
wird die Validierung eines Entwurfes durch eine umfassende Verhaltens-,
logische und zeitliche Simulation und/oder durch Emulation und/oder
durch einen Hardwareprototypen erreicht.
-
In der frühen Phase des Entwurfes einer
integrierten Schaltung werden zusammen mit der Spezifikationsentwicklung
und der RTL-Kodierung (Register Tranfer Level = Register Transfer
Ebene) Verhaltensmodelle entwickelt, so dass die Prüfbänke für die Simulation
des Systems geschaffen werden können.
In der frühen
Phase, im Allgemeinen, ist es das Ziel, einen guten Satz von Testreihen
auf Blockniveau und Testfälle
zu entwickeln, wird das durch den Entwurf auf Zeitregister-Transfer-Ebene (RTL-Entwurf)
getan und es werden Funktionsmodelle spezifiziert. Eine wirkungsvolle
Validierung hängt von
der Qualität
des Tests und der Vollständigkeit
der Testbänke,
dem Abstraktionsniveau der verschiedenen Modelle, der EDA-Werkzeuge und der
Simulationsumgebung ab.
-
Die Strategie der Entwurfsvalidierung
folgt der Entwurfshierarchie. Zuerst werden die Blöcke auf Blattebene
für sich
alleine auf Richtigkeit überprüft. Nach
der Untersuchung der Funktionalität dieser Blöcke werden die Schnittstellen
zwischen den Blöcken auf
Richtigkeit hinsichtlich der Vorgangstypen und Dateninhalte überprüft.
-
Der nächste und wichtigste Schritt
ist, die Anwendungssoftware oder äquivalente Prüfbänke auf dem
Modell eines vollständigen
Chips laufen zu lassen. Da die Anwendung der Software nur durch
Laufzeitausführung
der Software auf dem Chip verifiziert werden kann, ist eine Hardware-Software-Co-Simulation
erforderlich. Die Co-Simulation kann auf dem Niveau einer Architektur
von Befehlssätzen
(ISA-Niveau = instruction
set architecture level), auf dem Niveau eines Bus-Funktionsmodells
(BFM-Niveau) oder unter Verwendung eines Verhaltensmodells in C/C++
durchgeführt
werden. Neben Co-Simulation sind die andern heutzutage verwendeten
Techniken zur Validierung die Emulation und/oder Hardwareprototypen
(C. Flynn „Developing
an emulation environment",
Integrated Systems Design Magazine, S. 46 bis 52, April 2001; A.
Dieckman „HW-SW
coverification with emulation, co-simulation and FPGA based prototyping", Proceedings of
Design and Test in Europe, S. 98 bis 101, 2001; R. Ulrich et al. „Debugging of
FPGA based prototypes – A
case study", Proceedings
of Design and Test in Europe, S. 109 bis 113, 2001).
-
Die Kosten von Emulationssystemen
sind ziemlich hoch (in der Größenordnung
von 1 Million Dollar); ihre Geschwindigkeit ist jedoch wesentlich größer als
die Geschwindigkeit der Co-Simulation (Emulation liefert grob 100K
bis 1M Taktzyklen pro Sekunde). Ein ungefährer Vergleich der Simulationsgeschwindigkeit
auf unterschiedlichen Niveaus der Entwurfsbeschreibung ist in 1 gezeigt. Hier steht, wie
es oben angemerkt wurde, BFM für
ein Niveau eines Bus-Funktionsmodell, ISA steht für ein Niveau
einer Architektur von Befehlssätzen
und RTL steht für
ein Register-Transfer-Niveau. Desweiteren bedeutet „Logik" in 1 ein Logikgatter-Niveau, wie es etwa in einer Netzliste
verwendet wird. Keines der bestehenden Werkzeuge und Vorgehensweisen
erlaubt ausgedehnte Läufe
der Softwareanwendungen zur Validierung von Entwürfen; Folglich wird die Funktionalität eines
Chips nur in beschränktem
Ausmaß validiert.
-
Trotz der besten Absichten der Ingenieure, die
erste Ausführung
in Silizium völlig
funktionell zu fertigen, arbeiten lediglich 80 % der Entwürfe richtig, wenn
sie auf Wafer-Niveau getestet werden, aber mehr als die Hälfte versagt,
wenn sie zum ersten mal in das System eingesetzt werden. Der Primärgrund ist
das Fehlen der Validierung auf System-Niveau mit einem ausreichenden
Ausmaß an
laufender realer Softwareanwendung. Die FPGA-basierte Erstausführung ist
immer noch nicht hinreichend, da die Validierung des Entwurfs sehr
beschwerlich und immer noch langsam ist, weil sie EDA-Simulationswerkzeuge
verwendet (A. Dieckman „HW-SW co-verification with
emulation, co-simulation and FPGA based prototyping", Proceedings of
Design and Test in Europe, S. 98 bis 101, 2001; R. Ulrich et al. „Debugging
of FPGA based prototypes – A
case study", Proceedings
of Design and Test in Europe, S. 109 bis 113, 2001).
-
Demgemäß ist in der gegenwärtigen Technologie
das einzige Mittel, um die Validierung eines Entwurfes durchzuführen, die
Erstausführung
in Silizium, wie etwa das herstellen des ASIC selbst. Der derzeitige
Produktentwicklungszyklus wird in 2 veranschaulicht.
Wie es in 2 gezeigt
ist, wird ein Siliziumprototyp hergestellt. Dieser Siliziumprototyp wird
verwendet, um eine Systemplatine zu entwickeln, auf der eine vollständige Validierung
ausgeführt
wird (In-System-Test). Alle Fehler der Operation des Chipprototyps
werden behoben; der Entwurf wird korrigiert und schließlich wird
die Massenfertigung ausgeführt.
-
Genauer gesagt, studieren die Designer
im Schritt 21 von 2 die
Erfordernisse einer zu entwerfenden komplexen integrierten Schaltung.
Basierend auf den Erfordernissen in Schritt 21, bestimmen die Designer
bei Schritt 22 die Spezifikationen der integrierten Schaltung. Beim
Prozess der Entwurfseingabe in Schritt 23 wird die integrierte Schaltung
in Blöcken
und Unterblöcken
unter Verwendung einer Hochsprache wie etwa Verilog/HDL beschrieben.
In Schritt 24 wird eine anfängliche
Evaluierung des Entwurfs durch einen Prüfprozess 25 auf Richtigkeit
des Entwurfs durchgeführt,
der typischerweise eine logische/zeitliche Simulation 26 unter
Verwendung der ursprünglichen
Prüfbänke 28 ist.
Als ein Ergebnis der logischen Simulation wird eine Eingangs-/Ausgangsdatei
oder eine VCD-Datei (Value Change Dump = Auszug aus dem Werteänderungsspeicher) 29 erzeugt.
Die Daten in der VCD-Datei 29 sind eine Liste von Eingangs-
und Ausgangsereignissen mit Berücksichtigung
der Taktlänge
oder -verzögerung,
d. h. Daten in einem Ereignisformat.
-
Auf der Grundlage der Entwurfsdaten,
die entsprechend dem vorhin erwähnten
erzeugt wurden, wird in einem Prozess, der mit der Zahl 30 bezeichnet
ist, ein Siliziumprototyp aufgebaut. Bei diesem Prozess wird in
Schritt 31 die Herstellung durchgeführt, um einen Siliziumprototyp 33 zu
erhalten. Der resultierende Siliziumprototyp 33 wird in
den Schritten 32 und 35 auf etwaige Fehler untersucht. Heutzutage
wird solch ein Test unter Verwendung eines Prüfgeräts für integrierte Schaltungen ausgeführt, das
ein auf Zyklen basierendes Prüfsystem
ist, das eine Architektur zur Erzeugung von Testvektoren basierend
auf Daten von Testmustern in einem zyklischen Format aufweist.
-
Die auf Zyklen basierenden Prüfsysteme (ATE-Systeme)
sind nicht in der Lage, die VCD-Datei 29, die unter der
EDA-Umgebung erzeugt wurde, direkt zu verwenden, da sich die VCD-Datei
in einem Ereignisformat befindet. Demgemäß wird der Testvektor in der
VCD-Datei im Zyklisierungsschritt 34 zu einer Datei im
zyklischen Format umgewandelt. Darüber hinaus muss das Testprogramm
in Schritt 34 auf Grundlage der Daten im zyklischen Format entwickelt
werden, weil oftmals die Testvektoren im Ereignisformat nicht vollständig in
die Testvektoren im zyklischen Format konvertiert werden können. Solch eine
Verifikation durch Testgeräte
für integrierte Schaltungen
schließt
heutzutage immer noch unvollständige
und ungenaue Ergebnisse ein. Es ist zudem auch zeitraubend, die
Daten im Ereignisformat von der EDA-Umgebung in die Daten der Testmuster
im zyklischen Format für
das zyklusbasierte Testsystem zu konvertieren.
-
Der Siliziumprototyp 33 wird
darüber
hinaus in einem Prozess 40 zur Entwurfsvalidierung und
zur Fehlerbehebung validiert, bei dem ein In-System-Test 37 an
dem Siliziumprototyp 33 durchgeführt wird. Beim In-System-Test 37 wird
der Siliziumprototyp 33 auf einer Schaltungsplatine als
Teil eines beabsichtigten Systems befestigt. Während der In-System-Validierung
werden Fehler und Ursachen für
die Fehler aufgespürt
und die Entwurfsfehler werden in Schritt 39 festgehalten. Da solch
ein In-System-Test sowohl einen Siliziumprototyp des entworfenen Chips
als auch ein System mit einer Anwendungssoftware zum Laufen des
Siliziumprototyps erfordert, ist er nicht nur kostspielig sondern
auch zeitraubend.
-
Während
der Phase 30 des Siliziumprototyps und der Phase 40 der
Validierung in 2 werden
Fehler des Entwurfs gefunden und Ursachen für solche Fehler werden bestimmt
und Entwurfsfehler werden durch wiederholte Interaktionen zwischen den
Entwurfsingenieuren und den Testingenieuren korrigiert. Der endgültige Entwurf 41 wird
erreicht und die logische/zeitliche Simulation 43 für den endgültigen Entwurf 41 wird
unter Verwendung einer neuen Testbank 45 betrieben. Dann
wird der Entwurf als Siliziumausführung 49 hergestellt
und an der Siliziumausfuhrung wird ein Produktionstest 47 durchgeführt.
-
Es sollt auch beachtet werden, dass
es im konventionellen Ablauf, wie in 2 gezeigt,
keine geschlossene Schleife gibt, d. h. alle Schritte werden der
Reihe nach ausgeführt,
vom anfänglichen
Entwurf zum Siliziumprototyp zur Fehlerbehebung/ Validierung zum
endgültigen
Entwurf. Wegen dieser sequentiellen Natur sind diese Schritte äußerst zeitraubend
und kostspielig; auch erfordert jeder Fehler bei jedem Schritt eine
vollständige
Umarbeitung.
-
Um diese Defizite zu überwinden,
ist vom selben Zessionar dieser Erfindung in den US-Patentanmeldungen
Nr. 09/428,746 und 09/941,396 eine auf einem Ereignisprüfgerät beruhendes
Verfahren vorgeschlagen worden. Bei dem in den US-Patentanmeldungen
offenbarten Verfahren werden ein Siliziumprototyp und eine ursprüngliche
Simulationsprüfbank
zusammen mit EDA-Werkzeugen zur Validierung von Entwürfen unter
Verwendung eines ereignisbasierten Testsystems (Ereignistestgerät) verwendet.
Zu diesem Zweck werden die EDA-Werkzeuge, und _ der Simulator mit
dem Ereignistestgerät
verbunden, um die ursprünglichen
Vektoren der Entwurfssimulation und der Prüfbank auszuführen und um
Modifikationen an der Prüfbank
und an den Testvektoren vorzunehmen, solange bis zufriedenstellende
Ergebnisse erzielt werden. Weil die EDA-Werkzeuge mit dem Ereignistestgerät verbunden
sind, werden die Modifikationen gewonnen, um eine endgültige Prüfbank zu
erzeugen, die befriedigende Ergebnisse liefert.
-
Ein Beispiel dieses Verfahrens wird
in 3 veranschaulicht.
Es sollte beachtet werden, dass dieses Beispiel lediglich für den Zessionar
dieser Erfindung eine herkömmliche
Technologie darstellt, aber nicht in der Öffentlichkeit und auch nicht
im Stand der Technik zur vorliegenden Erfindung. Der fundamentale
Unterschied in 2 und 3 besteht darin, dass der
Ablauf in 3 eine geschlossene
Schleife vom ursprünglichen
Entwurf zum Prototyp zur Fehlerbehebung/Validierung zum Festhalten
der Entwurfsfehler zur endgültigen
Herstellung oder Massenproduktion vorsieht.
-
Gemäß den oben erwähnten Patentanmeldungen
und 3 werden für die vollständige funktionale
Verifikation oder die Entwurfsvalidierung auf Chip-Niveau die funktionalen
Vektoren auf dem Niveau eines vollständigen Chips, die während der
Entwurfssimulation (ursprüngliche
Prüfbank)
entwickelt wurden, auf dem Ereignistestgerät ausgeführt. Diese Testvektoren sind
ebenfalls im Ereignisformat, typischerweise erzeugt durch die Softwareanwendung, die
auf dem Verilog-/VHDL-Modell
oder dem Verhaltensmodell der integrierten Schaltung läuft. Diese Vektoren
arbeiten die verschiedenen Teile der integrierten Schaltung gleichzeitig
oder zu verschiedenen Zeiten ab, jedoch wird das Gesamtverhalten
der integrierten Schaltung durch die kombinierte Erwiderung bestimmt.
Nach diesem Schritt wird ein Siliziumchip hergestellt, wie es in 3 gezeigt ist.
-
Wenn der Chip einmal verfügbar wird,
wird er auf dem ereignisbasierten System eingesetzt und die Entwurfssimulationsvektoren
der ursprünglichen Prüfbank werden
ausgeführt,
um die Operation des Chips zu verifizieren. Genauer gesagt ein Ereignistestgerät 52 in 3 prüft die Funktion des Siliziumprototypen 33 unter
Verwendung der Testvektoren, die auf der Grundlage der Ereignisdaten,
die von der VCD-Datei (Auszug aus dem Werteveränderungsspeicher) 29 stammen,
erzeugt wurden. Da sich die VCD-Datei 29 im Ereignisformat
befindet, können
die Daten in der VCD-Datei 29 direkt im Ereignistestgerät 52 für die Prüfung des
Entwurfes verwendet werden.
-
Die EDA-Werkzeuge, wie etwa die Simulationsanalyse/Fehlerbehebung 55 und
der Signalformeditor/-Betrachter 56, werden mit dem Ereignistestgerät 52 über eine
Schnittstelle 67 verbunden, wie etwa API (Programmed Application
Interface = programmierte Anwendungsschnittstelle). Das Ereignistestgerät 52 vereinigt
die Softwarewerkzeuge zum Editieren und Betrachten der Signalformen,
wie etwa den Ereignissignalformeditor/-Betrachter 58 und DUT-Signalformeditor/-Betrachter
(device under test = Prüfling) 59.
Der Editor/Betrachter 58 und 59 ist mit den EDA-Werkzeugen 55 und 56 über die API-Schnittstelle 67 verbunden,
um damit auf die gemeinsame Datenbasis zuzugreifen und miteinander auszutauschen.
Im Ereignistestgerät 52 können die Testvektoren
(Ereignisse) durch den Ereignissignalformeditor/-Betrachter 58 modifiziert
werden.
-
Durch Ausführen der Testvektoren produziert das
Ereignistestgerät 52 eine
Testergebnisdatei 53, welche über eine Prüfbank-Rückkopplung 69 an die EDA-Entwurfsumgebung
und an die EDA-Werkzeuge zurückgegeben
wird. Die Ergebnisse werden auf dem Ereignistestgerät 52 untersucht
und die Ereignisse werden am Ereignistestgerät 52 (Editor/Betrachter 58 und 59)
verändert/leditiert,
bis alle unrichtigen Operationen des Bauteils (beabsichtigter Entwurf)
berichtigt sind. Um solch eine neue Prüfbank und Testvektoren zu erhalten,
werden die EDA-Werkzeuge,
die sich aus den Werkzeugen 65 zum Erzeugen einer Prüfbank, den
Werkzeugen 55 zur Simulationsanalyse und dem Signalformbetrachter 56 zusammensetzen,
mit dem Ereignistestgerät 52 verbunden.
Nach diesen Prozessen wird in 3 in Schritt
61 die endgültige
Fabrikation in Silizium (Massenproduktion) durchgeführt, um
das endgültige
integrierte Schaltungsbauteil 62 zu produzieren, welches in einer
Produktionsteststufe 63 geprüft werden wird.
-
Das Verfahren von 3 macht immer noch eine physikalische
Ausführung
in Silizium (Prototyp) für
die Validierung des Entwurfs notwendig. Wegen dieser Notwendigkeit
einer physikalischen Ausführung
in Silizium ist der Prozess immer noch kostspielig. Um diese Einschränkung zu überwinden,
offenbart die obige US-Patentanmeldung
Nr. 09/941,396 einen alternativen Prozess, der die ursprüngliche Entwurfsbeschreibung
und seine Simulationsprüfbank
verwendet, um eine neue Prüfbank
und ein entsprechendes Bauteilmodell zu erzeugen das frei von Entwurfsfehlern
ist. Bei diesem Prozess wird der ursprüngliche Entwurf des Bauteils
zusammen mit der ursprünglichen
Prüfbank
auf das Ereignistestgerät geladen.
Bei Verwendung der API-Schnittstelle ist das Ereignistestgerät auch mit
dem Simulator verbunden, der während
des ursprünglichen
Entwurfes verwendet wurde. Auf diese Weise enthält das Ereignistestgerät den Entwurf,
der in Verilog/VHDL beschrieben ist, und alle seine Logik-, Verhaltens-, BFM-,
ISA- und Anwendungsprüfbänke.
-
Durch Verwendung des Bauteilmodells
(ursprünglicher
Entwurf) und seiner Prüfbänke werden die
Ergebnisse auf dem Ereignistestgerät untersucht. Weil die gesamte
Umgebung und die Ergebnisse im Ereignisformat vorliegen, wird jede
nicht richtige Operation im Betrieb des Bauteils schnell erfasst.
Indem es das Ereignistestgerät
erlaubt, die Ereignisse und die Zeitskalierung zu editieren, werden
die Ereignisse entsprechend dieser nicht richtigen Operationen editiert,
um die Operation zu korrigieren. Wenn alle nicht richtigen Operationen
korrigiert sind, wird das Bauteilmodell gesichert und es werden
eine neue Prüfbank
und Testvektoren erzeugt. Das gesicherte Bauteilmodell wird zur
Herstellung in Silizium und zur Massenproduktion verwendet.
-
Es bleibt die eine Beschränkung bestehen, dass
dieses Verfahren immer noch auf einer Simulation beruht; daher ist
es immer noch langsam. Was benötigt
wird, ist ein neues Verfahren und ein neues Gerät zur Validierung eines Entwurfes,
um diese Beschränkung
zu überwinden.
-
Es ist deshalb eine Aufgabe der vorliegenden
Erfindung, ein Verfahren und ein Gerät zur Validierung eines Entwurfs
einer komplexen integrierten Schaltung mit hoher Geschwindigkeit
und geringen Kosten durch Verwendung eines ereignisbasierten Testsystems
bereitzustellen, ohne eine Logiksimulation zu verwenden.
-
Bei einem ersten Gesichtspunkt der
vorliegenden Erfindung beinhaltet das Verfahren zur Validierung
eines Entwurfs einer komplexen integrierten Schaltung die folgenden
Schritte: Verbinden einer feldprogrammierbaren Gatteranordnung (FPGA)
mit einem Ereignistestgerät,
gestreckte Programmierung der FPGA durch das Ereignistestgerät, basierend
auf den Entwurfsdaten, die unter der EDA-Umgebung erzeugt wurden,
um ein Äquivalent
einer integrierten Schaltung zu einer beabsichtigten integrierten
Schaltung in der FPGA aufzubauen, Anwenden von Testvektoren, die
von den Entwurfsdaten der integrierten Schaltung herrühren, an
der FPGA durch das Ereignistestgerät und Evaluieren einer Antwortausgabe der
FPGA, Ermitteln von Fehlern in der Antwortausgabe und Korrigieren
von Entwurfsfehlern durch Modifizieren der gestreckten Programmierung
der FPGA und Wiederholen des Schritts der Fehlerermittlung und der
Entwurfskorrektur, bis im Ereignistestgerät fehlerfreie Entwurfsdaten
erhalten werden.
-
Vorzugsweise beinhaltet das Verfahren
der vorliegenden Erfindung darüber
hinaus einen Schritt des Empfangens der Entwurfsdaten und des Konvertierens
der Entwurfsdaten für
die gestreckte Programmierung der FPGA. Der Schritt der gestreckten Programmierung
der FPGA durch das Ereignistestgerät beinhaltet einen Schritt
der Übertragung
von Programmierdaten an die FPGA durch einen Steuerbus des Ereignisgeräts.
-
Bei der vorliegenden Erfindung beinhaltet der
Schritt des Anwendens der Testvektoren vorzugsweise einen Schritt
des Laufens einer Prüfbank, die
unter der EDA-Umgebung erzeugt wurde, und von Anwendungssoftware,
die für
beabsichtigte integrierte Schaltung gefertigt wurde, auf der FPGA durch
das Ereignistestgerät.
-
Das Verfahren der vorliegenden Erfindung beinhaltet
darüber
hinaus einen Schritt des Extrahierens von Ereignisdaten durch eine
Prüfbank,
die unter der EDA-Umgebung
erzeugt wurde, und einen Schritt des Installierens der extrahierten
Ereignisdaten im Ereignistestgerät
und Erzeugen der Testvektoren auf der Grundlage der extrahierten
Ereignisdaten, um die Testvektoren auf die FPGA über eine Prüfhalterung des Ereignistestgeräts anzuwenden.
-
Bei einem zweiten Gesichtspunkt der
vorliegenden Erfindung wird bei dem Verfahren zur Validierung des
Entwurfs einer komplexen integrierten Schaltung lieber eine Emulatorplatine
als eine FPGA verwendet. Das Verfahren beinhaltet die folgenden Schritte:
Verbinden einer Emulatorplatine mit einem Ereignistestgerät, Zuführen von
Entwurfsdaten einer beabsichtigten integrierten Schaltung an die
Emulatorplatine, so dass die Emulatorplatine Funktionen der beabsichtigten
integrierten Schaltung emuliert, Anwenden von Testvektoren, die
von den Entwurfsdaten der integrierten Schaltung herrühren, an
der Emulatorplatine durch das Ereignistestgerät und Evaluieren einer Antwortausgabe
der Emulatorplatine, Ermitteln von Fehlern in der Antwortausgabe
und Korrigieren von Entwurfsfehler durch Modifizieren der Entwurfsdaten,
die der Emulatorplatine zugeführt wurden,
und Wiederholen des Schritts der Fehlerermittlung und der Entwurfskorrektur,
bis im Ereignistestgerät
fehlerfreie Entwurfsdaten erhalten werden.
-
Ein weiterer Gesichtspunkt der vorliegenden Erfindung
ist ein Gerät
zum Validieren des Entwurfs einer komplexen integrierten Schaltung.
Das Gerät zur
Validierung eines Entwurfs wird durch verschiedene Mittel zum Durchführen der
oben beschriebenen Verfahren zur Validierung von Entwürfen aufgebaut,
welche eine Kombination aus dem Ereignistestgerät und der FPGA oder eine Kombination
aus dem Ereignistestgerät
und der Emulatorplatine zur Anwendung von Prüfmustern und Antwortevaluierung mit
hoher Geschwindigkeit und gleichfalls zur Behebung von Entwurfsfehlern
und zur Fehlerkorrektur verwendet.
-
Erfindungsgemäß wird anstelle der Verwendung
der langsamen EDA-Simulationswerkzeuge vom
Ereignistestgerät
und der gestreckten Programmierung von FPGAs Gebrauch gemacht, um
den Entwurf zu validieren. Weil keine Simulation auf dem Niveau
eines vollständigen
Chips verwendet wird und die Anwendungssoftware schneller auf der FPGA
läuft (im
Vergleich zur Simulation), kann eine umfassende Validierung vorgenommen
werden, was mit der heutigen Technologie nicht möglich ist.
-
Wegen der Beseitigung der langsamen
Simulation aus dem Ablauf der Entwurfsvalidierung kann eine umfassende
Validierung des Entwurfs vorgenommen werden, bevor der Entwurf zur
Herstellung freigegeben wird, und weil eine umfassende Validierung
des Entwurfes möglich
wird, wird die Notwendigkeit eines Prototyps vor der Massenproduktion
beseitigt. Das Validierungsverfahren der vorliegenden Erfindung
ist sehr effizient, weniger kostspielig und unterscheidet sich fundamental
von jedem bisher beschriebenen System.
-
1 ist
ein Diagramm, das eine Beziehung zwischen der Simulationsgeschwindigkeit
und verschiedenen Abstraktionsniveaus zeigt, die mit dem Entwurfsprozess
für komplexe
integrierte Schaltungen verknüpft
sind.
-
2 ist
ein schematisches Diagramm, das ein Beispiel eines Prozesses bei
der Validierung eines Entwurfes mit der herkömmlichen Technologie zeigt.
-
3 ist
ein schematisches Diagramm, das ein Beispiel eines Verfahrens der
Validierung eines Entwurfes zeigt, das ein innerbetriebliches Wissen des
Zessionars und Gegenstand der US-Patentanmeldung Nr. 09/941,396
ist.
-
4 ist
ein Blockdiagramm, das einen Grundaufbau des Geräts und des Verfahrens zur Entwurfsvalidierung
der vorliegenden Erfindung ist, die gestreckt programmierte FPGAs
in Kombination mit einem Ereignistestgerät verwenden.
-
5 ist
ein schematisches Diagramm, das ein Beispiel eines FPGA-Aufbaus
bei der vorliegenden Erfindung zeigt, die eine Parallel- und eine
Kaskadenanordnung vereinigt.
-
6 ist
ein Blockdiagramm, die einen Grundaufbau des Geräts und des Verfahrens zur Entwurfsvalidierung
der vorliegenden Erfindung zeigt, die eine Emulatorplatine in Kombination
mit einem Ereignistestgerät
verwenden.
-
Die 7A und 7B sind schematische Diagramme
zum Vergleichen des Verfahrens von 3 mit
dem der vorliegenden Erfindung.
-
Bei den früheren Anmeldungen, die sich
im Besitz des selben Zessionars dieser Erfindung befinden, wird
in den US-Patentanmeldungen Nr. 09/406,300, 09/340,371 und 09/286,226
ein ereignisbasiertes Testsystem beschrieben. Hier werden alle diese
Patentanmeldungen durch Bezugnahme übernommen. In der vorliegenden
Erfindung ändern
ein neues Verfahren und eine neue Vorrichtung das Entwurfsparadigma
durch Überwindung
der der herkömmlichen
Technologie eigenen Beschränkungen.
-
Wie es im Fachgebiet bekannt ist,
weisen Prüfgeräte für integrierte
Schaltungen eine Prüfrate von
größer als
beispielsweise 100 MHz bis zu 1 GHz auf, was wesentlich schneller
ist, als jeder bestehende Logiksimulator. Wie es im voranstehenden
beschrieben wurde, sind die in den 2 und 3 gezeigten herkömmlichen
Technologien nicht in der Lage, die Hochgeschwindigkeitsprüfrate eines
Testgeräts für integrierte
Schaltungen auszunutzen, weil das Verfahren zur Validierung den
Logiksimulator einschließt.
Die vorliegenden Erfindung verbessert die Produktivität der Designer
durch Beschleunigung der Entwurfsprozedur an sich, durch Beseitigen
der langsamen Simulation aus dem Ablauf der Entwurfsvalidierung.
-
Diese Erfindung bietet zwei Hauptvorteile: (1)
Wegen der Beseitigung der langsamen Simulation aus dem Ablauf der
Entwurfsvalidierung kann eine umfassende Validierung eines Entwurfes
vorgenommen werden, bevor der Entwurf zur Herstellung freigegeben
wird; (2) Weil eine umfassende Validierung eines Entwurfes möglich wird,
wird die Notwendigkeit eines Prototypen vor der Massenproduktion
eliminiert. Das Verfahren zur Validierung ist bei der vorliegenden
Erfindung sehr effizient, weniger kostspielig und unterscheidet
sich fundamental von jedem vorher beschriebenen System.
-
Anstelle der Verwendung von langsamen EDA-Simulationswerkzeugen
verwendet die vorliegende Erfindung ein ereignisbasiertes Testsystem (Ereignistestgerät) und eine
gestreckte Programmierung von FPGAs, um den Entwurf zu validieren.
Das grundlegende ereignisbasierte System wurde in den US-Patenten
Nr. 09/406,300 und 09/340,371 beschrieben. Über einen Steuerbus im Ereignistestgerät können FPGAs
auf dem Ereignistestgerät
selbst programmiert werden (gestreckte Programmierung). Auf diese
Weise können
ein oder mehrere FPGAs auf dem Ereignistestgerät verwendet werden, um die Netzliste
(typischerweise eine Beschreibung auf dem Niveau von Logikgattern)
eines komplexen Chips zu implementieren.
-
Da diese FPGAs den tatsächlichen
Entwurf ausführen,
kann die Softwareanwendung über
das Ereignistestgerät
laufen gelassen werden, um den Entwurf zu validieren. Während des
Laufens der Softwareanwendung wird jeder Fehler vom Ereignistestgerät ermittelt
und direkt auf dem Ereignistestgerät diagnostiziert. Da die FPGA
gestreckt programmiert werden kann, kann die Ursache des Fehlers
in der Entwurfsnetzliste korrigiert werden. Das erlaubt es, echte
Softwareanwendungen ausgedehnte Zeitspannen laufen zu lassen, und
läßt auf diese
Weise eine umfassende Validierung zu.
-
Das Verfahren wird in 4 veranschaulicht. Bei diesem
Beispiel ist ein Ereignistestgerät 92 über einen
Steuerbus mit einer FPGA-Platine (Field Programmable Gate Array
= feldprogrammierbare Gatteranordnung) verbunden. Ähnlich wie
beim in 2 und 3 gezeigten Beispiel werden
unter der EDA-Umgebung
die ursprünglichen
Entwurfsdaten 85 einer komplexen integrierten Schaltung
durch die Entwurfsschritte 81 bis 83 erzeugt.
Eine Prüfbank 87 wird ebenfalls
erzeugt, die typischerweise eine Verilog-/NHDL-Prüfbank ist.
Eine Anwendungssoftware 88 für die integrierte Schaltung
kann ebenfalls in diesem Schritt fertiggestellt werden. Auf der
Grundlage der Prüfbankdaten 87 und
der Anwendungssoftware 88 wird über einen Prozess 89 zum
Extrahieren von Ereignissen eine Ereignisdatei 91 erzeugt.
-
Wie es im Fachgebiet bekannt ist,
weisen FPGAs darin Speicher zum Aufbauen einer beabsichtigten Schaltung
auf. Entsprechend kann durch Aufzeichnen geeigneter Daten in den
Speichern (Programmieren) der FPGAs sogar eine groß bemessene
integrierte Schaltung in den FPGAs erzeugt werden. Bei der vorliegenden
Erfindung liefert das Ereignistestgerät 92 die Konfigurationsdaten über den
Steuerbus an die FPGAs, um die FPGAs zu programmieren (gestreckte
Programmierung). Typischerweise werden solche Konfigurationsdaten durch Übersetzen
der Ereignisse 91 auf der Grundlage von für die FPGAs
eindeutigen Regeln erzeugt und in einer gestreckten Programmierung 93 installiert.
-
Nach der Gestaltung der beabsichtigten
integrierten Schaltung in der FPGA-Platine 94 wendet das
Ereignistestgerät über eine
Prüfhalterung
(wie etwa Pogo-Stifte) Prüfmuster
(Testvektoren) an. Jeder Fehler während der Prüfanwendung
wird durch das Ereignistestgerät
ermittelt und direkt auf dem Ereignistestgerät diagnostiziert. Indem die
FPGA gestreckt programmiert werden kann, kann die Ursache eines
Fehlers in der Entwurfsnetzliste korrigiert werden. Wie es in den
oben angegebenen Patentanmeldungen offenbart ist, ist das Ereignistestgerät in der Lage,
die Ereignisse (Prüfmuster)
in der Taktung, in den Attributen und in der Wiederholungsrate (Ereignisskalierung)
zu ändern,
und es kann ein umfassender Test am Entwurf durchgeführt werden.
Desweiteren erlaubt die Kombination des Ereignistestgeräts mit der
FPGA Operationen mit hoher Geschwindigkeit, bei hoher Geschwindigkeit
sind Softwareanwendungen für
ausgedehnte Zeitspannen möglich,
demgemäß wird eine
umfassende Validierung erreicht. Nachdem alle Fehler ermittelt wurden
und der Entwurf korrigiert wurde, wird der endgültige Entwurf 97 festgelegt,
der für
eine Stufe der Massenproduktion 98 verwendet wird.
-
Bei der Ausführung dieser Erfindung ist
die FPGA-Platine 94 auf der Prüfhalterung montiert und es
werden verschiedene Signale, die mit der Prüfhalterung verbunden sind,
zur Steuerung der FPGAs verwendet. Diese Signale liefern eine Vielfalt
von Funktionen. Die gestreckte FPGA-Programmierung wird auch durch
diese Signale erzielt. Beispiele solcher Signale schließen folgendes
ein:
- (1) Einen Steuerbus mit 32 Bit und ein
Steuerwort mit 32 Bit. Diese Signale werden jetzt als offener Kollektor
an der Testgerätsteuerung
ausgeführt. Diese
Signale können
auch als bi-direktionale Signale ausgeführt werden.
- (2) Analoge I/O-Signale mit 64 Bit. Sowohl das Steuerwort mit
32 Bit als auch die Signale mit 64 Bit weisen eine Auswahlschnittstelle
auf und jedes einzelne Bit kann separat gesteuert werden.
- (3) Stromanschlüsse:
Bei der vorliegenden Ausführung
sind 16 DUT-Stromanschlüsse (device under
test = Prüfling)
vorhanden, +5 V, +15 V, –5 V, –15 V. Jede
DUT-Stromversorgung beträgt
8V bei 2A. Diese Stromversorgungen besitzen parallele Anschlüsse ebenso
wie potentialfreie Anschlüsse
für Anwendungen
im höheren
Spannungsbereich.
-
Die gestreckte Programmierung von
FPGAs kann durch Verwendung entweder einer parallelen Schnittstelle
oder einer seriellen Schnittstelle vorgenommen werden. Mit einer
seriellen Schnittstelle können
viele Bauteile in einer kaskadenartigen Weise verbunden werden.
Bei diesem Verfahren werden nur zwei Steuersignale verwendet, um
alle FPGAs im System zu programmieren. Eine andere Möglichkeit besteht
darin, den Bus zu verwenden und mehrere FPGAs parallel zu konfigurieren.
Für die
parallele Konfiguration erfordert jedes Bauteil seine eigene Taktung
und seine eigenen Daten. Mit beiden Bussen ist eine Gesamtzahl von
96 Steuerbits erhältlich;
folglich können
bis zu 48 FPGAs parallel programmiert werden (eine Takt- und eine
Datenleitung für
jede FPGA).
-
Eine dritte Möglichkeit besteht in einer
Kombination aus paralleler und kaskadenartiger Verbindung; das ist
die allgemeinste Methode und in 5 veranschaulicht.
Bei dem Beispiel von 5 enthält die FPGA-Platine 94 in
Serie und parallel verbundene FPGAs 941 bis 946 . Das Ereignistestgerät 92 liefert
die Daten und Taktung in einer parallelen Weise zur gestreckten
Programmierung an die FPGAs 94 (Aufbau der beabsichtigten
integrierten Schaltung in den FPGAs). Die sich ergebende integrierte
Schaltung beinhaltet eine Schnittstelle 95, die zur Kommunikation
mit Steckkarten des Ereignistestgeräts über die Prüfhalterung zur Ausführung des
Tests verwendet wird.
-
Wie beim voranstehenden, verwendet
die vorliegende Erfindung anstelle der langsamen EDA-Simulationswerkzeuge
das Ereignistestgerät und
die gestreckte Programmierung von FPGAs, um den Entwurf zu validieren.
Weil keine Simulation auf dem Niveau eines vollständigen Chips
verwendet wird und eine Anwendungssoftware wesentlich schneller
auf der FPGA läuft
(im Vergleich zur Simulation), kann eine umfassende Validierung
vorgenommen werden, die mit der heutigen Technologie nicht möglich ist.
-
6 zeigt
ein anderes Ausführungsbeispiel der
vorliegenden Erfindung, das eine Emulatorplatine anstelle der gestreckten
Programmierung von FPGAs verwendet. In diesem Fall ist der Steuerbus
des Ereignistestgeräts
(das Steuerwort mit 32 Bit und die analogen Signale mit 64 Bit,
wie oben angegebenen) dem Bus der Emulatorschnittstelle zugeordnet
(die Emulatorschnittstelle ist im Allgemeinen entweder 32 Bit oder
64 Bit; demgemäß werden
durch den Steuerbus nur 32 Bit oder 64 Bit von möglichen 96 Bit verwendet).
Die Emulatoranbieter, wie etwa Ikos Systems, haben Emulationsschnittstellen
allgemein zugänglich
gemacht, so dass Emulationssyteme mit jedem anderen System verbunden
werden können.
-
Wegen der allgemein zugänglichen
Schnittstelle zum Emulationssystem kann die gestreckte Programmierung
von FPGAs durch Verwendung einer Emulatorplatine vermieden werden,
wie es in 6 gezeigt
ist. Weil nur eine Emulatorplatine verwendet wird (nicht ein gesamtes
Emulationssystem), sind die Kosten wesentlich geringer als das Emulationssystem,
wenn auch die Kosten geringfügig
höher sind
als die FPGA-Ausführung.
Außerdem
ist die Geschwindigkeit der Validierung, da der Entwurf auf der Emulationsplatine
geladen und die Anwendungssoftware laufen gelassen wird, während Entwurfsfehler auf
dem Ereignistestgerät
behoben werden, auf die Geschwindigkeit des Kommunikationsbusses
beschränkt,
die gering ist.
-
Genauer gesagt wird in 6 eine Emulatorplatine 104 über einen
Emulatorschnittstellenbus mit dem Ereignistestgerät 92 verbunden.
Die Emulatorplatine 104 empfängt über eine Emulatorschnittstellenplatine 101 Daten,
wie etwa eine Prüfbank
und eine Anwendungssoftware. Die Emulatorplatine 104 wird
ferner durch den Ladeschritt 102 mit Entwurfsdaten beladen.
Auf diese Weise emuliert die Emulatorplatine 104 den Entwurf
der integrierten Schaltung.
-
Durch Laufen der Prüfbank auf
der Emulatorplatine werden in einer Ereignisdatei 105 Ereignisdaten
erzeugt. Das Ereignistestgerät 92 verwendet
diese Ereignisdaten in der Ereignisdatei 105, um den Entwurf
auf der Emulatorplatine 104 durch den Bus der Emulatorschnittstelle
zu testen und die Antwortausgaben der Emulatorplatine 104 zu
evaluieren. Nachdem alle Fehler ermittelt wurden und der Entwurf
korrigiert wurde, wird der endgültige
Entwurf 107 festgelegt, der für eine Stufe 108 der
Massenproduktion verwendet wird.
-
Die 7A und 7B veranschaulichen die Nebeneinanderdarstellung
der vorliegenden Erfindung und das Verfahren von 3 (nicht Stand der Technik). In beiden 7A und 7B wird durch eine Phase des Entwurfs
einer integrierten Schaltung 101 eine Entwurfsdatei 102 und
eine Prüfbank 103 erzeugt. Dann
führt der
Prozess bei dem Verfahren von 7A die
Logiksimulation 105 unter Verwendung der Entwurfsdatei 102 und
der Prüfbank 103 durch. Wie
es im Fachgebiet bekannt ist, ist die Logiksimulation, die durch
einen Softwareprozess aufgebaut wird, sehr langsam im Vergleich
zur Operationsgeschwindigkeit der beabsichtigten integrierten Schaltung.
Bei dem Verfahren von 7A wird
auf Grundlage der Entwurfsdaten ein Siliziumprototyp 111 gefertigt,
der vom Ereignistestgerät 110 getestet
wird.
-
Der Logiksimulator 105 produziert
Eingangs-/Ausgangssignaldaten, d. h. eine VCD-Datei 107 (Voltage Change Dump
= Auszug aus dem Spannungsänderungsspeicher)
aus der durch Extrahieren der Ereignisdaten eine Ereignisdatei 108 erzeugt
wird. Das Ereignistestgerät 110 produziert Testvektoren
und wendet die Testvektoren auf den Siliziumprototypen 111 an.
Auf diese Weise wird in einer Phase 112 zur Fehlerbehebung
und Validierung der Entwurfsfehler ermittelt und in der Phase 106 werden
die Entwurfsfehler festgehalten, die zur Entwurfsstufe zurückgegeben
werden.
-
Bei der vorliegenden Erfindung, die
in 7B gezeigt ist, beinhaltet
ein Testsystem 115 eine Kombination aus einem Ereignistestgerät 120 und
den FPGAs 124. Die Entwurfsdaten 102 werden verwendet,
um die FPGAs zu programmieren, um die beabsichtigte integrierte
Schaltung aufzubauen. Unter Verwendung der Prüfbank 103 werden Ereignisdaten 116 produziert
und das Ereignistestgerät 120 erzeugt
die Testvektoren, die von den Ereignisdaten 116 produziert
werden. Da die FPGAs 124 die Funktionen der beabsichtigten
integrierten Schaltung mit einer Geschwindigkeit ausführt, die
nahe der der tatsächlichen
integrierten Schaltung ist, kann beim Testverfahren der vorliegenden
Erfindung mit dieser Geschwindigkeit ein Test mit Anwendungssoftware durchgeführt werden.
-
Wie es klar in der 7A und 7B gezeigt
ist, beseitigt das neue Verfahren den Logiksimulator 105 aus
dem Ablauf der Entwurfsvalidierung. Infolge der geringen Geschwindigkeit
ist die Logiksimulation ein Flaschenhals bei der heutigen Entwurfsvalidierung; die
Beseitigung der Simulation erlaubt eine sehr umfassende Validierung
während
dennoch weniger Zeit gebraucht wird. Das neue Verfahren erlaubt
es, alle Entwurfsfehler auf dem Ereignistestgerät 120 zu beheben,
ohne den ASIC-Prototypen zu erfordern. Die Prozedur ist extrem kosteneffektiv
und schneller im Vergleich mit bestehenden Verfahren.
-
Wie vorher beschrieben wurde, wird
anstelle der Verwendung der langsamen EDA-Simulationswerkzeuge vom Ereignistestgerät und der
gestreckten Programmierung von FPGAs Gebrauch gemacht, um den Entwurf
zu validieren. Weil keine Simulation auf dem Niveau eines vollständigen Chips
verwendet wird und die Anwendungssoftware schneller auf der FPGA
läuft (im
Vergleich zur Simulation), kann eine umfassende Validierung vorgenommen
werden, was mit der heutigen Technologie nicht möglich ist.
-
Wegen der Beseitigung der langsamen
Simulation aus dem Ablauf der Entwurfsvalidierung kann eine umfassende
Validierung des Entwurfs vorgenommen werden, bevor der Entwurf zur
Herstellung freigegeben wird, und weil eine umfassende Validierung
des Entwurfes möglich
wird, wird die Notwendigkeit eines Prototyps vor der Massenproduktion
beseitigt. Das Validierungsverfahren der vorliegenden Erfindung
ist sehr effizient, weniger kostspielig und unterscheidet sich fundamental
von jedem bisher beschriebenen System.
-
Obwohl hierin nur ein bevorzugtes
Ausführungsbeispiel
speziell veranschaulicht und beschrieben wurde, wird man einsehen,
dass im Lichte der obigen Lehren und innerhalb des Geltungsbereichs der
beigefügten
Ansprüche
viele Modifikationen und Variationen der vorliegenden Erfindung
möglich
sind, ohne von der Wesensart und dem beabsichtigten Umfang der Erfindung
abzuweichen.
-
Zusammenfassung:
-
Verfahren und Gerät zur Validierung des Entwurfs
von komplexen integrierten Schaltungen unter Verwendung einer Kombination
eines Ereignistestgeräts
und einer feldprogrammierbaren Gatteranordnung (FPGA) oder einer
Emulatorplatine. Das Verfahren zur Entwurfsvalidierung beseitigt
die Logiksimulation, die in der heutigen Entwurfsvalidierung einen
Flaschenhals darstellt. Wegen der Beseitigung der langsamen Simulation
aus dem Ablauf der Entwurfsvalidierung kann eine umfassende Validierung des
Entwurfs vorgenommen werden, bevor der Entwurf zur Herstellung freigegeben
wird, und weil eine umfassende Validierung des Entwurfes möglich wird, wird
die Notwendigkeit eines Prototyps vor der Massenproduktion beseitigt.