カテゴリー
category_de

JTAG-Emulator

Was ist ein JTAG-Emulator?

Ein JTAG-Emulator ist eine Art On-Chip-Emulator, der für das Debugging bei der Entwicklung von CPU-Software verwendet wird.

Im Gegensatz zu In-Circuit-Emulatoren (ICE), die den Betrieb der CPU im Ist-Zustand emulieren, indem sie die CPU auf der Platine durch eine Sonde ersetzen, ermöglichen JTAG-Emulatoren das Debugging, ohne die CPU von der Platine zu entfernen und mit montierter CPU.

Dies hat den Vorteil, dass die Evaluierung in einer Umgebung durchgeführt werden kann, deren elektrische Eigenschaften denen der Produktplatine entsprechen, was zu einer frühen Kommerzialisierung beiträgt.

Anwendungen von JTAG-Emulatoren

JTAG ist ein Industriestandard für den Test von LSIs und Platinen. Auf der Grundlage dieses technischen Standards entwerfen CPU-Hersteller Testzugriffsanschlüsse (TAPs) und führen Boundary-Scan-Tests durch (Boundary Scan Test).

Infolgedessen unterscheiden sich die Spezifikationen der JTAG-Emulatoren von einem CPU-Hersteller zum anderen. Da Spezifikationen, die sich von einem Hersteller zum anderen unterscheiden, nicht als JTAG bezeichnet werden können, wurde ein Schnittstellenstandard auf der Grundlage der ursprünglichen Spezifikationen als JTAG-Emulatoren-Konformität erstellt und JTAG-Emulatoren werden entsprechend hergestellt.

Funktionsweise der JTAG-Emulatoren

Der JTAG-Standard wurde im Jahr 1990 als IEEE 1149.1 standardisiert.
Der Grund dafür ist, dass mit immer leistungsfähigeren und anspruchsvolleren CPUs und LSIs die Abstände zwischen den Pins immer enger wurden, was das Debuggen und Testen mit Prüfspitzen direkt an den CPU- und LSI-Pins erschwerte.

Um dieses Problem zu lösen, wurde eine Boundary-Scan-Methode entwickelt, um den Zustand der internen Schaltkreise zu analysieren, indem die Schaltkreise innerhalb des Chips in einer abhängigen Weise verbunden werden und der Zustand der Schaltkreise sequentiell ausgelesen wird.

Mit dieser Methode kann der interne Zustand der CPU oder LSI überprüft werden, ohne dass Prüfspitzen an jedem einzelnen CPU- oder LSI-Pin angebracht werden müssen.

Der JTAG-Standard wurde ursprünglich als Methode zum Testen von CPUs und LSIs konzipiert und später als Debugging-Methode in der CPU-Softwareentwicklung eingesetzt.

JTAG hat fünf Signalpins – TCK (Takt), TDI (Dateneingang), TDO (Datenausgang), TMS (Zustandssteuerung) und TRST -, aber die technischen Standards definieren nicht die elektrischen Eigenschaften dieser Signale. Sie werden vom Hersteller individuell festgelegt.

Zu den Dingen, die mit JTAG erreicht werden können, gehören das Debuggen der CPU, die Inspektion der Platine, die Kommunikation zwischen den internen Schaltungen des IC und dem Host-PC sowie das Schreiben von Daten in das FPGA.

Debugging-Methoden mit JTAG-Emulatoren

In diesem Abschnitt werden Methoden vorgestellt, mit denen der Betrieb der entworfenen Programmierung überprüft, Fehler identifiziert und die Leistung verbessert werden kann.

Schrittweise Ausführung
Dies ist die grundlegende und am häufigsten verwendete Methode der Fehlersuche. Um einen Schritt auszuführen, muss das laufende Programm einmal angehalten werden. Die Methode zum Anhalten des Programms besteht darin, eine Bedingung zu setzen, die als Haltepunkt bezeichnet wird, oder eine Haltefunktion zu erzwingen. Sobald das Programm angehalten wurde, ist es möglich, den Speicher- und Registerstatus sowie den Inhalt der Variablen zu überprüfen, während der Quellcode Zeile für Zeile oder Funktion oder Methode für Funktion oder Methodeneinheit ausgeführt wird.

Verfolgung in Echtzeit
Diese Methode wird zur Fehlersuche eingesetzt, wenn unerwartete Bedingungen auftreten. Auch wenn die Verzweigungsbedingungen beim Entwurf eines Programms sorgfältig berücksichtigt werden, treten bei der Kombination mit Hardware oder der Verknüpfung mit anderen Systemen häufig unerwartete Fehler auf. Bei der schrittweisen Ausführung können die durch unbekannte Bedingungen verursachten Fehler nicht analysiert werden. Die Programmausführungshistorie, Datenzugriffsadressen und -typen (Lesen/Schreiben), Interrupt-Ereignisse usw. werden im Trace-Speicher gespeichert und auf Fehler analysiert.

Zeitmessung
Es können die maximalen, minimalen und durchschnittlichen Ausführungszeiten (zwischen zwei Punkten von Anfang bis Ende) des angegebenen Funktionseinheitsmoduls gemessen werden. Es ist auch möglich, die Beziehung zwischen der aufgerufenen Funktion (Child Function) und der aufrufenden Funktion (Parent Function) sowie die Häufigkeit der Aufrufe zu messen. Dies kann genutzt werden, um die Systemleistung zu verbessern, indem Ausführungszeitvariationen verbessert und die Struktur von Funktionen überprüft werden.

Programmierung mit JTAG-Emulatoren

Daten können entweder direkt in das FPGA oder über das FPGA in den Konfigurationsspeicher geschrieben werden. Der Konfigurationsspeicher hingegen wird in den flüchtigen Speicher (RAM) des FPGAs geschrieben. Der Konfigurationsspeicher hingegen ist ein nicht-flüchtiger Speicher (ROM), so dass das einmal geschriebene Programm nicht mehr verloren geht.

Die Schreibmethode sollte entsprechend der Reduzierung der Anzahl der Anschlüsse und dem Stadium der Produktentwicklung (während des Entwurfs oder der Massenproduktion) gewählt werden.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です