-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft allgemein das Gebiet des Testens
integrierter Schaltungsvorrichtungen und insbesondere ein Verfahren
zum Testen des programmierbaren Verbindungsnetzwerks in feldprogrammierbaren
Gate-Arrays.
-
Hintergrund
der Erfindung
-
Ein
feldprogrammierbares Gate-Array (FPGA) ist ein Typ einer integrierten
Schaltung, die aus einem Array programmierbarer Logikblöcke, welche durch
ein programmierbares Routing- bzw. Leitweg-Netzwerk verbunden sind,
und programmierbaren Ein-/Ausgabezellen besteht. Das Programmieren der
Logikblöcke,
des Leitweg-Netzwerks und der Ein-/Ausgabezellen wird selektiv abgeschlossen,
um die erforderlichen Verbindungen zu bilden, die eine Konfiguration
zum Bereitstellen des gewünschten Systembetriebs
bzw. der gewünschten
Systemfunktion für
eine bestimmte Anwendung erzeugen.
-
Die
vorliegenden Erfinder haben vor kurzem Verfahren für einen
eingebauten Selbsttest des Arrays programmierbarer Logikblöcke und
des programmierbaren Leitweg-Netzwerks in FPGAs auf der Vorrichtungs-,
Platinen- und Systemebene entwickelt. Diese Verfahren sind detailliert
in
US-A-5 991 907 ,
US-A-6 003 150 ,
US-A-6 108 806 und
EP-A-1 063 529 dargelegt.
Ein ähnliches
Verfahren kann auch
EP-A-0
646 867 entnommen werden.
-
Bei
jedem dieser Verfahren aus dem Stand der Technik wird die Reprogrammierbarkeit
eines FPGAs ausgenutzt, so daß das
FPGA ausschließlich mit
der eingebauten Selbsttestlogik (BIST-Logik) während des Offline-Testens konfiguriert
wird und nachfolgend zu seiner Normalbetriebskonfiguration rekonfiguriert
wird. Auf diese Weise wird die Testbarkeit auf jeder Ebene ohne
Zusatzaufwand erreicht. Mit anderen Worten "verschwindet" die BIST-Logik einfach, wenn das FPGA
für seine
normalen Systemfunktionen rekonfiguriert wird.
-
Zusätzlich zu
diesen Offline-Testverfahren haben die vorliegenden Erfinder in
der letzten Zeit Verfahren zum Online-Testen und für einen
fehlertoleranten Betrieb der programmierbaren Logikblöcke von
FPGAs entwickelt. Diese Verfahren sind detailliert in
US-B-6 550 030 und
US-B-6 256 758 dargelegt.
-
Das
Online-Testen und der fehlertolerante Betrieb von FPGAs sind am
wichtigsten bei Anwendungen hoher Zuverlässigkeit und hoher Verfügbarkeit,
wie beispielsweise bei Weltraummissionen oder bei Telekommunikationsnetz-Routern,
bei denen adaptive Computersysteme häufig auf einer rekonfigurierbaren
Hardware beruhen, um den Systembetrieb anzupassen. Bei diesen Anwendungen
muß die
FPGA-Hardware kontinuierlich arbeiten und kann einfach nicht für Test-,
Wartungs- oder Reparaturvorgänge
offline geschaltet werden.
-
Wenn
Fehler in der FPGA-Hardware dieser Systeme erkannt und lokalisiert
werden, müssen
die FPGA-Betriebsmittel schnell rekonfiguriert werden, um den Betrieb
in einer verringerten Kapazität
fortzusetzen oder die identifizierten fehlerbehafteten Betriebsmittel
völlig
zu vermeiden. Das Testen der FPGA-Betriebsmittel muß daher
notwendigerweise gleichzeitig mit dem normalen Systembetrieb ausgeführt werden.
-
Zusammenfassung
der Erfindung
-
Gemäß der vorliegenden
Erfindung wird das Verfahren zum Testen feldprogrammierbarer Gate-Arrays
(FPGAs) während
des normalen Online-Betriebs des FPGAs ausgeführt, indem die FPGA-Betriebsmittel
in einen Arbeitsbereich und einen anfänglichen Selbsttestbereich
konfiguriert werden. Der Arbeitsbereich hält den Normalbetrieb des getesteten
FPGAs während
des Testens aufrecht. Innerhalb des anfänglichen Selbsttestbereichs
und des folgenden Selbsttestbereichs werden jedoch alle Betriebsmittel
des programmierbaren Routing- bzw. Leitweg-Netzwerks getestet. Vorteilhafterweise
bleibt der Arbeitsbereich durch das Testen im wesentlichen unbeeinflußt, und
die Testzeitbeschränkungen
sind verringert, weil der Normalbetrieb im Arbeitsbereich fortgesetzt
wird.
-
Innerhalb
der Selbsttestbereiche werden Testmuster erzeugt und entlang Gruppen
getesteter Drähte übertragen.
Die Ausgangsmuster der ersten Gruppe getesteter Drähte werden
vorzugsweise mit den Ausgangsmustern einer zweiten Gruppe getesteter
Drähte
innerhalb des die gleichen Muster empfangenden Selbsttestbereichs
verglichen. Dieses Verfahren ähnelt
den in den vorstehend erwähnten US-Patenten
US-B-6 550 030 und
US-B-6 256 758 detailliert
beschriebenen BIST-Techniken.
-
Zum
Erreichen eines vollständigen
Tests der programmier baren Leitweg-Betriebsmittel des getesteten
FPGAs enthalten die Gruppen getesteter Drähte Drahtsegmente verschiedener
Längen,
die durch Konfigurationsverbindungspunkte miteinander verbunden
sind. Es gibt zwei Grundtypen von Konfigurationsverbindungspunkten
einschließlich
Kreuzungspunkten und Unterbrechungspunkten, und jeder weist im allgemeinen
ein durch ein Konfigurationsspeicherbit gesteuertes Übertragungsgatter
auf.
-
Zusätzlich weisen
die Gruppen getesteter Drähte
vorzugsweise programmierbare Logikblöcke auf, die konfiguriert sind,
um es den sich ausbreitenden Testmustern zu ermöglichen, diese ungeändert zu
passieren. Mit anderen Worten sind die programmierbaren Logikblöcke als
Identitätsfunktionen
konfiguriert. Dies ermöglicht
vorteilhafterweise, daß sowohl
globale Routing- bzw. Leitweg-Betriebsmittel zwischen
programmierbaren Logikblöcken
als auch lokale Leitweg-Betriebsmittel, die zu jedem programmierbaren
Logikblock führen,
getestet werden.
-
Wie
vorstehend erwähnt
wurde, werden die Ausgangsmuster der Gruppen getesteter Drähte verglichen,
und es werden Testergebnisdaten auf der Grundlage des Vergleichsergebnisses
erzeugt. Es werden Testbestehens-Ergebnisdaten erzeugt, falls die
entsprechenden Testmuster übereinstimmen. Falls
eine Nichtübereinstimmung
auftritt, wird eine Testnichtbestehens-Ergebnisangabe oder Testnichtbestehens-Ergebnisdaten
erzeugt. Ein Testnichtbestehens-Ergebnis
oder eine Nichtübereinstimmung kann
durch einen Fehler in einem Drahtsegment, einem Konfigurationsverbindungspunkt
oder einem programmierbaren Logikblock der Gruppen getesteter Drähte in dem
Selbsttestbereich hervorgerufen werden.
-
Eine
Beschränkung
dieses Typs einer vergleichsbasierten Ansprechanalyse besteht in
der Möglichkeit
von äquivalenten
Fehlern in den Gruppen getesteter Drähte. Äquivalente Fehler entlang den
Gruppen getesteter Drähte
führen
zu fehlerhaften Testbestehensergebnissen, wenngleich Fehler existieren.
Um diese Beschränkung
zu überwinden, weist
das bevorzugte Verfahren gemäß der. vorliegenden
Erfindung weiter den Schritt des Vergleichens der Ausgabe der ersten
Gruppe getesteter Drähte
mit der Ausgabe der zweiten Gruppe getesteter Drähte und der Ausgabe einer dritten
Gruppe benachbarter getesteter Drähte auf. Durch diesen Typ bzw.
diese Art eines Mehrfachtestens wird die Möglichkeit eines Nichterkennens äquivalenter
Fehler im wesentlichen beseitigt.
-
Um
die Anzahl der Rekonfigurationen des getesteten FPGAs zu minimieren
und eine kurze Gesamttestzeit einzuhalten, kann ein paralleles Testen der
programmierbaren Leitweg-Betriebsmittel
verwendet werden. Insbesondere können
Vergleiche der Ausgabe- bzw. Ausgangsmuster der Gruppen getesteter
Drähte
an mehreren Stellen entlang den Gruppen getesteter Drähte vorgenommen
werden. Vorteilhafterweise kann ein Satz von Testmustern zum Testen
mehrerer verschiedener Drähtegruppen je
Konfiguration verwendet werden. Zusätzlich können die Testergebnisdaten
von mehreren verglichenen Gruppen getesteter Drähte unter Verwendung eines
iterativen Vergleichers kombiniert werden. Alternativ können die
Testergebnisdaten direkt einer Ein/Ausgabezelle des getesteten FPGAs
zugeführt werden.
Vorteilhafterweise liefert dieses letztgenannte Verfahren im Gegensatz
zu einer einzigen Bestehens/Nichtbestehens-Testergebnisangabe für den gesamten Test Informationen hinsichtlich
des Orts des Fehlers im getesteten FPGA.
-
Gemäß einem
wichtigen Aspekt der vorliegenden Erfindung kann der Selbsttestbereich
des getesteten FPGAs in einen vertikalen und einen horizontalen
Selbsttestbereich unterteilt werden. Vorzugsweise werden vertikale
Drahtsegmente unter Verwendung des vertikalen Selbsttestbereichs
getestet und horizontale Drahtsegmente unter Verwendung des horizontalen
Selbsttestbereichs getestet. Zum Ermöglichen eines Online-Testens
werden programmierbare Logikblöcke
in beiden Selbsttestbereichen, vertikale Drahtsegmente im vertikalen
Selbsttestbereich und horizontale Drahtsegmente im horizontalen
Selbsttestbereich während
des Betriebs des getesteten FPGAs alle als reserviert oder unverwendbar
festgelegt. Auf diese Weise können
Verbindungen zwischen programmierbaren Logikblöcken des Arbeitsbereichs unter
Verwendung horizontaler Drahtsegmente durch den vertikalen Selbsttestbereich
und vertikaler Drahtsegmente durch den horizontalen Selbsttestbereich
hergestellt werden.
-
Nach
Abschluß des
Testens der sich innerhalb des anfänglichen Selbsttestbereichs
befindenden programmierbaren Leitweg-Betriebsmittel wird das getestete
FPGA so rekonfiguriert, daß ein
Abschnitt des Arbeitsbereichs zu einem folgenden Selbsttestbereich
wird und der anfängliche
Selbsttestbereich zu einem Abschnitt des Arbeitsbereichs wird. Mit
anderen Worten läuft
der Selbsttestbereich um das getestete FPGA, wodurch die Schritte
des Rekonfigurierens und Testens der programmierbaren Leitweg-Betriebsmittel
in den Selbsttestbereichen wiederholt werden, bis jeder Abschnitt
des Arbeitsbereichs oder das ganze FPGA als ein folgender Selbsttestbereich
rekonfiguriert und getestet wurde. Wie vorstehend erwähnt wurde,
ermöglicht
das vor liegende Testverfahren das Fortsetzen des Normalbetriebs
des getesteten FPGAs innerhalb des Arbeitsbereichs während des
Testens, ununterbrochen von dem innerhalb der Selbsttestbereiche
ausgeführten
Testen.
-
Die
Schritte des Konfigurierens, Testens und Rekonfigurierens der Gruppen
getesteter Drähte
und der programmierbaren Logikblöcke
innerhalb der Selbsttestbereiche, des Speicherns der folgenden Fehlerstatusdaten
und des Routings bzw. Umlaufenlassens des Selbsttestbereichs um
das getestete FPGA für
das weitere Testen werden notwendigerweise durch eine Test- und
Rekonfigurationssteuereinrichtung und ein zugeordnetes Speichermedium gesteuert.
Beim Betrieb greift die Test- und Rekonfigurationssteuereinrichtung
während
des normalen Systembetriebs auf das getestete FPGA zu und konfiguriert
das FPGA mit einer von mehreren in dem zugeordneten Speichermedium
gespeicherten Testkonfigurationen. Wie vorstehend beschrieben wurde, bieten
innerhalb des Selbsttestbereichs erzeugte Testmuster ein umfassendes
Testen der Gruppen getesteter Drähte.
Die Testmuster werden entlang den Gruppen getesteter Drähte übertragen,
und die Ausgangsmuster werden verglichen.
-
Kurzbeschreibung
der Zeichnung
-
Die
anliegende Zeichnung, die zu dieser Beschreibung gehört und einen
Teil davon bildet, veranschaulicht mehrere Aspekte der vorliegenden
Erfindung und dient zusammen mit der Beschreibung dem Erklären der
Grundgedanken der Erfindung. Es zeigen:
-
1 ein
schematisches Blockdiagramm einer Vorrichtung zum Testen des programmierbaren Verbindungsnetzwerks
eines feldprogrammierbaren Gate-Arrays,
-
2 eine
Darstellung eines getesteten FPGAs, das in einen anfänglichen
Selbsttestbereich und einen Arbeitsbereich konfiguriert ist, wobei
der Arbeitsbereich den Normalbetrieb des getesteten FPGAs aufrechterhält,
-
3 ein
typisches Verdrahtungsschema, in dem die globalen und die lokalen
programmierbaren Leitweg-Betriebsmittel dargestellt sind, die einem einzigen
programmierbaren Logikblock zugeordnet sind,
-
4 ein
schematisches Blockdiagramm, in dem ein bevorzugter vergleichsbasierter
Selbsttestbereich dargestellt ist, der so konfiguriert ist, daß er einen
Testmustergenerator, einen Ausgangsansprechanalysator und zwei Gruppen
getesteter Drähte
aufweist,
-
5A eine
schematische Darstellung, in der ein typischer Konfigurationsverbindungspunkt
eines feldprogrammierbaren Gate-Arrays gezeigt ist,
-
5B eine
schematische Darstellung, in der ein typischer Kreuzungspunkt-Konfigurationsverbindungspunkt
eines feldprogrammierbaren Gate-Arrays gezeigt ist,
-
5C eine
schematische Darstellung eines typischen Unterbrechungspunkt-Konfigurationsverbindungspunkts
eines feldprogrammierbaren Gate-Arrays,
-
6 eine
schematische Darstellung eines typischen programmierbaren Logikblocks
eines feldprogrammierbaren Gate-Arrays,
-
7 ein
schematisches Blockdiagramm, in dem ein bevorzugter vergleichsbasierter
Selbsttestbereich dargestellt ist, der so konfiguriert ist, daß er einen
Testmustergenerator, zwei Gruppen getesteter Drähte und mehrere Ausgangsansprechanalysatoren
zum Ermöglichen
eines parallelen Testens aufweist,
-
8 eine
schematische Darstellung eines iterativen Vergleichers mit einer
Fehlersperre, der gemäß der vorliegenden
Erfindung zum Konfigurieren der Ergebnisse mehrerer Ausgangsansprechanalysatoren
verwendet wird,
-
9A ein
repräsentatives
Verdrahtungsschema, in dem eine Gruppe von vier individuellen Kreuzungspunkt-CIPs
am Schnittpunkt eines vertikalen 4-Bit-Busses mit einem horizontalen
4-Bit-Bus dargestellt ist,
-
9B ein
repräsentatives
Verdrahtungsschema, in dem eine flexible Matrix von Kreuzungspunkt-CIPs
am Schnittpunkt eines 5-Bit-Direktbusses mit einem 4-Bit-Bus dargestellt
ist,
-
10 eine
Darstellung des bevorzugten getesteten FPGAs, wobei der anfängliche
Selbsttestbereich in einen vertikalen Selbsttestbereich und einen
horizontalen Selbsttestbereich unterteilt ist, und
-
11 ein
Verdrahtungsschema, in dem das bevorzugte Verfahren zum Testen von
Kreuzungspunkt-CIPs unter Verwendung von FPGA-Betriebsmitteln sowohl
innerhalb eines vertikalen Selbsttestbereichs als auch eines horizontalen Selbsttestbereichs
dargestellt ist.
-
Es
wird nun detailliert auf die gegenwärtig bevorzugte Ausführungsform
der Erfindung Bezug genommen, von der ein Beispiel in der anliegenden Zeichnung
dargestellt ist.
-
Detaillierte
Beschreibung der Erfindung
-
Ein
typisches feldprogrammierbares Gate-Array (FPGA) besteht im allgemeinen
aus einem Array programmierbarer Logikblöcke, die durch ein programmierbares
Leitweg-Netzwerk
verbunden sind, und programmierbaren Ein-/Ausgabezellen oder Boundary-Scan-Ports
(die meisten FPGAs weisen einen Boundary-Scan-Mechanismus auf).
Diese Strukturen sind beispielsweise in den programmierbaren Funktionseinheiten
ORCA® von
Lucent, im konfigurierbaren Logikblock Xilinx® XC4000
und im Logikelement ALTERA® FLEX 8000 enthalten.
Gemäß dem Verfahren
der vorliegenden Erfindung werden die Betriebsmittel des programmierbaren
Leitweg-Netzwerks des getesteten FPGAs während des Normalbetriebs vollständig getestet,
indem das FPGA in einen Arbeitsbereich und einen Selbsttestbereich
konfiguriert wird. Vorteilhafterweise wird der Arbeitsbereich durch
das innerhalb des Selbsttestbereichs ausgeführte Testen im wesentlichen
nicht beeinflußt.
-
Wie
im schematischen Blockdiagramm in 1 dargestellt
ist, werden die Schritte des Konfigurierens, Testens, Leitens und
Rekonfigurierens der Betriebsmittel eines getesteten FPGAs 10 notwendigerweise
durch eine Test- und Rekonfigurationssteuereinrichtung 12 gesteuert.
Gemäß der bevorzugten Ausführungsform
wird eine externe Test- und Rekonfigurationssteuereinrichtung 12 verwendet,
weil gegen wärtige
im Handel erhältliche
FPGAs keinen internen Zugriff auf ihren Konfigurationsspeicher ermöglichen.
Dementsprechend wird ein Konfigurationsdekompilierwerkzeug eines
auf dem Fachgebiet bekannten Typs verwendet, um die vorgesehene Funktion
oder den vorgesehenen Betriebsmodus der FPGA-Betriebsmittel zu bestimmen.
Alternativ können
diese Informationen der Entwurfsstufe entnommen und der Steuereinrichtung 12 verfügbar gemacht
werden. Fachleute sollten verstehen, daß jede Steuereinrichtung, die
beispielsweise innerhalb oder außerhalb des FPGAs liegt, mit
einem FPGA verwendet werden könnte,
der einen internen Zugriff auf seinen Konfigurationsspeicher ermöglicht,
und daß eine einzige
Test- und Rekonfigurationssteuereinrichtung in der Lage ist, mehrere
FPGAs zu steuern. Zum Erläutern
der gegenwärtig
bevorzugten Ausführungsform
der Erfindung wird jedoch ein Eins-Eins-Verhältnis zwischen der Steuereinrichtung
und dem FPGA verwendet.
-
Die
bevorzugte Steuereinrichtung 12 kann auf einem eingebetteten
Mikroprozessor implementiert werden, der mit einem Speichermedium
oder Speicher 14 in Verbindung steht, um die Konfigurationen
und Testdaten zu speichern. Beim Betrieb greift die Steuereinrichtung 12 über ihre
Boundary-Scan-Ports
in einer bekannten Weise auf die Systemplattform unter Einschluß des getesteten
FPGAs 10 zu, so daß der
Zugriff für
die normale Funktion des FPGAs 10 transparent ist. Dieses
Verfahren bietet den Vorteil, daß es ein vollständiges Online-Testen während des
Normalbetriebs des getesteten FPGAs 10 ermöglicht.
Die Steuereinrichtung 12 und der Speicher 14 tauschen
weiter Fehlerstatusdaten für die
programmierbaren Leitweg-Betriebsmittel aus und speichern diese.
-
Gemäß dem vorliegenden
erfindungsgemäßen Verfahren
wird das getestete FPGA 10 durch die Steuereinrichtung 12 zunächst in
einen anfänglichen Selbsttestbereich 16 und
einen Arbeitsbereich 18 konfiguriert, wie in 2 dargestellt
ist. Der Arbeitsbereich 18 hält den Normalbetrieb des getesteten FPGAs 10 während des
Testens aufrecht. Innerhalb des anfänglichen Selbsttestbereichs 16 werden
die Betriebsmittel des programmierbaren Leitweg-Netzwerks umfassend
getestet. Die programmierbaren Leitweg-Betriebsmittel umfassen sowohl
globale Leitweg-Betriebsmittel für
das Übertragen
von Signalen zwischen dem Array programmierbarer Logikblöcke (PLBs)
als auch lokale Leitweg-Betriebsmittel zum Übertragen von Signalen in die
PLBs und aus diesen heraus. Beispielsweise sind die einem einzigen
PLB zugeordneten typischen globalen und lokalen Leitweg-Betriebsmittel
in 3 dargestellt und werden nachstehend in weiteren
Einzelheiten erörtert.
-
Wie
in 4 dargestellt ist, ist eine erste Gruppe von PLBs
innerhalb des anfänglichen
Selbsttestbereichs 16 so konfiguriert, daß sie einen
Testmustergenerator (TPG) 20 und einen Ausgangsansprechanalysator
(ORA) 22 aufweist, und ein Teil der programmierbaren Leitweg-Betriebsmittel
ist so konfiguriert, daß er
wenigstens zwei Gruppen getesteter Drähte (WUTs, engl. "wires unter test") 24, 26 aufweist.
Die erste Gruppe von WUTs 24 kann Drahtsegmente 27, 28, 29, 30, 31 und 32 aufweisen,
die konfigurierbar sind, oder sie kann Konfigurationsverbindungspunkte
(CIPs) 33, 34 und 35 sowie PLBs 36, 37 aufweisen.
In ähnlicher
Weise kann eine zweite Gruppe von WUTs 26 Drahtsegmente 38, 39, 40, 41 und 42 sowie
CIPs 43, 44 und 45 aufweisen. Während des
Testens werden unter Verwendung des TPGs 20 erzeugte umfassende
Testmuster entlang den Gruppen getesteter Drähte 24, 26 übertragen. Die
Ausgaben der Gruppen von WUTs 24, 26 werden durch
den ORA 22 verglichen, um festzustellen, ob innerhalb einer
der Gruppen von WUTs 24, 26 ein Fehler existiert.
Ein Übereinstimmungs-/Nichtübereinstimmungsergebnis
des vom ORA 22 vorgenommenen Vergleichs wird als ein Bestehens-/Nicht-Bestehens-Testergebnis
oder Fehlerstatusdaten über die
Boundary-Scan-Ports des FPGAs (nicht dargestellt) zur Steuereinrichtung 12 übertragen,
um im Speicher 14 gespeichert zu werden. Der Betrieb des TPGs 20 und
des ORAs 22 beim Testen der WUT-Gruppen 24, 26 ähnelt den
eingebauten Selbsttesttechniken, die in den vorstehend erwähnten anhängigen US-Patentanmeldungen
verwendet werden und detailliert beschrieben sind.
-
Der
vom TPG 20 erzeugte umfassende Satz von Testmustern muß geeignet
sein, um alle Kurzschlüsse
in den WUTs 24, 26 und alle Offen-Festhängend-Fehler
für die
geschlossenen CIPs (beispielsweise 33, 34, 35, 43, 44 und 45)
entlang den WUTs zu erkennen. Zusätzlich müssen die offenen CIPs (beispielsweise 47, 48, 49, 50 und 51),
welche die WUTs 24, 26 vom Rest der programmierbaren
Leitweg-Betriebsmittel isolieren, auf Offen-Festhängend-Fehler
getestet werden. Zum Erreichen dieses Ergebnisses sollte der TPG 20 auch
jedes Drahtsegment (beispielsweise 52, 53, 54 und 55)
steuern, das mit einem getesteten Drahtsegment 24, 26 kurzgeschlossen
werden könnte.
Wenn der TPG 20 beispielsweise ein 0(1)-Testmuster entlang
den WUTs 24, 26 treibt, sollte ein entgegengesetztes
Testmuster oder ein 1(0)-Testmuster entlang den Drahtsegmenten 52, 53, 54 und 55 wenigstens
einmal während
des Tests übertragen
werden. Eine detailliertere Erörterung
des beim Ausführen
des Verfahrens gemäß der vorliegenden
Erfindung verwendeten Fehlermodells wird nachstehend bereitgestellt.
-
Um
das vorliegende erfindungsgemäße Verfahren
vollständig
verstehen zu können,
ist eine detaillierte Beschreibung der in der bevorzugten Testarchitektur
verwendeten Komponenten erforderlich. Wie am besten in 5A dargestellt
ist, weist ein typischer CIP 56 oder Schalter ein Übertragungsgatter bzw.
-gate 57 auf, das durch ein Konfigurationsspeicherelement
oder -bit 58 gesteuert wird. Es gibt zwei Grundtypen von
CIPs einschließlich
Kreuzungspunkt-CIPs 60 (in den Figuren der Zeichnung durch ein
kreisförmiges
Symbol dargestellt) zum Verbinden von Drahtsegmenten, die sich in
getrennten Ebenen befinden (siehe beispielsweise die Bezugszahlen 61 und 62 in 5B)
und Unterbrechungspunkt-CIPs 63 (in den Figuren der Zeichnung
durch ein diamantförmiges
Symbol dargestellt) zum Verbinden von Drahtsegmenten in derselben
Ebene (siehe beispielsweise die Bezugszahlen 64 und 65 in 5C).
-
Wie
in 6 dargestellt ist, weist ein typischer PLB 66 einen
Speicherblock 67, einen Flipflop-Block 68 und
einen kombinatorischen Ausgangslogikblock 69 auf. Der Speicherblock 67 kann so
konfiguriert werden, daß er
als ein Direktzugriffsspeicher (RAM) oder eine Kombinations-Nachschlagetabelle
(LUT) arbeitet. Zusätzlich
kann die Kombinationslogik innerhalb des Speicherblocks 67 konfiguriert
werden, um als spezielle Kombinationsoperatoren in der Art eines
Vergleichers, eines Addierers oder eines Multiplizierers zu arbeiten.
In ähnlicher Weise
können
die Flipflops im Flipflop-Block 68 als Flipflops arbeiten,
oder sie können
so konfiguriert werden, daß sie
als Latch-Stufen arbeiten. Wiederum könnten andere Programmieroptionen,
die ein synchrones und asynchrones Setzen und Rücksetzen, eine Taktfreigabe
usw. behandeln, in Zusammenhang mit einem Betrieb als Flipflops
oder als Latch-Stufen bereitgestellt werden.
-
Der
kombinatorische Ausgangslogikblock 69 enthält andererseits
typischerweise einen Multiplexer, um verschiedene Drahtsegmente
mit dem Ausgang des PLBs 66 zu verbinden. Diese Zelle weist gewöhnlich keine
Rückkopplungsschleifen
auf, und der Flipflop-Block 68 kann durch Umgehen des Speicherblocks 67 (in 6 in
unterbrochenen Linien dargestellt) direkt angesteuert werden. Vorteilhafterweise
sind die Eingänge
und Ausgänge
jedes Moduls oder Blocks bei diesem Typ mit einer einfachen Struktur
leicht zu steuern und zu beobachten, wodurch ein nahezu unabhängiges Testen
der Blöcke erleichtert
wird.
-
Wie
vorstehend erwähnt
wurde, weist die bevorzugte Testarchitektur typischerweise eine
zweite Gruppe von PLBs innerhalb des Selbsttestbereichs 16 auf.
Insbesondere sind, wie in 4 weiter
dargestellt ist, die Drahtsegmente der WUTs 24, 26 mit
den Eingängen 28, 30 bzw.
den Ausgängen 29, 31 der PLBs 36, 37 der
zweiten Gruppe von PLBs verbunden. Die zweite Gruppe von PLBs ist
als Identitätsfunktionen
konfiguriert, um die Testmuster vom Eingang zum Ausgang weiterzuleiten.
Dies ermöglicht das
vorteilhafte Testen der lokalen sowie der globalen Leitweg-Betriebsmittel.
-
Anders
als signaturbasierte Kompressionsschaltungen, die in den meisten
Testanwendungen aus dem Stand der Technik verwendet werden, leiden
vergleichsbasierte ORAs nicht an den Aliasing-Problemen, die auftreten,
wenn einige fehlerhafte Schaltungen oder Leitweg-Betriebsmittel
eine gute Schaltungssignatur erzeugen. Im wesentlichen tritt beim vorliegenden
vergleichsbasierten Ansatz kein Aliasing auf, solange die vom gleichen
ORA verglichenen WUTs nicht in derselben Weise zur gleichen Zeit
ausfallen. Natürlich
ist es sehr unwahrscheinlich, daß ein solcher Fall auftritt.
-
Weiterhin
werden gemäß einem
wichtigen Aspekt der vorliegenden Erfindung potentielle Probleme,
die dadurch hervorgerufen werden, daß äquivalente Fehler in den WUTs
verglichen werden, vermieden, indem die Testmuster, die entlang
der ersten Gruppe von WUTs übertragen
werden, mit den Testmustern verglichen werden, die entlang zwei
verschiedenen benachbarten Gruppen von WUTs übertragen werden. Insbesondere
werden die Testmuster, die entlang der ersten Gruppe von WUTs übertragen werden,
zuerst mit den Testmustern, die entlang der zweiten Gruppe von WUTs übertragen
werden, und nachfolgend mit den Testmustern, die entlang einer dritten
benachbarten Gruppe von WUTs übertragen werden,
verglichen. Vorteilhafterweise beseitigt diese Sekundärprüfung im
wesentlichen das mögliche
Problem äquivalenter
Fehler innerhalb zweier WUT-Gruppen.
-
Um
die Anzahl der Rekonfigurationen zu minimieren, die während des
Testens erforderlich sind, und daher die Gesamttestzeit zu minimieren,
kann ein paralleles Testen der programmierbaren Leitweg-Betriebsmittel
verwendet werden. Insbesondere können,
wie in 7 dargestellt ist, Vergleiche von Ausgangsmustern
der WUT-Gruppen 24, 26 an mehreren Orten entlang
den WUT-Gruppen vorgenommen werden, bei denen mehr als ein ORA 22 verwendet
wird. Vorteilhafterweise kann ein Satz vom TPG 20 erzeugter
Testmuster verwendet werden, um mehrere verschiedene WUT-Gruppen je Konfiguration
zu testen.
-
Zusätzlich erfordert
ein paralleles Testen vieler WUT-Gruppen
eine große
Anzahl von ORAs und Boundary-Scan-Ports für das Empfangen der zugeordneten
Testergebnisdaten oder Bestehens-/Nichtbestehensangaben. Um die
Testergebnisdaten von mehreren ORAs zu kombinieren, kann ein iterativer Vergleicher
verwendet werden. Insbesondere kann ein solcher iterativer Vergleicher 72 auf
einem beruhen, der von Sridhar und Hayes in "Design of Easily Testable BIT-Sliced
Systems", IEEE Trans.
on Computers, Band C-30, Nr. 11, S. 842–854, November 1981 vorgeschlagen
wurde, wie in den unterbrochenen Linien in 8 dargestellt
ist.
-
Vorzugsweise
vergleicht jeder ORA 73, 74 die entsprechenden
Testmuster, die entlang den WUTs (beispielsweise WUTi,
WUTj und WUTk, WUTl in 8) übertragen
werden, um Testergebnisdaten oder ein lokales Nichtübereinstimmungssignal
(LMM) zu erzeugen. Der iterative Vergleicher 72 führt eine ODER-Verknüpfung der
Testergebnisangabe oder des vorhergehenden Nichtübereinstimmungssignals (PMM)
von dem ersten ORA 73 aus, um ein ORA-Nichtübereinstimmungssignal
(MM) zu erzeugen. Der Flipflop 75 wird verwendet, um die
erste Nichtübereinstimmung
aufzuzeichnen, die während der
Testfolge angetroffen wird. Die Rückkopplung von der Flipflop-Ausgabe
an den ersten ORA 73 deaktiviert weitere Vergleiche, nachdem
der erste Fehler erkannt wurde. Mit Ausnahme dieses Rückkopplungssignals
breiten sich alle anderen ORA-Signale wie in einem iterativen Logik-Array
aus, wobei nur lokale Leitweg-Betriebsmittel verwendet werden.
-
Alternativ
können
die verschiedenen ORA-Ausgaben direkt zu den Boundary-Scan-Ports geleitet
werden, um die vorstehend angegebenen Ergebnisse zu erhalten. Hierdurch
werden mehr Informationen in Hinblick auf den Ort des Fehlers im FPGA
bereitgestellt als bei einer einzigen Bestehens-/Nichtbestehens-Testangabe
für den
ganzen Test, die sich aus der Verwendung eines iterativen Vergleichers
ergibt.
-
Wie
vorstehend angegeben ist, zeigt 3 eine vereinfachte
Ansicht der einem mit einer Bezugszahl 76 bezeichneten
einzelnen PLB in einem FPGA der Reihe ORCA 2C zugeordneten
Leitwegbusse. Horizontale und vertikale Busse sind mit h bzw. v
bezeichnet. Die Suffixe x1, x4, xH und xL geben Drahtsegmente an,
die sich über
1 PLB, 4 PLBs, eine Hälfte
des PLB-Arrays bzw. die Gesamtlänge des
PLB-Arrays erstrecken, bevor sie auf einen Unterbrechungspunkt-CIP
oder einen Boundary-Scan-Punkt des FPGAs (nicht dargestellt) treffen. Direkte
Busse bilden Verbindungen zwischen benachbarten PLBs. Die vier direkten
Busse sind mit dn, ds, de und dw bezeichnet, wodurch direkt Nord, direkt
Süd, direkt
Ost bzw. direkt West angegeben wird. Es gibt für jeden PLB zwei Sätze vertikaler x1-Busse
und zwei Sätze
horizontaler x1-Busse, die mit vx1w, vx1e, hx1n und hx1s bezeichnet
sind. Es sind mehrere CIPs verfügbar,
um verschiedene Verbindungen zwischen den Drahtsegmenten herzustellen,
wie durch kreis- und diamantförmige
Symbole dargestellt ist. Das diamantförmige Symbol 77 eines Unterbrechungspunkt-CIPs
auf einem 4-Bit-Bus stellt eine Gruppe von 4 einzelnen Unterbrechungspunkt-CIPs
dar. In ähnlicher
Weise stellt, wie in 9A dargestellt ist, ein kreisförmiges Symbol 78, das
einen Kreuzungspunkt-CIP am Schnittpunkt eines vertikalen 4-Bit-Busses
mit einem horizontalen 4-Bit-Bus bezeichnet, eine Gruppe von 4 einzelnen Kreuzungspunkt-CIPs
zwischen entsprechenden Drähten
in den zwei Bussen dar. Das quadratische Symbol 79 am Schnittpunkt
eines 5-Bit-Direktbusses mit einem 4-Bit- x1-Bus stellt andererseits eine flexiblere
Matrix der in 9B dargestellten Kreuzungspunkt-CIPs
dar.
-
Das
bevorzugte Fehlermodell, das zum Testen der Betriebsmittel des programmierbaren
Verbindungsnetzwerks eines typischen FPGAs verwendet wird, weist
CIP-geschlossen-festhängende (festhängend-ein)
und offen-festhängende
(festhängend-aus),
bei 0 oder 1 festhängende
Drahtsegmente, offene Drahtsegmente und kurzgeschlossene Drahtsegmente
auf. Beim Erkennen der CIP-Fehler werden auch Festhängend-Bei-Fehler in den
Konfigurationsspeicherbits, die die CIPs steuern, erkannt, wie allgemein
in 5A dargestellt ist. Allgemein ausgedrückt, werden
sowohl verdrahtete UNDals auch verdrahtete ODER-Fehler als ein mögliches Verhalten
für kurzgeschlossene
Drahtsegmente angesehen. Ein festhängend-geschlossener CIP erzeugt
einen Kurzschluß zwischen
seinen zwei Drähten.
-
Weil
detaillierte Layoutinformationen in bezug auf Nachbarschaftsbeziehungen
zwischen Drahtsegmenten typischerweise nicht verfügbar sind, werden
nur grobe physikalische Daten, die beispielsweise in FPGA-Datenbüchern verfügbar sind,
zum Bestimmen von Drahtsegmentbündeln
zum Testen verwendet. Ein Drahtsegmentbündel besteht aus Drahtsegmenten,
die paarweise Kurzschlüsse
aufweisen können,
wobei jedoch nicht notwendigerweise jedes Drahtsegment jedem anderen
Drahtsegment in dem Bündel
benachbart ist. Beispielsweise können
alle vertikalen Drahtsegmente, die sich zwischen zwei benachbarten
PLB-Spalten befinden, selbst
dann als ein Bündel
behandelt werden, wenn nicht alle Kurzschlüsse physikalisch möglich sind. Vorteilhafterweise
wird hierdurch das bevorzugte Testverfahren vom Layout unabhängig gemacht,
und es werden dadurch Busrotationen ermöglicht, wodurch die Nachbarschaftsbeziehungen
zwischen Drahtsegmenten desselben Bündels geändert werden, so daß sie während des
Testens ignoriert werden können.
-
Um
die vorstehend kurz erwähnten
Leitwegfehler zu erfassen, müssen
die angewendeten Testmuster prüfen,
daß jedes
Drahtsegment oder jedes CIP in der Lage ist, sowohl eine 0 als auch
eine 1 zu übertragen,
und daß jedes
Paar von Drahtsegmenten, das kurzgeschlossen werden kann, sowohl
eine (0, 1) als auch eine (1, 0) übertragen kann. Drahtsegmente,
die kurzgeschlossen werden können,
umfassen vertikale und horizontale Segmente, die durch einen Kreuzungspunkt-CIP
getrennt sind, um einem festhängenden
CIP Rechnung zu tragen. Das Anwenden von Durchlauf mustern, also
das Durchlaufenlassen einer 1 durch ein Feld von Nullen und einer 0
durch ein Feld von Einsen, zu den beiden WUT-Gruppen ist ausreichend, um alle erforderlichen
Testmuster zu erzeugen.
-
Ein
umfassender Satz von einem Zähler
erzeugter Testmuster enthält
beispielsweise den Satz durchlaufender Testmuster als einen Teilsatz.
Beide Sätze
erkennen alle Kurzschlüsse
zwischen den WUTs. Gemäß der gegenwärtig bevorzugten
Ausführungsform
wird jedoch ein Zähler
zum Erzeugen umfassender n-Bit-Testmuster verwendet, weil der Zähler weniger
PLBs als ein Generator für
beide n-Bit-Durchlaufmuster benötigt,
vorausgesetzt daß n nicht
zu groß ist.
Für ein
großes
n können
die n WUTs in Gruppen von k < n
Drahtsegmenten eingeteilt werden, auf die umfassende Testmuster,
jeweils eine Gruppe zur Zeit, angewendet werden, während die anderen
n – k
Drahtsegmente auf konstante Werte gelegt sind. Schließlich werden
alle erforderlichen Werte paare angewendet. Ein Beispiel, in dem
das bevorzugte Verfahren zum Testen dargestellt ist, ist in der
vorstehend erwähnten
anhängigen
Patentanmeldung
EP-A-1
063 529 detailliert dargelegt.
-
Gemäß dem in 10 dargestellten
gegenwärtig
bevorzugten Verfahren kann der anfängliche Selbsttestbereich 16 des
getesteten FPGAs 10 in einen vertikalen Selbsttestbereich 80 und
einen horizontalen Selbsttestbereich 81 eingeteilt werden.
Der vertikale Selbsttestbereich 80 wird in erster Linie
zum Testen vertikaler Leitweg-Betriebsmittel oder Drahtsegmente
verwendet, und der horizontale Selbsttestbereich 81 wird
in erster Linie zum Testen horizontaler Leitweg-Betriebsmittel oder
Drahtsegmente verwendet. Um den Betrieb des getesteten FPGAs 10 während des
Testens zu ermöglichen,
sind überschüssige programmierbare
Logikblöcke
in beiden Selbsttestbereichen, horizontale Drahtsegmente im horizontalen
Selbsttestbereich 81 und vertikale Drahtsegmente im vertikalen
Selbsttestbereich 80 alle als reserviert oder unverwendbar
bezeichnet. Gemäß einem
wichtigen Aspekt der vorliegenden Erfindung werden Verbindungen
zwischen PLBs mit einem unterteilten Arbeitsbereich unter Verwendung horizontaler
Drahtsegmente durch den vertikalen Selbsttestbereich 81 und
vertikaler Drahtsegmente durch den horizontalen Selbsttestbereich 81 hergestellt.
-
Trotz
des Vorteils eines fortgesetzten Betriebs während des Testens begrenzt
die Verwendung dieser Drahtsegmente zum Übertragen von Systemsignalen
durch die vertikalen oder horizontalen Selbsttestbereiche 80 und 81 zwischen
PLBs mit einem unterteilten Arbeitsbereich die Fähigkeit der Selbsttestbereiche
zum Testen von Kreuzungspunkt-CIPs. Wie in 11 dargestellt
ist, verwendet das bevorzugte Verfahren zum Testen in den WUT-Gruppen 84, 86 enthaltener
Kreuzungspunkt-CIPs 82 sowohl den vertikalen Selbsttestbereich 80 als
auch den horizontalen Selbsttestbereich 81. Insbesondere
werden die PLBs innerhalb des horizontalen Selbsttestbereichs 81 so
konfiguriert, daß sie
den TPG 88 enthalten, und werden die PLBs innerhalb des
vertikalen Selbsttestbereichs 80 so konfiguriert, daß sie den
ORA 90 enthalten. Die vom TPG 88 erzeugten notwendigen
Testsignale werden entlang horizontalen Drahtsegmenten 92, 93 im
horizontalen Selbsttestbereich 81 über die Kreuzungspunkt-CIPs 82 und
entlang vertikalen Drahtsegmenten 94, 95 im vertikalen
Selbsttestbereich 80 zum Vergleich durch den ORA 90 übertragen.
-
Für das Testen
von jedem der Kreuzungspunkt-CIPs des getesteten FPGAs 10 auf
diese Weise wäre
eine andere Testkonfiguration für
jedes mögliche
Positionspaar des vertikalen Selbsttestbereichs 80 und
des horizontalen Selbsttestbereichs 81 erforderlich. Gemäß dem gegenwärtig bevorzugten
Verfahren wird daher nur ein Teilsatz der Kreuzungspunkt-CIPs bei
jedem vollständigen
horizontalen Abtasten des Selbsttestbereichs getestet. Insbesondere wird
der horizontale Selbsttestbereich 81 in einer festen Position
gehalten, und es wird nur der Teilsatz der Kreuzungspunkt-CIPs am
aktuellen Schnittpunkt des vertikalen Selbsttestbereichs 80 und
des horizontalen Selbsttestbereichs 81 getestet. Für jedes
vollständige
Abtasten des vertikalen Selbsttestbereichs 80 ist jedoch
die Position des horizontalen Selbsttestbereichs 81 verschieden.
Vorteilhafterweise beschränkt
dieses bevorzugte Verfahren erheblich die Erhöhung der Fehlerlatenz und der
Gesamttestzeit.
-
Beim
Abschluß des
Testens der programmierbaren Leitweg-Betriebsmittel innerhalb des anfänglichen
Selbsttestbereichs 16 wird das getestete FPGA 10 so
rekonfiguriert, daß die
Funktionen der einen Abschnitt des Arbeitsbereichs 18 bildenden PLBs
in die PLBs kopiert werden, die den anfänglichen Selbsttestbereich 16 bilden.
Gleich nach dem Abschluß wird
der kopierte Abschnitt des Arbeitsbereichs zu einem folgenden Selbsttestbereich.
Vorzugsweise wird der anfängliche
Selbsttestbereich 16 als ein benachbarter Abschnitt des
Arbeitsbereichs 18 rekonfiguriert, so daß die programmierte
Funktion eines benachbarten Abschnitts des Arbeitsbereichs 18 umgeordnet
wird oder genauer gesagt in den anfänglichen Selbsttestbereich 16 kopiert
wird und der benachbarte Abschnitt des Arbeitsbereichs als der folgende
Selbsttestbereich rekonfiguriert wird.
-
Nach
dem vorstehend beschriebenen bevorzugten erfindungsgemäßen Verfahren
kann der folgende Selbsttestbereich in ähnlicher Weise in einen vertikalen
Selbsttestbereich 81 und einen horizontalen Selbsttestbereich 82 unterteilt
werden (wie in 10 dargestellt ist), falls dies
erwünscht
ist. Weiterhin wird der Schritt des Testens der programmierbaren
Leitweg-Betriebsmittel innerhalb des folgenden Testbereichs dann
wiederholt. Dies wird fortgesetzt, bis jeder Abschnitt des Arbeitsbereichs 18 oder das
ganze getestete FPGA 10 als ein folgender Selbsttestbereich
rekonfiguriert wurde und seine programmierbaren Leitweg-Betriebsmittel
getestet wurden. Mit anderen Worten läuft der Selbsttestbereich um
das getestete FPGA 10, wobei die Schritte des Testens und
Rekonfigurierens des programmierbaren Leitweg-Netzwerks wiederholt
werden, bis das ganze FPGA getestet wurde. Vorteilhafterweise wird der Normalbetrieb
des getesteten FPGAs 10 beim innerhalb der Selbsttestbereiche
ausgeführten
Testen ununterbrochen fortgesetzt.
-
Das
gegenwärtig
bevorzugte Verfahren zum Umlaufenlassen des Selbsttestbereichs
16 oder
zum Rekonfigurieren des getesteten FPGAs
10 ist in Einzelheiten
im vorstehend erwähnten
US-Patent
US-B-6 550
030 beschrieben.
-
Zusammenfassend
sei bemerkt, daß das Verfahren
zum Testen feldprogrammierbarer Gate-Arrays (FPGAs) während des
normalen Online-Betriebs des FPGAs durch Konfigurieren der FPGA-Betriebsmittel
in einen Arbeitsbereich und einen anfänglichen Selbsttestbereich
ausgeführt
wird. Der Arbeitsbereich hält
den Normalbetrieb des getesteten FPGAs während des Testens aufrecht.
Innerhalb des anfänglichen
und des folgenden Selbsttestbereichs werden jedoch alle programmierbaren
Leitweg-Betriebsmittel umfassend getestet. Vorteilhafterweise wird
der Arbeitsbereich im wesentlichen nicht durch das Testen beeinflußt, und
Testzeit-Beschränkungen
werden reduziert, weil der Normalbetrieb im Arbeitsbereich fortgesetzt
wird.
-
Die
vorstehende Beschreibung einer bevorzugten Ausführungsform der vorliegenden
Erfindung diente nur der Erläuterung
und Beschreibung. Sie ist nicht als umfassend anzusehen und soll
die Erfindung nicht auf die genaue offenbarte Form beschränken. Offensichtliche
Modifikationen oder Abänderungen
sind angesichts der vorstehenden Lehren möglich. Die Ausführungsform
wurde gewählt
und beschrieben, um die beste Erläuterung der Grundgedanken der
Erfindung und ihrer praktischen Anwendung bereitzustellen, um es
einem Durchschnittsfachmann dadurch zu ermöglichen, die Erfindung in verschiedenen
Ausführungsformen
und mit verschiedenen Modifikationen, die für die vorgesehene spezielle
Verwendung geeignet sind, zu verwenden.