DE112020000035T5 - Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm zur handhabung von befehlsfehlern - Google Patents

Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm zur handhabung von befehlsfehlern Download PDF

Info

Publication number
DE112020000035T5
DE112020000035T5 DE112020000035.4T DE112020000035T DE112020000035T5 DE 112020000035 T5 DE112020000035 T5 DE 112020000035T5 DE 112020000035 T DE112020000035 T DE 112020000035T DE 112020000035 T5 DE112020000035 T5 DE 112020000035T5
Authority
DE
Germany
Prior art keywords
data
memory
command
test
error
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.)
Pending
Application number
DE112020000035.4T
Other languages
English (en)
Inventor
Olaf Pöppe
Klaus-Dieter Hilliges
Alan Krech
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.)
Advantest Corp
Original Assignee
Advantest 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 Advantest Corp filed Critical Advantest Corp
Publication of DE112020000035T5 publication Critical patent/DE112020000035T5/de
Pending legal-status Critical Current

Links

Images

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/31724Test controller, e.g. BIST state machine
    • 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/31712Input or output aspects
    • 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/31712Input or output aspects
    • G01R31/31713Input or output interfaces for test, e.g. test pins, buffers
    • 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/3177Testing of logic operation, e.g. by logic analysers
    • 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/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • 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/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31905Interface with the device under test [DUT], e.g. arrangements between the test head and the DUT, mechanical aspects, fixture
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31907Modular tester, e.g. controlling and coordinating instruments in a bus based architecture
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31908Tester set-up, e.g. configuring the tester to the device under test [DUT], down loading test patterns
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31926Routing signals to or from the device under test [DUT], e.g. switch matrix, pin multiplexing
    • 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/319Tester hardware, i.e. output processing circuits
    • G01R31/3193Tester hardware, i.e. output processing circuits with comparison between actual response and known fault free response
    • G01R31/31935Storing data, e.g. failure memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Eine automatisierte Prüfeinrichtung zum Prüfen eines oder mehrerer Prüfobjekte weist zumindest eine Portverarbeitungseinheit auf, die eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, zum Verbinden mit zumindest einem der Prüfobjekte, einen Speicher zum Speichern von Daten, die durch die Portverarbeitungseinheit von einem oder mehreren verbundenen Prüfobjekten empfangen werden, und einen Streamingfehlererfassungsblock aufweist, der dazu konfiguriert ist, einen Befehlsfehler in den empfangenen Daten zu erfassen, wobei die Portverarbeitungseinheit dazu konfiguriert ist, ansprechend auf eine Erfassung des Befehlsfehlers die Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher zu begrenzen. Ein Verfahren und ein Computerprogramm zum automatisierten Prüfen eines oder mehrerer Prüfobjekte sind ebenfalls beschrieben.

Description

  • Technisches Gebiet
  • Ausführungsbeispiele gemäß der vorliegenden Erfindung beziehen sich auf eine automatisierte Prüfeinrichtung zum Prüfen eines oder mehrerer Prüfobjekte.
  • Weitere Ausführungsbeispiele gemäß der vorliegenden Erfindung beziehen sich auf ein Verfahren zum automatisierten Prüfen eines oder mehrerer Prüfobjekte.
  • Weitere erfindungsgemäße Ausführungsbeispiele beziehen sich auf jeweilige Computerprogramme.
  • Erfindungsgemäße Ausführungsbeispiele beziehen sich auf das Prüfen von Vorrichtungen, u. a. über eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle (high-speedinput-output interface, HSIO) und mit einer Fehlererfassung in Daten, die von den Prüfobjekten empfangen werden.
  • Hintergrund der Erfindung
  • Im Folgenden wird eine Einführung in einige konventionelle Lösungen gegeben.
  • Eine automatisierte Prüfeinrichtung (automated test equipment, ATE) ist jeder Apparat, der Prüfungen an einer Vorrichtung, dem so genannten Prüfobjekt (device under test, DUT), durchführt, wobei Automatisierung verwendet wird, um schnell Messungen durchzuführen und die Prüfergebnisse auszuwerten. Eine ATE kann ein einfaches computergesteuertes digitales Multimeter oder ein kompliziertes System sein, das Dutzende von komplexen Prüfinstrumenten enthält - reale oder simulierte elektronische Prüfeinrichtungen -, die in der Lage sind, eine automatische Prüfung durchzuführen und Fehler in hochentwickelten elektronischen paketierten Bauteilen oder bei Wafertests zu diagnostizieren, einschließlich chipinterne Systeme und integrierte Schaltungen.
  • Strukturelle Prüfungen ermöglichen eine systematische Prüfabdeckung einzelner Strukturen, so genannter Zellen, die die komplexen Funktionen eines digitalen Blocks innerhalb eines chipinternen Systems, SOC (system on a ship), implementieren. Strukturelle Prüfungen umfassen eine Mehrzahl von Prüfverfahren, einschließlich, aber nicht beschränkt auf einen in den Speicher eingebauten Selbsttest (built-in self-test, BIST), einen BIST, einen Logik-BIST (auf dem Chip erzeugte Struktur) und eine Abtastprüfung (extern bereitgestellte Struktur). Einzelne Prüfungen werden zu Prüfblöcken kombiniert: z. B. wird die Abtastprüfung hierarchisch auf Blöcke angewendet (seriell oder parallel).
  • Fortgeschrittene strukturelle Prüfverfahren wenden eine Kombination aus extern bereitgestellten Prüfdaten (Stimulus von automatisierter Prüfeinrichtung, ATE) und einer auf dem Chip befindlichen Prüfvorrichtung, DFT (device for testing), an, die extern bereitgestellte Prüfdaten, so genannte Seeds, zu Abtastketten erweitert. Die Prüfergebnisse werden verdichtet und zu einer reduzierten Menge von Prüfdaten komprimiert, die der primären Eingabe-Ausgabe-Schnittstelle, IO, eines SOC bereitgestellt werden. Diese Daten werden als empfangene Daten bezeichnet und durch die ATE mit erwarteten Daten verglichen. Die empfangenen Daten können auch durch die ATE maskiert sein.
  • Die DFT, manchmal auch als Design für Prüfung (design for testing) oder Design für Prüfbarkeit (design for testability) bezeichnet, besteht typischerweise aus Integrierte-Schaltung-Designtechniken, die einem Hardware- oder Vorrichtungsproduktdesign oder einer Vorrichtung, d. h. dem DUT, Prüfbarkeitsmerkmale hinzufügen. Die hinzugefügten Merkmale erleichtern die Entwicklung und Anwendung von Prüfungen auf das DUT.
  • Im Folgenden wird die Abtastprüfung als allgemeine Darstellung einer strukturellen Prüfung wie oben beschrieben bezeichnet.
  • Mit der zunehmenden Komplexität von SOCs, die durch neue Herstellungsprozesse ermöglicht wird, bestehen jedoch Herausforderungen an die kosteneffiziente Skalierung von Abtastprüfungen.
  • Eine Herausforderung ist die eskalierende Menge an Prüfdaten, die auf der ATE gespeichert werden müssen. Eine weitere Herausforderung sind die eskalierenden Prüfzeiten, um die Prüfdaten durch die SOC-IO zu leiten. Auch die zunehmende Komplexität auf dem Chip stellt die Verteilung der Prüfdaten auf zu prüfende Blöcke und das Erzeugen der erforderlichen Taktsignale vor eine Herausforderung.
  • Darüber hinaus erfordern die Qualitäts- und Zuverlässigkeitserwartungen an komplexe SOCs strukturelle Prüfungen, wenn das SOC in der Endanwendung eingesetzt wird: z. B. in einem Automobil- oder Kommunikationsinfrastruktursystem.
  • Angesichts dieser Situation besteht der Wunsch nach einem Konzept, das bei der Prüfung von Prüfobjekten mit einer automatisierten Prüfeinrichtung einen verbesserten Kompromiss zwischen den zu speichernden Daten, der Verarbeitungsgeschwindigkeit und der Qualität und Zuverlässigkeit von Prüfungen vorsieht.
  • Kurzdarstellung der Erfindung
  • Ein Ausführungsbeispiel gemäß der vorliegenden Erfindung ist eine automatisierte Prüfeinrichtung zum Prüfen eines oder mehrerer Prüfobjekte.
  • Die automatisierte Prüfeinrichtung weist zumindest eine Portverarbeitungseinheit auf.
  • Die zumindest eine Portverarbeitungseinheit weist eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, zum Verbinden mit zumindest einem der Prüfobjekte, einen Speicher zum Speichern von Daten, die durch die Portverarbeitungseinheit von einem oder mehreren verbundenen Prüfobjekten empfangen werden, und einen Streamingfehlererfassungsblock auf, der dazu konfiguriert ist, einen Befehlsfehler in den empfangenen Daten zu erfassen, z. B. in den Daten, die von dem einen oder den mehreren Prüfobjekten empfangen werden, zum Beispiel von einer Abtastkette.
  • Eine HSIO-Schnittstelle bezieht sich auf Schnittstellen, die für Hochgeschwindigkeitskommunikation ausgelegt sind. Eine nicht erschöpfende Liste von Beispielen umfasst USB, PCle, SATA, Gigabit LAN. Prüfobjekte, DUTs, können beispielsweise chipinterne Systeme, SOCs, sein.
  • Ferner ist die Portverarbeitungseinheit dazu konfiguriert, ansprechend auf eine Erfassung des Befehlsfehlers die Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher zu begrenzen. Das Begrenzen kann auch als Einschränkung betrachtet werden. Durch Begrenzen oder Einschränken des Speicherns von Daten kann der Speicherbedarf für möglicherweise nutzlose und zufällige Nutzlastdaten minimiert werden. Eine derartige Einschränkung oder Begrenzung kann als ein Erfassen der folgenden Bits als Informationsnutzlast über den Zustand des HSIO-Abtast-DFT-Blocks implementiert sein. Durch Speichern von weniger Daten kann Verarbeitungsleistung eingespart werden, da der folgende Vergleich von empfangenen Daten mit erwarteten Daten reduziert werden kann. Das Einschränken oder Begrenzen kann insofern bewirkt werden, als ein vorbestimmter Wert die Speichermenge angibt, die nach Erfassen eines Fehlers verwendet werden kann. Die verfügbare Speichermenge kann auch algorithmisch angegeben werden. Letztendlich kann die Speichermenge, die nach Erfassen eines Fehlers verwendet werden kann, von der Natur des Fehlers, dem Fehlertyp, dem Fehlerschweregrad oder von anderen Charakteristika abhängig sein.
  • Dieses Ausführungsbeispiel basiert auf der Idee, dass beim Prüfen eines Prüfobjekts Daten erzeugt werden, die an die automatisierte Prüfeinrichtung, ATE, gesendet und von derselben empfangen werden. Die empfangenen Daten können, z. B. zur Auswertung der Prüfung, d. h. zur Überprüfung, ob die empfangenen Daten dem entsprechen, was als von einem ordnungsgemäß funktionierenden Prüfobjekt gesendet zu erwarten wäre, durch die ATE weiterverarbeitet werden. Für die Weiterverarbeitung der empfangenen Daten ist es zumindest bei einigen Ausführungsbeispielen hilfreich, Die empfangenen Daten in einem Speicher der ATE zu speichern.
  • Die Daten können unter Verwendung einer Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO, an die ATE gesendet werden. Die Daten können derart strukturiert sein, dass der empfangende Abschnitt die empfangenen Daten mit weniger Aufwand interpretieren kann. Ein Beispiel für eine derartige Struktur wäre ein Datenformat, das so genannte Befehlsabschnitte aufweist, die entweder angeben, was folgt, d. h. die Nutzlast, oder die die tatsächlichen Befehle an den anderen Abschnitt senden.
  • Da nicht nur die Nutzlast entweder Übertragungsfehler oder Fehler enthalten kann, die auf eine Fehlfunktion des Prüfobjekts zurückzuführen sind, sondern auch diese Befehlsfehler fehlerhaft sein können, könnte ein Fehler in dem Befehl möglicherweise die nachfolgende Nutzlast unbrauchbar machen, da dieselbe entweder nicht korrekt identifiziert oder nicht gemäß dem Befehl verwendet werden kann, der hätte empfangen werden müssen. Wenn beispielsweise der Befehl CONV lautet und die folgenden Daten folglich umgewandelt werden sollen, kann ein fehlerhafter Befehl CPNV nicht korrekt interpretiert werden, so dass die Nutzlast unbrauchbar wird.
  • Im Falle eines Befehlsfehlers ist es also die Erfindung, die die in den Speicher gespeicherten Daten einschränken oder begrenzen soll. Die Begrenzung kann null sein, so dass nach einem fehlerhaften Befehl keine Daten gespeichert werden, kann aber auch ungleich null sein, um Daten für die Fehlersuche oder Fehleranalyse bereitstellen zu können.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung sind in dem Speicher gespeicherte Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, von der Weiterverarbeitung ausgenommen.
  • Es wurde festgestellt, dass, wenn manche Daten nach einem fehlerhaften Befehl gespeichert werden, diese Daten gespeichert und beibehalten werden können, jedoch von der Weiterverarbeitung ausgenommen werden können, so dass zusätzliche Rechenleistung eingespart werden kann.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung ist die Begrenzung, die die Menge der zu speichernden Daten angibt, durch einen festen Wert, einen variablen Wert oder einen dynamischen Wert definiert.
  • Es wurde festgestellt, dass die Menge der Daten so vorbestimmt sein kann, dass dieselbe für jeden Fehler gleich ist, wodurch eine feste Datenmenge nach einem fehlerhaften Befehl definiert ist, die für eine spätere Analyse gespeichert werden soll. Andererseits kann die Menge auch als ein variabler Wert definiert sein, was als Speicherung einer unterschiedlichen Datenmenge nach einem fehlerhaften Befehl bei jedem Auftreten eines fehlerhaften Befehls in Abhängigkeit von bestimmten Parametern definiert sein kann. Beispiele für solche Parameter können z. B. der Fehlertyp, d. h. Logikfehler (der Befehl befindet sich an einer unzulässigen Stelle in den Daten), Übertragungsfehler (der empfangene Befehl wird fehlerhaft übertragen), Datenunstimmigkeit (die Nutzlast stimmt nicht mit dem Befehl überein), Prüfsummenfehler (der Befehl und/oder die Nutzlast haben eine Prüfsumme (oder eine andere Integritätsprüfung) gesendet, die nicht korrekt ist) oder jeder andere allgemein bekannte Fehlertyp sein. Ein weiteres Beispiel für einen derartigen Parameter ist der Typ des Prüfobjekts und/oder der Typ der ATE. Andere Parameter können sich direkt auf eine beteiligte Vorrichtung beziehen, z. B. Temperatur, Nutzungsstatistik, Speicherstatus, verfügbarer Speicher, verfügbare CPU und dergleichen. Andere Parameter können sich auf die Nutzlast beziehen, sogar darauf, ob dem Befehl überhaupt eine Nutzlast folgt, auf die aktuelle Zeit, die Sendezeit, die Empfangszeit, die Sendedauer usw. Es kann auch ein dynamischer Wert verwendet werden, der sich im Laufe der Zeit ändert.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung vergleicht der Streamingfehlererfassungsblock ferner die empfangenen Daten mit vorab geladenen Daten.
  • Es wurde festgestellt, dass zur Überprüfen des korrekten Funktionierens des Prüfobjekts, DUT, so genannte Erwartungsdaten vorbereitet und vorab auf der ATE geladen werden können. Die empfangenen Daten können dann mit den Erwartungsdaten verglichen werden und so das korrekte Funktionieren der Vorrichtung bestimmt werden. Die empfangenen Daten können sich auf Daten aus der Abtastkette, auf Befehls- und/oder Nutzlastdaten beziehen.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung erfasst der Streamingfehlererfassungsblock ferner auch Nutzlastdatenfehler in den empfangenen Daten und speichert Daten ansprechend auf die Erfassung eines Fehlers in den empfangenen Daten selektiv in den Speicher.
  • Es wurde festgestellt, dass selbst dann, wenn der Befehl korrekt ist, die ATE einen Fehler in der Nutzlast feststellen und ein Speichern von fehlerhaften Nutzlastdaten, die unbrauchbar sein könnten, vermeiden kann. Dadurch kann auch im Falle eines korrekten Befehls die Speichernutzung reduziert werden, wenn die Nutzlast einen Fehler enthält.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weisen die Erwartungsdaten Maskendaten auf.
  • Es wurde festgestellt, dass durch die Verwendung von Maskendaten, d. h. Daten, die definieren, welche Bits der empfangenen Daten relevant sind und/oder welche Bits der empfangenen Daten für bestimmte Nutzungen irrelevant sind, kann die ATE in die Lage versetzt werden, die Daten intelligenter zu verarbeiten. Als Beispiel können die Erwartungsdaten Maskendaten enthalten, die angeben, dass die empfangenen Daten für eine bestimmte Prüfprozedur drei Datenblöcke enthalten werden, nämlich den Befehl, der die betreffende Prüfung angibt, die Ergebnisdaten, die durch das DUT erzeugt wurden, und die Seed-Daten, die seitens des DUT verwendet wurden, um das Ergebnis zu erzeugen. Da die ATE das DUT mit den Seed-Daten versorgt hat, ist ein Speichern der Seed-Daten in Abhängigkeit von der Prüfung möglicherweise nicht notwendig. Außerdem kann durch selektives Speichern der Ergebnisdaten zusätzlicher Speicherplatz eingespart werden.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung kann die ATE ferner die Erwartungsdaten vorab in einen Durchlaufspeicher, FIFO(first-in-first-out)-Speicher, pro Vorrichtung oder in einen verwalteten Cache laden, der einer oder mehreren verbundenen Vorrichtungen zugeordnet ist.
  • Es wurde festgestellt, dass die ATE somit Erwartungsdaten vorab in einen Durchlaufspeicher, FIFO-Speicher, pro Vorrichtung laden kann und dadurch Erwartungsdaten für einen schnelleren Vergleich mit den empfangenen Daten vorbereitet hat. Dies ist besonders vorteilhaft, wenn die empfangenen Daten in einer bestimmten Reihenfolge erwartet werden, so dass die ersten vorab geladenen Daten, „first in“, auch die ersten sind, die verglichen werden, und somit auch als erstes aus dem FIFO-Speicher entfernt werden können, „first out“. Für diese Verwendung kann nur ein Teil der Erwartungsdaten, ein so genanntes Fenster von Erwartungsdaten, vorab geladen werden.
  • Alternativ kann ein verwalteter Cachespeicher, der mehr als einem Prüfobjekt zugeordnet sein kann, dazu verwendet werden, Erwartungsdaten oder ein Fenster von Erwartungsdaten vorab zu laden und dann mit den empfangenen Daten von mehr als einem Prüfobjekt zu vergleichen. Auf diese Weise müssen die Erwartungsdaten nicht wiederholt für alle Vorrichtungen geladen oder vorab geladen werden.
  • Außerdem kann der FIFO-Speicher oder verwaltete Cachespeicher die Nutzung, z. B. den Vergleich mit den empfangenen Daten, von den zugeordneten verbundenen DUTs verfolgen und Daten verwerfen, die verwendet, d. h. verglichen, wurden oder aus einem anderen Grund nicht mehr behalten werden müssen.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung erkennt die ATE ein bestimmtes Prüfobjekt als fehlerhaft, ansprechend auf ein Feststellen auf Basis der Verfolgung der Datennutzung, dass das bestimmte Prüfobjekt einem Datenstrom nicht folgt.
  • Es wurde festgestellt, dass, ansprechend auf ein Feststellen, dass ein bestimmtes Prüfobjekt Daten so langsam bereitstellt, dass die Erwartungsdaten in dem verwalteten Cachespeicher, der dem bestimmten Prüfobjekt zugeordnet ist, viel länger ungenutzt bleiben als die entsprechenden Erwartungsdaten, die anderen Prüfobjekten zugeordnet sind, das DUT als fehlerhaft erkannt werden kann.
  • Wenn im Falle eines verwalteten Cachespeichers die entsprechenden beibehaltenen Erwartungsdaten nur für eines von mehreren Prüfobjekten in dem Speicher behalten werden, könnte die Effizienz nachteilig beeinflusst werden, und indem das Prüfobjekt, für das die speziellen Erwartungsdaten beibehalten werden, als fehlerhaft betrachtet wird, können die Erwartungsdaten aus dem verwalteten Cachespeicher verworfen und die Gesamteffizienz verbessert werden. Außerdem könnte, wenn erwartet wird, dass die empfangenen Daten einem bestimmten Datenstrom oder einer Struktur folgen, und ein DUT die empfangenen Daten nicht in diesem Datenstrom oder einer Struktur liefert, dasselbe als fehlerhaft betrachtet werden.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung könnten empfangene Daten als deterministischer Strom von Bytes empfangen werden. In diesem Fall werden die empfangenen Daten und die vorab geladenen Erwartungsdaten in der Reihenfolge der vorab geladenen Erwartungsdaten verglichen. Alternativ können die empfangenen Daten auch als Daten mit zugeordneten Adressinformationen empfangen werden. Derartige Adressinformationen könnten sich auf die Daten beziehen, die durch direkten Speicherzugriff, DMA (direct memory access), adressiert werden. In diesem Fall werden die empfangenen Daten mit den Erwartungsdaten an einer Speicheradresse verglichen, die den Adressinformationen entspricht, wobei die Speicheradresse eine Adresse eines Speichers ist, der die Erwartungsdaten speichert.
  • Es wurde festgestellt, dass Erwartungsdaten seriell verarbeitet werden können, wenn die Empfangsdaten der ATE als Datenstrom in einer vorbestimmten Reihenfolge, einem so genannten deterministischen Datenstrom, bereitgestellt werden.
  • Werden die Daten dagegen in nicht-deterministischer Weise bereitgestellt, z. B. durch Speicheradressen wie eine Adressierung über direkten Speicherzugriff, DMA, so werden die Empfangsdaten mit den Erwartungsdaten verglichen, indem an der durch Adressinformationen angegebenen Speicheradresse auf die entsprechenden Daten zugegriffen wird, die durch die Empfangsdaten, aber auch durch die Erwartungsdaten bereitgestellt oder vorgegeben sein könnten.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung speichert die ATE Daten in einer komprimierten Darstellung in dem Speicher.
  • Es wurde festgestellt, dass komprimierte Daten weniger Speicherplatz verbrauchen. Die ATE kann im Allgemeinen unterschiedliche Teile der vollständigen Datensätze speichern, z. B. nur die empfangenen Daten, die von den Erwartungsdaten abweichen, und/oder die Erwartungsdaten, für die die Empfangsdaten unterschiedlich sind, oder Daten, die eine Abweichung zwischen den empfangenen Daten und den Erwartungsdaten beschreiben. Einige oder alle der Daten, die in dem und/oder durch die ATE gespeichert sind, können komprimiert werden, um weniger Speicherplatz zu verbrauchen. Die Komprimierung selbst kann für alle Daten, die komprimiert gespeichert werden sollen, dasselbe Datenkomprimierungsverfahren sein, kann jedoch auch abhängig von bestimmten Parametern für unterschiedliche Datenbefehle verschieden sein.
  • Beispiele für derartige Parameter können z.B. der Typ der Prüfung sein, die sich auf die Daten bezieht. Ein weiteres Beispiel für einen derartigen Parameter ist der Typ des Prüfobjekts und/oder der Typ des ATE. Andere Parameter können sich direkt auf eine beteiligte Vorrichtung beziehen, z. B. Temperatur, Nutzungsstatistik, Speicherstatus, verfügbarer Speicher, verfügbare CPU und ähnliches. Andere Parameter können sich auf den Befehl oder die Nutzlast beziehen, sogar darauf, ob dem Befehl überhaupt eine Nutzlast folgt, die aktuelle Zeit, die Übertragungszeit, die Empfangszeit, die Dauer der Übertragung usw.
  • Die für einen Teil oder die Gesamtheit der Daten verwendete Komprimierung kann verlustfrei oder verlustbehaftet sein.
  • Beispiele für verlustfreie Komprimierungstypen, die verwendet werden können, umfassen Entropietypen wie z. B. arithmetisch, asymmetrische Zahlensysteme, Golomb, Huffman, Range, Shannon, Shannon-Fano, Shannon-Fano-Elias, Tunstall, Unär, Universell, z. B. Exp-Golomb, Fibonacci, Gamma, Levenshtein, Wörterbuchtyp, z. B. Byte-Paar-Codierung, Lempel-Ziv, oder andere Typen, z. B. BWT, CTW, Delta, DMC, DPCM, LDCT, MTF, PAQ, PPM, RLE (Lauflängencodierung z. B. für fehlerhafte Bits).
  • Beispiele für verlustbehaftete Komprimierungstypen, die verwendet werden können, umfassen Transformationstypen, z. B. diskrete Cosinus-Transformation, DST, FFT, Wavelet, prädiktive Typen, z. B. DPCM, LPC, Bewegung, Psychoakustik.
  • Auch Kombinationen von Komprimierungsverfahren können verwendet werden.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung kann die ATE die Komprimierung dynamisch dahin gehend anpassen, dass dieselbe mit einer erwarteten Fehlerverteilung übereinstimmt.
  • Es hat sich als effizient erwiesen, wenn die empfangenen Daten Registerwerte enthalten, was zu kurzen Fehlerbündeln (englisch: burst of errors) führt, sobald ein Registerwert falsch ist. Dies kann effektiv durch einen Header mit dem Byteversatz beim Start des Fehlerbursts und einem Fehlerwort, das sich bis zu einem Registerwert erstreckt, gespeichert werden.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung kann die ATE empfangene Daten, die wahrscheinlich fehlerhaft sind, in der Nähe in dem empfangenen Datenstrom halten.
  • Es wurde festgestellt, dass bei Hochgeschwindigkeitskommunikationen, z. B. über eine serielle USB oder eine andere HSIO-Technologie, verwandte Bits in dem Prüfobjekt gepuffert werden können, z. B. durch ein DFT, um dieselben innerhalb eines kleinen Bereichs von seriellen Bits nach außen zu streamen. Falls es sich bei der HSIO um USB handelt, könnte dies durch die USB-DFT erfolgen. Zum Beispiel könnte der Wert eines MISR, der über mehrere Abtastketten empfangen wird, gepuffert werden. In diesem Fall ist MISR ein Mehrfacheingabesignaturregister (multi-input signature register), auch Mehrfacheingabeschieberegister (multi-input shift register) genannt, das eine sequentielle elektronische Schaltung ist, deren Struktur im Wesentlichen ein Linearrückkopplungsschieberegister (linear feedback shift register), LFSR, ist, das so modifiziert wurde, dass ein Exklusives-Oder-Gatter, XOR-Gatter, die Eingabe eines oder mehrerer Flipflops des LFSR treibt.
  • Wenn dieses Register ausfällt, werden viele Bits umgedreht, und dementsprechend kann ein Bündel von fehlerhaften Bits mit einem einzigen Versatzwert seines Anfangs innerhalb des gesamten Empfangsstroms gespeichert werden (siehe oben). In ähnlicher Weise könnte die DFT Daten aus einer einzelnen Abtastkette puffern und bündeln. Außerdem kann die DFT die Ergebnisse eines einzelnen Blocks, die von mehreren Abtastketten stammen, gepuffert halten und diese getrennt von den Ergebnissen eines anderen Blocks bündeln.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung speichert der Streamingfehlererfassungsblock ferner statistische Informationen, die für die Ausfallanalyse relevant sind.
  • Es wurde festgestellt, dass das Speichern von statistischen Informationen für die Auswertung möglicherweise auftretender Fehler von Vorteil ist. Beispiele für derartige statistische Informationen sind das Zählen der Gesamtzahl von Ausfällen, möglicherweise nach Typ, wie oben beschrieben ist, und/oder das Speichern des Byteversatzes des ersten Ausfallzyklus.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung erfasst die ATE ferner den Befehlsfehler ansprechend auf ein Feststellen, dass das Prüfobjekt eine Befehlssequenz unterbrochen hat, oder auf ein Feststellen, dass die Befehlssequenz abgebrochen ist.
  • Es wurde festgestellt, dass das DUT absichtlich, z. B. ansprechend auf eine Erfassung einer Anomalie, die Befehlssequenz unterbrechen kann, um auf das Vorhandensein der Anomalie hinzuweisen. Eine derartige Anomalie kann auf der Prüfung, dem DUT, aber auch der ATE basieren. Außerdem kann die ATE feststellen, dass die Befehlssequenz aus einem anderen Grund abgebrochen ist, z. B. aufgrund eines Versagens der HSIO-DFT, wodurch typischerweise die gesamte Nutzlast ungültig wird.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weisen die Erwartungsdaten Befehlserwartungsdatenbits auf, die angeben, ob entsprechende empfangene Datenbits ein Befehl oder Nutzlastdaten sind.
  • Es wurde festgestellt, dass Erwartungsdaten, die erwartete Befehlssequenzen in den Empfangsdaten angeben, bei der Bestimmung von Fehlern und den Verarbeitungsanforderungen für die Empfangsdaten vorteilhaft sein können. Die Erwartungsdaten könnten Befehlsflagdaten aufweisen.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weisen die Erwartungsdaten Maskendaten auf, die angeben, welche Bits der empfangenen Daten als Befehlsbits erwartet werden.
  • Es wurde festgestellt, dass alternativ die Befehlssequenzen in den Empfangsdaten unter Verwendung von Maskendaten identifiziert werden kann, die in den entsprechenden Erwartungsdaten beinhaltet sein können.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung legt die ATE ein Befehlsfehlerflag ansprechend auf eine Erfassung des Befehlsfehlers fest.
  • Es wurde festgestellt, dass durch Festlegen oder Setzen eines Flags, hier eines Befehlsfehlerflags, wenn ein Befehlsfehler erfasst wird, die Erfassung von unerwarteten Prozessproblemen beschleunigt wird.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung sind Abbildungsinformationen in dem Speicher gespeichert und die Portverarbeitungseinheit entwürfelt ferner die Daten auf Basis der Abbildungsinformationen, um Fehlerinformationen zu erhalten, die sich direkt auf Versätze der gespeicherten Daten beziehen.
  • Es wurde festgestellt, dass Abbildungsinformationen, die z. B. Informationen sind, die zum Entwürfeln der Ergebnisse einer Prüfung verwendet werden, zum Entwürfeln der Daten, z. B. Niedrigpegelnutzlastdaten der HSIO, verwendet werden können, um Fehlerinformationen, z. B. eine Fehlerabbildung, zu erhalten, die sich direkt auf Versätze der gespeicherten Daten beziehen. Dadurch können die aufgetretenen Fehler identifiziert werden und später mit weniger Aufwand abgerufen werden. Ein Beispiel dafür im Zusammenhang mit einer Block-IO besteht darin, dass die Fehlerinformationen sich auf Versätze in einer Abtastkette beziehen.
  • Alternativ sind die Abbildungsinformationen nicht in dem Speicher der ATE gespeichert, sondern in den Befehlserwartungsdaten enthalten.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung können die Abbildungsinformationen für jedes Prüfobjekt verschieden sein, und die Portverarbeitungseinheit erfasst ferner vor dem Entwürfeln den Nutzlasttyp.
  • Es wurde festgestellt, dass die Abbildungsinformationen in Abhängigkeit von z. B. dem Prüfobjekt verschieden sein können, d. h. das Abbilden und Entwürfeln von Ergebnisdaten kann für unterschiedliche DUTs, z. B. unterschiedliche SOC-Blöcke, optimiert sein, wenn die entsprechenden Abbildungsinformationen zum Erhalten von Fehlerinformationen an das DUT angepasst werden. Ferner ist es vorteilhaft, wenn die ATE, d. h. die PPU, vor dem Entwürfeln den Nutzlasttyp erfasst, der in einem Blockindex eines Befehls gespeichert sein könnte, der aber auch ohne zusätzliche Informationen durch die ATE vor einem Entwürfeln bestimmt werden kann, da die resultierenden Fehlerinformationen, d. h. die Fehlerabbildung, dann in Abhängigkeit vom Nutzlasttyp erhalten und somit in dieser Hinsicht optimiert werden können, z. B. wie jedes Bit in der Nutzlast auf Abtastketten abgebildet wird, und dies kann möglicherweise für einen langen Nutzlast-Burst wiederholt werden.
  • Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung verwirft die Portverarbeitungseinheit ferner Befehlsdaten vor einem Erfassen des Nutzlasttyps.
  • Es wurde festgestellt, dass das Verwerfen von Daten, die als Befehlsdaten identifiziert sind, vor einem Erfassen des Nutzlasttyps die Verarbeitungsgeschwindigkeit der Entwürfelung erhöhen kann. Die Befehlsdaten können auch selektiv verworfen werden, wobei einige Befehlsdaten, z. B. die erste Hälfte der Daten, oder Befehlsdaten eines bestimmten Typs verworfen und einige Befehlsdaten beibehalten werden.
  • Ein Ausführungsbeispiel weist ein Verfahren zum automatisierten Prüfen eines oder mehrerer Prüfobjekte auf, das folgende Schritte aufweist: Empfangen von Daten über eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, die eine Portverarbeitungseinheit mit zumindest einem der Prüfobjekte verbindet, Speichern von Daten, die von verbundenen Prüfobjekten in einem Speicher empfangen werden, Erfassen eines Befehlsfehlers in den empfangenen Daten, die in dem Speicher gespeichert werden, ansprechend auf eine Erfassung des Befehlsfehlers, Begrenzen der Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher.
  • Dieses Verfahren basiert auf denselben Überlegungen wie die oben beschriebene automatisierte Prüfeinrichtung. Es ist jedoch zu beachten, dass das Verfahren durch beliebige der hierin beschriebenen Merkmale, Funktionalitäten und Details ergänzt werden kann, auch in Bezug auf die automatisierte Prüfeinrichtung. Darüber hinaus kann das Verfahren durch die Merkmale, Funktionalitäten und Details der automatisierten Prüfeinrichtung ergänzt werden, sowohl einzeln als auch in Kombination.
  • Ein Ausführungsbeispiel gemäß der Erfindung erzeugt ein Computerprogramm zum Durchführen des hier beschriebenen Verfahrens, wenn das Computerprogramm auf einem Computer läuft.
  • Figurenliste
  • Ausführungsbeispiele gemäß der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beigefügten Figuren beschrieben, wobei:
    • 1 ein Blockschema einer automatisierten Prüfeinrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
    • 2 ein Blockschema von Datenstrukturen zeigt, die angeben, dass ein Prüfobjekt fehlerhaft ist;
    • 3 ein Blockschema eines Datenflusses und von Datenstrukturen bezüglich Befehlsflags zeigt; und
    • 4 ein Blockschema einer beispielhaften Prüfeinrichtung gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung einschließlich Datenflüsse zeigt.
  • In den Figuren bezeichnen ähnliche Referenzzeichen ähnliche Elemente und Merkmale.
  • Detaillierte Beschreibung der Ausführungsbeispiele
  • 1 zeigt ein Blockschema einer automatisierten Testvorrichtung 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die automatisierte Prüfeinrichtung, ATE, dient zum Prüfen eines oder mehrerer Prüfobjekte, DUTs 130. Die automatisierte Prüfeinrichtung 100 weist zumindest eine Portverarbeitungseinheit, PPU 110, auf, die einen Speicher 140 und eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle 120 zum Verbinden mit einem oder mehreren Prüfobjekten 130 aufweist. Alternativ kann die PPU 100 mehr als eine HSIO-Schnittstelle 120 aufweisen, so dass jedes Prüfobjekt 130, das mit der PPU verbunden ist, über eine dedizierte HSIO-Schnittstelle 120 gekoppelt ist.
  • Die DUTs werden geprüft, z. B. indem dieselben mit Prüfdaten versorgt werden und von denselben auf verschiedene Weise Prüfergebnisse empfangen werden. Die PPU kann diese Prüfdaten von einer Entität innerhalb der ATE oder von außerhalb der ATE empfangen, z. B. von einem Datenspeicher (nicht gezeigt). Die PPU kann dann die empfangenen Daten in dem Speicher speichern und die Daten über die eine oder die mehreren HSIO-Schnittstellen den DUTs bereitstellen.
  • Das Prüfen eines Prüfobjekts erfordert eine Datenübertragung in beiden Richtungen zwischen der ATE und den Prüfobjekten. Einige dieser Übertragungen werden über die HSIO übertragen.
  • Die Portverarbeitungseinheiten 110 weisen ferner einen Streamingfehlererfassungsblock 150 auf, um einen Befehlsfehler in den Daten zu erfassen, die von dem einen oder den mehreren DUTs 130 empfangen werden.
  • Die empfangenen Daten weisen Befehlssequenzen und Nutzlast auf. Die von den DUTs empfangenen Daten enthalten Ergebnisdaten, die das Ergebnis der Prüfung auf dem DUT 130 sind. Wenn der Streamingfehlererfassungsblock einen Fehler in den Befehlssequenzen der empfangenen Ergebnisdaten erfasst, ist eine Möglichkeit, dass die Prüfung fehlerhaft ist und daher die Speicherung der Ergebnisdaten unter Umständen nicht sinnvoll ist. Deshalb kann die PPU die Speicherung der Ergebnisdaten mit der fehlerhaften Befehlssequenz begrenzen, um Speicherplatz zu sparen.
  • Darüber hinaus kann die PPU auch die begrenzten Daten, die z. B. für eine Ausfallanalyse gespeichert werden, von der Weiterverarbeitung ausgenommen speichern, wobei die Weiterverarbeitung sich auf die Verfahrensschritte bezieht, die an fehlerfreien Daten durchgeführt würden, z. B. Vergleichen der empfangenen Daten mit Erwartungsdaten, so dass festgestellt werden kann, ob das Prüfobjekt die Prüfung bestanden hat.
  • Bei bestimmten Daten, z. B. Daten, die von einem fehlerhaften Befehl begleitet werden, führt ein derartiger Vergleich zu keinem aussagekräftigen Ergebnis, und daher kann es für die Gesamtleistung einer PPU und damit der ATE von Vorteil sein, die Daten, die, selbst wenn begrenzt, nach einem fehlerhaften Befehl gespeichert werden, auszunehmen.
  • Die Begrenzung der nach einem fehlerhaften Befehl zu speichernden Daten, d. h. das Angeben der zu speichernden Datenmenge, kann als fester Wert, als variabler Wert oder als dynamischer Wert definiert sein. Es könnte nützlich sein, für jeden Fehler die gleiche Datenmenge zu speichern und so eine feste Datenmenge nach einem fehlerhaften Befehl zu definieren, die für eine spätere Analyse gespeichert werden soll. Andererseits kann die Menge auch als ein variabler Wert definiert sein, was als Speicherung einer unterschiedlichen Datenmenge nach einem fehlerhaften Befehl bei jedem Auftreten eines fehlerhaften Befehls in Abhängigkeit von bestimmten Parametern definiert sein kann. Beispiele für solche Parameter können z. B. der Fehlertyp, d. h. Logikfehler (der Befehl befindet sich an einer unzulässigen Stelle in den Daten), Übertragungsfehler (der empfangene Befehl wird fehlerhaft übertragen), Datenunstimmigkeit (die Nutzlast stimmt nicht mit dem Befehl überein), Prüfsummenfehler (der Befehl und/oder die Nutzlast haben eine Prüfsumme (oder eine andere Integritätsprüfung) gesendet, die nicht korrekt ist) oder jeder andere allgemein bekannte Fehlertyp sein. Ein weiteres Beispiel für einen derartigen Parameter ist der Typ des Prüfobjekts und/oder der Typ der ATE. Andere Parameter können sich direkt auf eine beteiligte Vorrichtung beziehen, z. B. Temperatur, Nutzungsstatistik, Speicherstatus, verfügbarer Speicher, verfügbare CPU und dergleichen. Andere Parameter können sich auf die Nutzlast beziehen, sogar darauf, ob dem Befehl überhaupt eine Nutzlast folgt, auf die aktuelle Zeit, die Sendezeit, die Empfangszeit, die Sendedauer usw. Es kann auch ein dynamischer Wert verwendet werden, der sich im Laufe der Zeit auf der Grundlage der oben genannten Parameter ändern kann.
  • Wie oben erwähnt ist, kann der Streamingfehlererfassungsblock ferner die empfangenen Daten mit vorab geladenen Erwartungsdaten vergleichen, um das korrekte Funktionieren des Prüfobjekts, DUT, zu bestimmen. Deshalb können die so genannten Erwartungsdaten vorbereitet und an der ATE vorab geladen sein. Die empfangenen Daten können dann mit den Erwartungsdaten verglichen werden und das korrekte Funktionieren der Vorrichtung kann bestimmt werden. Die empfangenen Daten können sich auf Daten aus der Abtastkette, auf Befehls- und/oder Nutzlastdaten beziehen.
  • Der Streamingfehlererfassungsblock kann auch Nutzlastdatenfehler in den empfangenen Daten erfassen und speichert Daten ansprechend auf die Erfassung eines Fehlers in den empfangenen Daten selektiv in den Speicher. Da die Speicherung von fehlerhaften Daten, hier z. B. von Nutzlastdaten, nutzlos sein könnte, kann auch hier ein Fehler in der Nutzlast erfasst werden und die Speicherung desselben vermieden werden, um Speicherplatz zu sparen. Dadurch kann auch im Falle eines korrekten Befehls der Speicherverbrauch reduziert werden, wenn die Nutzlast einen Fehler enthält. Selektiv kann auch bedeuten, dass in Abhängigkeit von dem Fehler und/oder der Nutzlast oder anderen Parametern überhaupt keine Daten gespeichert werden.
  • Die Erwartungsdaten können auch Maskendaten aufweisen, d. h. Daten, die definieren, welche Bits der empfangenen Daten relevant sind und/oder welche Bits der empfangenen Daten für bestimmte Nutzungen irrelevant sind. Durch die Verwendung von Maskendaten kann die ATE in die Lage versetzt werden, die Daten intelligenter zu verarbeiten. Zum Beispiel können die Erwartungsdaten Maskendaten enthalten, die angeben, dass die empfangenen Daten für eine bestimmte Prüfprozedur drei Datenblöcke enthalten werden, nämlich den Befehl, der die betreffende Prüfung angibt, die Ergebnisdaten, die durch das DUT erzeugt wurden, und die Seed-Daten, die seitens des DUT verwendet wurden, um das Ergebnis zu erzeugen. Da die ATE das DUT mit den Seed-Daten versorgt hat, ist ein Speichern der Seed-Daten in Abhängigkeit von der Prüfung möglicherweise nicht notwendig. Durch selektives Speichern der Ergebnisdaten kann zusätzlicher Speicherplatz eingespart werden.
  • Die empfangenen Daten könnten als deterministischer Strom von Bytes oder auf nichtdeterministische Weise empfangen werden. Wenn die empfangenen Daten als deterministischer Strom empfangen werden, werden die empfangenen Daten und die vorab geladenen Erwartungsdaten in der Reihenfolge der vorab geladenen Erwartungsdaten verglichen. Alternativ können die empfangenen Daten als Daten mit zugeordneten Adressinformationen empfangen werden. Derartige Adressinformationen könnten sich auf die Daten beziehen, die durch direkten Speicherzugriff, DMA, adressiert werden. In diesem Fall werden die empfangenen Daten mit den Erwartungsdaten an einer Speicheradresse verglichen, die den Adressinformationen entspricht, wobei die Speicheradresse eine Adresse eines Speichers ist, der die Erwartungsdaten speichert. Die Erwartungsdaten können seriell verarbeitet werden, wenn die Empfangsdaten der ATE als Datenstrom in einer vorbestimmten Reihenfolge, einem so genannten deterministischen Datenstrom, bereitgestellt werden.
  • Werden die empfangenen Daten in nicht-deterministischer Weise bereitgestellt, z. B. durch Speicheradressen wie eine Adressierung über direkten Speicherzugriff, DMA, so werden die Empfangsdaten mit den Erwartungsdaten verglichen, indem an der durch Adressinformationen angegebenen Speicheradresse auf die entsprechenden Daten zugegriffen wird, die durch die Empfangsdaten, aber auch durch die Erwartungsdaten bereitgestellt oder vorbestimmt sein könnten.
  • Die Erwartungsdaten können auch vorab in einen Durchlaufspeicher, FIFO-Speicher, pro Vorrichtung oder in einen verwalteten Cachespeicher geladen werden, der einer oder mehreren verbundenen Vorrichtungen zugeordnet ist. Dadurch können die Erwartungsdaten für einen schnelleren Vergleich mit den empfangenen Daten vorbereitet werden. Dies ist besonders vorteilhaft, wenn die empfangenen Daten in einer bestimmten Reihenfolge erwartet werden, so dass die ersten vorab geladenen Daten, First-in-Daten, auch die ersten sind, die verglichen werden, und somit auch als erstes aus dem FIFO-Speicher entfernt werden können, First-out-Daten. Für diese Verwendung kann nur ein Teil der Erwartungsdaten, ein so genanntes Fenster von Erwartungsdaten, vorab geladen werden.
  • Alternativ kann ein verwalteter Cachespeicher, der mehr als einem Prüfobjekt zugeordnet sein kann, dazu verwendet werden, Erwartungsdaten oder ein Fenster von Erwartungsdaten vorab zu laden und dann mit den empfangenen Daten von mehr als einem Prüfobjekt zu vergleichen. Auf diese Weise müssen die Erwartungsdaten nicht wiederholt für alle Vorrichtungen geladen oder vorab geladen werden.
  • Die Erwartungsdaten können aus einem Datenspeicher (nicht gezeigt) geladen werden, der mit den PPUs 110 verbunden ist, die auch in Form einer Verkettung (daisy chain) miteinander verbunden sein können. Der Datenspeicher kann ein gemeinsam genutzter Speicherpool sein oder einen gemeinsam genutzten Speicherpool aufweisen. Die PPUs 110 können anschließend Daten direkt von dem Datenspeicher empfangen. Der Datenspeicher kann ein internes Element der ATE 100 sein, kann aber auch ein zugeordnetes Element außerhalb der ATE 100 sein. Die PPUs empfangen Daten, die gemeinsam genutzt werden können, von dem Datenspeicher bzw. von dem gemeinsam genutzten Speicherpool.
  • Die Daten können von den Portverarbeitungseinheiten gemeinsam genutzt werden, d. h. die Daten, die von einer Mehrzahl von Portverarbeitungseinheiten gemeinsam genutzt werden, können durch die PPUs von dem Datenspeicher empfangen werden.
  • Der Datenspeicher kann gemeinsam genutzte Daten an eine oder mehrere der Portverarbeitungseinheiten 110 streamen, und der Datenspeicher kann pro Vorrichtung, d. h. pro Prüfobjekt, Ergebnisdaten, z. B. Ergebnisse oder Ergebnisströme, in einer Mehrzahl von Speicherbereichen speichern. Insbesondere können diese Speicherbereiche funktional und/oder technisch verschieden sein. Dadurch stellen die PPUs die Ergebnisse dem Datenspeicher bereit, und da die Datenraten der Ergebnisdaten pro Prüfobjekt abweichen sein können, z. B. kleiner, z. B. um zumindest einen Faktor zehn, als die Datenrate eines anderen Ergebnisses oder Ergebnisstroms sein können, kann es vorteilhaft sein, die Ergebnisse abhängig von ihren besonderen Charakteristika in unterschiedlichen Speicherbereichen zu speichern. Außerdem sind das Volumen und die Bandbreite, die für das Speichern der Ergebnisse erforderlich sind, wesentlich kleiner als bei gemeinsam genutzten Stimulusdaten, weshalb diese auch in unterschiedlichen Speicherbereichen gespeichert werden könnten.
  • Die Portverarbeitungseinheiten, PPUs 110, können ferner gemeinsam genutzte Daten von dem gemeinsam genutzten Speicherpool an zumindest eine andere Portverarbeitungseinheit weiterleiten. Bei dem Ausführungsbeispiel, bei dem die PPUs miteinander oder zumindest mit einer anderen PPU verbunden sind, können die PPUs die Daten an die anderen PPUs oder zumindest an eine andere PPU weiterleiten. Dadurch werden die Speicherzugriffe, d. h. Lese- und Schreibzugriffe, von den PPUs auf den Datenspeicher reduziert.
  • Ebenso können die PPUs 110 gemeinsam genutzte Daten von dem gemeinsam genutzten Speicherpool von zumindest einer anderen Portverarbeitungseinheit empfangen. Bei dem Ausführungsbeispiel, bei dem die PPUs miteinander oder zumindest mit einer anderen PPU verbunden sind, können die PPUs die Daten von den anderen PPUs oder zumindest von einer anderen PPU empfangen. Dadurch werden auch die Speicherzugriffe, d. h. Lese- und Schreibzugriffe, von den PPUs auf den Datenspeicher 150 reduziert.
  • Eine besondere Form der oben beschriebenen ausführlichen Verbindung der PPUs ist eine Verkettung, bei der jede PPU mit zwei anderen PPUs verbunden ist, so dass eine Reihe von PPUs erzielt wird, und die erste PPU mit dem Datenspeicher verbunden ist.
  • Andere Topologien sind ebenfalls möglich, z. B. eine vom Typ Mesh, Stern, vollständig verbunden, Linie, Baum, Bus. Die erste und die letzte PPU können außerdem miteinander verbunden sein, so dass ein Ring gebildet wird, jedoch können dieselben auch nicht miteinander verbunden sein, so dass eine Reihe von PPUs gebildet wird (echte Verkettung). Jede PPU kann mit dem Datenspeicher verbunden sein.
  • Alternativ kann zwischen dem Datenspeicher und den PPUs ein Speicherhub (nicht gezeigt) vorhanden sein. Der Datenspeicher kann gemeinsam genutzte Daten an einen Speicherhub streamen, von wo aus die gemeinsam genutzten Daten an die PPUs 110 gesendet werden können. Der Speicherhub kann die Gesamteffizienz der ATE 100 verbessern.
  • Die PPUs 110 können die gemeinsam genutzten Daten von dem Speicherhub empfangen. Wenn der Speicherhub mehr als eine PPU 110 mit gemeinsam genutzten Daten versorgt, könnte er auch als zentraler Speicherhub betrachtet werden. Es sind auch andere Topologien möglich, wie oben erörtert wird.
  • Außerdem kann der FIFO-Speicher oder verwaltete Cachespeicher die Nutzung, z. B. den Vergleich mit den empfangenen Daten, von den zugeordneten verbundenen DUTs verfolgen und Daten verwerfen, die verwendet, d. h. verglichen, wurden oder aus einem anderen Grund nicht mehr behalten werden müssen.
  • Die ATE kann ein bestimmtes Prüfobjekt als fehlerhaft erkennen, ansprechend auf ein Feststellen auf Basis der Verfolgung der Datennutzung, dass das bestimmte Prüfobjekt einem Datenstrom nicht folgt, das heißt, wenn ein bestimmtes Prüfobjekt Daten so langsam bereitstellt, dass die Erwartungsdaten in dem verwalteten Cache, der dem bestimmten Prüfobjekt zugeordnet ist, viel länger ungenutzt bleiben als die entsprechenden Erwartungsdaten, die anderen Prüfobjekten zugeordnet sind, kann das DUT als fehlerhaft erkannt werden.
  • Wenn im Falle eines verwalteten Cachespeichers die entsprechenden beibehaltenen Erwartungsdaten nur für eines von mehreren Prüfobjekten in dem Speicher behalten werden, könnte die Effizienz nachteilig beeinflusst werden, und indem das Prüfobjekt, für das die speziellen Erwartungsdaten beibehalten werden, als fehlerhaft betrachtet wird, können die Erwartungsdaten aus dem verwalteten Cachespeicher verworfen und die Gesamteffizienz verbessert werden. Außerdem könnte, wenn erwartet wird, dass die empfangenen Daten einem bestimmten Datenstrom oder einer Struktur folgen, und ein DUT die empfangenen Daten nicht in diesem Datenstrom oder einer Struktur liefert, dasselbe als fehlerhaft betrachtet werden.
  • Dies ist auch in 2 dargestellt. Danach sind die Datenelemente dx bis dx+7 Erwartungsdaten, die in einem Datenspeicher oder Speicherhub wie oben beschrieben gespeichert sind. Entsprechende drei Elemente wurden vorab in den Speicher 140 der PPU geladen und werden dort zum Vergleichen bereitgehalten.
  • Zu den jeweiligen Zeitpunkten tn, tn+1, tn+2 und tn+3 sind dies dx+1, dx+2 und dx+3; dx+2, dx+3 und dx+4; dx+3, dx+4 und dx+5 bzw. dx+4, dx+5 und dx+6.
  • Bei t = tn hat die PPU 110 dx+1, dx+2 und dx+3 im lokalen Speicher 140 zum Vergleichen verfügbar. Die PPU 110 empfängt dx+3 sowohl von DUTA als auch von DUTB, die zwei der DUTs 130 sind.
  • Anschließend wird dx+1 aus dem Speicher verworfen, und dx+4 wird in den nun verfügbaren Speicherplatz des Speichers 140 geladen. PPU 110 hat nun dx+2, dx+3 und dx+4 in dem Speicher 140. Bei t = tn+1 sendet DUTB dx+4, aber DUTA sendet immer noch dx+3.
  • Anschließend wird dx+2 aus dem Speicher verworfen, und dx+5 wird in den nun verfügbaren Speicherplatz des Speichers 140 geladen. PPU 110 hat nun dx+3, dx+4 und dx+5 in dem Speicher 140. Bei t = tn+2 sendet DUTB dx+5, aber DUTA sendet immer noch dx+3.
  • Anschließend wird dx+3 aus dem Speicher verworfen, und dx+6 wird in den nun verfügbaren Speicherplatz des Speichers 140 geladen. PPU 110 hat nun dx+4, dx+5 und dx+6 in dem Speicher 140. Bei t = tn+3 sendet DUTB dx+5, aber DUTA sendet immer noch dx+3. Da die Übertragung von DUTA nicht mehr verglichen werden kann, ohne dx+3 erneut zu laden, kann DUTA alternativ als fehlerhaft betrachtet werden, so dass der Fortschritt von DUTB, bei dem es sich um mehr als eine Vorrichtung handeln kann, nicht verzögert wird.
  • Wie in der Kurzdarstellung ausführlich beschrieben ist, können die Daten auch in einer komprimierten Darstellung gespeichert werden. Dies bezieht sich natürlich auf alle Speicher und alle Daten. Und die Komprimierung kann dynamisch eingestellt sein. Zum Beispiel, um mit einer erwarteten Fehlerverteilung übereinzustimmen.
  • Die ATE kann außerdem empfangene Daten, die wahrscheinlich fehlerhaft sind, in der Nähe in dem empfangenen Datenstrom halten, wie oben erörtert wird.
  • Der Streamingfehlererfassungsblock kann darüber hinaus statistische Informationen speichern, die für die Ausfallanalyse relevant sind.
  • Die ATE kann ferner ansprechend auf ein Feststellen, dass das Prüfobjekt eine Befehlssequenz unterbrochen hat, einen Befehlsfehler erfassen, was das DUT absichtlich tun kann, z. B. ansprechend auf eine Erfassung einer Anomalie, um auf das Vorhandensein der Anomalie hinzuweisen. Eine derartige Anomalie kann auf der Prüfung, dem DUT, aber auch der ATE basieren.
  • Außerdem kann die ATE feststellen, dass die Befehlssequenz aus einem anderen Grund abgebrochen ist, z. B. aufgrund eines Versagens der HSIO-DFT, wodurch typischerweise die gesamte Nutzlast ungültig wird.
  • Die Erwartungsdaten können Befehlserwartungsdatenbits aufweisen, die angeben, ob entsprechende empfangene Datenbits ein Befehl oder Nutzlastdaten sind, wodurch die Bestimmung von Fehlern und Verarbeitungsanforderungen für die Empfangsdaten erleichtert werden. Die Erwartungsdaten könnten z. B. Befehlsflagdaten aufweisen. Ferner können die Erwartungsdaten Maskendaten aufweisen, die angeben, welche Bits der empfangenen Daten als Befehlsbits erwartet werden. Eine derartige Befehlsflagstruktur, bei der eine Maske im Befehlsflagspeicher 380 gezeigt wird, ist in 3 dargestellt, wo dieselbe als einzelner Speicher gezeigt wird, aber dieselbe könnte auch, wie oben erörtert, ein Teil der Erwartungsdaten sein, die in dem erwarteten Antwortspeicher 350 gespeichert sind, der z. B. der Datenspeicher 350 sein kann oder denselben aufweisen kann. In dem Befehlsflagspeicher, der mit der Datenausgabe des Prüfobjekts 330 übereinstimmt, gibt der Wert 1 an, dass entsprechende Bits der Ausgabedaten Teil eines Befehls sind. Der Wert 0 gibt an, dass die entsprechenden Bits der Ausgabedaten nicht Teil eines Befehls sind und somit z. B. Nutzlast sind. In bestimmten Fällen kann der Wert 1 auch verwendet werden, um einfach nur Nicht-Nutzlastdaten anzugeben, und daher hat der für den LEERLAUF-Befehl verwendete Block entsprechende Bits mit dem Wert 1 in dem Befehlsflagspeicher für den Befehl selbst (d.h. die ersten 4 Bits) und die folgenden 8 Bits, die weder Befehl noch Nutzlast sind.
  • Ferner kann die ATE ein Befehlsfehlerflag ansprechend auf eine Erfassung des Befehlsfehlers festlegen, wodurch die Erfassung von unerwarteten Prozessproblemen beschleunigt wird.
  • In der ATE 100 können ferner Abbildungsinformationen gespeichert werden, z. B. in dem Speicher 140. Die Portverarbeitungseinheit 110 kann die Daten auf Basis der Abbildungsinformationen entwürfeln, um Fehlerinformationen zu erhalten, die sich direkt auf Versätze der gespeicherten Daten beziehen. Diese Abbildungsinformationen können Informationen sein, die zum Entwürfeln der Ergebnisse einer Prüfung verwendet werden, d. h. die von den DUTs zurückgegebenen Daten, die als Ergebnisdaten einer oder mehrerer Prüfungen betrachtet werden, können entwürfelt werden. Ein Beispiel für die Daten sind z. B. Niedrigpegelnutzlastdaten der HSIO. Durch Entwürfeln können Fehlerinformationen, z. B. eine Fehlerabbildung, erhalten werden, die sich direkt auf Versätze der gespeicherten Daten beziehen. Dadurch können die aufgetretenen Fehler identifiziert werden und später mit weniger Aufwand abgerufen werden. Ein Beispiel dafür im Zusammenhang mit einer Block-IO besteht darin, dass die Fehlerinformationen sich auf Versätze in einer Abtastkette beziehen.
  • Jedoch müssen die Abbildungsinformationen nicht in dem Speicher 140 direkt gespeichert werden, sondern können Teil der Befehlserwartungsdaten sein. Außerdem können die Abbildungsinformationen für jedes Prüfobjekt 130 verschieden sein, und die Portverarbeitungseinheit 110 erfasst vor dem Entwürfeln den Nutzlasttyp, um die korrekten Abbildungsinformationen zu verwenden.
  • Die Abbildungsinformationen können aus unterschiedlichen Gründen in Abhängigkeit von dem Prüfobjekt verschieden sein. Als Beispiel kann das Abbilden und Entwürfeln von Ergebnisdaten für unterschiedliche DUTs, z. B. unterschiedliche SOC-Blöcke, optimiert sein, wenn die entsprechenden Abbildungsinformationen zum Erhalten von Fehlerinformationen an das DUT angepasst werden. Ferner ist es vorteilhaft, wenn die ATE, d. h. die PPU, den Nutzlasttyp erfasst, der in einem Blockindex eines Befehls gespeichert sein könnte, der aber auch ohne zusätzliche Informationen durch die ATE vor einem Entwürfeln bestimmt werden kann, da die resultierenden Fehlerinformationen, d. h. die Fehlerabbildung, dann in Abhängigkeit von dem Nutzlasttyp erhalten und somit in dieser Hinsicht optimiert werden können, z. B. wie jedes Bit in der Nutzlast auf Abtastketten abgebildet wird, und dies kann möglicherweise für einen langen Nutzlast-Burst wiederholt werden.
  • Die PPU 110 kann ferner vor einem Erfassen des Nutzlasttyps Befehlsdaten verwerfen, falls beispielsweise bestimmt oder vorab festgelegt wird, dass lediglich die Nutzlast weiterverarbeitet werden muss, anschließend kann ein Verwerfen von Daten, die als Befehlsdaten identifiziert sind, vor einem Erfassen des Nutzlasttyps die Verarbeitungsgeschwindigkeit der Entwürfelung erhöhen. Die Befehlsdaten können auch selektiv verworfen werden, wobei einige Befehlsdaten, z. B. die erste Hälfte der Daten, oder Befehlsdaten eines bestimmten Typs verworfen und einige Befehlsdaten beibehalten werden.
  • Es wird darauf hingewiesen, dass die ATE 100 optional durch beliebige der hierin beschriebenen Merkmale, Funktionalitäten und Details ergänzt werden kann, sowohl einzeln als auch in Kombination.
  • Ein Ausführungsbeispiel weist ein Verfahren zum automatisierten Prüfen eines oder mehrerer Prüfobjekte auf, das folgende Schritte aufweist: Empfangen von Daten über eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, die eine Portverarbeitungseinheit mit zumindest einem der Prüfobjekte verbindet, Speichern von Daten, die von verbundenen Prüfobjekten in einem Speicher empfangen werden, Erfassen eines Befehlsfehlers in den empfangenen Daten, die in dem Speicher gespeichert werden, ansprechend auf eine Erfassung des Befehlsfehlers, Begrenzen der Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher.
  • Dieses Verfahren basiert auf denselben Überlegungen wie die oben beschriebene automatisierte Prüfeinrichtung. Es sollte jedoch darauf hingewiesen werden, dass das Verfahren durch beliebige der hierin beschriebenen Merkmale, Funktionalitäten und Details ergänzt werden kann, auch in Bezug auf die automatisierte Prüfeinrichtung. Darüber hinaus kann das Verfahren durch die Merkmale, Funktionalitäten und Details der automatisierten Prüfeinrichtung ergänzt werden, sowohl einzeln als auch in Kombination.
  • Ein Ausführungsbeispiel gemäß der Erfindung erzeugt ein Computerprogramm zum Durchführen des hier beschriebenen Verfahrens, wenn das Computerprogramm auf einem Computer läuft.
  • Details und Ausführungsbeispiele
  • Im Folgenden werden einige Überlegungen, die der vorliegenden Erfindung zugrunde liegen, erörtert und mehrere Lösungen beschrieben. Insbesondere wird eine Reihe von Details offenbart, die optional in jede der hierin offenbarten Ausführungsbeispiele eingeführt werden können.
  • Motivation
  • Strukturelle Prüfungen ermöglichen eine systematische Prüfabdeckung von einzelnen Strukturen („Zellen“), die die komplexen Funktionen eines digitalen Blocks innerhalb eines SOC [System on a Chip] implementieren. Die strukturelle Prüfung umfasst eine Mehrzahl von Prüfverfahren, einschließlich, aber nicht beschränkt auf Speicher-BIST, Logik-BIST (auf dem Chip erzeugte Struktur) und Abtastprüfung (extern bereitgestellte Struktur). Einzelne Tests Prüfungen zu Prüfblöcken kombiniert: z. B. wird die Abtastprüfung hierarchisch auf Blöcke angewendet (seriell oder parallel).
  • Fortgeschrittene strukturelle Prüfverfahren wenden eine Kombination aus extern bereitgestellten Prüfdaten (Stimulus von ATE [Automatisierte Prüfeinrichtung]) und einer auf dem Chip befindlichen DFT [Device for Testing] an, die extern bereitgestellte Prüfdaten (Seeds) zu Abtastketten erweitert. Die Prüfergebnisse werden verdichtet und zu einer reduzierten Menge an Prüfdaten komprimiert, die der primären IO eines SOC zur Verfügung gestellt werden (Empfangsdaten), die die ATE mit erwarteten Daten vergleicht (einschließlich der Fähigkeit, Empfangsdaten zu maskieren).
  • Ohne die Anwendung der vorgeschlagenen Lösung einzuschränken, wird im Folgenden auf die Abtastprüfung als allgemeine Darstellung der strukturellen Prüfung wie oben beschrieben Bezug genommen.
  • Es entstehen jedoch mit der zunehmenden Komplexität von SOCs, die durch neue Herstellungsprozesse ermöglicht wird, Herausforderungen an die kosteneffiziente Skalierung von Abtastprüfungen.
    • • Eskalierende Menge an Prüfdaten, die auf der ATE gespeichert werden müssen
    • • Eskalierende Prüfzeiten zum Zuführen der Prüfdaten durch die SOC IO hindurch
    • • Zunehmende On-Chip-Komplexität, die die Verteilung von Prüfdaten auf zu prüfende Blöcke und das Erzeugen der erforderlichen Taktsignale vor eine Herausforderung stellt.
  • Darüber hinaus erfordern die Qualitäts- und Zuverlässigkeitserwartungen an komplexe SOCs strukturelle Prüfungen, wenn das SOC in der Endanwendung eingesetzt wird: z. B. in einem Automobil- oder Kommunikationsinfrastruktursystem.
  • Es gibt mehrere mögliche Lösungen für diese Herausforderungen:
    • • Prüfdatenlieferung durch funktionale Hochgeschwindigkeits-E/A-Schnittstellen: z. B. durch USB oder PCIe. Dies führt zu folgendem Ergebnis:
      • ◯ Ermöglicht höhere Datenraten
      • ◯ Ermöglicht strukturelle Prüfungen in der Endanwendung
      • ◯ Erfordert ein Entkoppeln der Zeiten auf der ATE und auf dem DUT [Prüfobjekt] (wie es für HSIO-Datenkommunikation typisch ist). Jede genaue Zeitsynchronisation erfordert zeitkritische Signale zwischen dem DUT und der ATE oder anderen zusätzlichen Vorrichtungen (z.B. Oszilloskop).
    • • Erweiterte On-Chip-Prüfdatenverarbeitung, Prüfplanung und Prüfdatenkommunikation mit zu prüfenden Blöcken.
      • ◯ Typische vorgeschlagene Elemente:
        • ein Kommunikationsprotokoll zwischen der ATE und der HSIO-DFT: z. B. 1149.10
        • Verwendung eines chipintegrierten Netzwerks (Network on chip, NOC) zum flexiblen Weiterleiten von Prüfdaten, wobei die lokale DFT die Testanwendung verwaltet
        • Flexible Prüfplanung seriell oder parallel für mehrere Blöcke.
      • ◯ Dies führt zu folgendem Ergebnis:
        • Erfordert komplexe Interaktionen zur effektiven Planung einer Prüfdatenübertragung zu dem und von dem DUT
        • Ermöglicht eine Kommunikation auf höherer Ebene (Semantik), die über den Prüfport übertragen wird und neue Ebenen der Steuerung bietet, z. B.:
          • • DFT stellt vorverarbeitete Ergebnisse bereit, die die Entscheidungsfindung erleichtern und ertragsbezogenes Lernen ermöglichen
          • • DFT steuert die ATE-Leistung
  • Aspekt 1: Lösung für gemeinsame Datennutzung an mehreren Standorten, Datenstreaming, Datenverarbeitung
  • Problem: Das eskalierende Prüfdatenvolumen erfordert die gemeinsame Nutzung von Prüfdaten über mehrere parallel geprüfte Standorte hinweg:
    • • Verschiedene Arten von Daten könnten gemeinsam genutzt werden und müssen von einem gemeinsam genutzten Datenspeicher zu der DUT-Schnittstelle („Port“) oder zu Verarbeitungseinheiten pro Standort gestreamt werden. Daten, die gemeinsam genutzt werden könnten, umfassen die folgenden, ohne auf diese beschränkt zu sein:
      • ◯ Antriebsdaten (Stimulus)
      • ◯ Erwartungsdaten (einschließlich Maskendaten, die mit Erwartungsdaten oder in einem separaten Speicherbereich gespeichert sind)
      • ◯ Hilfsdaten, die für die Nachbearbeitung der Ergebnisse benötigt werden
    • • Der Datenfluss muss mit der HSIO-Datenrate Schritt halten, wodurch die Auswirkungen auf die resultierende Prüfdatenübertragung pro Standort minimiert werden.
    • • Im Idealfall könnte der Datenspeicher über alle Standorte hinweg gemeinsam genutzt werden, wobei Schnittstelle zu den Portverarbeitungseinheiten der ATE gebildet würde. Dies würde jedoch zu ungemein komplexen und teuren Datenschnittstellen führen. Es muss eine geeignete Architektur gefunden werden, um die gemeinsame Nutzung ohne Auswirkungen auf die Prüfausführung zu maximieren.
    • • Daten pro Standort können nicht gemeinsam genutzt werden. Dazu gehören:
      • o Empfangsdaten von dem DUT
      • ◯ Ergebnisse, die nach einem Vergleichen der Empfangsdaten mit den Erwartungsdaten gespeichert werden
      • ◯ Prüfbedingungen pro Standort: z. B. DUT-spezifischer On-Chip-Aufbau, der dem DUT als Präambel für die eigentliche Prüfdatenübertragung kommuniziert wird.
  • Lösung:
    • 4 zeigt einen beispielhaften Datenfluss. Derselbe stellt jedoch nur einen einzelnen Standort dar und unterscheidet nicht zwischen dem Datenspeicher und der einen oder den mehreren Portverarbeitungseinheiten (PPU).
  • Lösungskomponenten:
    1. 1. Datenspeicher:
      • ◯ Speicherteilsystem auf der ATE-Hardware, das einen großen, gemeinsam genutzten Speicherpool implementiert
      • ◯ Typischerweise als der schnellste verfügbare Commodity-RAM implementiert
      • ◯ Wird zum Streamen von gemeinsam genutzten Daten an die Portverarbeitungseinheiten verwendet. Um die Bandbreitennutzung zu minimieren, werden Daten, die für eine Prüfausführung an mehreren Standorten gemeinsam genutzt werden, vorzugsweise nur einmal seitens einer PPU oder eines Speicherhubs gelesen.
      • ◯ Wird zum Speichern von Ergebnisströmen pro DUT in kontrollierten Speicherbereichen verwendet. Das Volumen und die Bandbreite, die für das Speichern der Ergebnisse erforderlich werden, sind vorzugsweise wesentlich kleiner als bei gemeinsam genutzten Stimulusdaten.
      • ◯ Auf einer ATE-Karte können ein oder mehrere Datenspeicher vorhanden sein. Jeder Datenspeicher erfordert eine Replikation der Datenflussarchitektur.
    2. 2. PPU - Portverarbeitungseinheit:
      • ◯ Schnittstellen mit einem oder mehreren DUTs
      • ◯ Implementiert HSIO-, Debug- und Steuerports für DUTs
      • ◯ Empfängt Daten von dem Datenspeicher entweder direkt oder von einer anderen PPU (Verkettung) oder einem zentralen Speicherhub weitergeleitet.
      • ◯ Verwendet Pufferung (FIFOs) und Cachespeicher, um Lesezugriffe auf die Datenquelle derselben zu minimieren.
      • ◯ Bewältigt fehlerhafte bzw. langsame Sites auf elegante Weise: Der Benutzer kann z. B. eine maximale Verarbeitungsdisparität angeben, die angibt, dass eine Vorrichtung ausfällt, wenn dieselbe über diese Zahl hinaus hinter den Empfang zurückfällt.
      • ◯ Kann gemeinsam genutzte Daten an eine oder mehrere andere PPUs weiterleiten
      • ◯ Implementiert den Vergleich pro DUT von Erwartungsdaten mit Empfangsdaten und berechnet Ausfalldaten pro DUT
      • ◯ Sendet Ausfalldaten an den Datenspeicher - möglicherweise über eine andere PPU oder einen Speicherhub.
    3. 3. Speicherhub (optional):
      • ◯ Wird zur Implementierung einer Sternarchitektur verwendet.
      • ◯ Bietet Datenschnittstellen für jede PPU
      • ◯ Verwendet Pufferung (FIFOs) und Cachespeicher, um Lesezugriffe auf den Datenspeicher zu minimieren.
    4. 4. Ergebnisdatenspeicher (optional):
      • ◯ Unabhängige Datenspeicher für Ergebnisse können aus folgenden Gründen an jede PPU oder zentral an einen Speicherhub angeschlossen sein:
        • ◯ Bietet eine Speicherschnittstelle, die unabhängig von der Schnittstelle ist, die zum Streamen von gemeinsam genutzten Daten an die PPUs verwendet wird.
        • ◯ Bietet eine Speicherschnittstelle für den Zugriff auf Ergebnisdaten zum Nachbearbeiten oder Hochladen, ohne die nächste Prüfausführung zu stören.
  • Aspekt 2: Lösung für Streamingfehlererfassung und Fehlerkomprimierung
  • Problem: Eine traditionelle ATE in Echtzeit tastet die primären Ausgaben der Strukturprüfungen ab und vergleicht dieselben mit Erwartungsdaten (inkl. Maskierung). Dieser Prozess wird durch eine deterministische, zyklische E/A von Prüfdaten ermöglicht.
  • Die Abtastprüfung durch HSIO ist jedoch von Natur aus nicht-deterministisch und gebündelt. Außerdem handelt es sich bei der Abtastausgabe um Nutzlastdaten in einem Protokollstapel: d. h. die Daten, die zu den Abtastketten gehen bzw. von denselben kommen, werden zu einer seriellen Nutzlast verwürfelt, die mit Befehlen „getaggt“ ist. USB-Empfangsdaten (Befehle und Nutzlasten) werden in dem Speicher gespeichert, bevor dieselben verarbeitet werden: z. B. verglichen mit Erwartungsdaten.
  • Dieser Ansatz hat zwei Probleme:
    1. 1. Die Datenverarbeitung hat erhebliche Anforderungen an die Speicherbandbreite, wenn dieselbe empfangene Daten speichert und später wieder liest, um sie mit erwarteten Daten zu vergleichen, die an einem anderen Speicherort gespeichert sind. Dies wird weiter vervielfacht, indem mehrere Geräte parallel geprüft werden.
    2. 2. Die Entscheidung, ob eine Abtaststruktur fehlgeschlagen ist, basiert auf der Nachbearbeitung der über USB-Pakete empfangenen Daten. Im schlimmsten Fall dominiert der Vergleich der empfangenen Daten mit den Erwartungsdaten die Gesamtausführungszeit: d. h. er dauert länger als der Datenstrom durch die HSIO.
  • Lösung:
    • Ein in die Portverarbeitungseinheit eingebetteter Streamingfehlererfassungsblock, der gerade empfangene Abtastdaten mit vorab geladenen Erwartungsdaten vergleicht, um lediglich dann in den Speicher zu schreiben, wenn ein tatsächlicher Fehler erfasst wurde. Beachten Sie, dass Erwartungsdaten Maskendaten umfassen können.
  • Im Einzelnen:
    1. 1. Unter Verwendung der oben beschriebenen Datenstreaming-Architektur behält eine Portverarbeitungseinheit ein Fenster von Erwartungsdaten bei, das bereitsteht, um mit empfangenen Datenpaketen verglichen zu werden. Die Erwartungsdaten werden vorab in einen FIFO pro Standort oder in einen verwalteten Cachespeicher geladen, der die Nutzung seiner Daten durch alle aktiven Standorte verfolgt, bevor die Daten verworfen werden. Dadurch wird vermieden, dass die Erwartungsdaten aus dem großen Datenspeicher ausgelesen werden - möglicherweise wiederholt für jeden Standort. Falls eine Vorrichtung dem Datenstrom nicht folgt, kann die PPU eine Ausnahme auslösen, den Standort als fehlerhaft erklären und nur die verfügbaren Fehlerdaten speichern.
    2. 2. Beim Empfangen von Abtastdaten auf der HSIO vergleicht die Portverarbeitungseinheit die empfangenen Daten mit den „übereinstimmenden“ vorab geladenen Erwartungsdaten. Im Falle einer HSIO-Kommunikation als deterministischer Strom von Bytes bezieht sich „übereinstimmend“ auf den Vergleich empfangener Daten in der Reihenfolge der vorab geladenen Erwartungsdaten. Im Falle einer DMA-Übertragung von empfangenen Daten stimmt die PPU den Byteversatz der geschriebenen Empfangsdaten mit dem Byteversatz in den Erwartungsdaten ab. Der Byteversatz verhält sich wie eine Speicheradresse.
    3. 3. Die Fehlerinformationen werden in einer komprimierten Darstellung nach außen gestreamt, um das Datenvolumen und die erforderliche Bandbreite der Speicherschnittstelle zu minimieren. Über die Standarddatenkomprimierung hinaus (z. B. Lauflängencodierung von fehlerhaften Bits) kann der Streamingfehlererfassungsblock prüfspezifische Formate implementieren (z. B. wie sie auch von einer traditionellen ATE geliefert werden). Die Komprimierung kann dynamisch an die erwartete Fehlerverteilung angepasst werden: z. B. können die empfangenen Daten Registerwerte enthalten, was zu kurzen Fehlerbündeln führt, sobald ein Registerwert falsch ist. Dies kann effektiv durch einen Header mit dem Byteversatz beim Start des Fehlerbursts und einem Fehlerwort, das sich bis zu einem Registerwert erstreckt, gespeichert werden. Die Komprimierung von Ergebnisdaten kann verbessert werden, wenn die USB-DFT Empfangsdaten, die wahrscheinlich fehlerhaft sind, in der Nähe in dem seriellen USB-Empfangsdatenstrom hält. Die USB-DFT könnte verwandte Bits puffern, um dieselben innerhalb eines kleinen Bereichs von seriellen Bits nach außen zu streamen: z. B. den Wert eines MISR-Registers puffern, das über mehrere Abtastketten empfangen wurde. Wenn dieses Register ausfällt, werden viele Bits umgedreht, und dementsprechend kann ein Bündel von fehlerhaften Bits mit einem einzigen Versatzwert seines Anfangs innerhalb des gesamten Empfangsstroms gespeichert werden (siehe Absatz oben). In ähnlicher Weise könnte die USB-DFT Daten aus einer einzelnen Abtastkette puffern und bündeln. Außerdem kann die USB-DFT die Ergebnisse eines einzelnen Blocks, die von mehreren Abtastketten stammen, gepuffert halten und diese getrennt von den Ergebnissen eines anderen Blocks bündeln. Über die einzelnen Fehlerinformationen hinaus speichert der Streamingfehlererfassungsblock Statistiken, die für die Ausfallanalyse relevant sind: z. B. Zählen der Gesamtzahl von Ausfällen, Speichern des Byteversatzes des ersten Ausfallzyklus.
    4. 4. Ein einzigartiges Merkmal der Ergebnisverarbeitung von Abtasten-über-HSIO ist, dass ein Fehler nicht nur in der Nutzlast der Abtastausgabedaten, sondern auch in dem Befehlscode auftreten kann: z. B.
      1. a. Die HSIO-Abtast-DFT hat eine Anomalie festgestellt, die sie kommuniziert, wobei dadurch die Befehlssequenz unterbrochen wird.
      2. b. Die HSIO-Abtast-DFT selbst ist defekt, wodurch typischerweise die gesamte Nutzlast ungültig wird.
      Eine Lösung hierfür wäre das Speichern eines zusätzlichen Erwartungsdatensatzes, wobei jedes Bit beschreibt, ob das jeweilige Empfangsdatenbit ein Befehl ist: Befehlsflagdaten. Immer wenn ein Fehler in einem Befehl erfasst wird, wird ein „Befehlsfehler“-Flag gesetzt, um das Ergebnis zu qualifizieren und das Erfassen von unerwarteten Prozessproblemen zu beschleunigen. Wann immer ein derartiger Fehler auftritt, kann der Streamingfehlererfassungsblock in einen Modus wechseln, der die Speicherung nutzloser und zufälliger Nutzlastdaten minimiert oder möglicherweise die folgenden Bits als Informationsnutzlast über den Zustand des HSIO-Abtast-DFT-Blocks erfasst.
    5. 5. Über das effiziente Erfassen, dass ein Fehler aufgetreten ist, und das Speichern des Ergebnisses hinaus kann das Verarbeiten von Streamingergebnissen die Ergebnisse so entwürfeln, dass die Fehlerabbildung nicht auf dem Bitversatz der in den seriellen USB-Stream mit seiner Befehlsstruktur gepackten Abtastdaten basiert, sondern sich direkt auf Versätze der Block-IO bezieht: z. B. Versätze in einer Abtastkette. Das Entwürfeln erfordert Abbildungsinformationen, die mit der Abtaststruktur als „Anmerkungen“ gespeichert werden müssen. Diese könnte mit den Befehlsflagdaten zusammengeführt werden, um Befehlsdaten herauszufiltern, die im Vergleich zu der Abtast-IO eines geprüften SOC-Blocks inhärent irrelevant sind. Darüber hinaus können die Abbildungsinformationen unterschiedlich sein, sobald Empfangsdaten verschiedener SOC-Blöcke übermittelt wurden. Dementsprechend kann der Entwürfelungsprozess zunächst den Nutzlasttyp erfassen (z. B. gespeichert in einem Blockindex eines Befehls), bevor die korrekte Entwürfelungsabbildung angewendet wird: z. B. wie jedes Bit in der Nutzlast auf Abtastketten abgebildet wird - möglicherweise wiederholt für einen langen Nutzlast-Burst. Insgesamt lässt sich der Fluss einer Streamingentwürfelung in drei Phasen unterteilen, die sich bei einer effektiven Implementierung sequenzieren lassen:
      1. a. Verwerfen von Befehlsdaten
      2. b. Erfassen des Nutzlasttyps. Diese Stufe kann auch Wiederholungen von identisch strukturierter Nutzlast verarbeiten, die in einem einzigen Befehlsrahmen codiert ist.
      3. c. Entwürfeln der Nutzlast mit anwendbarer Abbildung
  • Aspekt 3: Lösung zum Reduzieren des erforderlichen Prüfdatenvolumens
  • Problem: Das Prüfdatenvolumen eskaliert. Dies wirkt sich sowohl auf die Speicherung als auch auf die erforderliche Bandbreite beim Speicherzugriff und beim Datenstreaming an mehreren Standorten aus.
  • Lösung:
    • Sowohl Maskendaten als auch Befehlsflagdaten können mit Algorithmen komprimiert werden, die eine Echtzeitdekomprimierung kurz vor dem tatsächlichen Vergleich mit den Empfangsdaten ermöglichen.
  • Da Maskenbits selten sein sollten und eher für Fehlerbündelung anfällig sind, kann die Lauflängencodierung effektiv und einfach zu decodieren sein.
  • Befehlsflagdaten können lauflängencodiert oder algorithmisch komprimiert sein: z. B. wenn ein Empfangswort in Befehls- und Nutzlastbits aufgeteilt ist.
  • Aspekt 4: Lösung zum Reduzieren des zeitlichen Mehraufwands von Sequenzbefehlen
  • Problem: HSIO-Abtastprüfungen sind von anderen Aktionen umgeben: z. B. Einrichten der Vorrichtung vor dem HSIO-Abtasten, Ändern der Testbedingungen zwischen HSIO-Abtastprüfungen oder Bündeln von unabhängigen HSIO-Abtaststrukturprüfungen. In all diesen Fällen führt die sequentielle Ausführung von Aktionen zu Mehraufwand.
  • Bei einer typischen ATE wird dies minimiert oder ganz vermieden, indem die Prüfdaten der folgenden Aktion in FIFOs so vorbereitet werden, dass das Prüfen ohne Unterbrechung fortgesetzt werden kann.
  • Lösung:
    • Aktionen, die das HSIO-Abtasten steuern, erfordern im Allgemeinen in einem High-Level-Betriebssystem die Unterstützung durch den Softwarestapel. Dementsprechend erfordert die Vorbereitung der Prüfdaten der folgenden Aktion den parallelen Beginn von Aktivitäten auf Betriebssystemebene vor dem Abschluss der vorherigen. Dies kann durch Multi-Threading erfolgen, das in der Regel durch ein hochmodernes Betriebssystem (z. B. Linux) zur Verfügung gestellt wird. Die Aktivitäten an der DUT-Schnittstelle müssen jedoch in Reihenfolge sein. Dementsprechend muss die Übertragung der USB-Daten angehalten werden, bis die vorherige Aktion abgeschlossen ist.
  • Das Anhalten der HSIO-Abtast-Datenübertragung erfordert einen Eingriff in den Protokollstapel des spezifischen HSIO-Ports: z. B. für PCle: PCle kann LEERLAUF (IDLE) weiter treiben, bis die vorbereiteten Frames gestartet werden können. Wenn es sich um DMA-Zugriff von dem Prüfobjekt handelt, könnte PCle vollständig vorbereitet sein und nur warten, bis das Prüfobjekt nach Abschluss der vorherigen Aktionen in den DMA-Datentransfer einsteigt.
  • Das Anhalten der Datenübertragung erfordert geeignete Änderungen des HSIO-Stapels in der HSIO-IP: z. B. kann die HSIO zwei Pipelines haben, die Übertragungen vorbereiten. Jedes Mal bleibt eine von ihnen gerüstet/durchgeschaltet, bis ein Auslöser empfangen wird, um die Datenübertragung im nächsten verfügbaren Schlitz freizugeben. Der Auslöser kann entweder ein Softwarebefehl auf niedriger Ebene oder ein elektrischer Auslöser sein, der von einer anderen Vorrichtung oder sogar von dem DUT selbst empfangen wird.
  • Aspekt 5: Lösung für die Entkopplung von Prüfaufbau, Prüfdaten und Prüfdatenfluss von den Besonderheiten des HSIO-Ports
  • Problem: HSIO-Schnittstellen sind auf verschiedenen Betriebssystemen und mit unterschiedlichen Treibern auf unterschiedliche Weise programmiert. Typische Variationen, die die Prüfeinrichtung unterstützen muss, sind unter anderem, jedoch nicht darauf beschränkt:
    • • Unterschiedliche HSIO-Ports einschließlich USB, PCle, 1149.10 oder sogar proprietäre Schnittstellen
    • • HSIO als Host/Root oder als Endpunkt betrieben
    • • aktives Streamen von Prüfdaten zu dem DUT oder dem DUT, das Daten von der ATE (DMA) zieht, seitens der ATA
    • • HSIO-Kommunikation über Standardschnittstellen oder unter Verwendung eines kundenspezifischen Treibers
  • ATE und Prüfprogramme müssen jedoch generische, konfigurierbare Prüfaufbauten und Nutzungsfälle ermöglichen.
  • Lösung:
    • Die ATE-Lösung ermöglicht die Neukonfiguration der Portschnittstelle innerhalb eines Prüfprogramms: z. B. von dem PCIe-Endpunkt zu der 1149.10-Testschnittstelle. Die ATE-Software unterstützt zwei oder mehr generische Nutzungsmodelle, die durch ein virtuelles „Instrument“ ermöglicht werden, das auf einen oder mehrere HSIO-Typen angewendet werden kann: z. B.
      • • Push-Modus-Streaming (typisch für USB, 1149.10): Die ATE stößt die Stimulusdaten aktiv in die HSIO-Kommunikation
      • • DMA-Modus (typisch für PCle): Das Prüfobjekt bildet den OCST-Speicher auf seinen Speicherbereich ab und liest Daten von/zu demselben.
      Hinzufügen von Haken zu dem System, um es dem Kunden oder einer Drittpartei zu ermöglichen, den Standardblock gemäß der proprietären Schnittstelle anzupassen: z. B.
      • • Definieren einer Standardschnittstelle für die Implementierung eines benutzerdefinierten Ports gemäß einem ausgewählten Nutzungsmodell: z. B. Effizienter benutzerdefinierter Code/Drittanbietercode, der auf der OCST-Karte ausgeführt wird, um die empfangenen Pakete für das ertragsbezogene Lernen zu analysieren. In diesem Fall können die Erwartungsdaten eher unterstützende Informationen als direkt vergleichbare Erwartungsdaten enthalten.
      • • Verschlüsselung pro DUT kurz vor dem Stoßen der Daten in die HSIO.
      • • Erlauben einer standortbezogenen Zuordnung von Adressen, die durch das DUT verwendet werden, das Ergebnisse im DMA-Modus schreibt. Dadurch bleibt der physische Empfangsspeicher eindeutig, auch wenn die DMAs jedes Standorts identisch sind.
  • Schlussfolgerungen
  • Abschließend sei gesagt, dass die hier beschriebenen Ausführungsbeispiele optional durch beliebige der hier beschriebenen wichtigen Punkte oder Aspekte ergänzt werden können. Es wird jedoch darauf hingewiesen, dass die hier beschriebenen wichtigen Punkte und Aspekte entweder einzeln oder in Kombination verwendet werden können und in jedes der hier beschriebenen Ausführungsbeispiele sowohl einzeln als auch in Kombination eingeführt sein können.
  • Alternativen zur Implementierung
  • Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wobei ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschrittes entspricht. Analog dazu stellen Aspekte, die im Zusammenhang mit einem Verfahrensschritt beschrieben werden, auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle Verfahrensschritte können durch eine Hardware-Vorrichtung, wie z. B. einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung, ausgeführt werden (oder diese verwenden). Bei einigen Ausführungsbeispielen können einer oder mehrere der wichtigsten Verfahrensschritte durch eine solche Vorrichtung ausgeführt werden.
  • Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, z. B. einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers erfolgen, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Daher kann das digitale Speichermedium computerlesbar sein.
  • Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.
  • Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist. Der Datenträger, das digitale Speichermedium oder das aufgezeichnete Medium sind üblicherweise greifbar bzw. nicht-flüchtig.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
  • Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
  • Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
  • Ein weiteres Ausführungsbeispiel gemäß der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das dazu konfiguriert ist, ein Computerprogramm zur Durchführung zumindest eines der hierin beschriebenen Verfahren an einen Empfänger zu übertragen. Die Übertragung kann beispielsweise elektronisch oder optisch erfolgen. Der Empfänger kann beispielsweise ein Computer, ein Mobilgerät, ein Speichergerät oder eine ähnliche Vorrichtung sein. Die Vorrichtung oder das System kann beispielsweise einen Datei-Server zur Übertragung des Computerprogramms an den Empfänger umfassen.
  • Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt.
  • Die hierin beschriebenen Vorrichtungen können unter Verwendung einer Hardwarevorrichtung oder unter Verwendung eines Computers oder unter Verwendung einer Kombination aus einer Hardwarevorrichtung und einem Computer implementiert sein.
  • Die hierin beschriebenen Vorrichtungen oder beliebige Komponenten der hierin beschriebenen Vorrichtungen können zumindest teilweise in Hardware und/oder Software implementiert sein.
  • Die hierin beschriebenen Verfahren können unter Verwendung einer Hardwarevorrichtung oder eines Computers oder unter Verwendung einer Kombination aus einer Hardwarevorrichtung und einem Computer durchgeführt werden.
  • Die hierin beschriebenen Verfahren oder beliebige Komponenten der hierin beschriebenen Vorrichtungen können zumindest teilweise in Hardware und/oder Software implementiert sein.
  • Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.

Claims (24)

  1. Eine automatisierte Prüfeinrichtung zum Prüfen eines oder mehrerer Prüfobjekte, wobei die automatisierte Prüfeinrichtung folgendes Merkmal aufweist: zumindest eine Portverarbeitungseinheit, die Folgendes aufweist: eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, zum Verbinden mit zumindest einem der Prüfobjekte, einen Speicher zum Speichern von Daten, die durch die Portverarbeitungseinheit von einem oder mehreren verbundenen Prüfobjekten empfangen werden, und einen Streamingfehlererfassungsblock, der dazu konfiguriert ist, einen Befehlsfehler in den empfangenen Daten zu erfassen, wobei die Portverarbeitungseinheit dazu konfiguriert ist, ansprechend auf eine Erfassung des Befehlsfehlers die Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher zu begrenzen.
  2. Automatisierte Prüfeinrichtung gemäß Anspruch 1, die ferner dazu konfiguriert ist, in dem Speicher gespeicherte Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, von der Weiterverarbeitung auszunehmen.
  3. Automatisierte Prüfeinrichtung gemäß einem der vorhergehenden Ansprüche, wobei die Begrenzung, die die Menge der zu speichernden Daten angibt, durch einen festen Wert, einen variablen Wert oder einen dynamischen Wert definiert ist.
  4. Automatisierte Prüfeinrichtung gemäß einem der vorhergehenden Ansprüche, wobei der Streamingfehlererfassungsblock ferner dazu konfiguriert ist, die empfangenen Daten mit vorab geladenen Erwartungsdaten zu vergleichen.
  5. Automatisierte Prüfeinrichtung gemäß einem der vorhergehenden Ansprüche, wobei der Streamingfehlererfassungsblock ferner dazu konfiguriert ist: Nutzlastdatenfehler in den empfangenen Daten zu erfassen und Daten ansprechend auf die Erfassung eines Fehlers in den empfangenen Daten selektiv in den Speicher zu speichern.
  6. Automatisierte Prüfeinrichtung gemäß einem der Ansprüche 4 oder 5, wobei die Erwartungsdaten Maskendaten aufweisen.
  7. Automatisierte Prüfeinrichtung gemäß einem der Ansprüche 4 bis 6, die ferner dazu konfiguriert ist, die Erwartungsdaten vorab in einen Durchlaufspeicher, FIFO-Speicher, pro Vorrichtung oder einen verwalteten Cachespeicher zu laden, der einer oder mehreren verbundenen Vorrichtungen zugeordnet ist, der vorzugsweise dazu konfiguriert ist, eine Datennutzung durch die zugeordneten verbundenen Vorrichtungen zu verfolgen und die Daten zu verwerfen.
  8. Automatisierte Prüfeinrichtung gemäß Anspruch 7, wobei die automatisierte Prüfeinrichtung dazu konfiguriert ist, ein bestimmtes Prüfobjekt als fehlerhaft zu erkennen, ansprechend auf ein Feststellen auf Basis der Verfolgung der Datennutzung, dass das bestimmte Prüfobjekt einem Datenstrom nicht folgt.
  9. Automatisierte Prüfeinrichtung gemäß einem der Ansprüche 4 bis 6, die ferner zu Folgendem konfiguriert ist: falls die empfangenen Daten als deterministischer Strom von Bytes empfangen werden, Vergleichen von empfangenen Daten und vorab geladenen Erwartungsdaten in der Reihenfolge der vorab geladenen Erwartungsdaten, und falls die empfangenen Daten als Daten mit zugeordneten Adressinformationen empfangen werden, Vergleichen der empfangenen Daten mit Erwartungsdaten an einer Speicheradresse, die den Adressinformationen entspricht.
  10. Automatisierte Prüfeinrichtung gemäß einem der vorhergehenden Ansprüche, die ferner dazu konfiguriert ist, Daten in dem Speicher in einer komprimierten Darstellung zu speichern, wobei die Komprimierung vorzugsweise eine Standarddatenkomprimierung oder in einem prüfspezifischen Format ist.
  11. Automatisierte Prüfeinrichtung gemäß Anspruch 10, die ferner dazu konfiguriert ist, die Komprimierung dynamisch dahin gehend anzupassen, dass dieselbe mit einer erwarteten Fehlerverteilung übereinstimmt.
  12. Automatisierte Prüfeinrichtung gemäß einem der Ansprüche 10 bis 11, wobei die automatisierte Prüfeinrichtung dazu konfiguriert ist, empfangene Daten, die wahrscheinlich fehlerhaft sind, in der Nähe in dem empfangenen Datenstrom zu halten.
  13. Automatisierte Prüfeinrichtung gemäß einem der vorhergehenden Ansprüche, wobei der Streamingfehlererfassungsblock ferner dazu konfiguriert ist, statistische Informationen, die für die Fehleranalyse relevant sind, zu speichern.
  14. Automatisierte Prüfeinrichtung gemäß einem der vorhergehenden Ansprüche, die ferner dazu konfiguriert ist, den Befehlsfehler ansprechend auf ein Feststellen, dass das Prüfobjekt eine Befehlssequenz unterbrochen hat, oder auf ein Feststellen, dass die Befehlssequenz abgebrochen ist, zu erfassen.
  15. Automatisierte Prüfeinrichtung gemäß einem der Ansprüche 4 bis 14, wobei die Erwartungsdaten Befehlserwartungsdatenbits aufweisen, die angeben, ob entsprechende empfangene Datenbits ein Befehl sind.
  16. Automatisierte Prüfeinrichtung gemäß einem der Ansprüche 4 bis 14, wobei die Erwartungsdaten Maskendaten aufweisen, die angeben, welche Bits der empfangenen Daten als Befehlsbits erwartet werden.
  17. Automatisierte Prüfeinrichtung gemäß einem der vorhergehenden Ansprüche, die ferner dazu konfiguriert ist, ein Befehlsfehlerflag ansprechend auf eine Erfassung des Befehlsfehlers festzulegen.
  18. Automatisierte Prüfeinrichtung gemäß einem der vorhergehenden Ansprüche, wobei Abbildungsinformationen in dem Speicher gespeichert sind und wobei die Portverarbeitungseinheit ferner dazu konfiguriert ist, die Daten auf Basis der Abbildungsinformationen zu entwürfeln, um Fehlerinformationen zu erhalten, die sich direkt auf Versätze der gespeicherten Daten beziehen.
  19. Automatisierte Prüfeinrichtung gemäß einem der Ansprüche 15 bis 17, wobei die Befehlserwartungsdaten die Abbildungsinformationen aufweisen und wobei die Portverarbeitungseinheit ferner dazu konfiguriert ist, die Daten auf Basis der Abbildungsinformationen zu entwürfeln, um Fehlerinformationen zu erhalten, die sich direkt auf Versätze der gespeicherten Daten beziehen.
  20. Automatisierte Prüfeinrichtung gemäß einem der Ansprüche 18 bis 19, wobei die Abbildungsinformationen für jedes Prüfobjekt verschieden sein können und die Portverarbeitungseinheit ferner dazu konfiguriert ist, vor dem Entwürfeln den Nutzlasttyp zu erfassen.
  21. Automatisierte Prüfeinrichtung gemäß Anspruch 20, wobei die Portverarbeitungseinheit ferner dazu konfiguriert ist, Befehlsdaten vor einem Erfassen des Nutzlasttyps zu verwerfen.
  22. Verfahren zum automatisierten Prüfen eines oder mehrerer Prüfobjekte, das folgende Schritte aufweist: Empfangen von Daten über eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, die eine Portverarbeitungseinheit mit zumindest einem der Prüfobjekte verbindet, Speichern von Daten, die von verbundenen Prüfobjekten in einem Speicher empfangen werden, Erfassen eines Befehlsfehlers in den empfangenen Daten, die in dem Speicher gespeichert werden, ansprechend auf eine Erfassung des Befehlsfehlers, Begrenzen der Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher.
  23. Ein Computerprogramm für eine Verarbeitungsvorrichtung, das Softwarecodeabschnitte zum Durchführen der Schritte gemäß Anspruch 22 aufweist, wenn das Programm auf der Verarbeitungsvorrichtung ausgeführt wird.
  24. Das Computerprogramm gemäß Anspruch 23, das ein computerlesbares Medium aufweist, auf dem die Softwarecodeabschnitte gespeichert sind, wobei das Programm direkt in einen internen Speicher der Verarbeitungsvorrichtung geladen werden kann.
DE112020000035.4T 2019-01-22 2020-01-22 Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm zur handhabung von befehlsfehlern Pending DE112020000035T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962795456P 2019-01-22 2019-01-22
US62/795,456 2019-01-22
PCT/EP2020/051543 WO2020152232A1 (en) 2019-01-22 2020-01-22 Automated test equipment for testing one or more devices under test, method for automated testing of one or more devices under test, and computer program for handling command errors

Publications (1)

Publication Number Publication Date
DE112020000035T5 true DE112020000035T5 (de) 2020-12-31

Family

ID=69192062

Family Applications (3)

Application Number Title Priority Date Filing Date
DE112020000035.4T Pending DE112020000035T5 (de) 2019-01-22 2020-01-22 Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm zur handhabung von befehlsfehlern
DE112020000036.2T Pending DE112020000036T5 (de) 2019-01-22 2020-01-22 Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm unter verwendung eines pufferspeichers
DE112020000469.4T Pending DE112020000469T5 (de) 2019-01-22 2020-01-22 Automatisierte testeinrichtung, die ein auf-chip-system-teststeuergerät verwendet

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE112020000036.2T Pending DE112020000036T5 (de) 2019-01-22 2020-01-22 Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm unter verwendung eines pufferspeichers
DE112020000469.4T Pending DE112020000469T5 (de) 2019-01-22 2020-01-22 Automatisierte testeinrichtung, die ein auf-chip-system-teststeuergerät verwendet

Country Status (7)

Country Link
US (3) US11385285B2 (de)
JP (3) JP7058759B2 (de)
KR (3) KR102569335B1 (de)
CN (3) CN113330322B (de)
DE (3) DE112020000035T5 (de)
TW (3) TW202132793A (de)
WO (3) WO2020152232A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204849B2 (en) 2020-03-13 2021-12-21 Nvidia Corporation Leveraging low power states for fault testing of processing cores at runtime
US11809570B2 (en) * 2020-10-06 2023-11-07 Newae Technology Inc Method and apparatus for analyzing side channel-related security vulnerabilities in digital devices
US11719749B1 (en) * 2020-10-22 2023-08-08 Cadence Design Systems, Inc. Method and system for saving and restoring of initialization actions on dut and corresponding test environment
US20220155370A1 (en) * 2020-11-17 2022-05-19 Synopsys, Inc. Device under test synchronization with automated test equipment check cycle
US11836059B1 (en) 2020-12-14 2023-12-05 Sanblaze Technology, Inc. System and method for testing non-volatile memory express storage devices
CN112597006B (zh) * 2020-12-14 2023-10-03 中国航发控制系统研究所 一种嵌入式软件集成测试自动化执行系统及方法
US11431379B1 (en) 2021-03-31 2022-08-30 Teradyne, Inc. Front-end module
CN115391108A (zh) * 2021-05-25 2022-11-25 爱德万测试股份有限公司 自动测试设备系统及其自动测试设备方法
CN113572661B (zh) * 2021-07-28 2022-12-27 迈普通信技术股份有限公司 一种测试多激活检测性能的系统和方法
CN113836060B (zh) * 2021-09-24 2024-05-28 北京机电工程研究所 一种适用于仿真模型及流程模型的分布式实时仿真平台
CN113961405B (zh) * 2021-09-30 2022-10-28 北京百度网讯科技有限公司 状态切换指令验证方法、装置、电子设备及存储介质
CN114167258B (zh) * 2021-11-29 2024-03-22 上海御渡半导体科技有限公司 一种ate测试系统的数据存储和读取装置及方法
CN113904970B (zh) * 2021-12-09 2022-03-01 伟恩测试技术(武汉)有限公司 一种半导体测试设备的传输系统及方法
CN114461150A (zh) * 2022-02-09 2022-05-10 马来西亚明试国际有限公司 一种用于自动测试设备数据聚合的方法、系统及存储介质
KR102461404B1 (ko) * 2022-04-08 2022-10-31 주식회사 세미파이브 시스템 온 칩과 메모리 사이의 통신을 위한 io 파라미터를 설정하는 방법 및 장치
US11853251B2 (en) 2022-05-04 2023-12-26 Qualcomm Incorporated On-die chip-to-chip (C2C) link state monitor
CN116340191B (zh) * 2023-05-31 2023-08-08 合肥康芯威存储技术有限公司 一种存储器固件的测试方法、装置、设备及介质
CN117290278A (zh) * 2023-10-10 2023-12-26 合芯科技有限公司 芯片内硬件互联结构、芯片、服务器及方法

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2966417B2 (ja) * 1988-09-05 1999-10-25 株式会社アドバンテスト 論理集積回路試験装置
US7328387B2 (en) * 2004-12-10 2008-02-05 Texas Instruments Incorporated Addressable tap domain selection circuit with selectable ⅗ pin interface
US5103450A (en) * 1989-02-08 1992-04-07 Texas Instruments Incorporated Event qualified testing protocols for integrated circuits
US5321702A (en) * 1989-10-11 1994-06-14 Teradyne, Inc. High speed timing generator
JP3114753B2 (ja) * 1991-10-31 2000-12-04 九州日本電気株式会社 Lsiテスト方法
JPH07244130A (ja) * 1994-03-02 1995-09-19 Sony Tektronix Corp テストパターン発生器
JPH08129508A (ja) * 1994-10-31 1996-05-21 Toshiba Corp コンピュータシステム及びその共有メモリ制御方法
JPH10240560A (ja) * 1997-02-26 1998-09-11 Toshiba Corp 波形信号処理装置
GB9805054D0 (en) * 1998-03-11 1998-05-06 Process Intelligence Limited Memory test system with buffer memory
AU9654198A (en) * 1998-06-29 2000-01-17 Iliya Valeryevich Klochkov A skew calibration means and a method of skew calibration
US6452411B1 (en) * 1999-03-01 2002-09-17 Formfactor, Inc. Efficient parallel testing of integrated circuit devices using a known good device to generate expected responses
JP2001210685A (ja) * 1999-11-19 2001-08-03 Hitachi Ltd テストシステムおよび半導体集積回路装置の製造方法
US6424926B1 (en) 2000-03-31 2002-07-23 Intel Corporation Bus signature analyzer and behavioral functional test method
KR100374328B1 (ko) * 2000-06-03 2003-03-03 박현숙 칩 설계 검증 및 테스트 장치 및 방법
JP2002156404A (ja) * 2000-11-20 2002-05-31 Seiko Epson Corp 半導体測定方法及び半導体測定装置
JP2002311095A (ja) * 2001-04-12 2002-10-23 Tritec:Kk Lsi検査装置
US6988232B2 (en) 2001-07-05 2006-01-17 Intellitech Corporation Method and apparatus for optimized parallel testing and access of electronic circuits
JP2003121499A (ja) * 2001-10-09 2003-04-23 Hitachi Ltd 組込みテスト機能付き半導体集積回路、テストコード生成プログラムから成る電子設計データを保存する記憶媒体、該半導体集積回路のテスト方法、テストコード生成自動化方法及びそのプログラム
KR20050007474A (ko) * 2002-05-08 2005-01-18 엔피테스트, 인코포레이티드 다목적 메모리를 지닌 테스터 시스템
JP2004030765A (ja) * 2002-06-25 2004-01-29 Fujitsu Ltd 自己診断機能内蔵の半導体記憶装置
JP3614838B2 (ja) * 2002-09-19 2005-01-26 Necエレクトロニクス株式会社 半導体検査システム及び半導体デバイスの検査方法
US7131046B2 (en) * 2002-12-03 2006-10-31 Verigy Ipco System and method for testing circuitry using an externally generated signature
GB0315931D0 (en) * 2003-07-08 2003-08-13 Koninkl Philips Electronics Nv Radio device testing system
US7310752B2 (en) * 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
JP4602004B2 (ja) * 2004-06-22 2010-12-22 株式会社東芝 テストパターン作成装置、テストパターン作成方法及びテストパターン作成プログラム
US7089139B2 (en) * 2004-08-16 2006-08-08 Agilent Technologies, Inc. Method and apparatus for configuration of automated debug of in-circuit tests
US7627798B2 (en) * 2004-10-08 2009-12-01 Kabushiki Kaisha Toshiba Systems and methods for circuit testing using LBIST
US7437517B2 (en) * 2005-01-11 2008-10-14 International Business Machines Corporation Methods and arrangements to manage on-chip memory to reduce memory latency
JP2006266835A (ja) * 2005-03-23 2006-10-05 Advantest Corp 試験装置、試験方法、及び試験制御プログラム
US20070168809A1 (en) * 2005-08-09 2007-07-19 Naoki Kiryu Systems and methods for LBIST testing using commonly controlled LBIST satellites
CN1925384A (zh) * 2005-09-02 2007-03-07 上海乐金广电电子有限公司 数字广播信息流传输错误检测装置及方法
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7389461B2 (en) * 2005-09-28 2008-06-17 Teradyne, Inc. Data capture in automatic test equipment
CN1987236A (zh) * 2005-12-22 2007-06-27 乐金电子(天津)电器有限公司 空调器的错误记录管理控制装置及其管理控制方法
US7552370B2 (en) * 2006-03-31 2009-06-23 Robert Pochowski Application specific distributed test engine architecture system and method
EP2003653B1 (de) * 2006-04-06 2010-08-04 Advantest Corporation Testvorrichtung und testverfahren
EP2044452A1 (de) * 2006-07-10 2009-04-08 Asterion, Inc. Digitale wellenformerzeugung und messung in einer automatisierten testanlage
JP5201741B2 (ja) * 2006-08-04 2013-06-05 アドバンテスト (シンガポール) プライベート リミテッド 汎用ブロックと専用リソースブロックを備えるテストモジュール
US7698088B2 (en) * 2006-11-15 2010-04-13 Silicon Image, Inc. Interface test circuitry and methods
US7486205B2 (en) * 2006-11-28 2009-02-03 Samplify Systems, Inc. Compression and decompression of stimulus and response waveforms in automated test systems
KR100897681B1 (ko) * 2007-04-05 2009-05-14 베리지 (싱가포르) 피티이. 엘티디. 테스트 프로그램 적응 시스템 및 자동화 테스트 시스템
US20090112548A1 (en) * 2007-10-30 2009-04-30 Conner George W A method for testing in a reconfigurable tester
US7717752B2 (en) 2008-07-01 2010-05-18 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
US20100023294A1 (en) * 2008-07-28 2010-01-28 Credence Systems Corporation Automated test system and method
US8677198B2 (en) * 2009-03-04 2014-03-18 Alcatel Lucent Method and apparatus for system testing using multiple processors
US8195419B2 (en) * 2009-03-13 2012-06-05 Teradyne, Inc. General purpose protocol engine
US8170828B2 (en) 2009-06-05 2012-05-01 Apple Inc. Test method using memory programmed with tests and protocol to communicate between device under test and tester
US8386867B2 (en) * 2009-07-02 2013-02-26 Silicon Image, Inc. Computer memory test structure
US8261119B2 (en) * 2009-09-10 2012-09-04 Advantest Corporation Test apparatus for testing device has synchronization module which synchronizes analog test module to digital test module based on synchronization signal received from digital test module
US20110273197A1 (en) * 2010-05-07 2011-11-10 Qualcomm Incorporated Signal generator for a built-in self test
JP2011248597A (ja) * 2010-05-26 2011-12-08 Yokogawa Electric Corp テスタシミュレーション装置、テスタシミュレーションプログラムおよびテスタシミュレーション方法
KR101789848B1 (ko) * 2010-05-28 2017-10-25 주식회사 아도반테스토 가변 병렬성 및 펌웨어 업그레이드 기능을 갖는 유연한 저장 인터페이스 테스터
CN103109275B (zh) * 2010-09-07 2016-02-03 爱德万测试公司 在半导体测试环境中使用虚拟仪器的系统、方法和设备
US8598898B2 (en) * 2010-10-05 2013-12-03 Silicon Image, Inc. Testing of high-speed input-output devices
US9043665B2 (en) * 2011-03-09 2015-05-26 Intel Corporation Functional fabric based test wrapper for circuit testing of IP blocks
US20120324302A1 (en) * 2011-06-17 2012-12-20 Qualcomm Incorporated Integrated circuit for testing using a high-speed input/output interface
US9470759B2 (en) * 2011-10-28 2016-10-18 Teradyne, Inc. Test instrument having a configurable interface
TW201337236A (zh) 2012-03-15 2013-09-16 Le & Der Co Ltd 流體自動化採樣控制裝置
US9606183B2 (en) * 2012-10-20 2017-03-28 Advantest Corporation Pseudo tester-per-site functionality on natively tester-per-pin automatic test equipment for semiconductor test
US9026869B1 (en) * 2012-11-01 2015-05-05 Amazon Technologies, Inc. Importance-based data storage verification
US9959186B2 (en) * 2012-11-19 2018-05-01 Teradyne, Inc. Debugging in a semiconductor device test environment
US9183952B2 (en) * 2013-02-20 2015-11-10 Micron Technology, Inc. Apparatuses and methods for compressing data received over multiple memory accesses
US20140237292A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Gui implementations on central controller computer system for supporting protocol independent device testing
US10162007B2 (en) * 2013-02-21 2018-12-25 Advantest Corporation Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently
US10161993B2 (en) * 2013-02-21 2018-12-25 Advantest Corporation Tester with acceleration on memory and acceleration for automatic pattern generation within a FPGA block
US9952276B2 (en) * 2013-02-21 2018-04-24 Advantest Corporation Tester with mixed protocol engine in a FPGA block
US20140236527A1 (en) * 2013-02-21 2014-08-21 Advantest Corporation Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems
US11009550B2 (en) * 2013-02-21 2021-05-18 Advantest Corporation Test architecture with an FPGA based test board to simulate a DUT or end-point
US9810729B2 (en) * 2013-02-28 2017-11-07 Advantest Corporation Tester with acceleration for packet building within a FPGA block
US9310427B2 (en) * 2013-07-24 2016-04-12 Advantest Corporation High speed tester communication interface between test slice and trays
US20150153405A1 (en) * 2013-12-04 2015-06-04 Princeton Technology Corporation Automatic testing system and method
CN204044309U (zh) * 2014-01-24 2014-12-24 矽创电子股份有限公司 自动测试设备和升级自动测试设备的集成电路测试界面
US9934831B2 (en) * 2014-04-07 2018-04-03 Micron Technology, Inc. Apparatuses and methods for storing and writing multiple parameter codes for memory operating parameters
US9304846B2 (en) * 2014-04-29 2016-04-05 Ford Global Technologies, Llc Apparatus and method of error monitoring with a diagnostic module
US9811420B2 (en) * 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
JP6458626B2 (ja) * 2015-05-07 2019-01-30 富士通株式会社 デバッグ回路、半導体装置及びデバッグ方法
KR102377362B1 (ko) * 2015-07-08 2022-03-23 삼성전자주식회사 보조 테스트 장치, 그것을 포함하는 테스트 보드 및 그것의 테스트 방법
JP6386434B2 (ja) * 2015-10-08 2018-09-05 株式会社アドバンテスト 試験装置、試験信号供給装置、試験方法、およびプログラム
CN105895163B (zh) * 2016-03-28 2018-09-28 工业和信息化部电子第五研究所 基于镜像备份的单粒子效应检测方法和系统
US10395748B2 (en) * 2016-06-15 2019-08-27 Micron Technology, Inc. Shared error detection and correction memory
JP2018006406A (ja) * 2016-06-28 2018-01-11 東京エレクトロン株式会社 基板検査装置
JP6686769B2 (ja) * 2016-07-27 2020-04-22 富士通株式会社 テストパタン生成装置及びテストパタン生成方法
US11309056B2 (en) * 2017-01-31 2022-04-19 Octavo Systems Llc Automatic test equipment method for testing system in a package devices
JP6878071B2 (ja) 2017-03-21 2021-05-26 株式会社東芝 半導体集積回路及び半導体集積回路の診断方法
US10580200B2 (en) 2017-04-07 2020-03-03 Intel Corporation Virtual reality apparatus and method including prioritized pixel shader operations, alternate eye rendering, and/or augmented timewarp
CN107390109B (zh) * 2017-06-09 2019-12-24 苏州迅芯微电子有限公司 高速adc芯片的自动测试平台及其软件架构设计方法

Also Published As

Publication number Publication date
TW202202865A (zh) 2022-01-16
CN113330322A (zh) 2021-08-31
WO2020152230A1 (en) 2020-07-30
KR20210079348A (ko) 2021-06-29
US20210073094A1 (en) 2021-03-11
CN112703409B (zh) 2024-06-14
WO2020152231A1 (en) 2020-07-30
KR102569335B1 (ko) 2023-08-22
US11385285B2 (en) 2022-07-12
CN111989580B (zh) 2023-06-30
JP2021520570A (ja) 2021-08-19
US11415628B2 (en) 2022-08-16
US11913990B2 (en) 2024-02-27
DE112020000036T5 (de) 2021-01-21
KR102591340B1 (ko) 2023-10-20
JP7101814B2 (ja) 2022-07-15
JP2021520001A (ja) 2021-08-12
KR102604010B1 (ko) 2023-11-20
JP7058759B2 (ja) 2022-04-22
CN112703409A (zh) 2021-04-23
JP7295954B2 (ja) 2023-06-21
JP2022517513A (ja) 2022-03-09
US20210025938A1 (en) 2021-01-28
CN111989580A (zh) 2020-11-24
TW202132793A (zh) 2021-09-01
US20210055347A1 (en) 2021-02-25
CN113330322B (zh) 2024-06-21
WO2020152232A1 (en) 2020-07-30
TW202202864A (zh) 2022-01-16
DE112020000469T5 (de) 2021-10-07
KR20210079347A (ko) 2021-06-29
KR20210116604A (ko) 2021-09-27

Similar Documents

Publication Publication Date Title
DE112020000035T5 (de) Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm zur handhabung von befehlsfehlern
DE102013114564B4 (de) System zur Reduzierung einer Leistungsspitze während einer Abtastverschiebung auf lokaler Ebene für abtastbasierte Prüfungen
DE3903835C2 (de)
DE10343227A1 (de) System und Verfahren zum Testen eines Schaltungsaufbaus unter Verwendung einer extern erzeugten Signatur
DE3750236T2 (de) Gerät zur In-line-Abfragesteuerung für Datenprozessorprüfung.
DE69019402T2 (de) Prüfverfahren und -gerät für integrierte Schaltungen.
DE4402796C2 (de) Verbesserte Redundanzanalysiereinrichtung für eine automatische Speichertestvorrichtung
DE69705813T2 (de) Diagnosesystem und Verfahren bei einer integrierten Halbleiterschaltung
DE19952272A1 (de) Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen
DE102008012337A1 (de) Programmcode-Trace-Signatur
EP1720100A1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE102013114512B4 (de) Globales Einfangschema mit niedriger Leistung für Kerne
DE69802977T2 (de) Steuervorrichtung einer Auslösesignalreihenfolge
DE112008000542T5 (de) Verfahren und Vorrichtungen zum Schätzen einer Position eines Hängenbleibe-Defekts in einer Abtastkette eines Testobjekts
DE69717385T2 (de) Verfahren und System zur Speichereinrichtungsprüfung
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE102010012904A1 (de) Systeme zum Testen von Verbindungen zwischen Chips
DE10250875B4 (de) Vorrichtung und Verfahren zum Konfigurieren einer integrierten Schaltung mit eingebettetem Speicher
DE112019007386T5 (de) Verbesserte jtag-register mit gleichzeitigen eingängen
EP0037965B1 (de) Einrichtung zum Prüfen einer digitalen Schaltung mittels in diese Schaltung eingebauter Prüfschaltungen
EP0009600A2 (de) Verfahren und Schnittstellenadapter zum Durchführen von Wartungsoperationen über eine Schnittstelle zwischen einem Wartungsprozessor und einer Mehrzahl einzeln zu prüfender Funktionseinheiten eines datenverarbeitenden Systems
DE19950838C2 (de) Verfahren und Vorrichtung zur Fehleranalyse digitaler Logikschaltungen
DE102022203611A1 (de) Hochfrequente ereignisbasierte hardware-diagnosen
DE112021006446T5 (de) Automatische zuweisung von debug-kommunikationspins einer vorrichtung
DE19604375C2 (de) Verfahren zur Auswertung von Testantworten zu prüfender digitaler Schaltungen und Schaltungsanordnung zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
R012 Request for examination validly filed