DE60010614T2 - On-line Prüfung des programmierbaren Verbindungsnetzwerks in einer feldprogrammierbaren Gatteranordnung - Google Patents

On-line Prüfung des programmierbaren Verbindungsnetzwerks in einer feldprogrammierbaren Gatteranordnung Download PDF

Info

Publication number
DE60010614T2
DE60010614T2 DE60010614T DE60010614T DE60010614T2 DE 60010614 T2 DE60010614 T2 DE 60010614T2 DE 60010614 T DE60010614 T DE 60010614T DE 60010614 T DE60010614 T DE 60010614T DE 60010614 T2 DE60010614 T2 DE 60010614T2
Authority
DE
Germany
Prior art keywords
test
self
test area
tested
groups
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60010614T
Other languages
English (en)
Other versions
DE60010614D1 (de
Inventor
Miron Berkeley Heights Abramovici
Charles E. Lexington Stroud
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Kentucky Research Foundation
Lattice Semiconductor Corp
Original Assignee
University of Kentucky Research Foundation
Lattice Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Kentucky Research Foundation, Lattice Semiconductor Corp filed Critical University of Kentucky Research Foundation
Publication of DE60010614D1 publication Critical patent/DE60010614D1/de
Application granted granted Critical
Publication of DE60010614T2 publication Critical patent/DE60010614T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • G01R31/318519Test of field programmable gate arrays [FPGA]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/0001Technical content checked by a classifier
    • H01L2924/0002Not covered by any one of groups H01L24/00, H01L24/00 and H01L2224/00

Description

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

Claims (22)

  1. Verfahren zum Testen programmierbarer Routing- bzw. Leitweg-Betriebsmittel eines feldprogrammierbaren Gate-Arrays (10) während des normalen Online-Betriebs mit den folgenden Schritten: Konfigurieren des feldprogrammierbaren Gate-Arrays (10) in einen anfänglichen Selbsttestbereich (16) und einen Arbeitsbereich (18), wobei der Arbeitsbereich (18) den Normalbetrieb des feldprogrammierbaren Gate-Arrays (10) aufrechterhält, Testen der sich innerhalb des anfänglichen Selbsttestbereichs (16) befindenden programmierbaren Leitweg-Betriebsmittel und Roving- bzw. Umlaufenlassen des anfänglichen Selbsttestbereichs (16) durch Rekonfigurieren des feldprogrammierbaren Gate-Arrays (10), so daß ein Abschnitt des Arbeitsbereichs (18) zu einem folgenden Selbsttestbereich wird und wenigstens ein Abschnitt des anfänglichen Selbsttestbereichs (16) zu einem Abschnitt des Arbeitsbereichs (18) wird.
  2. Verfahren nach Anspruch 1, bei dem die Schritte des Testens und Umlaufenlassens wiederholt werden, bis jeder Abschnitt des Arbeitsbereichs (18) als ein folgender Selbsttestbereich rekonfiguriert und getestet wurde.
  3. Verfahren nach Anspruch 1 oder 2, bei dem der Schritt des Konfigurierens des feldprogrammierbaren Gate-Arrays (10) in einen anfänglichen Selbsttestbereich (16) und einen Arbeitsbereich (18) weiter das Konfigurieren einer ersten Gruppe programmierbarer Logikblöcke innerhalb des anfänglichen Selbsttestbereichs (16), so daß sie als ein Testmustergenerator (20) und ein Ausgabe- bzw. Ausgangsansprechanalysator (22) wirkt, und eines Abschnitts der programmierbaren Leitweg-Betriebsmittel innerhalb des anfänglichen Selbsttestbereichs (16) als wenigstens zwei Gruppen getesteter Drähte (24, 26) aufweist.
  4. Verfahren nach Anspruch 3, bei dem der Schritt des Testens der sich innerhalb des anfänglichen Selbsttestbereichs (16) befindenden programmierbaren Leitweg-Betriebsmittel folgende Schritte aufweist: Übertragen vom Testmustergenerator (20) erzeugter Testmuster entlang den wenigstens zwei Gruppen getesteter Drähte (24, 26), Vergleichen der Ausgaben der wenigstens zwei Gruppen getesteter Drähte (24, 26) unter Verwendung des Ausgangsansprechanalysators (22) und Erzeugen von Fehlerstatusdaten für die wenigstens zwei Gruppen getesteter Drähte (24, 26).
  5. Verfahren nach Anspruch 4, welches weiter den Schritt des wiederholten Rekonfigurierens der programmierbaren Leitweg-Betriebsmittel, so daß jeder Abschnitt der programmierbaren Leitweg-Betriebsmittel innerhalb des anfänglichen Selbsttestbereichs (16) wenigstens einmal während des Testens als die wenigstens zwei Gruppen getesteter Drähte (24, 26) konfiguriert wird, aufweist.
  6. Verfahren nach einem der Ansprüche 3 bis 5, bei dem der Schritt des Konfigurierens eines Abschnitts der programmierbaren Leitweg-Betriebsmittel innerhalb des anfänglichen Selbsttestbereichs (16) weiter das Verwenden einer Gruppe von Drahtsegmenten und einer Gruppe von Konfigurationsverbindungspunkten der programmierbaren Leitweg-Betriebsmittel zur Bildung der wenigstens zwei Gruppen getesteter Drähte (24, 26) aufweist.
  7. Verfahren nach Anspruch 6, bei dem der Schritt des Konfigurierens des feldprogrammierbaren Gate-Arrays (10) in einen anfänglichen Selbsttestbereich (16) und einen Arbeitsbereich (18) weiter das Konfigurieren einer zweiten Gruppe programmierbarer Logikblöcke innerhalb des anfänglichen Selbsttestbereichs (16) aufweist, so daß Testmuster davon durchgelassen werden, wobei die zweite Gruppe programmierbarer Logikblöcke einen Abschnitt der wenigstens zwei Gruppen getesteter Drähte (24, 26) bildet, wodurch lokale Leitweg-Betriebsmittel der programmierbaren Leitweg-Betriebsmittel getestet werden.
  8. Verfahren nach Anspruch 7, bei dem der Schritt des Testens der sich innerhalb des anfänglichen Selbsttestbereichs (16) befindenden programmierbaren Leitweg-Betriebsmittel folgende Schritte aufweist: Anwenden eines vom Testmustergenerator (20) erzeugten Testmusters auf die wenigstens zwei Gruppen getesteter Drähte (24, 26), Vergleichen der Ausgaben der wenigstens zwei Gruppen getesteter Drähte (24, 26) unter Verwendung des Ausgangsansprechanalysators (22) und Erzeugen von Fehlerstatusdaten für die wenigstens zwei Gruppen getesteter Drähte (24, 26).
  9. Verfahren nach Anspruch 8 mit dem folgenden weiteren Schritt: wiederholtes Rekonfigurieren der programmierbaren Leitweg-Betriebsmittel innerhalb des anfänglichen Selbsttestbereichs (16), so daß jedes Drahtsegment und jeder Konfigurationsverbindungspunkt wenigstens einmal während des Testens zu einer der wenigstens zwei Gruppen getesteter Drähte (24, 26) wird.
  10. Verfahren nach Anspruch 1 oder 2 mit dem folgenden weiteren Schritt: Konfigurieren des anfänglichen Selbsttestbereichs (16), so daß er einen anfänglichen horizontalen Selbsttestbereich (81), der in erster Linie dem Testen horizontaler Drahtsegmente dient, und einen anfänglichen vertikalen Selbsttestbereich (80), der in erster Linie dem Testen vertikaler Drahtsegmente dient, aufweist.
  11. Verfahren nach Anspruch 10, bei dem der Schritt des Umlaufenlassens des anfänglichen Selbsttestbereichs (16) das Rekonfigurieren des feldprogrammierbaren Gate-Arrays (10), so daß ein Abschnitt des Arbeitsbereichs (18) zu einem folgenden horizontalen oder vertikalen Selbsttestbereich wird und der anfängliche horizontale oder vertikale Selbsttestbereich (80, 81) zu einem Abschnitt des Arbeitsbereichs (18) wird, aufweist.
  12. Verfahren nach Anspruch 1, bei dem ein feldprogrammierbares Gate-Array (10) einschließlich programmierbarer Leitweg-Betriebsmittel und programmierbarer Logikblöcke getestet wird, wobei beim Schritt des Testens von den programmierbaren Logikblöcken erzeugte Testmuster auf die als Gruppen getesteter Drähte (24, 26) innerhalb des anfänglichen Selbsttestbereichs (16) konfigurierten programmierbaren Leitweg-Betriebsmittel angewendet werden, wobei bei dem Verfahren die programmierbaren Logikblöcke zum Vergleichen der Ausgaben der Gruppen getesteter Drähte (24, 26) innerhalb des anfänglichen Selbsttestbereichs (16) verwendet werden.
  13. Verfahren nach Anspruch 12, wobei die Schritte des Anwendens von Testmustern, des Verwendens von Logikblöcken zum Vergleichen von Ausgaben, und des Rekonfigurierens fortlaufend wiederholt werden.
  14. Verfahren nach Anspruch 12 oder 13 mit dem folgenden weiteren Schritt: wiederholtes Rekonfigurieren der programmierbaren Leitweg-Betriebsmittel, so daß jedes Drahtsegment und jeder Konfigurationsverbindungspunkt innerhalb des anfänglichen Selbsttestbereichs (16) in einer der Gruppen getesteter Drähte (24, 26) wenigstens einmal während des Testens verwendet wird.
  15. Verfahren nach Anspruch 12, bei dem: bei dem Schritt des Konfigurierens das feldprogrammierbare Gate-Array (10) in einen anfänglichen horizontalen Selbsttestbereich (81), einen anfänglichen vertikalen Selbsttestbereich (80) und einen Arbeitsbereich (18), der den Normalbetrieb des feldprogrammierbaren Gate-Arrays (10) aufrechterhält, konfiguriert wird, bei dem Schritt des Anwendens von Testmustern von den programmierbaren Logikblöcken erzeugte Testmuster auf einen Abschnitt der als Gruppen getesteter Drähte (24, 26) innerhalb der anfänglichen Selbsttestbereiche (80, 81) konfigurierten programmierbaren Leitweg-Betriebsmittel angewendet werden.
  16. Verfahren nach Anspruch 15, bei dem die Schritte des Anwendens von Testmustern, des Verwendens von Logikblöcken zum Vergleichen von Ausgaben und des Rekonfigurierens wiederholt werden, bis jeder Abschnitt des Arbeitsbereichs (18) als ein folgender Selbsttestbereich rekonfiguriert und getestet wurde.
  17. Verfahren nach Anspruch 16 mit dem weiteren Schritt: wiederholtes Rekonfigurieren der programmierbaren Leitweg-Betriebsmittel innerhalb der anfänglichen Selbsttestbereiche (80, 81), so daß jeder Abschnitt der programmierbaren Leitweg-Betriebsmittel innerhalb der anfänglichen Selbsttestbereiche (80, 81) in einer der Gruppen getesteter Drähte (24, 26) wenigstens einmal während des Testens verwendet wird.
  18. Verfahren nach einem der Ansprüche 15 bis 17, wobei der Schritt des Anwendens von Testmustern auf einen Abschnitt der als Gruppen getesteter Drähte (24, 26) konfigurierten programmierbaren Leitweg-Betriebsmittel weiter das Verwenden einer Gruppe von Drahtsegmenten und einer Gruppe von Konfigurationsverbindungspunkten der programmierbaren Leitweg-Betriebsmittel zur Bildung der Gruppen getesteter Drähte (24, 26) aufweist.
  19. Vorrichtung zum Testen programmierbarer Routing- bzw. Leitweg-Betriebsmittel eines feldprogrammierbaren Gate-Arrays (10) während des normalen Online-Betriebs, welche aufweist: eine Steuereinrichtung (12), die in Kommunikation mit dem feldprogrammierbaren Gate-Array (10) steht, um (a) das feldprogrammierbare Gate-Array (10) in einen anfänglichen Selbsttestbereich (16) und einen Arbeitsbereich (18) zu konfigurieren, wobei der Arbeitsbereich (18) den Normalbetrieb des feldprogrammierbaren Gate-Arrays (10) aufrechterhält, (b) die sich innerhalb des anfänglichen Selbsttestbereichs (16) befindenden programmierbaren Leitweg-Betriebsmittel zu testen, und (c) den anfänglichen Selbsttestbereich (16) durch Rekonfigurieren des feldprogrammierbaren Gate-Arrays (10), so daß ein Abschnitt des Arbeitsbereichs (18) zu einem folgenden Selbsttestbereich wird und wenigstens ein Abschnitt des anfänglichen Selbsttestbereichs (16) zu einem Abschnitt des Arbeitsbereichs (18) wird, umlaufen bzw. roven zu lassen, und ein Speichermedium (14), das in Kommunikation mit der Steuereinrichtung (12) steht, um mehrere Testkonfigurationen und Fehlerstatusdaten zu speichern.
  20. Feldprogrammierbares Gate-Array (10), welches aufweist: mehrere programmierbare Logikblöcke, mehrere programmierbare Routing- bzw. Leitweg-Betriebsmittel, die die programmierbaren Logikblöcke verbinden, mehrere Ein-/Ausgabezellen, wobei das feldprogrammierbare Gate-Array dadurch gekennzeichnet ist, daß die programmierbaren Logikblöcke und die programmierbaren Leitweg-Betriebsmittel anfänglich als ein anfänglicher Selbsttestbereich (16) zum Testen eines Abschnitts der programmierbaren Leitweg-Betriebsmittel innerhalb des anfänglichen Selbsttestbereichs (16) und ein anfänglicher Arbeitsbereich (18) zum Aufrechterhalten des normalen Online-Betriebs des feldprogrammierbaren Gate-Arrays (10) während des Testens konfiguriert werden, und die programmierbaren Logikblöcke und die programmierbaren Leitweg-Betriebsmittel nachfolgend als ein folgender Selbsttestbereich zum Testen eines anderen Abschnitts der programmierbaren Leitweg-Betriebsmittel innerhalb des folgenden Selbsttestbereichs und ein folgender Arbeitsbereich (18) zum Aufrechterhalten des normalen Online-Betriebs des feldprogrammierbaren Gate-Arrays (10) während des nachfolgenden Testens konfiguriert werden.
  21. Feldprogrammierbares Gate-Array nach Anspruch 20, wobei ein Abschnitt der programmierbaren Logikblöcke innerhalb des anfänglichen Selbsttestbereichs (16) so konfiguriert ist, daß er als ein Testmustergenerator (20) und ein Ausgangsansprechanalysator (22) wirkt, und ein Abschnitt der programmierbaren Leitweg-Betriebsmittel innerhalb des anfänglichen Selbsttestbereichs (16) als wenigstens zwei Gruppen getesteter Drähte (24, 26) konfiguriert ist.
  22. Feldprogrammierbares Gate-Array nach Anspruch 21, wobei der Testmustergenerator (20) einen Satz von Testmustern zum Testen der wenigstens zwei Gruppen getesteter Drähte (24, 26) erzeugt, und der Ausgangsansprechanalysator (22) die Ausgaben der wenigstens zwei Gruppen getesteter Drähte (24, 26) vergleicht und Fehlerstatusdaten für die wenigstens zwei Gruppen getesteter Drähte (24, 26) erzeugt.
DE60010614T 1999-09-27 2000-09-18 On-line Prüfung des programmierbaren Verbindungsnetzwerks in einer feldprogrammierbaren Gatteranordnung Expired - Fee Related DE60010614T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/406,219 US6574761B1 (en) 1999-09-27 1999-09-27 On-line testing of the programmable interconnect network in field programmable gate arrays
US406219 1999-09-27

Publications (2)

Publication Number Publication Date
DE60010614D1 DE60010614D1 (de) 2004-06-17
DE60010614T2 true DE60010614T2 (de) 2005-05-19

Family

ID=23607042

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60010614T Expired - Fee Related DE60010614T2 (de) 1999-09-27 2000-09-18 On-line Prüfung des programmierbaren Verbindungsnetzwerks in einer feldprogrammierbaren Gatteranordnung

Country Status (4)

Country Link
US (1) US6574761B1 (de)
EP (1) EP1089084B1 (de)
JP (1) JP2001144261A (de)
DE (1) DE60010614T2 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631487B1 (en) * 1999-09-27 2003-10-07 Lattice Semiconductor Corp. On-line testing of field programmable gate array resources
US7111224B1 (en) * 2001-02-28 2006-09-19 Xilinx, Inc. FPGA configuration memory with built-in error correction mechanism
US6966020B1 (en) * 2001-07-03 2005-11-15 Agere Systems Inc. Identifying faulty programmable interconnect resources of field programmable gate arrays
US6732309B1 (en) * 2001-08-02 2004-05-04 Xilinx, Inc. Method for testing faults in a programmable logic device
EP1293789A1 (de) * 2001-09-12 2003-03-19 Alcatel Verfahren zum Testen und Inbetriebnehmen einer elektrischen Schaltungseinheit sowie solche Schaltunseinheiten
US7412343B2 (en) * 2002-07-01 2008-08-12 University Of North Carolina At Charlotte Methods for delay-fault testing in field-programmable gate arrays
US7145344B2 (en) 2002-10-25 2006-12-05 Xilinx, Inc. Method and circuits for localizing defective interconnect resources in programmable logic devices
US7509547B1 (en) * 2005-09-07 2009-03-24 Xilinx, Inc. System and method for testing of interconnects in a programmable logic device
JP4457083B2 (ja) * 2006-03-28 2010-04-28 富士通株式会社 リコンフィグラブルデバイス搭載ボードのセルフテスト装置および方法
US7999388B2 (en) * 2007-09-24 2011-08-16 Research Triangle Institute Preventing breakage of long metal signal conductors on semiconductor substrates
US8051277B1 (en) * 2007-12-22 2011-11-01 Callen Greg S Programmable arithmetic logic unit cluster
WO2012016597A1 (en) * 2010-08-05 2012-02-09 Panasonic Corporation Overridable elements in reconfigurable logic devices
US8661293B2 (en) 2011-06-30 2014-02-25 International Business Machines Corporation Test architecture based on intelligent test sequence
US9235460B2 (en) 2012-02-27 2016-01-12 Altera Corporation Methods and apparatus for automatic fault detection
JPWO2013128578A1 (ja) * 2012-02-28 2015-07-30 株式会社安川電機 制御装置および制御装置の制御方法
CN104137063A (zh) * 2012-02-28 2014-11-05 株式会社安川电机 控制装置以及控制装置的控制方法
RU2540805C2 (ru) * 2013-06-04 2015-02-10 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Устройство анализа результатов тестирования для поиска неисправных блоков
CN104281508B (zh) * 2013-07-11 2018-11-06 京微雅格(北京)科技有限公司 现场可编程逻辑门阵列互连线固定故障的测试方法
RU2633908C1 (ru) * 2016-06-21 2017-10-19 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Устройство анализа результатов тестирования для локализации двукратных неисправностей
JP2022078892A (ja) * 2020-11-13 2022-05-25 日立Astemo株式会社 演算装置、テスト方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4757503A (en) 1985-01-18 1988-07-12 The University Of Michigan Self-testing dynamic ram
USRE34445E (en) 1985-01-18 1993-11-16 University Of Michigan Self-testing dynamic RAM
US5051996A (en) 1989-03-27 1991-09-24 The United States Of America As Represented By The United States Department Of Energy Built-in-test by signature inspection (bitsi)
US5107208A (en) 1989-12-19 1992-04-21 North American Philips Corporation System for partitioning and testing submodule circuits of an integrated circuit
US5260946A (en) 1991-06-03 1993-11-09 Hughes Missile Systems Company Self-testing and self-configuration in an integrated circuit
US5278841A (en) 1991-10-30 1994-01-11 International Business Machines Corporation Method and apparatus for diagnosing net interconnect faults using echo pulsed signals
US5347519A (en) 1991-12-03 1994-09-13 Crosspoint Solutions Inc. Preprogramming testing in a field programmable gate array
US5425036A (en) 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
US5430734A (en) 1993-02-12 1995-07-04 Metalithic Systems, Inc. Fault-tolerant waferscale integrated circuit device and method
CH688425A5 (fr) 1993-05-24 1997-09-15 Suisse Electronique Microtech Circuit électronique organisé en réseau matriciel de cellules.
US5488612A (en) 1993-10-04 1996-01-30 International Business Machines, Corporation Method and apparatus for field testing field programmable logic arrays
US5633813A (en) * 1994-05-04 1997-05-27 Srinivasan; Seshan R. Apparatus and method for automatic test generation and fault simulation of electronic circuits, based on programmable logic circuits
US5991907A (en) * 1996-02-02 1999-11-23 Lucent Technologies Inc. Method for testing field programmable gate arrays
US5959912A (en) * 1997-04-30 1999-09-28 Texas Instruments Incorporated ROM embedded mask release number for built-in self-test
US5991213A (en) * 1997-04-30 1999-11-23 Texas Instruments Incorporated Short disturb test algorithm for built-in self-test

Also Published As

Publication number Publication date
US6574761B1 (en) 2003-06-03
EP1089084B1 (de) 2004-05-12
DE60010614D1 (de) 2004-06-17
JP2001144261A (ja) 2001-05-25
EP1089084A1 (de) 2001-04-04

Similar Documents

Publication Publication Date Title
DE60010614T2 (de) On-line Prüfung des programmierbaren Verbindungsnetzwerks in einer feldprogrammierbaren Gatteranordnung
DE4243910C2 (de) Aufgeteiltes Boundary-Scan-Testen zum Vermindern des durch Testen hervorgerufenen Schadens
DE3130714C2 (de)
EP0212208B1 (de) Schaltungsanordnung zum Prüfen integrierter Schaltungseinheiten
EP0308660B1 (de) Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen
DE602004009309T2 (de) Automatische testmustererzeugung
DE3727723C2 (de) Verfahren zur Prüfung eines Trägers mit mehreren integrierten Digitalschaltungen, geeignete integrierte Schaltung zum Anbringen auf einem auf diese Weise zu prüfenden Träger und Träger mit mehreren derartigen integrierten Schaltungen
EP0010173B1 (de) Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen
DE60316068T2 (de) Prüfverfahren und -gerät für Konfigurationsspeicherzellen in programmierbaren logischen Bauelementen (PLDS)
DE4425552A1 (de) Wafermaßstabsarchitektur für programmierbare Logikschaltungen
DE3520003C2 (de)
DE69628034T2 (de) Hochimpedanzmodus für jtag
DE2058698A1 (de) Datenspeichersystem
EP0126785B1 (de) Prüf- und Diagnoseeinrichtung für Digitalrechner
DE112011101039B4 (de) Implementieren einer verbesserten Verbindungsbandbreite in einem Headless-Verbindungschip
DE102011053359A1 (de) Latch-basierte Speichervorrichtung
EP0766092B1 (de) Testbare Schaltungsanordnung mit mehreren identischen Schaltungsblöcken
EP3149710B1 (de) Fahrzeugdiagnosevorrichtung und datenübertragungsvorrichtung
DE10210264A1 (de) Ein Testvektorkomprimierungsverfahren
DE60208062T2 (de) Digitales system und entsprechendes verfahren zur fehlererkennung
DE19805500A1 (de) Vielzweck-Eingabe/Ausgabe-Schaltung für das Chiptesten
DE69724575T2 (de) Integrierte Schaltung
DE69925392T2 (de) Abtastprüfung von Vorrichtungen
DE19948904C1 (de) Schaltungszelle mit eingebauter Selbsttestfunktion und Verfahren zum Testen hierfür
DE69433155T2 (de) Programmierbare Matrize zum Prüfen von Fehlern in einem digitalen Kommunikationssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee