-
Die
vorliegende Anmeldung beansprucht die Priorität der US-Provisional-Patentanmeldung mit der Seriennummer
60/565,308, die am 26. April 2004 eingereicht wurde, mit dem Titel „DYNAMIC
IN-CIRCUIT PROBING OF FIELD PROGRAMMABLE GATE ARRAYS" (Dynamische schaltungsinterne
Sondierung frei programmierbarer Gatterarrays). Die vorliegende
Anmeldung beansprucht außerdem
die Priorität
der US-Patentanmeldung mit der Seriennummer 10/923,460, die am 20.
August 2004 eingereicht wurde, mit dem Titel „APPARATUS AND METHOD FOR
DYNAMIC IN-CIRCUIT PROBING OF FIELD PROGRAMMABLE GATE ARRAYS" (Vorrichtung und
Verfahren zum dynamischen schaltungsinternen Sondieren frei programmierbarer Gatterarrays).
-
Moderne
integrierte Systeme, wie z. B. Systemchips (SOCs), frei programmierbare
Gatterarrays (FPGAs) und anwendungsspezifische integrierte Schaltungen
(RSICs), enthalten oftmals Merkmale, die zur Ermöglichung eines schaltungsinternen
Testens entworfen sind. Die normale Prozedur bei der Durchführung eines
schaltungsinternen Testens auf großen Schaltungen, wie z. B.
frei programmierbaren Gatterarrays (FPGAs), besteht darin, der Schaltung
Realweltstimuli über
den gesamten Betriebsbereich zuzuführen und das resultierende
Signal an verschiedenen Punkten in der gesamten Schaltung zu überwachen.
Dieser Typ von Testen wird üblicherweise
Shmoo-Testen genannt.
-
Testinstrumente,
wie z. B. Oszilloskope und Logikanalysatoren, sind wichtige Werkzeuge,
die zum schaltungsinternen Testen verwendet werden. Viele Digitalentwerfer
sind daran gewöhnt,
ihre Prototypplatinen unter Verwendung eines Logikanalysators als
Fehlersuchhilfe hervorzubringen. Sie verwenden den Logikanalysator,
um das Aufdecken von Integrationsproblemen und Entwurfsfehlern zu
unterstützen.
Zur Beobachtung des Verhaltens des Systems sondiert der Entwerfer
verschiedene Busse und Chips in einem Versuch, die Grundursache
des Problems zu isolieren. Durch diese Sondierung und erneute Sondierung
verschiedener Komponenten können
ausreichend Informationen gesammelt werden, um die zu dem Problem
führenden
Faktoren geeignet einzuschätzen.
Mit diesen Informationen ist es für das Ingenieurteam möglich, den
Fehler zu verstehen und eine Lösung
zu formulieren.
-
Wenn
ein Ingenieur Zugang zu internen Sondenpunkten benötigt, verändert er
zuerst den Entwurf und die Herausführung des Satzes von Signalen
zu einem Ausgangspunkt, üblicherweise
einem Satz von Ausgangsanschlussstiften. Diese Ausgangsanschlussstifte
sind allgemein auf einer PC-Platine platziert, wo eine einer Testgeräteanordnung
zugeordnete Sonde die Signale erfassen kann. Der Ort ist üblicherweise
ein Verbindungselement, wie z. B. ein Berg-Streifen, eine Samtec-Komponente
oder eine Mictor-Komponente, könnte jedoch
auch eine verbindungselementfreie Standfläche sein (d. h. soft touch).
Jeder Sondierungstyp besitzt ein spezielles Kabel, das mit dem Verbindungselement
auf der PC-Platine zusammenpasst und diese Signale zu dem Logikanalysator
führt.
Eine Alternative besteht darin, fliegende Anschlussleitungen zu
verwenden, die eine direkte Verbindung zu den Ausgangsanschlussflächen eines
Chips herstellen können.
Als Nächstes
muss der Ingenieur einen Logikanalysator aufbauen, um Signale von
dem Ausgangspunkt zu erfassen.
-
Das
Aufbauen eines Logikanalysators zur Sondierung von Signalen von
ASICs oder FPGAs dauert üblicherweise
mehrere Stunden. Um einen Logikanalysator aufzubauen, muss der Ingenieur
zuerst manuell einen jedem internen Signal zugeordneten Ausgangsanschlussstift
identifizieren. Als Nächstes
muss der Ingenieur manuell einen jedem Ausgangsanschlussstift zugeordneten
Sondenanschlussstift identifizieren. Als Nächstes werden die Logikanalysebaugruppe
und der Kanal, der jedem Sondenanschlussstiften zugeordnet ist,
manuell identifiziert. Schließlich
wird der beste Abtastpunkt für jeden
Kanal bestimmt und der Instrumenteneingangskanal-Abtastpunkt wird manuell eingestellt,
um einen Versatz von Kanal zu Kanal auszugleichen.
-
Es
gibt bei dem gegenwärtigen
Verfahren mehrere Nachteile. Erstens ist das Verfahren zeitaufwendig. Jedes
Signal wird unabhängig
gehandhabt. Das Verfahren ist manuell und muss für jedes Signal mit jeweils einem
Signal zu einem Zeitpunkt durchgeführt werden. So nimmt, wenn
die Anzahl von Signalen zunimmt, die Zeitmenge für den Aufbau zu. Entwerfer
verwalten üblicherweise
diese Übersetzung
durch Niederschreiben von Informationen auf Papier und manuelles
Eingeben der Kanalzuweisung und des Signalnamens auf dem Logikanalysator-Aufbaumenü. Dieses
Verfahren kann mehrere Stunden dauern und muss jedes Mal durchgeführt werden,
wenn ein Benutzer eine neue Messung aufbaut. Zweitens ist das Verfahren
ermüdend
und fehleranfällig.
Beispiele von Fehlern umfassen: Fehlidentifizierung eines zu einem
spezifischen FPGA-Anschlussstift herausgeführten Signals; der PC-Platinenentwurf
könnte
fehlcharakterisiert werden; inkorrekte Spezifizierung eines Kanals
oder einer Baugruppe in dem Lokalanalysator; und ein Signal könnte in
dem Logikanalysatormenü falsch
etikettiert oder buchstabiert sein. Jedes dieser Probleme wird verschlimmert,
wenn ein System getestet wird, das multiplexierte Bänke von
Ausgangssignalen verwendet, wie in der ebenfalls anhängigen US-Patentanmeldung
mit der Seriennummer 10/923,460, eingereicht am 20. August 2004,
die hierin durch Bezugnahme aufgenommen ist, offenbart ist.
-
Die
vorliegenden Erfinder haben einen Bedarf nach Vorrichtungen und
Verfahren zum Reduzieren der zum Aufbau eines Logikanalysators (oder
anderen Typ an Testausrichtung) erforderlichen Zeit erkannt, während den
gegenwärtigen
Verfahren zugeordnete Fehler reduziert werden.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren, ein Testinstrument
oder ein Testsystem mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1, 3 oder 11, ein
Testinstrument gemäß Anspruch
15 oder ein Textsystem gemäß Anspruch
23 gelöst.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beigefügten
Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockdiagramm einer dynamischen Sonde gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
-
2 ein
Blockdiagramm eines Zustandverfolgungsterms zur Verwendung in einer
dynamischen Sonde gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
3 ein
Blockdiagramm eines Zeitgebungsverfolgungskerns zur Verwendung in
einer dynamischen Sonde gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
4 ein
Blockdiagramm eines Logikanalysators 400 gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung;
-
5 ein
Flussdiagramm, das ein Verfahren zum Vorbereiten eines Logikanalysators
für eine
Testsitzung beschreibt;
-
6 eine
Bildschirm-Momentaufnahme einer grafischen Anzeige, die durch Software
erzeugt wird, gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung;
-
7 eine
Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf den
in 6 gezeigten Kabelverbindung-Knopf bezogen ist;
-
8 eine
Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf den
in 6 gezeigten Vorrichtungskonfiguration-Knopf bezogen
ist;
-
9 eine
Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf den
in 6 gezeigten Anschlussstiftabbildung-Knopf bezogen
ist;
-
10 eine
Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf den
in 6 gezeigten Eigenschaften-Knopf bezogen ist;
-
11 eine
Bildschirm-Momentaufnahme einer grafischen Anzeige, die der Auswahl
von Kernen und Bänken
zugeordnet ist;
-
12 eine
Bildschirm-Momentaufnahme einer grafischen Anzeige, die durch Software
erzeugt wird, gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung;
-
13 eine
Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf den
in 11 gezeigten Bus/Signalnamen-Abgleichen-Knopf
bezogen ist;
-
14 ein
Blockdiagramm eines Zustandverfolgungskerns zur Verwendung in einer
dynamischen Sonde gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
15 ein
Blockdiagramm eines Zeitgebungsverfolgungskerns zur Verwendung in
einer dynamischen Sonde gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
16a-16f Flussdiagramme
eines Verfahrens gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
17 ein
Blockdiagramm einer Schaltung, die zur Ausgabe eines Testsignals
auf einem ausgewählten
Anschlussstift einer zu testenden Vorrichtung verwendet wird; und
-
18 ein
Blockdiagramm einer Schaltung, die zur Ausgabe eines Testsignals
auf einem ausgewählten
Anschlussstift einer zu testenden Vorrichtung verwendet wird.
-
Im
Folgenden wird detailliert auf die vorliegende Erfindung Bezug genommen,
wobei Beispiele derselben in den beigefügten Zeichnungen dargestellt
sind, wobei sich gleiche Bezugszeichen immer auf gleiche Elemente
beziehen. Die folgende detaillierte Beschreibung legt Verfahren
vor, die durch Routinen und Symboldarstellungen für Operationen
von Datenbits innerhalb eines computerlesbaren Mediums, zugeordneter Prozessoren,
Logikanalysatoren, Digitalspeicherozilloskopen, Universal-Personalcomputern,
die mit Datenerfassungskarten konfiguriert sind, und dergleichen
ausgeführt
werden können.
Ein Verfahren hier und im Allgemeinen wird als eine Folge von Schritten
oder Aktionen aufgefasst, die zu einem erwünschten Ergebnis führt, und
beinhaltet als solches Ausdrücke
wie „Routine", „Programm", „Objekte", „Funktionen", „Teilroutinen" und „Prozeduren". Diese Beschreibungen
und Darstellungen sind das durch Fachleute auf diesem Gebiet verwendeten
Mittel, um das Wesentliche ihrer Arbeit effektiv anderen Fachleuten
auf diesem Gebiet zu vermitteln.
-
Die
Vorrichtungen und Verfahren der vorliegenden Erfindung werden unter
Bezugnahme auf die Implementierung auf einem Logikanalysator beschrieben,
die hierin genannten Verfahren könnten
jedoch auf einem Universalcomputer oder einer anderen Netzvorrichtung
arbeiten, die selektiv durch eine in dem Computer gespeicherte Routine
aktiviert oder rekonfiguriert wird, und könnten schnittstellenmäßig mit
den nötigen
Signalverarbeitungsfähigkeiten
verbunden sein. Insbesondere sind die hierin dargelegten Verfahren
nicht inhärent auf
eine bestimmte Vorrichtung bezogen, vielmehr könnten verschiedene Vorrichtungen
mit Routinen gemäß den hierin
enthaltenen Lehren verwendet werden. Maschinen, die die Funktionen
der vorliegenden Erfindung durchführen könnten, umfassen diejenigen,
die durch Unternehmen, wie z. B. AGILENT TECHNOLOGIES, INC., HEWLETT
PACKARD und TEKTRONIX, INC., sowie anderen Herstellern von Test-
und Messausrüstung hergestellt
werden.
-
Unter
Bezugnahme auf die hierin beschriebene Software werden Fachleute
auf diesem Gebiet erkennen, dass eine Vielzahl von Plattformen und
Sprachen zum Erzeugen einer Software zur Durchführung der hierin dargelegten
Prozeduren existiert. Die Ausführungsbeispiele
der vorliegenden Erfindung können
unter Verwendung jeder einer Anzahl verschiedener Cs implementiert
sein, Fachleute auf diesem Gebiet werden jedoch ebenso erkennen,
dass die Auswahl der exakten Plattform und Sprache oft durch die
spezifischen Details des tatsächlichen
aufgebauten Systems vorgegeben wird, derart, dass etwas, was für einen
Typ von System funktionieren könnte,
für ein
anderes System nicht effizient wäre.
-
Die
vorliegende Erfindung wird unter Bezugnahme auf eine Implementierung
auf Systemen beschrieben, die in der ebenfalls anhängigen US-Patentanmeldung
mit der Seriennummer 10/923,460, die hierin durch Bezugnahme aufgenommen
ist, beschrieben sind. Um ein Verständnis der vorliegenden Erfindung
in Anwendung auf derartige Systeme zu erleichtern, sind die 1-3 und
die folgende zugeordnete Beschreibung vorgesehen. Fachleute auf
diesem Gebiet jedoch werden erkennen, dass die vorliegende Erfindung
auch auf eine Viel zahl von Schaltungen anwendbar ist, einschließlich FPGAs
und ASICs, die die hierin beschriebene multiplexierte Ausgabe nicht
implementieren.
-
1 ist
ein Blockdiagramm eines Dynamiksondensystems 10 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Das Dynamiksondensystem 100 vereinfacht
eine Fehlersuche auf z. B. FPGAs und Systemchips (SOCs). Das Dynamiksondensystem 100 verbessert
eine Beobachtbarkeit, was eine schaltungsinterne Fehlersuche erleichtert.
Während
das Dynamiksondensystem 100 für den SOC-Fluss entworfen ist (was
es erlaubt, dass alle existierenden Werkzeuge, Entwurfsprozeduren
und HDL für
den SOC intakt zu halten sind), ist die vorliegende Erfindung nicht
auf SOCs beschränkt,
sondern könnte
in einer Vielzahl von Umgebungen sowohl auf als auch außerhalb
von FPGAs eingesetzt werden.
-
Das
Dynamiksondensystem 100 weist im Allgemeinen einen Logikanalysator 110,
der mit einem oder mehreren Verfolgungskernen 104 innerhalb
eines FPGA 101 verbunden ist, auf. Der Verfolgungskern 104 weist
einen zweckgebundenen Fehlersuchkern auf, der interne Signale außerhalb
des FPGA 101 zu dem Logikanalysator 110 führt. Der
Verfolgungskern 104 verbindet interne Signale von einem
oder mehreren Kernen 106n in dem SOC 102 (oder
allgemeiner der zu testenden Schaltung) mit durch einen Logikanalysator 110 sondierten
Ausgangsanschlussstiften. Der Logikanalysator 110 und das
FPGA 101 sind durch zwei Busse 120 und 122 verbunden.
-
Datensignale
von den Kernen 106n werden durch Ersatzanschlussstiften
auf dem FPGA 101 über
einen Datensignalbus 122 erhalten. Der Datensignalbus 122 weist üblicherweise,
jedoch nicht notwendigerweise eine reguläre Sondierungsverbindung auf,
die dem Logikanalysator 110 zugeordnet ist. Da die Anzahl
von Ersatzanschlussstiften üblicherweise
kleiner ist als die Anzahl von Signalen, die eine Sondierung benötigen, schaltet
der Verfolgungskern 104 die Signalausgabe auf den Anschlussstiften
um, um auswählbare
Bänke von Sig nalen
bereitzustellen. Die Ausdrücke
Signal und Kanal werden hierin austauschbar verwendet.
-
Der
Logikanalysator 110 weist im Allgemeinen einen Logikanalyseabschnitt 112 und
einen Sondensteuerungsabschnitt 114 auf. Der Logikanalysator 110 kann
z. B. auf einem AGI-LENT
16903A basieren. Der Logikanalyseabschnitt 112 weist allgemein
einen bekannten Logikanalysator auf, während der Sondensteuerungsabschnitt 114 im
Allgemeinen zusätzliche
Software aufweist, die unter dem Betriebssystem läuft, das
für den
Logikanalyseabschnitt 112 zugehörig ist. Der Sondensteuerungsabschnitt 114 überwacht
und steuert im Allgemeinen den Verfolgungskern 104 unter
Verwendung eines seriellen Kommunikationsbus 120, der gemäß einem
einer Anzahl von Seriellkommunikationsstandards, wie z. B. IEEE
1149.1 – auch
bekannt als JTAG, arbeitet.
-
Das
Dynamiksondensystem 100 kann für Zustands- oder Zeitgebungsmessungen
konfiguriert sein. Zustandsmessungen verwenden einen einfachen Abtastungstakt
für alle
Eingänge
in den Verfolgungskern. Der Abtastungstakt für den Zustandskern kommt von
innerhalb des SOC 102. Zeitgebungsmessungen verwenden keinen
vom Entwurf gelieferten Abtastungstakt. Statt dessen werden die
Verfolgungsdaten auf dem Logikanalysator 110 unter Verwendung
eines Takts abgetastet, der durch den Logikanalysator 110 erzeugt wird.
So ist es mit einem Verfolgungskern 104, der für Zeitgebungsmessungen
konfiguriert ist (einem „Zeitgebungsverfolgungskern") möglich, Störimpulse
in dem SOC 102 zu untersuchen, während ein Verfolgungskern 104,
der für
Zustandsmessungen konfiguriert ist (ein „Zustandverfolgungskern") für synchrone
Messungen beabsichtigt ist.
-
Während eine
Vielzahl von FPGA-Werkzeugen existiert, die modifiziert werden könnten, um
zu dem Verfolgungskern 104 hinzugefügt zu werden, wird die folgende
Erläuterung
auf die Erzeugung und Hinzufügung
unter Verwendung von ChipScope-Werkzeugen beschränkt. Der Verfolgungskern 104 könnte durch
zwei Verfahren, nämlich
Instantiierung und Einfügung,
in ein FPGA 101 hinzugefügt werden. Ein Hinzufügen des Verfolgungskerns 104 durch
Instantiierung macht es erforderlich, dass der SOC-Entwerfer seine
HDL modifiziert und den Verfolgungskern 104 in den Entwurf
instantiiert. Der instantiierte Kern ist tatsächlich ein Blackbox-Entwurf,
der während
einer letztendlichen FPGA-Platzierung und -Führung angeschlossen wird. Ein
alternatives Verfahren zum Hinzufügen eines Verfolgungskerns 104 besteht
in der Einfügung
unter Verwendung eines ChipScope-Kerneinsetzer-Werkzeugs von Xilinx's. Dieses Werkzeug
nimmt einen synthetisierten Entwurf, wie z. B. ein SOC, und fügt den Verfolgungskern 104 unter
Verwendung der Entwurfs-EDIF-Datei hinzu. In diesem Fall ist die
SOC-HDL nicht modifiziert und der Verfolgungskern 104 könnte unter
Verwendung dieses Kerneinfügungswerkzeugs
dimensioniert und verbunden sein.
-
Die
XILINX-Software gibt eine „.cdc"-Datei für jeden
eingefügten
Kern aus. Eine .cdc-Datei enthält
Informationen, die den zugeordneten Kern beschreiben, sowie die
zugeordneten EDIF-Dateien, bei denen Signalnamen für jede auswählbare Bank
zu finden sind, und die ausgewählten
FPGA-I/O-Standards. Tabelle 1 enthält ein Beispiel einer CDC-Datei.
-
-
-
2 ist
ein Blockdiagramm eines Zustandverfolgungskerns 200 (auch
als der Kern 200 bezeichnet) zur Verwendung in einer Dynamiksonde 100 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Der Kern 200 weist im Allgemeinen
einen Multiplexer (Mux) 204, eine Datenkalibrierungseinheit 206,
einen Zeitmultiplexer (TDM) 208, Ausgangsanschlussstifte 210,
gemeinsam mit einem Satz von Status- und Steuerregistern, die kollektiv
als die Kernregister 213 bezeichnet werden, auf. Die Kernregister 213 liefern
einen Aufsichtszugriff auf den Logikanalysator 110. Der
mux 204, die Datenkalibrierungseinheit 206, der
TDM 208 und die Ausgangsanschlussstifte 210 schaffen
die physische Verbindung zwischen sondierten Signalen auf dem SOC 102 und
Ausgangsanschlussstiften, die zu dem Logikanalysator 110 laufen
(siehe 1). Die physische Verbindung wird auf einen Abtastungstakt 222,
der durch den SOC 102 über
einen Kanal 224 geliefert wird, synchronisiert.
-
Ein
Zwischenspeicher 202 befindet sich zwischen dem mux 204 und
dem SOC 102. Der Zwischenspeicher 202 weist im
Allgemeinen Register auf, die die Eingänge des Mux 204 überspannen.
Der Zwischenspeicher 202 trennt den Kern 200 von
dem SOC 102. Diese Trennung weist zwei Vorteile auf. Erstens
ist der Mux 204 nicht direkt mit dem sondierten Signal
verbunden. Die Register in dem Zwischenspeicher 202 wirken als
Pipelineregister, wobei nur eine zusätzliche Last zu dem SOC-Signal
hinzugefügt
wird und eine Mux-Verzögerung
vor demselben versteckt wird. Der zweite Vorteil besteht darin,
dass die Register in dem Zwischenspeicher 202 deaktiviert
werden können,
was Signale vor einem Durchlaufen zu dem Rest der Kerns 200 blockiert.
Der Vorteil hier besteht darin, dass der Kern 200 abgeschaltet
werden kann, um Leistung einzusparen, indem einfach der Zwischenspeicher 202 deaktiviert
wird.
-
Der
Mux 204 weist im Allgemeinen einen parallelen Multiplexer
auf, der Gruppen oder Bänke
von Signalen von Bänken
von Eingängen
zu einer einzelnen Bank von Ausgängen
leitet. Die Anzahl von Eingangsbänken
ist konfigurierbar und kann auf jede erwünschte Größe, z. B. von 2 Bänken bis
2048 Bänken,
eingestellt sein. Mit jeder zusätzlichen
Bank nimmt die Anzahl beobachtbarer Signale zu. Jede Bank ist mit
einem Signalsatz 106n in dem SOC 102 verbunden.
Jedes Signal in einem Satz könnte
von anderer Stelle innerhalb des SOC 102, einschließlich eines
SOC-Bus 220, erhalten werden. In 2 stellt
jede Leitung bei den Datensignalverbindungen 226 eine Bank
von Signalen (oder Kanälen)
dar, d. h. eine Mehrzahl physischer Signalleitungen, wie z. B. 32
separate Datenquellen. Die Anzahl von Signalen in jedem Signalsatz 106n könnte durch den
Entwerfer definiert werden, entspricht jedoch im Allgemeinen (ohne
die Verwendung des TDM 208) der Anzahl von Ausgangsanschlussstiften 210,
die zweckgebunden für
eine Fehlersuche sind.
-
Die
Ausgabe des Mux 204 wird unter Verwendung einer oder mehrerer
Auswahlleitungen 212 umgeschaltet. Auswahlleitun gen 212 werden
durch Einträge,
durch den Logikanalysator 110 eingestellt, in den Kernregistern 213 getrieben.
Die Anzahl von Auswahlleitungen 212 hängt von der Anzahl von an den
Mux 204 angelegten Bänken
ab. Wenn es z. B. vier Bänke
gibt (wie in 2 gezeigt ist), würden zwei
Auswahlleitungen 212 genügen. Wenn acht Bänke verwendet
werden, wären
drei Auswahlleitungen 212 erforderlich.
-
Die
Ausgabe des Mux 204 könnte
registriert werden (nicht gezeigt), um die Mux-Logik pipelinemäßig zu verarbeiten
und die Leistung des Kerns 200 zu erhöhen. Der Hauptvorteil besteht
darin, dass der Kern 200 nicht nur schneller läuft, sondern
auch weniger wahrscheinlich mit dem Gesamt-SOC-Zeitgebungsbudget interferiert.
-
Am
Ende der physischen Signalverbindung zwischen dem SOC 102 und
dem Kern 200 befinden sich Ausgangsanschlussstifte 210.
Die Ausgangsanschlussstifte 210 weisen im Allgemeinen FPGA-Ausgangspuffer
und Anschlussstifte/Kugeln auf. Zu den Ausgangsanschlussstiften
stellt der Logikanalysator 110 eine physische Verbindung über die
Datenkanäle 122 her.
Wenn der Kern 200 erzeugt wird, stellt der Benutzer die
Anzahl von Datenkanälen
ein, die zu dem Logikanalysator 110 laufen – üblicherweise
basierend auf den verfügbaren
Fehlersuche/Ersatz-Anschlussstiften in dem FPGA 101. Der
Kern 200 weist zwei Typen von Kanälen auf, die zu dem Logikanalysator 110 laufen.
Der erste Kanaltyp ist ein Taktkanal, der verwendet wird, um das Taktsignal
von dem Taktgeber 222 zur Verwendung beim Abtasten der
Verfolgungsdaten 214 zu tragen. Der Taktgeber 222 weist
im Allgemeinen den Verfolgungskern-Abtasttakt auf, der durch den
SOC 102 bereitgestellt wird. Üblicherweise wird nur ein Anschlussstift
für den
Taktkanal 224 benötigt.
Der zweite Kanaltyp ist ein Datensignalkanal, der die sondierten
Signale von dem SOC 102 zu dem Logikanalysator 110 trägt.
-
3 ist
ein Blockdiagramm eines Zeitgebungsverfolgungskerns 300 (auch
als der Kern 300 bezeichnet) zur Verwendung in einer Dynamiksonde
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Der Zeitgebungsverfolgungskern weist
im Allgemeinen einen Multiplexer 302 (Mux 302),
Ausgangsanschlussstifte 306 und Kernregister 308 auf.
Der Mux 302 und die Ausgangsanschlussstifte 306 liefern
die physische Verbindung zwischen internen Signalen und Ausgangsanschlussstiften.
Die physische Verbindung ist im Inneren des Kerns 300 asynchron
und benötigt
keinen Abtastungstakt von dem SOC 102. Daten auf der physischen
Verbindung werden durch den Logikanalysator 110 (siehe 1)
unter Verwendung des Hochgeschwindigkeits-Abtasttakts des Logikanalysators
erfasst. Die Register 308 dienen als Aufsichtszugriff für den Logikanalysator 110.
-
Der
Zeitgebungskern-Mux 302 ähnelt dem Zustandskern-Mux 204 mit
Nichtbeinhalten der optianalen Eingangs- und Ausgangsregister. Der
Zeitgebungskern-Mux 302 leitet Bänke von Eingaben an einen Ausgang, registriert
jedoch nicht die Eingaben oder die Ausgaben, was es erlaubt, dass
durch den Mux laufende Daten wahrlich asynchron sind. Die Anzahl
von Mux-Eingangsbänken könnte z.
B. von 2 bis 1024 variieren und wird eingestellt, wenn der Kern 300 erzeugt
wird. In 3 stellt jede Leitung bei den
Datensignalverbindungen 310 eine Bank von Signalen dar,
z. B. eine Mehrzahl physischer Signalleitungen (oder Kanäle), wie
z. B. 32 separate Datenquellen. Die Mux-Ausgaben werden unter Verwendung
der Auswahlleitungen 304, die mit den Registern 308 verbunden
sind, umgeschaltet. Die Eingaben 302 in den Mux 304 können von
jeder Stelle innerhalb des FPGA 101 kommen, was eine flexible
Verbindung jedes Signals in dem SOC 102 mit dem Zeitgebungsverfolgungskern 300 erlaubt.
-
Die
Ausgabe des Mux 302 läuft
zu den Ausgangsanschlussstiften 306. Diese Anschlussstifte
stellen die Ausgangspuffer und Anschlussstift/Kugeln dar, die eine
Verbindung zu dem Logikanalysator 110 herstellen. Wenn
der Kern 300 erzeugt wird, spezifiziert der Benutzer die
Anzahl von Anschlussstiften, den Anschlussstiftort und den Ausgangszwischen speicherstandard
für die
Ausgaben des Kerns 300. Der Kern 300 weist nur Datensignalkanäle auf,
da der Taktkanal von dem SOC 102 nicht verwendet wird;
das Taktsignal könnte
jedoch als ein Datensignal gesendet werden. Im Allgemeinen ist die
durch den Kern 300 verwendete Anzahl von Anschlussstiften
immer gleich der Anzahl von Datensignalkanälen.
-
Der
Pfad zwischen den sondierten SOC-Signalen und den Ausgangsanschlussstiften 306 ist
ein unbeschränkter
falscher Pfad. Dieser Pfad ist in dem FPGA 101 unbeschränkt, da
der Pfad von dem sondierten SOC-Signal zu den Ausgangsanschlussstiften 306 keine
Register aufweist. Da keine Register vorliegen, sind sich FPGA-Platzierungs-
und Führungswerkzeuge
der Zeitgebungsbeschränkungen
nicht bewusst. Deshalb behandeln die FPGA-Werkzeuge dies als einen
unbeschränkten
falschen Pfad. Die Wirkung dieses Verhaltens besteht darin, dass
die Zeitgebung der sondierten Signale das Zeitgebungsbudget des
SOC 101 nicht beeinflusst.
-
Ein
Nachteil an der Verwendung eines unbeschränkten Pfads besteht darin,
dass die Zeitgebungsverfolgungskerndaten versetzt sind. In diesem
Fall kann das Versatzkorrekturmerkmal des Logikanalysators 110 nicht
verwendet werden. Die Lösung
hierfür
besteht darin, entweder Beschränkungen
für die
Pfade hinzuzufügen
oder einen FPGA-Zeitgebungsbericht zu erzeugen und die durch den
Logikanalysator 110 erfassten Daten zu normen. Ressourcen
sind ohne weiteres für
Fachleute auf diesem Gebiet zur Implementierung einer der Lösungen verfügbar.
-
Der
Zeitgebungsverfolgungskern 300 weist keine Datenkalibrierungs-
oder TDM-Einheit auf. In Bezug auf die Datenkalibrierungseinheit
könnten
die Daten manuell durch den Benutzer unter Verwendung des Logikanalysators über Abtastungen
der Eingaben Versatz-korrigiert (genormt) werden. Ein TDM ist nicht
möglich, da
dem Kern 300 ein SOC-Abtasttakt
fehlt, von dem Daten auf einer ansteigenden oder abfallenden Flanke
zu versenden sind. Ein Weglassen dieser Einheiten jedoch reduziert
die Größe des Kerns 300.
-
Der
Zeitgebungsverfolgungskern 300 soll ein Messen asynchroner
Ereignisse in großem
Umfang unterstützen.
Der Kern 300 soll ein Finden des genauen Aufbaus und eines
Haltefensters eines einzelnen Flip-Flops innerhalb des FPGA 101 nicht
unterstützen.
Statt dessen soll er ein Finden von Signalen, die zu früh oder spät relativ
zu anderen Signalen umschalten, finden. Der Kern 300 kann
auch verwendet werden, um Störimpulse
an den Eingangsanschlussstiften zu erfassen, was Probleme auf der
PCB anzeigen könnte.
Der Kern 300 kann ein Bestimmen dessen, wie lange ein Signal
in einem Hoch- oder Niedrigzustand bleibt, sowie die Rate, mit der
derselbe umschaltet, unterstützen.
Schließlich
kann der Kern 300 bei einer Mehrtaktbereichsfehlersuche
eingesetzt werden, was es erlaubt, dass Signale von zwei oder mehr
Taktbereichen gleichzeitig durch den Logikanalysator 110 untersucht
werden können.
-
LOGIKANALYSATOR
-
4 ist
ein Blockdiagramm eines Logikanalysators 400, der geeignet
zur Verwendung bei Ausführungsbeispielen
der vorliegenden Erfindung ist. Der Logikanalysator 400 erfasst,
analysiert und zeigt eine breite Vielzahl von Signalen allgemein
ausgedrückt
durch den Logikpegel der Signale gegenüber der Zeit an. Bei dem in 4 gezeigten
veranschaulichenden Analysator umfasst der Logikanalysator 400 ein
Universalcomputersystem, das unter Verwendung einer Computerprogrammiersprache
auf hoher Ebene und einer speziell programmierten zweckgebundenen
Hardware zur Durchführung
von Signalerfassungs-, Analyse- und Anzeigefunktionen programmierbar
ist. Die vorliegende Erfindung könnte
in anderen Umgebungen implementiert sein, wie z. B. in einem alleinstehenden
Logikanalysator, oder unter Verwendung eines zweckgebundenen Programms,
das auf eingebaute Prozessoren, ASICs, Firmware, Hardware oder eine
Kombination derselben wirkt, implementiert sein.
-
Der
Logikanalysator 400 umfasst einen Prozessor 402,
einen Systemspeicher 404, Eingangs-/Ausgangs-(I/O-)Karten 406,
Speichereinheiten 412, wie z. B. ein Festplattenlaufwerk,
Diskettenlaufwerk, usw. Der Analysator 400 könnte außerdem eine
oder mehrere Benutzereingabe/Ausgabe-Vorrichtungen, wie z. B. eine Tastatur 408,
Zeigevorrichtungen 410 und eine Anzeige 414, umfassen.
Der Systemspeicher 404 wird zur Speicherung von Software,
einschließlich
Programminstruktionen, computerlesbaren Programmen und Daten, verwendet.
Bei einem bevorzugten Ausführungsbeispiel
umfasst der Systemspeicher 404 einen Direktzugriffsspeicher
(RAM). Die Anzeige 414 ist eine Kathodenstrahlanzeige oder
LCD und ist logisch oder physisch in ein Array von Bildelementen
(Pixeln) unterteilt. Die Eingangs-/Ausgangs-(I/O-)Schnittstellenkarten 406 könnten Modemkarten,
Netzschnittstellenkarten, Soundkarten und dergleichen sein. Vorzugsweise
könnte
zumindest eine I/O-Schnittstellenkarte 406 eine JTAG-fähige Schnittstelle
aufweisen oder eine Schnittstelle, wie z. B. einen seriellen KOM-Port
oder einen parallelen Druckerport, der schnittstellenmäßig mit
einem JTAG-fähigen
Kabel verbunden sein kann.
-
Der
Prozessor 402 ist üblicherweise
ein kommerziell erhältlicher
Prozessor, wie z. B. der Pentium-Mikroprozessor der INTEL CORPORATION,
oder Mikroprozessoren der PowerPC-Serie von IBM und MOTOROLA. Viele
andere Prozessoren sind ebenso erhältlich. Ein derartiger Prozessor
führt ein
Programm aus, das als ein Betriebssystem 414 bezeichnet
wird, und liefert eine grafische Benutzerschnittstelle (GUI) 416 und
ein Fenstertechniksystem, wie z. B. die verschiedenen Versionen
des Windows-Betriebssystems, einschließlich WINDOWS XP der MICROSOFT
CORPORATION, oder das Unix-Betriebssystem, das bei vielen Verkäufern erhältlich ist,
wie z. B. bei SUN MICROSYSTEMS, INC., HEWLETT-PACKARD COMPANY und
AT&T. Das Betriebssystem 414 steuert
die Ausführung
anderer Computer programme, wie z. B. von Softwareausführungsbeispielen
der vorliegenden Erfindung, und sorgt für eine Zeitplanung, eine Eingangs-Ausgangssteuerung,
Datei- und Datenverwaltung, Speicherverwaltung und Kommunikationssteuerung
und verwandte Dienste. Der Prozessor 402 und das Betriebssystem 414 definieren
im Allgemeinen eine Computerplattform, durch einen Strichblock 401 gezeigt,
für die
Anwendungsprogramme in Programmiersprachen auf hoher Ebene geschrieben
werden können.
Die Funktionselemente des Logikanalysators 400 kommunizieren
miteinander über
den Systembus 428.
-
Das
Signalerfassungsmodul 422 enthält einen Schaltungsaufbau und
eine Software, die Logiksignale 426 von einer zu testenden
Vorrichtung 418 über
Datenkanäle 424 abtastet
und digitalisiert. Anders ausgedrückt empfängt und digitalisiert das Signalerfassungsmodul 422 periodisch
erhaltene Abtastwerte der Logiksignale 426. Das Abtastzeitintervall
könnte
durch einen Bediener spezifiziert sein oder mit einem Logiksignal 426,
das von der zu testenden Vorrichtung 418 empfangen wird,
wie z. B. einem Taktsignal, das durch die zu testende Vorrichtung 418 erzeugt
wird, synchronisiert sein. Die abgetastete und digitalisierte Darstellung
von Logiksignalen 426 wird zeitweilig zur Analyse durch
das Signalerfassungsmodul 422 gespeichert.
-
Ein
ausgewählter
Abschnitt der abgetasteten Logiksignale 426 zur nachfolgenden
Speicherung und Anzeige wird basierend auf einer durch einen Bediener
definierten Auslösesequenz
bestimmt. Eine Auslösesequenz
ist allgemein durch zwei Parameter spezifiziert, eine Auslöserdefinition,
die die Vorkommnisse identifiziert, unter denen Signaldaten gespeichert
werden sollen, und eine Auslöserposition,
die die relative Position des Auftretens, das durch die Auslöserdefinition
definiert ist, identifiziert. Eine vorbestimmte Menge an Signaldaten,
die vor und nach dem spezifizierten Auftreten auftreten, wird in
dem Erfassungsspeicher 429 gespeichert.
-
Der
Logikanalysator 400 umfasst außerdem eine Videoanzeigensteuerung 427.
Die Computerplattform 401 treibt die Videoanzeigensteuerung 427 unter
Verwendung von Standard-Fenster-Anwendungsprogrammschnittstellen
(-APIs). Die Auslösersequenz
ist durch ein Messspezifizierungsmodell, das in der grafischen Benutzerschnittstelle 416 vorgelegt
wird, definiert.
-
Ein
Hardwareressourcenzuteiler 420 ist zwischen der Signalerfassungshardware 422 und
der grafischen Benutzerschnittstelle 416, auf der ein Signalmessspezifizierungsmodell
dem Benutzer vorgelegt wird, angeordnet. Im Allgemeinen teilt der
Hardwareressourcenzuteiler die angeforderten Hardwareressourcen
zu und konfiguriert dieselben und übersetzt die Messspezifizierung
in Hardwaresteuerdaten, die durch Softwaretreiber verwendet werden,
um die Signalerfassungshardwareressourcen zu programmieren.
-
AUTOMATISIERTE
TESTAUFBAUSOFTWARE
-
Der
Logikanalysator 400 arbeitet unter der Steuerung einer
Software, die gemäß dem ausgewählten Betriebssystem
formuliert ist. Die hierin beschriebene Software wird unter Bezugnahme
auf das Betriebssystem WINDOWS XP beschrieben. Ferner werden die
hierin beschriebenen Ausführungsbeispiele
unter Bezugnahme auf eine zu testende Vorrichtung beschrieben, die
die unter Bezugnahme auf die 1-3 dargelegten
Lehren einsetzt, z. B. die Verwendung eines Multiplexers, gesteuert über ein
Seriellkommunikationskabel, wie z. B. ein JTAG-fähiges Kabel. Fachleute auf
diesem Gebiet werden erkennen, dass die vorliegende Erfindung auf
andere zu testende Vorrichtungen mit und ohne zusätzliche
Kommunikationskabel anwendbar ist.
-
5 ist
ein Flussdiagramm, das ein Verfahren zum Vorbereiten eines Logikanalysators
für eine
Testsitzung beschreibt. Das Verfahren beginnt bei Schritt 500.
Bei Schritt 502 schaltet der Testingenieur die Testausrüstung, d.
h. einen Logikanalysator, ein und steckt eine Testvorrichtung (d.
h. Mictor, soft touch, Samtec oder freie Anschlussleitungssonden
als Beispiel) in die Testpunkte an der zu testenden Vorrichtung,
wie z. B. in eine PC-Platine, die eine ASIC oder einen FPGA trägt. Als
Nächstes
werden bei Schritt 504 Kernkonfigurationsinformationen
von der zu testenden Vorrichtung z. B. aus den Kernregistern über eine
JTAG-Kommunikationsverbindung wiedergewonnen. Konfigurationsinformationen
könnten
eine Identifizierung der Kerne, die zur Abfrage verfügbar sind,
die Anzahl von Anschlussstiften, die durch den Kern verwendet werden,
und den Ausgabestandard der Ausgabeanschlussstifte umfassen. Bei
Schritt 506 wird ein Kern zur Abbildung ausgewählt.
-
Bei
Schritt 508 werden die Ausgangsanschlussstifte der zu testenden
Vorrichtung in Eingangsanschlussstifte auf der Sonde abgebildet.
Diese Abbildung könnte
unter Verwendung einer grafischen Benutzerschnittstelle durchgeführt werden,
bei der dem Benutzer eine grafische Darstellung der Ausgangsanschlussstifte
vorgelegt wird und derselbe aufgefordert wird, die Logikanalysatorkanäle darauf
abzubilden. Durch ein Bewegen jedes Ausgangsanschlussstifts zu seinem
zugeordneten Kanal schließt
der Benutzer die Abbildung ab. Bei einer im Folgenden erläuterten
Verbesserung wird ein Verfahren zum automatischen Identifizieren
der Korrespondenz zwischen den Ausgangsanschlussstiften auf der
zu testenden Vorrichtung und dem Kanal auf dem Logikanalysator vorgelegt.
-
Bei
Schritt 510 wird der Logikanalysator konfiguriert, um eine
schnittstellenmäßige Verbindung
zu den Ausgangsanschlussstiften der zu testenden Vorrichtung herzustellen.
Die Sonde z. B. wird auf den Ausgabestandard der Ausgangsanschlussstifte
eingestellt, wie z. B. LVTTL, LVDS und SSTL. Als Nächstes werden
bei Schritt 512 Signalnamen von Signalen, die an Ausgangsanschlussstifte
auf der zu testenden Vorrichtung angelegt werden, auf Kanäle auf dem
Logik analysator abgebildet, was es ermöglicht, dass die Signalnamen
mit ihren entsprechenden Kanälen
auf der Logikanalysatoranzeige angezeigt werden. Bei bekannten Verfahren wurde
dies manuell durchgeführt,
wobei der Benutzer manuell Namen eingegeben und jedem Kanal in dem Logikanalysator
zugewiesen hat. Gemäß der vorliegenden
Erfindung werden Informationen über
die an die Ausgangsanschlussstifte angelegten Signale wiedergewonnen
und verwendet, um die Kanäle
auf dem Logikanalysator zu identifizieren. Derartige Informationen
könnten
z. B. aus den EDIF-Dateien, die der zu testenden Vorrichtung zugeordnet
sind, wiedergewonnen werden. Alternativ könnte eine Datei, die eine Korrespondenz zwischen
jedem Signal und dem Ausgangsanschlussstift, an den dasselbe angelegt
wird, entweder auf einer Platte oder an einem Speicherort auf der
zu testenden Vorrichtung gespeichert werden. Diese Datei würde nachfolgend
wiedergewonnen und verwendet werden, um Signalnamen auf Logikanalysatorkanäle abzubilden.
-
Bei
Schritt 514 wird der Logikanalysator für Messungen vorbereitet. Eine
Versatzkorrekturprozedur könnte
z. B. aufgerufen werden. Das Verfahren endet danach bei Schritt 516.
-
Die 6 bis 13 stellen
grafische Anzeigen dar, die einer Software zugeordnet sind, die
in der Lage ist, das in 5 beschriebene Verfahren zu
implementieren. 6 ist eine Bildschirm-Momentaufnahme einer
grafischen Anzeige, die durch eine Software erzeugt wird, gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung. Die Dynamiksondensoftware ist allgemein
in zwei Abschnitte unterteilt: einen Aufbauabschnitt und einen Bankauswahlabschnitt.
Das in 6 dargestellte Fenster 600 stellt eine
grafische Anzeige dar, die der Aufbaufunktion zugeordnet ist. Das
Sondenaufbaufenster 600 weist fünf Knöpfe auf: Kabelverbindung 610;
Vorrichtung konfigurieren 612, Bus/Signalnamen importieren 614;
Anschlussstiftabbildung 616 und Eigenschaften 618.
Um das Aufbauverfahren zu starten, wird ein Kommunikationskabel,
wie z. B. ein JTAG-fähiges
Kabel, durch ein Aktivieren des Knopfs 610 initialisiert.
-
7 ist
eine Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf
den in 6 gezeigten Kabelverbindung-Knopf 610 bezogen ist. Bezug
nehmend auf die Dynamiksonde 100 aus 1 erfordert
die Verbindung mit jedem Kern 104 ein Programmieren eines
Programmierungskabels, wie z. B. eines JTAG-kompatiblen Kabels,
das bei XILINX erhältlich
ist. Das Kabelverbindung-Fenster 700 ermöglicht die
Erfassung von Informationen, die zur Konfiguration einer JTAG-Verbindung nötig sind.
Ein Typ eines Kabels wird von dem Funkknopfabschnitt 710 erhalten.
Bei dem gezeigten Beispiel ist der einzige auswählbare Kabeltyp ein XILINX-Parallelkabel.
Fachleute auf diesem Gebiet werden erkennen, dass andere Kabeltypen
verfügbar
sind und mit der vorliegenden Erfindung verwendet werden könnten. Ein
Auf klapp- bzw. Pull-down-Menü 712 ermöglicht es
dem Benutzer, einen Kabeltyp einzugeben. Einige Beispiele eines
Kabeltyps umfassen ein Xilinx Parallel 4-Programmierkabel. Das Beispiel
zeigt eine Autoerfassungsprozedur, die versucht, ein Kabel abzufragen
und einen Typ zu bestimmen. Das Pull-down-Menü 714 erlaubt es dem
Benutzer, ein Port bereitzustellen, mit dem das Kabel verbunden
ist, z. B. LPT1, LPT2, COM1, COM2, usw. Schließlich erlaubt es das Pull-down-Menü 716 dem
Benutzer, die Kommunikationsgeschwindigkeit mit dem Kabel einzugeben.
Bei diesem Beispiel werden 200 kHz ausgewählt. Sobald diese Informationen
gesammelt wurden, kann die Software die nötigen Parameter zur Kommunikation
mit dem Kabel initialisieren.
-
8 ist
eine Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf
den in 6 gezeigten Vorrichtung-Konfigurieren-Knopf 612 bezogen
ist. Der Vorrichtung-Konfigurieren-Knopf 612 bringt ein
Dateiauswahl-Fenster 800 auf, das die Auswahl einer Konfigurationsdatei 802n erlaubt.
Eine Konfigurationsdatei 802n enthält im Allgemeinen Informationen,
um das FPGA auf einen durch einen Benutzer definierten Zustand zu
konfigurieren. Diese Datei wird unter Verwendung von FPGA-Entwurfswerkzeugen
erzeugt und ist normalerweise durch einen Menschen nicht zerstörbar.
-
Sobald
dies konfiguriert ist, kann der Benutzer das FPGA unter Verwendung
der JTAG-Verbindung programmieren. Nach der Programmierung kann
das FPGA abgefragt werden, um das Vorliegen von Kernen zu identifizieren.
Jeder identifizierte Kern wird dann abgefragt, um Kernparameter
aus den Kernregistern wieder zu gewinnen. Diese Parameter könnten z.
B. eine Anzahl von Verfolgungsdatenanschlussstiften und eine Anzahl
von Signalbänken
umfassen. Unter Verwendung dieser Informationen kann der Logikanalysator
eine Anzeige der Vorrichtungen auf der JTAG-Abtastkette erzeugen,
einschließlich
der Kerne im Inneren des FPGA. Sobald der Kern ausgewählt ist
(siehe 11), durchläuft der Benutzer einen Prozess,
der Anschlussstiftabbildung genannt wird, der durch das Klicken
auf den Anschlussstiftabbildung-Knopf 616 eingeleitet wird.
Die Anschlussstiftabbildung nimmt Kerndatenkanäle und Taktkanäle und bildet
dieselben auf Kanäle
auf dem Logikanalysator ab.
-
Ein
Signalimportieren, aufgerufen durch ein Verwenden des Knopfs 614,
liefert den Mechanismus zum Importieren von Signalnamen, auf die
in einer CDC-Datei verwiesen wird, die dem ausgewählten Kern
zur Verwendung bei der Anschlussstiftabbildung zugeordnet ist. Dieses
Verfahren nimmt die Signalnamen, die mit den Eingangskern-Mux-Bänken während einer
Kerneinfügung
verbunden waren, und verwendet dieselben als Etiketten für die Logikanalysatorkanäle. Dies
erlaubt es dem Benutzer, den exakten Namen, der in der EDIF-Datei zu sehen ist,
auf dem Bildschirm des Logikanalysators zu sehen. Wenn der Benutzer
Bänke umschaltet,
verändert
sich ein neuer Satz von Signalnamen, um die nächsten Banksignale widerzuspiegeln.
Während
dies nicht nötig
ist, verbessert ein Importieren der Signalnamen die Leichtigkeit
einer Verwendung des Logikanalysators und vereinfacht einen Messaufbau.
Ein Signalimportieren weist allgemein ein Wie dergewinnen der Signalnamen
von einem spezifizierten Ort auf. Der spezifizierte Ort könnte z.
B. durch ein Parsen bzw. syntaktisches Analysieren einer .cdc-Datei
bestimmt werden, um eine weitere Datei (üblicherweise eine EDIF-Datei) auf einer
Speichervorrichtung, wie z. B. einer Festplatte oder einer optischen
Platte, zu identifizieren. Alternativ könnte ein Diagramm, das Signalnamen
enthält,
auf der Schaltung oder der zu testenden Vorrichtung selbst gespeichert
werden. In jedem Fall werden die Signalnamen aus dem spezifizierten
Ort extrahiert und jeder Bank in einer Datenstruktur, die für den Logikanalysator
lokal ist, zugeordnet.
-
Wie
angemerkt wurde, liefern EDIF-Dateien einen bequemen Ort, von dem
Signalnamen erhalten werden können.
EDIF, eines der am verbreitetsten eingesetzten Elektronikentwurf-Austauschformate
in der Welt, war ursprünglich
Teil des EIA-Dienstes (EIA = Electronic Industries Alliance = Elektronikindustrieverband)
für die
Elektronikindustrie. Die folgende Beschreibung wurde von http://www.edif.orq/introduction.html
erhalten. Das Elektronikentwurfaustauschformat (EDIF; EDIF = Electronic
Design Interchange Format) ist ein Format, das zum Austausch von
Entwurfsdaten zwischen unterschiedlichen CAD-Systemen und zwischen
CAD-Systemen und Herstellung und Aufbau einer gedruckten Schaltung
verwendet wird. Das „elektronisch" bezieht sich auf
den Typ von Daten, d. h. Entwurfsdaten für Elektroniksysteme, und nicht
den Austauschmechanismus. Natürlich
ist eine EDIF-Datei maschinenlesbar und könnte elektronisch ausgetauscht
werden. Derartige CAD-Systeme werden oft als elektronische CAD(ECAD-)Systeme
oder Elektronikentwurfsautomatisierungs(EDA-)Systeme bezeichnet.
Das EDIF-Format ist entworfen, um durch Computerprogramme geschrieben
und gelesen zu werden, die Bestandteile von EDA-Systemen oder -Werkzeugen
sind, oder durch eine Software, die Teil von Front-End-Herstellungssystemen
ist (CAM-Stationen). Die Syntax ist für ein leichtes Maschinen-Parsen
entworfen und ähnelt
LISP. Naturgemäß stecken
die EDIF-Standards für
die meisten EDA- Benutzer
hinter den Szenen. Die Entwicklung von EDIF hat Eingaben von EDA-Verkäufern, Entwerfern
und großen
Benutzerunternehmen beinhaltet. Eine Software zur Prüfung einer Übereinstimmung
mit dem Standard ist verfügbar,
um eine Sicherstellung dessen, dass EDIF-Austausche so effektiv
wie möglich
sind, zu unterstützen.
Das Format wurde ursprünglich
durch den Electronic Industries Alliance (EIA), einen Industrieverband
der USA, der verantwortlich ist für eine Anzahl elektronikbezogener
Standards, standardisiert. (Einige vertraute könnten JEDEC und RS-232 sein).
Sowohl die EDIF-Version 300 als auch die EDIF-Version 400 sind
ANSI-Standards und auch IEC-Standards. Die EDIF-Version 300 ist
formal die IEC 61690-1. Die EDIF-Version 400 ist formal
die IEC 61690-2. Beide Standards wurden auch als europäische Standards
ratifiziert. Die EDIF-Version 300 ist die EN 61690-1 und
die EDIF-Version 400 ist die EN 61690-2.
-
9 ist
eine Bildschirm-Momentaufnahme einer grafischen Anzeige 800,
die auf den in 6 gezeigten Anschlussstiftabbildung-Knopf 616 bezogen
ist. Basierend auf den aus dem Kern 104 wiedergewonnenen
Kernparametern erzeugt die Anschlussstiftabbildungsroutine eine
Liste 902 von FPGA-Anschlussstiften.
Wenn die Signalnamen importiert wurden, könnten diese Namen zur Zuordnung
anstelle der generischen Anschlussstiftnamen angezeigt werden. Eine
grafische Darstellung 904 des Sondenverbindungselements
wird ebenso erzeugt. Bei dem in 8 gezeigten
Beispiel ist das Sondenverbindungselement eine einendige 34-Kanal-MICTOR-Sonde
mit Anschlussstiften 6-38. Eine Anschlussstiftabbildung wird durch
ein Ziehen von Anschlussstiftbezeichnern (oder Signalnamen, falls
importiert) auf eine einem Sondenanschlussstift zugeordnete Textdatei
durchgeführt.
Bei diesem Beispiel weisen die Kerndatenkanäle Anschlussstiftnamen ATD,
gefolgt durch eine Anzahl auf, während
der Taktkanal den Anschlussstiftnamen ATCK aufweist. Die Grafikanzeige 900 erzeugt
außerdem
eine Anzeige 906 der auf dem Logikanalysator verfügbaren Baugruppen.
-
Nach
der Anschlussstiftabbildung werden die Kanäle des Logikanalysators konfiguriert.
Insbesondere werden die Kanäle
des Logikanalysators auf den Ausgabestandard des Kerns 104 und
den Typ von Messung, z. B. Zustand oder Zeitgebung, eingestellt.
In dem Fall eines Zustandskerns mit TDM z. B. wird der Logikanalysator
eingestellt, um bei sowohl der ansteigenden als auch der abfallenden
Flanke des Takts abzutasten. Schließlich werden nach der Anschlussstiftabbildung
der Verfolgungskern und seine Ausgaben aktiviert. Der Benutzer kann
nun Messungen unter Verwendung der Vorgabebank, z. B. Bank 0, durchführen.
-
10 ist
eine Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf
den in 6 gezeigten Eigenschaften-Knopf 618 bezogen ist. Der
Eigenschaften-Knopf 618 bewirkt die Anzeige eines Fensters 1000, das
Informationen über
einen ausgewählten
Kern liefert, z. B. einschließlich
der Anzahl von Bänken,
Anschlussstiften und Signalen pro Bank.
-
11 ist
eine Bildschirm-Momentaufnahme einer grafischen Anzeige, die der
Auswahl von Kernen und Bänken
zugeordnet ist. Der Bankauswahlabschnitt der Dynamiksondensoftware
erlaubt es einem Benutzer, einen Kern und eine Bank zum Messen auszuwählen, den
Logikanalysator für
die ausgewählte
Bank zu kalibrieren und einige Organisationsfunktionen durchzuführen. Wenn
der Bankauswahlabschnitt aufgerufen wird, erzeugt er ein Fenster 1100.
Das Hauptaugenmerk des Fensters 1100 ist die Darstellung
eines Baumdiagramms 1102, das die verfügbaren Kerne 1104n und
Bänke 1106n anzeigt,
einschließlich
verfügbarer
Kalibrierungsbänke 1108 (in
dem Fall eines Zustandverfolgungskerns). Die Auswahl wird durch
ein einfaches Klicken auf eine erwünschte Bank und ein Klicken
auf OK durchgeführt.
Das Fenster 1100 liefert außerdem mehrere Knöpfe: einen
Eyefinder-Knopf 1112; einen Umbenennen-Knopf 1114 und
einen Bus-/Signalname-Abgleichen-Knopf 1116.
-
12 ist
eine Bildschirm-Momentaufnahme einer grafischen Anzeige, die auf
den in 11 gezeigten Eyefinder-Laufenlassen-Knopf 1112 bezogen
ist. Eine Kernkalibrierung unter Verwendung der Eyefinder-Funktion
des Logikanalysators könnte
für Zustandskerne
durchgeführt
werden, um sicherzustellen, dass durch den Logikanalysator erfasste
Zustandsdaten genau sind. Das Schwellen- und Abtastpositionsfenster 1200 ist
ein Beispiel einer Kalibrierungsfunktion, die in dem Zusammenhang
der vorliegenden Erfindung nützlich
ist. Unter Verwendung von Testdaten stellt ein Eingangsabtastschaltungsaufbau
des Logikanalysators die Abtastposition auf einer Basis von Kanal
für Kanal
ein. Unter Verwendung dieser Einstellung ist es möglich, alle
Eingangskanäle
auszurichten, sodass die Daten perfekt ausgerichtet und durch den
Eingangsverfolgungskerntakt abgetastet werden.
-
In
Zustandskernen erzeugt die Kernkalibrierungsbank eine 5A-A5-Struktur
auf den Verfolgungskernanschlussstiften, wenn diese ausgewählt wird.
Diese Struktur kann dann verwendet werden, um den Logikanalysator
zu kalibrieren. Die Kalibrierungsoperation oder die Datenversatzkorrektur
wird z. B. unter Verwendung des Eyefinder-Werkzeugs des Logikanalysators
durchgeführt.
Der Eyefinder ist ein Softwaremerkmal, das durch die unterschiedlichen
Abtastpositionen pro Datenerfassungskanal schreitet. Mit zunehmendem
Fortgang durch jede Position erfasst er gültige stabile Daten und baut
ein Fenster gültiger
Abtastpositionen auf. Sobald er dieses Verfahren abgeschlossen hat,
berechnet er die Mitte des gültigen
Abtastfensters und zeigt dann die gefundenen Ergebnisse an. Aus
der Anzeige kann der Benutzer die Ergebnisse sehen und auch manuell
diese Einstellungen, falls nötig,
einstellen. Die Kernkalibrierungsbank kann als Stimulus für den Eyefinder verwendet
werden, ist jedoch nicht die einzige Datenquelle, die zur Datenversatzkorrektur
verwendet werden kann. Der Benutzer kann auch jede beliebige Bank
zur Durchführung
dieser Kalibrierung verwenden. Sie tun dies durch ein Auswählen einer
beliebigen Bank und ein darauf folgendes Laufenlassen des Eyefinders,
wie erwähnt
wurde. Ein Grund zur Kalibrierung bei spezifischen Bankdaten besteht
darin, dass diese zufällige
Umschaltstrukturen aufweisen könnten,
die Platinenrauscheffekte hervorheben. In diesem Fall ist die Bankstruktur ein
besserer Stimulus zur Datenversatzkorrektur, da sie alle instabilen
Abtastpunkte, die durch Platinenrauscheffekte betroffen werden,
beseitigt. Wenn jedoch die Benutzerbänke keine Umschaltdaten bei
jedem Kanal erzeugen, sollte die Kernkalibrierungsbank zur Datenversatzkorrektur
verwendet werden.
-
13 ist
eine Bildschirm-Momentaufnahme einer grafischen Anzeige 1300,
die auf das in 11 gezeigte Bus-/Signalnamen-Abgleichen-Element 1116 bezogen
ist. Das Abgleichfenster 1300 erlaubt es dem Benutzer,
Abgleichregeln auf die Namen von Bussen und Signalen anzuwenden.
Eine Vielzahl von Formatierungsregeln könnte implementiert werden,
wobei mehrere durch den Inhalt des Fensters 1300 dargestellt werden.
-
TICKLE-FUNKTIONALITÄT (ANSTACHELN)
-
14 ist
ein Blockdiagramm eines Zustandsverfolgungskerns 1400 (auch
als der Kern 1400 bezeichnet) zur Verwendung in einer Dynamiksonde 100 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Der Kern 1400 weist allgemein
einen Multiplexer 1404, der Signale von Signalpuffern bzw.
-zwischenspeichern 1402 empfängt, einen chipexternen Verfolgungsport
(OTP) 1406, einen Zeitmultiplexer (TDM) 1408, Ausgangsanschlussstifte 1410 gemeinsam
mit einem Satz von Status- und Steuerregistern, die kollektiv als die
Kernregister 1413 bezeichnet werden, auf. Die Kernregister 1413 schaffen
einen Aufsichtszugang zu einem Logikanalysator, wie z. B. dem Logikanalysator 110.
Die Zwischenspeicher 1402, der Mux 1404, der OTP 1406,
der TDM 1408 und die Ausgangsanschlussstifte 1410 schaffen
die physische Verbindung zwischen sondierten Signalen und dem Logikanalysator 110 (siehe 1).
Die physische Verbindung wird mit einem Abtasttakt 1416 synchronisiert.
Ein Kom-Port 1414 schafft Zugriff, für den Logikanalysator, zu den
Kernregistern 1411 und einem Speicherbereich 1412,
der Informationen speichert, die Ausgangsanschlussstifte Signalnamen
und Bänke
zuordnen.
-
Im
Allgemeinen ähnelt
der Zustandverfolgungskern 1400 dem Zustandverfolgungskern 200 aus 2 mit
Hinzufügung
des OTP 1406. Der OTP 1406 weist einen Mux auf,
der Signale von einem oder mehreren Registern, die hierin als Anschlussstift-Wackel-Register
bezeichnet werden, in die Kernregister 1411 einschaltet,
die verwendet werden, um einen Kernaufbau zu automatisieren. Die
Anschlussstift-Wackel-Register ermöglichen die Platzierung eines
logischen Hochsignals auf einem oder mehreren ausgewählten Ausgangsanschlussstiften 1410n.
In dem Fall des Zustandskerns 1400 werden die basierend
auf den Anschlussstift-Wackel-Registern erzeugten Signale mit dem
Versatzkorrekturdatengenerator multiplexiert. Unter Verwendung des
OTP 1406 kann ein angeschlossener Logikanalysator ein Signal
auf einem spezifizierten Ausgangsanschlussstift 1410n erzeugen
und durch ein Überwachen
der Ausgangsanschlussstifte kann der Logikanalysator den dem Ausgangsanschlussstift 1410n zugeordneten
Eingangskanal identifizieren.
-
15 ist
ein Blockdiagramm eines Zeitgebungsverfolgungskerns 1500 (auch
als der Kern 1500 bezeichnet) zur Verwendung in einer Dynamiksonde
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Der Kern 1500 weist im Allgemeinen
einen Multiplexer 1504, der Signale von Signalpuffern 1502 empfängt, einen
chipexternen Verfolgungsport (OTP) 1506, Ausgangsanschlussstifte 1508 und
Kernregister 1510 auf. Wie bei dem Zeitgebungsverfolgungskern 300 ist
der Signalpfad im Inneren des Kerns 1500 asynchron und
erfordert keinen Abtasttakt. Daten werden unter Verwendung des Hochgeschwindigkeit-Abtasttakts
des Logikanalysators erfasst. Ein KOM-Port 1514 schafft
Zugriff, für
den Logikanalysator, zu den Kernregistern 1410 und einem
Speicherbe reich 1512, der Informationen speichert, die
Ausgangsanschlussstifte Signalnamen und Bänke zuordnen.
-
Im
Allgemeinen ähnelt
der Zeitgebungsverfolgungskern 1500 dem in 3 gezeigten
Zeitgebungsverfolgungskern 300 mit Hinzufügung des
OTP 1506. Der OTP 1506 weist einen Mux auf, der
Signale von einem oder mehreren Registern, die hierin als Anschlussstift-Wackel-Register
bezeichnet werden, in die Kernregister 1510 einschaltet,
die verwendet werden, um den Kernaufbau zu automatisieren. Die Anschlussstift-Wackel-Register
ermöglichen
die Platzierung eines logischen Hochsignals auf einem oder mehreren
ausgewählten
Ausgangsanschlussstiften 1508n. In dem Fall des Zeitgebungskerns 1500 werden
die Anschlussstift-Wackel-Register mit der Ausgabe aus der Mux-Bank
multiplexiert. Unter Verwendung des OTP 1506 kann ein angeschlossener
Logikanalysator ein Signal auf einem spezifizierten Ausgangsanschlussstift 1508n erzeugen und
durch ein Überwachen
der Ausgangsanschlussstifte kann der Logikanalysator den dem Ausgangsanschlussstift 1508n zugeordneten
Eingangskanal identifizieren.
-
Die 16a bis 16f sind
Flussdiagramme, die ein Verfahren zur Vorbereitung eines Logikanalysators
für eine
Testsitzung unter Verwendung von Anschlussstift-Wackel-Registern
beschreiben. Um einen automatisierten Aufbau zu ermöglichen,
könnte
eine Abbildung jedes Signalnamens in jeder Bank auf einen Ausgangsanschlussstift
auf der Schaltung oder der zu testenden Vorrichtung selbst, z. B.
ASIC oder FPGA, gespeichert werden. Eine zusätzliche Konfiguration, wie
z. B. die Ausgangssignalstandards (z. B. LVTTL, LVDS und SSTL),
und eine Konfiguration (z. B. Typ von Verbindungselement), die die
Anzahl und den Entwurf der Ausgangsanschlussstifte umfasst, könnte außerdem auf
der zu testenden Vorrichtung gespeichert werden. Dies ermöglicht es
dem Logikanalysator 400, Informationen zur direkten Anschlussstiftabbildung
von der zu testenden Vorrichtung wiederzugewinnen. Während des
Aufbaus gibt der Logikanalysator ein Testsignal auf einem ausgewählten Ausgangsanschlussstift auf
der zu testenden Vorrichtung aus. Der Logikanalysator ordnet dann
den ausgewählten
Ausgangsanschlussstift dem Sondeneingangsanschlussstift, auf dem
eine Aktivität
zu erkennen ist, zu.
-
Das
Verfahren beginnt bei Schritt 1600 in 6a.
Bei Schritt 1601 schaltet der Testingenieur die Testausrüstung, z.
B. einen Logikanalysator, ein, schließt das JTAG-Kabel an und steckt
eine Testvorrichtung (d. h. Mictor, soft touch, Samtec oder freie
Anschlussleitungssonden als Beispiele) in die Testpunkte an der
zu testenden Vorrichtung, wie z. B. in eine PC-Platine, die eine
ASIC oder ein FPGA trägt.
-
Als
Nächstes
wird bei Schritt 1602 eine Bestimmung hinsichtlich dessen
durchgeführt,
ob das FPGA programmiert werden muss. Falls dies der Fall ist, wird
das FPGA mit einer durch einen Benutzer spezifizierten Datei bei
Schritt 1603 programmiert. In jedem anderen Fall fährt das
Verfahren mit Schritt 1604 fort und eine Suche nach einem
Verfolgungskern in der zu testenden Vorrichtung wird ausgeführt.
-
Bei
Schritt 1605 wird eine Bestimmung durchgeführt, ob
ein Kern gefunden wurde. Wenn kein Kern gefunden wird, endet das
Verfahren bei Schritt 1612. Wenn bei Schritt 1605 ein
Kern gefunden wurde, fährt das
Verfahren mit Schritt 1606 fort, bei dem Kernkonfigurationsparameter
wiedergewonnen werden. Die Kernkonfigurationsparameter könnten über die
Kom-Teile 1414 oder 1514 wiedergewonnen werden.
Die Kernkonfigurationsparameter weisen im Allgemeinen Informationen über den
Kern auf, d. h. den Typ des Kerns, die Anzahl von Bänken, die
Anzahl von Signalen pro Bank. Die Kernkonfigurationsparameter könnten außerdem Informationen
aufweisen, die von den Speicherorten 1412 oder 1512 erhalten
werden, einschließlich
einer Auflistung von Signalnamen und einer entsprechenden Bank und
eines Ausgangsanschlussstifts für
jedes Signal. Als Nächstes
werden in Schritt 1607 die Verfolgungskernausgaben freigegeben.
Verfolgungskernausgaben könnten
durch den Kom-Port durch ein Einstellen eines Ausgangsfreigaberegisters,
das mit den Verfolgungskernausgangspuffern verbunden ist, freigegeben
werden. Vor der Freigabe sind die Ausgänge „aus". Dies bedeutet, dass diese Ausgänge in einem
inaktiven Dreizustandsmodus sind. Bei Schritt 1608 werden
Signalnamen auf ihre jeweiligen Kanäle abgebildet, wie in 16b beschrieben ist.
-
Bei
Schritt 1609 wird eine Bestimmung durchgeführt, ob
der Kern ein Zustandskern ist, z. B. wie in 14 gezeigt.
Wenn der Kern ein Zustandskern ist, fährt das Verfahren mit Schritt 1610 fort
und die Kernkanäle
werden Versatzkorrigiert, wie in 16e beschrieben
ist. Sobald eine Versatzkorrektur durchgeführt wurde, endet das Verfahren
bei Schritt 1612. Wenn bei Schritt 1609 der Kern
kein Zustandskern war, wie z. B. ein Zeitgebungskern, muss eine
Versatzkorrektur manuell durchgeführt werden und das Verfahren
endet ohne eine automatische Versatzkorrektur bei Schritt 1612.
-
16b ist ein Flussdiagramm, das ein Verfahren zur
Abbildung von Signalnamen auf Kanäle erklärt, entsprechend Schritt 1608 in 16a. Das Verfahren beginnt bei Schritt 1620.
Bei Schritt 1621 wird eine Prüfung durchgeführt, um
zu bestimmen, ob die Anschlussstift-Zu-Kanal-Korrespondenz automatisch
durchgeführt
werden soll. Diese Bestimmung könnte
durch den Benutzer durchgeführt
werden oder basierend darauf, ob die zu testende Vorrichtung die
Fähigkeit
besitzt, ein Testsignal („Wackeln") auf einem ausgewählten Ausgangsanschlussstift
auszugeben. Wenn die Anschlussstift-Zu-Kanal-Korrespondenz automatisch durchgeführt werden
soll, geht das Verfahren zu Schritt 1622 und eine Autoaufbau-Prozedur,
Bezug nehmend auf 16c beschrieben, wird durchgeführt. Wenn
die Anschlussstift-Zu-Kanal-Korrespondenz manuell durchgeführt werden
soll, fährt
das Verfahren mit Schritt 1623 fort und der Benutzer führt eine
manuelle Anschlussstiftabbildung z. B. unter Verwendung der in 9 gezeigten
Grafikanzeige durch. In jedem Fall bewegt sich das Verfahren dann
zu Schritt 1624.
-
Bei
Schritt 1624 wird eine Bestimmung durchgeführt, ob
Signalnamen in die zu testende Vorrichtung z. B. an Speicherorten 1412 oder 1512 eingebettet
sind. Wenn die Signalnamen eingebettet sind, werden sie bei Schritt 1625 ausgelesen
und den entsprechenden Kanälen
zugewiesen. Danach endet das Verfahren bei Schritt 1630 (mit
einer Rückkehr
zu Schritt 1609 in 16a).
-
Falls
in Schritt 1624 die Signalnamen nicht eingebettet sind,
fährt das
Verfahren mit Schritt 1626 fort und eine Bestimmung wird
durchgeführt,
ob eine CDC-Datei verfügbar
ist. Wenn eine CDC-Datei verfügbar
ist, fährt
das Verfahren mit Schritt 1627 fort und die CDC-Datei wird
wiedergewonnen, Signalnamen werden extrahiert und den entsprechenden
Kanälen
zugewiesen. Danach endet das Verfahren bei Schritt 1630 (mit
einer Rückkehr
zu Schritt 1609 in 16a).
-
Wenn
in Schritt 1626 keine CDC-Datei verfügbar ist, fährt das Verfahren mit Schritt 1628 fort
und der Benutzer weist manuell Anschlussstiftsignalnamen unter Verwendung
der Schnittstelle des Logikanalysators zu. Danach endet das Verfahren
bei Schritt 1630 (mit einer Rückkehr zu Schritt 1609 in 16a).
-
16c ist ein Flussdiagramm, das ein Verfahren für einen
Anschlussstift-zu-Kanal-Autoaufbau, Schritt 1622 in 16b entsprechend, erläutert. Das Verfahren beginnt
bei Schritt 1640. Bei Schritt 1641 wird das Ausgangsverfolgungsport
durch ein Setzen eines zugeordneten Registers in den Kernregistern
freigegeben. Vorher ist diese Schaltung aus oder in einem Ruhemodus.
Als Nächstes
werden bei Schritt 1642 die Ausgangsanschlussstifte konfiguriert,
um Aufbaudaten auszugeben. Dies wird Bezug nehmend auf die 17 und 18 näher erläutert; dies
beinhaltet jedoch all gemein ein Umschalten der Ausgabe eines oder
mehrerer Multiplexer zum Durchlauf eines Testsignals.
-
Als
Nächstes
wird bei Schritt 1643 ein Kernkanalaufbau, Bezug nehmend
auf 16d beschrieben, durchgeführt. Bei
Schritt 1644 wird das Ausgangsverfolgungsport durch ein
Löschen
des zugeordneten Registers in den Kernregistern deaktiviert. Bei
Schritt 1645 werden die Ausgangsanschlussstifte konfiguriert,
um die zu überwachenden
Signale aus der zu testenden Vorrichtung auszugeben. Danach endet
das Verfahren bei Schritt 1646 (mit einer Rückkehr zu
Schritt 1624 in 16b).
-
16d ist ein Flussdiagramm, das ein Verfahren zum
Kernkanalaufbau, Schritt 1643 in 16c entsprechend,
erklärt.
Das Verfahren beginnt bei Schritt 1650. Bei Schritt 1651 werden
die Ausgangsanschlussstifte konfiguriert, um Wackeldaten auszugeben.
Dies wird Bezug nehmend auf die 17 und 18 eingehender
erläutert;
dies beinhaltet jedoch allgemein ein Umschalten der Ausgabe eines
oder mehrerer Multiplexer zum Durchlauf eines Testsignals basierend
auf einem Satz von Registern, den Anschlussstift-Wackel-Registern, in den
Kernregistern. Bei Schritt 1652 werden alle Bits in den
Anschlussstift-Wackel-Registern auf einen logisch niedrigen Zustand
gesetzt. Als Nächstes
wird bei Schritt 1653 ein Register in den Anschlussstift-Wackel-Registern in einen
logischen Hochzustand gesetzt. Allgemein entspricht jedes Bit in
den Anschlussstift-Wackel-Registern einem Ausgangsanschlussstift – wobei
entsprechend an diesem Punkt ein Ausgangsanschlussstift einen logisch
hohen Zustand aufweisen sollte. Bei Schritt 1654 werden
die Kanäle
auf dem Logikanalysator durchsucht, um einen ein logisches Hoch
anzeigenden Kanal zu identifizieren. Bei Schritt 1656 wird
eine Bestimmung durchgeführt,
ob ein derartiger Kanal gefunden wurde.
-
Wenn
bei Schritt 1656 ein Kanal mit einem logisch hohen Signal
gefunden wurde, fährt
das Verfahren mit Schritt 1657 fort und das Register wird
auf einen logischen Niedrigzustand gesetzt, um ein logisch niedriges Signal
auf dem Ausgangsanschlussstift auszugeben. Eine Bestimmung wird
bei Schritt 1658 durchgeführt, ob der gefundene Kanal
nun einen logischen Niedrigzustand anzeigt. Falls der gefundene
Kanal einen logischen Niedrigzustand anzeigt, fährt das Verfahren mit Schritt 1659 fort
und der Ausgangsanschlussstift wird als der gefundene Kanal identifiziert
und die Korrespondenz in dem Logikanalysator gespeichert. Als Nächstes wird eine
Bestimmung bei Schritt 1662 durchgeführt, ob es zusätzliche
verbleibende Anschlussstifte gibt. Falls dies der Fall ist, geht
das Verfahren zu Schritt 1663, ein weiteres Wackel-Register wird in
einen logischen Hochzustand gesetzt und das Verfahren kehrt zurück zu Schritt 1654.
-
Wenn
bei Schritt 1658 der gefundene Kanal nicht in einen Niedrigzustand
geht, fährt
das Verfahren mit Schritt 1660 fort und der Kanal wird
als Nicht-Verwenden markiert. Als Nächstes wird bei Schritt 1661 der
Anschlussstift als in dem Logikanalysator nicht gefunden markiert
und das Verfahren fährt
mit Schritt 1662 mit einer Prüfung, ob es zusätzliche
Anschlussstifte gibt, fort.
-
Wenn
in Schritt 1665 keine Kanäle gefunden wurden, die einen
logisch hohen Pegel aufweisen, wird der dem Wackel-Register entsprechende
Ausgangsanschlussstift als in dem Logikanalysator nicht gefunden markiert
und das Verfahren fährt
mit Schritt 1662 mit einer Prüfung, ob zusätzliche
Anschlussstifte vorliegen, fort. Wenn bei Schritt 1662 keine
weiteren Anschlussstifte vorliegen, endet das Verfahren bei Schritt 1664 (mit einer
Rückkehr
zu Schritt 1644 in 16c)
.
-
16e ist ein Flussdiagramm, das ein Verfahren zur
Versatzkorrektur von Kanälen,
Schritt 1610 in 16a entsprechend,
erläutert.
Das Verfahren beginnt bei Schritt 1670. Bei Schritt 1671 wird
eine Bestimmung durchgeführt,
ob ein automatischer Versatzkorrekturvorgang verwendet wer den soll.
Diese Bestimmung wird durch den Benutzer durchgeführt oder
könnte
automatisch basierend auf dem Vorliegen eines Kerns, wie z. B. eines
Zustandverfolgungskerns mit der Fähigkeit, Testsignale zu erzeugen,
durchgeführt
werden. Wenn bei Schritt 1671 eine Bestimmung durchgeführt wird,
eine Autoversatzkorrektur auszuführen,
fährt das
Verfahren mit Schritt 1672 fort und ein Autoversatzkorrekturverfahren,
in 16f beschrieben, wird ausgeführt. Danach
endet das Verfahren bei Schritt 1675 (mit einer Rückkehr zu
Schritt 1612 in 16a).
-
Wenn
ein manueller Versatzkorrekturvorgang bei Schritt 1671 erwünscht wird,
fährt das
Verfahren mit Schritt 1673 fort. Bei Schritt 1673 wird
eine Bank zur Kernkalibrierung ausgewählt. Bei Schritt 1674 wird
eine Kalibrierungsprozedur, wie z. B. ein Eyefinder, auf dem Logikanalysator
ausgeführt.
Danach endet das Verfahren bei Schritt 1675 (mit einer
Rückkehr
zu Schritt 1612 in 16a).
-
16f ist ein Flussdiagramm, das ein Verfahren für die Autoversatzkorrektur
von Kernkanälen, Schritt 1672 aus 16e entsprechend, erläutert. Das Verfahren beginnt
bei Schritt 1680. Bei Schritt 1681 wird die Ausgabe
des Kerns eingestellt, um eine Versatzkorrektur bei Daten durchzuführen. Dies
wird Bezug nehmend auf die 17 und 18 eingehender
erläutert;
dies beinhaltet jedoch allgemein ein Umschalten der Ausgabe eines
oder mehrerer Multiplexer zum Durchlauf eines Testsignals, das geeignet
für eine
Versatzkorrekturoperation ist. Als Nächstes wird bei Schritt 1682 eine
Versatzkorrekturprozedur, wie z. B. ein Eyefinder, auf dem Logikanalysator
ausgeführt.
Bei Schritt 1683 werden die Ausgangsanschlussstifte konfiguriert,
um die zu überwachenden
Signale aus der zu testenden Vorrichtung auszugeben. Danach endet
das Verfahren bei Schritt 1684 (mit einer Rückkehr zu
Schritt 1675 in 16e).
-
17 ist
ein Blockdiagramm, das nützlich
zur Erläuterung
der Funktionsweise eines chipexternen Verfolgungsports in einem
Zustandverfolgungskern gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ist. Der chipexterne Verfolgungsport 1406 weist
allgemein einen Bankmultiplexer 1702 auf, der zwischen einer
Bank von Signalen, die durch einen Aufbaubankmultiplexer 1704 und
den Signalbankmultiplexer 1404 ausgegeben werden, basierend
auf dem Zustand eines Registers 1706 in den Kernregistern 1411 umschaltet. Der
Aufbaumultiplexer 1704 schaltet zwischen einer Bank von
Signalen, die durch einen Versatzkorrekturdatengenerator 1706 und
die Anschlussstift-Wackel-Register 1708 ausgegeben werden,
basierend auf dem Zustand des Registers 1710 um. So ist
die Ausgabe des Multiplexers 1704 entweder von den Anschlussstift-Wackel-Registern 1706,
Versatzkorrekturdaten von dem Versatzkorrekturdatengenerator 1706 oder
der Ausgabe des Signalbankmultiplexers 1404.
-
Die
Funktionsweise des Versatzkorrekturdatengenerators 1706 ist
in dem US-Patent mit der Seriennummer 10/923,460 beschrieben. Die
Versatzkorrekturoperation wird durch ein Register 1712 freigegeben, das
auch eine Operation des Aufbaumultiplexers 1704 freigibt.
So werden durch ein Setzen des Registers 1712 in einen
Niedrigzustand der Versatzkorrekturdatengenerator 1705 und
der Aufbaumultiplexer 1704 deaktiviert, wodurch die Leistungslast
des Kerns reduziert wird. Ähnlich
wird das Register 1714 zur Deaktivierung der Ausgangsanschlussstifte 1410 verwendet.
-
Die
Anschlussstift-Wackel-Register 1708 weisen eine Serie von
Registern auf, die in ihrer Breite gleich der Anzahl von Ausgangsanschlussstiften
sind. Wenn der Aufbau-Mux 1704 freigegeben wird (durch
das Register 1712) und eingestellt wird (durch das Register 1710)
zur Ausgabe aus den Anschlussstift-Wackel-Registern 1708,
gibt der Aufbau-Mux 1704 ein logisches Hochsignal auf einem
Anschlussstift in dem Satz von Ausgangsanschlussstiften 1410,
für den
das entsprechende Bit in den Anschlussstift-Wackel-Registern gesetzt
ist, aus.
-
18 ist
ein Blockdiagramm, das nützlich
zur Erläuterung
der Funktionsweise eines chipexternen Verfolgungsports in einem
Zeitgebungsverfolgungskern gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ist. Der chipexterne Verfolgungsport 1506 weist
allgemein einen Bankmultiplexer 1802, der basierend auf
einem Register 1806 in den Kernregistern 1510 zwischen
Anschlussstift-Wackel-Registern 1804 und dem Signalbankmultiplexer 1404 umschaltet,
auf. Das Register 1510 wird verwendet, um Ausgangsanschlussstifte 1508 zu
deaktivieren. Die Anschlussstift-Wackel-Register 1804 weisen
eine Serie von Registern auf, die in ihrer Breite gleich der Anzahl
von Ausgangsanschlussstiften sind. Wenn der Mux 1802 durch
das Register 1806 zur Ausgabe aus den Anschlussstift-Wackel-Registern 1804 gesetzt
ist, gibt der Mux 1802 ein logisches Hochsignal auf einem
Anschlussstift der Ausgangsanschlussstifte 1508, für den das
entsprechende Bit in den Anschlussstift-Wackel-Registern gesetzt
ist, aus.