Microchip Technology Core JTAG Benutzerhandbuch für Debug-Prozessoren
Einführung
Kern JTAG Debug v4.0 erleichtert die Verbindung der Joint Test Action Group (JTAG) kompatible Softcore-Prozessoren für die JTAG TAP- oder General Purpose Input/Output (GPIO)-Pins zum Debuggen. Dieser IP-Core ermöglicht das Debuggen von maximal 16 Softcore-Prozessoren in einem einzigen Gerät und bietet außerdem Unterstützung für das Debuggen von Prozessoren auf vier separaten Geräten über GPIO.
Merkmale
CoreJTAGDebug verfügt über die folgenden Hauptfunktionen:
- Bietet dem Stoff Zugriff auf die JTAG Schnittstelle über das JTAG TAP.
- Bietet dem Stoff Zugriff auf die JTAG Schnittstelle über die GPIO-Pins.
- Konfiguriert die IR-Code-Unterstützung für das JTAG Tunnelbau.
- Unterstützt die Verknüpfung mehrerer Geräte über das JTAG TAP.
- Unterstützt das Multiprozessor-Debugging.
- Fördert separate Takt- und Reset-Signale für die Low-Skew-Routing-Ressourcen.
- Unterstützt sowohl das Zurücksetzen von Zielen mit aktivem Niedrig als auch mit aktivem Hoch.
- Unterstützt das JTAG Schnittstelle für Sicherheitsmonitore (UJTAG_SEC) für PolarFire-Geräte.
Core-Version
Dieses Dokument gilt für CoreJTAGDebuggen v4.0
Unterstützte Familien
- PolarFire®
- RTG4™
- IGLOO® 2
- SmartFusion® 2
- SmartFusion
- ProASIC3/3E/3L
- IGLU
- IGLOOe/+
Gerätenutzung und Leistung
In der folgenden Tabelle sind Auslastungs- und Leistungsdaten für die unterstützten Gerätefamilien aufgeführt. Die in dieser Tabelle aufgeführten Daten sind nur Richtwerte. Die Gesamtauslastung und Leistung des Kerns ist systemabhängig.
Tabelle 1. Geräteauslastung und Leistung
Familie | Kacheln sequentiell | Kombinatorisch | Gesamt | Verwendung Gerät | Gesamt % | Leistung (MHz) |
PolarFire | 17 | 116 | 299554 | MPF300TS | 0.04 | 111.111 |
RTG4 | 19 | 121 | 151824 | RT4G150 | 0.09 | 50 |
SmartFusion2 | 17 | 120 | 56340 | M2S050 | 0.24 | 69.47 |
IGLU2 | 17 | 120 | 56340 | M2GL050 | 0.24 | 68.76 |
SmartFusion | 17 | 151 | 4608 | A2F200M3F | 3.65 | 63.53 |
IGLU | 17 | 172 | 3072 | AFL125V5 | 6.15 | 69.34 |
ProASIC3 | 17 | 157 | 13824 | A3P600 | 1.26 | 50 |
Notiz: Die Daten in dieser Tabelle wurden mithilfe von Verilog RTL mit typischen Synthese- und Layouteinstellungen für -1 Teile erstellt. Top-Level-Parameter oder Generika wurden auf den Standardeinstellungen belassen.
Funktionsbeschreibung
CoreJTAGDebuggen verwendet den UJTAG hartes Makro, um Zugriff auf das J zu ermöglichenTAG Schnittstelle aus dem FPGA-Fabric. Die UJTAG Hard Macro erleichtert die Verbindung zum Ausgang des MSS- oder ASIC-TAP-Controllers aus dem Fabric. Nur eine Instanz des UJTAG Makro ist im Fabric zulässig.
Abbildung 1-1. CoreJTAGDebug-Blockdiagramm
CoreJTAGDebug enthält eine Instanziierung des uj_jtag Tunnelcontroller, der einen J implementiertTAG Tunnel-Controller zur Erleichterung JTAG Tunneling zwischen einem FlashPro-Programmierer und einem Ziel-Softcore-Prozessor. Der Softcore-Prozessor ist über die dedizierten FPGAs J verbundenTAG Schnittstellenpins. IR-Scans vom JTAG Schnittstelle sind in der FPGA-Struktur nicht zugänglich. Daher ist das Tunnelprotokoll erforderlich, um IR- und DR-Scans zum Debug-Ziel zu ermöglichen, das den Industriestandard J unterstützt.TAG Schnittstelle. Der Tunnelcontroller dekodiert das als DR-Scan übertragene Tunnelpaket und generiert einen resultierenden IR- oder DR-Scan, basierend auf dem Inhalt des Tunnelpakets und dem Inhalt des über UIREG bereitgestellten IR-Registers. Der Tunnelcontroller dekodiert das Tunnelpaket auch, wenn der Inhalt des IR-Registers mit seinem IR-Code übereinstimmt.
Abbildung 1-2. Tunnelpaketprotokoll
Ein Konfigurationsparameter ermöglicht die Konfiguration des IR-Codes, der vom Tunnelcontroller verwendet wird. Um das Debuggen mehrerer Softcore-Prozessoren in einem einzigen Design zu erleichtern, ist die Anzahl der instanziierten Tunnelcontroller von 1-16 konfigurierbar, was einen JTAG kompatible Schnittstelle zu jedem Zielprozessor. Diese Zielprozessoren sind jeweils über einen einzigartigen IR-Code adressierbar, der zum Zeitpunkt der Instanziierung festgelegt wird.
Ein CLKINT- oder BFR-Puffer wird in der TGT_TCK-Zeile jeder Zielprozessor-Debugschnittstelle instanziiert.
Die URSTB-Linie von UJTAG Makro (TRSTB) wird zu einer globalen Ressource innerhalb von CoreJ befördertTAGDebuggen. Ein optionaler Inverter wird in der TGT_TRST-Zeile innerhalb von CoreJ platziertTAGDebug für die Verbindung mit einem Debug-Ziel, das dann voraussichtlich mit einer Active-High-Reset-Quelle verbunden ist. Es wird konfiguriert, wenn davon ausgegangen wird, dass das eingehende TRSTB-Signal vom JTAG TAP ist aktiv niedrig. Wenn diese Konfiguration ein oder mehrere Debugziele erfordert, wird eine zusätzliche globale Routingressource verbraucht.
Die URSTB-Linie von UJTAG Makro (TRSTB) wird zu einer globalen Ressource innerhalb von CoreJ befördertTAGDebuggen. Ein optionaler Inverter wird in der TGT_TRST-Zeile innerhalb von CoreJ platziertTAGDebug für die Verbindung mit einem Debug-Ziel, das dann voraussichtlich mit einer Active-High-Reset-Quelle verbunden ist. Es wird konfiguriert, wenn davon ausgegangen wird, dass das eingehende TRSTB-Signal vom JTAG TAP ist aktiv niedrig. TGT_TRSTN ist der standardmäßige aktiv niedrige Ausgang für das Debug-Ziel. Wenn diese Konfiguration ein oder mehrere Debug-Ziele erfordert, wird eine zusätzliche globale Routing-Ressource verbraucht.
Abbildung 1-3. CoreJTAGDebuggen serieller Daten und Taktung
Geräteverkettung
Weitere Informationen finden Sie in den Benutzerhandbüchern zur FPGA-Programmierung für das jeweilige Entwicklungsboard oder die jeweilige Produktfamilie. Jedes Entwicklungsboard kann mit unterschiedlichen Lautstärken betrieben werden.tages, und Sie können überprüfen, ob dies mit ihren Entwicklungsplattformen möglich ist. Wenn Sie mehrere Entwicklungsboards verwenden, stellen Sie außerdem sicher, dass sie eine gemeinsame Basis haben.
Über den FlashPro-Header
Um die Verkettung mehrerer Geräte im Fabric mithilfe des FlashPro-Headers zu unterstützen, müssen mehrere Instanzen von uj_jtag sind erforderlich. Diese Version des Kerns bietet Zugriff auf maximal 16 Kerne, ohne dass uj_j manuell instanziiert werden muss.tag. Jeder Kern hat einen einzigartigen IR-Code (von 0x55 bis 0x64), der Zugriff auf den spezifischen Kern bietet, der dem ID-Code entspricht.
Abbildung 1-4. Mehrere Prozessoren in einem einzigen Gerät Einzelgerät
So verwenden Sie CoreJTAGDebuggen auf mehreren Geräten, eines der Geräte muss zum Master werden. Dieses Gerät enthält das CoreJTAGDebuggen Sie den Kern. Jeder Prozessor wird dann wie folgt verbunden:
Abbildung 1-5. Mehrere Prozessoren auf zwei Geräten
Um einen Kern auf einer anderen Karte zu debuggen, muss das JTAG Signale von CoreJTAGDebug werden im SmartDesign auf die obersten Pins befördert. Diese werden dann mit dem J verbundenTAG Signale direkt auf dem Prozessor.
Notiz: Ein CoreJTAGDebuggen ist im zweiten Board-Design optional. Beachten Sie, dass die UJ_JTAG Makro und FlashPro-Header werden im zweiten Board-Design nicht verwendet.
Um einen Prozessor zum Debuggen in SoftConsole auszuwählen, klicken Sie auf die Debugkonfigurationen und dann auf die Registerkarte „Debugger“.
Der im folgenden Bild gezeigte Befehl wird ausgeführt.
Abbildung 1-6. Debugger-Konfiguration UJ_JTAG_IRCODE
Die UJ_JTAG_IRCODE kann je nach dem zu debuggenden Prozessor geändert werden. Zum Beispielample: zum Debuggen eines Prozessors im Gerät 0, dem UJ_JTAG_IRCODE kann auf 0x55 oder 0x56 eingestellt werden.
Über GPIO
Zum Debuggen über GPIO muss der Parameter UJTAG _BYPASS ist ausgewählt. Ein und vier Kerne können über GPIO-Header oder Pins debuggt werden. Um eine Debug-Sitzung mit GPIOs von SoftConsole v5.3 oder höher auszuführen, muss die Debug-Konfiguration wie folgt eingerichtet werden:
Abbildung 1-7. Debugger-Konfiguration GPIO
Notiz: Wenn Sie über GPIO debuggen, können Sie den Prozessor nicht gleichzeitig über den FlashPro Header oder das Embedded FlashPro5 auf den Entwicklungsboards debuggen. Zum Beispielample: FlashPro Header oder Embedded FlashPro5 sind verfügbar, um das Debuggen mit Identify oder SmartDebug zu erleichtern.
Abbildung 1-8. Debuggen über GPIO-Pins
Geräteverkettung über GPIO-Pins
Um die Verkettung mehrerer Geräte über GPIO zu unterstützen, verfügt der UJTAGDer Parameter _BYPASS muss ausgewählt werden. Dann können die Signale TCK, TMS und TRSTb zu den Ports der obersten Ebene befördert werden. Alle Zielprozessoren haben TCK, TMS und TRSTb. Diese werden unten nicht angezeigt.
Abbildung 1-9. Geräteverkettung über GPIO-Pins
In einem einfachen JTAG Kette, das TDO eines Prozessors verbindet sich mit dem TDI eines anderen Prozessors, und das geht so weiter, bis alle Prozessoren auf diese Weise verkettet sind. Das TDI des ersten Prozessors und das TDO des letzten Prozessors verbindet sich mit dem JTAG Programmierer, der alle Prozessoren verkettet. Der JTAG Signale von den Prozessoren werden an CoreJ weitergeleitetTAGDebug, wo sie verkettet werden können. Wenn die Verkettung über mehrere Geräte abgeschlossen ist, wird das Gerät mit CoreJTAGDebug wird zum Mastergerät.
In einem GPIO-Debug-Szenario, in dem jedem Prozessor ein IR-Code nicht zugewiesen ist, wird ein modifiziertes OpenOCD-Skript verwendet, um auszuwählen, welches Gerät debuggt wird. Ein OpenOCD-Skript wird modifiziert, um auszuwählen, welches Gerät debuggt wird. Für ein Mi-V-Design ist das file befindet sich im SoftConsole-Installationsverzeichnis unter openocd/scripts/board/ microsemi-riscv.cfg. Für die anderen Prozessoren ist die files befinden sich am selben OpenOCD-Speicherort.
Notiz: Die Debug-Konfigurationsoptionen müssen ebenfalls aktualisiert werden, wenn die file wird umbenannt
Abbildung 1-10. Debug-Konfiguration
Öffnen Sie username-riscv-gpio-chain.cfg. Es folgt ein Beispielample von dem, was man gesehen haben muss:
Abbildung 1-11. MIV-Konfiguration File
Die folgenden Einstellungen funktionieren für das Debuggen eines einzelnen Geräts über GPIO. Zum Debuggen einer Kette müssen zusätzliche Befehle hinzugefügt werden, damit die Geräte, die nicht debuggt werden, in den Bypass-Modus versetzt werden.
Für zwei Prozessoren in einer Kette gilt Folgendes:ampDer Befehl le wird ausgeführt:
Dies ermöglicht das Debuggen des Ziel-Softcore-Prozessors 1, indem der Ziel-Softcore-Prozessor 0 in den Bypass-Modus versetzt wird. Zum Debuggen des Ziel-Softcore-Prozessors 0 wird der folgende Befehl verwendet:
Notiz: Der einzige Unterschied zwischen diesen beiden Konfigurationen besteht darin, dass die Quelle, die die Microsemi RISCV-Konfiguration aufruft, file (microsemi-riscv.cfg) kommt entweder zuerst, wenn Target Softcore Processor 0 debuggt wird, oder an zweiter Stelle, wenn Target Softcore Processor 1 debuggt wird. Für mehr als zwei Geräte in der Kette, zusätzliche jtag newtaps wird hinzugefügt. Zum BeispielampWenn sich beispielsweise drei Prozessoren in einer Kette befinden, wird der folgende Befehl verwendet:
Abbildung 1-12. Example Debug-System
Schnittstelle
In den folgenden Abschnitten werden schnittstellenbezogene Informationen erläutert.
Konfigurationsparameter
Die Konfigurationsoptionen für CoreJTAGDebuggen wird in der folgenden Tabelle beschrieben. Wenn eine andere Konfiguration als die Standardkonfiguration erforderlich ist, verwenden Sie das Dialogfeld „Konfiguration“ in SmartDesign, um die entsprechenden Werte für die konfigurierbaren Optionen auszuwählen.
Tabelle 2-1. CoreJTAGDebug-Konfigurationsoptionen
Name | Gültiger Bereich | Standard | Beschreibung |
NUM_DEBUG_TGTS | 1-16 | 1 | Die Anzahl der verfügbaren Debug-Ziele über FlashPro (UJTAG_DEBUG = 0) ist 1-16. Die Anzahl der verfügbaren Debugziele über GPIO (UJTAG_DEBUG = 1) ist 1-4. |
IR_CODE_TGT_x | 0X55 bis 0X64 | OS-Nummer: | JTAG IR-Code, einer pro Debug-Ziel. Der angegebene Wert muss für dieses Debug-Ziel eindeutig sein. Der mit dieser Debug-Zielschnittstelle verknüpfte Tunnelcontroller steuert TDO und die Ziel-Debug-Schnittstelle nur, wenn der Inhalt des IR-Registers mit diesem IR-Code übereinstimmt. |
TGT_ACTIVE_HIGH_RESET_x | 0-1 | 0 | 0: Der TGT_TRSTN_x-Ausgang ist mit einer globalen Form des aktiv-niedrigen URSTB-Ausgangs des UJ verbunden.TAG Makro.1: Der TGT_TRST-Ausgang ist intern mit einer globalen invertierten Form des aktiv-niedrigen URSTB-Ausgangs des UJ verbunden.TAG Makro. Eine zusätzliche globale Routing-Ressource wird verbraucht, wenn dieser Parameter für ein beliebiges Debug-Ziel auf 1 gesetzt ist. |
UJTAG_BYPASS | 0-1 | 0 | 0: GPIO-Debug ist deaktiviert, Debug ist über den FlashPro-Header oder Embedded FlashPro5.1 verfügbar: GPIO-Debug ist aktiviert, Debug ist über vom Benutzer ausgewählte GPIO-Pins auf der Platine verfügbar.Notiz: Wenn das Debuggen über GPIO erfolgt, wird in den Debugoptionen der SoftConsole der folgende Debugbefehl ausgeführt: „—command „set FPGA_TAP N““. |
UJTAG_SEC_DE | 0-1 | 0 | 0: Obere HälfteTAG Makro ist ausgewählt, wenn UJTAG_BYPASS = 0: UJTAGDas Makro _SEC wird ausgewählt, wenn UJTAG_BYPASS = 0.Notiz: Dieser Parameter gilt nur für PolarFire. Das heißt, FAMILY = 26. |
Signalbeschreibungen
Die folgende Tabelle listet die Signalbeschreibungen für CoreJ aufTAGDebuggen.
Tabelle 2-2. CoreJTAGDebuggen von E/A-Signalen
Name | Gültiger Bereich | Standard | Beschreibung |
NUM_DEBUG_TGTS | 1-16 | 1 | Die Anzahl der verfügbaren Debug-Ziele über FlashPro (UJTAG_DEBUG = 0) ist 1-16. Die Anzahl der verfügbaren Debugziele über GPIO (UJTAG_DEBUG = 1) ist 1-4. |
IR_CODE_TGT_x | 0X55 bis 0X64 | OS-Nummer: | JTAG IR-Code, einer pro Debug-Ziel. Der angegebene Wert muss für dieses Debug-Ziel eindeutig sein. Der mit dieser Debug-Zielschnittstelle verknüpfte Tunnelcontroller steuert TDO und die Ziel-Debug-Schnittstelle nur, wenn der Inhalt des IR-Registers mit diesem IR-Code übereinstimmt. |
TGT_ACTIVE_HIGH_RESET_x | 0-1 | 0 | 0: Der TGT_TRSTN_x-Ausgang ist mit einer globalen Form des aktiv-niedrigen URSTB-Ausgangs des UJ verbunden.TAG Makro.1: Der TGT_TRST-Ausgang ist intern mit einer globalen invertierten Form des aktiv-niedrigen URSTB-Ausgangs des UJ verbunden.TAG Makro. Eine zusätzliche globale Routing-Ressource wird verbraucht, wenn dieser Parameter für ein beliebiges Debug-Ziel auf 1 gesetzt ist. |
UJTAG_BYPASS | 0-1 | 0 | 0: GPIO-Debug ist deaktiviert, Debug ist über den FlashPro-Header oder Embedded FlashPro5.1 verfügbar: GPIO-Debug ist aktiviert, Debug ist über vom Benutzer ausgewählte GPIO-Pins auf der Platine verfügbar.Notiz: Wenn das Debuggen über GPIO erfolgt, wird in den Debugoptionen der SoftConsole der folgende Debugbefehl ausgeführt: „—command „set FPGA_TAP N““. |
UJTAG_SEC_DE | 0-1 | 0 | 0: Obere HälfteTAG Makro ist ausgewählt, wenn UJTAG_BYPASS = 0: UJTAGDas Makro _SEC wird ausgewählt, wenn UJTAG_BYPASS = 0.Notiz: Dieser Parameter gilt nur für PolarFire. Das heißt, FAMILY = 26. |
Hinweise:
- Alle Signale im JTAG Die oben aufgeführte TAP-Portliste muss in SmartDesign zu Ports der obersten Ebene hochgestuft werden.
- Die SEC-Ports sind nur verfügbar, wenn UJTAG_SEC_EN wird durch CoreJ aktiviertTAGDebugs Konfigurations-GUI.
- Gehen Sie beim Anschließen des EN_SEC-Eingangs besonders vorsichtig vor. Wenn EN_SEC zu einem Port der obersten Ebene (Geräteeingangspin) hochgestuft wird, müssen Sie auf die Funktion „E/A-Zustände während J konfigurieren“ zugreifen.TAG Programmierabschnitt des Programmdesigns im Libero-Flow und stellen Sie sicher, dass der E/A-Status (nur Ausgabe) für den EN_SEC-Port auf 0 gesetzt ist.
Registrieren Sie Karte und Beschreibungen
Es gibt keine Register für CoreJTAGDebuggen.
Werkzeugfluss
In den folgenden Abschnitten werden Informationen zum Tool-Flow erläutert.
Lizenz
Für die Verwendung dieses IP-Cores mit Libero SoC ist keine Lizenz erforderlich.
RTL
Für den Kern und die Testbenches wird vollständiger RTL-Code bereitgestellt, sodass der Kern mit SmartDesign instanziiert werden kann. Simulation, Synthese und Layout können innerhalb des Libero SoC durchgeführt werden.
SmartDesign
Ein Example instantiiert view von CoreJTAGDas Debuggen wird in der folgenden Abbildung gezeigt. Weitere Informationen zur Verwendung von SmartDesign zum Instanziieren und Generieren von Kernen finden Sie im Benutzerhandbuch zur Verwendung von DirectCore in Libero® SoC.
Abbildung 4-1. SmartDesign CoreJTAGDebug-Instanz View mit JTAG Kopfbereich
Abbildung 4-2. SmartDesign CoreJTAGDebug-Instanz mithilfe von GPIO-Pins
Konfigurieren von CoreJTAGDebuggen in SmartDesign
Die Konfiguration des Kernels erfolgt über die Konfigurationsoberfläche von SmartDesign.ampDie Seite der GUI ist in der folgenden Abbildung dargestellt.
Abbildung 4-3. CoreJ konfigurierenTAGDebuggen in SmartDesign
Für PolarFire, UJTAG_SEC wählt die UJTAG_SEC-Makro anstelle des UJTAG Makro wenn UJTAG_BYPASS ist deaktiviert. Es wird für alle anderen Familien ignoriert.
Die Anzahl der Debug-Ziele ist konfigurierbar bis zu 16 Debug-Ziele, mit UJTAG_BYPASS deaktiviert und bis zu 4 Debugziele, mit UJTAG_BYPASS aktiviert.
UJTAG_BYPASS wählt das Debuggen über UJTAG und der FlashPro-Header sowie das Debuggen über GPIO-Pins.
Der Ziel-IR-Code # ist das J.TAG IR-Code, der dem Debug-Ziel zugewiesen wurde. Dies muss ein eindeutiger Wert innerhalb des in Tabelle 2-1.
Simulationsflüsse
Eine Benutzertestbench wird mit CoreJ bereitgestelltTAGDebuggen. So führen Sie Simulationen aus:
- Wählen Sie den Benutzer-Testbench-Flow innerhalb des SmartDesigns aus.
- Klicken Sie im Bereich „Generieren“ auf „Speichern und generieren“. Wählen Sie den Benutzertestbench aus der Core-Konfigurations-GUI aus.
Wenn SmartDesign das Libero-Projekt generiert, installiert es die Benutzertestbench files. So führen Sie die Benutzertestbench aus:
- Legen Sie die Design-Root auf CoreJ festTAGDebug-Instanziierung im Libero-Designhierarchiebereich.
- Klicken Sie im Fenster „Libero Design Flow“ auf „Vorsynthetisiertes Design überprüfen“ > „Simulieren“. Dadurch wird ModelSim gestartet und die Simulation wird automatisch ausgeführt.
Synthese in Libero
So führen Sie die Synthese aus:
- Klicken Sie im Fenster „Libero SoC Design Flow“ auf das Symbol „Synthetisieren“, um den Kern zu synthetisieren. Alternativ können Sie im Fenster „Design Flow“ mit der rechten Maustaste auf die Option „Synthetisieren“ klicken und „Interaktiv öffnen“ auswählen. Im Fenster „Synthetisieren“ wird das Synplify®-Projekt angezeigt.
- Klicken Sie auf das Symbol „Ausführen“.
Notiz: Für RTG4 gibt es eine gemilderte Event-Transient-Warnung (SET), die ignoriert werden kann, da diese IP nur für Entwicklungszwecke verwendet wird und nicht in einer Strahlungsumgebung eingesetzt wird.
Ort und Route in Libero
Sobald die Synthese abgeschlossen ist, klicken Sie in Libero SoC auf das Symbol „Platzieren und Weiterleiten“, um den Platzierungsprozess zu starten.
Geräteprogrammierung
Wenn die UJAG_SEC-Funktion verwendet wird und EN_SEC zu einem Port der obersten Ebene (Geräteeingangspin) hochgestuft wird, müssen Sie auf die Funktion „E/A-Zustände während J konfigurieren“ zugreifen.TAG Programmierabschnitt des Programmdesigns im Libero-Flow und stellen Sie sicher, dass der E/A-Status (nur Ausgabe) für den EN_SEC-Port auf 0 gesetzt ist.
Diese Konfiguration ist notwendig, um den Zugriff auf das J aufrechtzuerhaltenTAG Port zur Neuprogrammierung des Geräts, da der definierte BSR-Wert (Boundary Scan Register) während der Neuprogrammierung alle externen Logikpegel auf EN_SEC überschreibt.
Systemintegration
In den folgenden Abschnitten werden Informationen zur Systemintegration erläutert.
System Level Design für IGLOO2/RTG4
Die folgende Abbildung zeigt die Designanforderungen zur Durchführung von JTAG Debuggen eines Softcore-Prozessors, der sich im Fabric von SoftConsole bis zum J befindetTAG Schnittstelle für IGLOO2- und RTG4-Geräte.
Abbildung 5-1. RTG4/IGLOO2 JTAG Debug-Design
System Level Design für SmartFusion2
Die folgende Abbildung zeigt die Designanforderungen zur Durchführung von JTAG Debuggen eines Softcore-Prozessors, der sich in der Fabric befindet, von SoftConsole bis zum JTAG Schnittstelle für SmartFusion2-Geräte.
Abbildung 5-2. SmartFusion2 JTAG Debug-Design
UJTAG_SEC
Für die PolarFire-Gerätefamilie bietet diese Version dem Benutzer die Wahl zwischen UJTAG und UJTAG_SEC, die UJTAGDer Parameter _SEC_EN in der GUI wird verwendet, um auszuwählen, was gewünscht wird.
Die folgende Abbildung zeigt ein einfaches Diagramm, das die physischen Schnittstellen von UJ darstelltTAG/UJTAG_SEC in PolarFire.
Abbildung 5-3. PolarFire UJTAG_SEC Makro
Designeinschränkungen
Die Designs mit CoreJTAGZum Debuggen ist es erforderlich, dass die Anwendung die Einschränkungen im Entwurfsablauf befolgt, um die Verwendung der Zeitanalyse in der TCK-Taktdomäne zu ermöglichen.
So fügen Sie die Einschränkungen hinzu:
- Wenn der verbesserte Constraint-Flow in Libero v11.7 oder höher verwendet wird, doppelklicken Sie im DesignFlow-Fenster auf Constraints > Manage Constraints und klicken Sie auf die Registerkarte Timing.
- Klicken Sie im Reiter Timing des Constraint Manager-Fensters auf Neu, um einen neuen SDC zu erstellen fileund benennen Sie den fileDie Designbeschränkungen umfassen die Taktquellenbeschränkungen, die in diesem leeren SDC eingegeben werden können. file.
- Wenn die klassischen Constraint-Flows in Libero v11.7 oder höher verwendet werden, klicken Sie mit der rechten Maustaste auf Create Constraints > Timing Constraint im Fenster Design Flow und dann auf Create New Constraint. Dadurch wird ein neuer SDC erstellt. file. Zu den Designbeschränkungen gehören die Beschränkungen der Taktquelle, die in diesem leeren SDC eingetragen werden file.
- Berechnen Sie die TCK-Periode und die Halbperiode. TCK ist auf 6 MHz eingestellt, wenn das Debuggen mit FlashPro durchgeführt wird, und auf eine maximale Frequenz von 30 MHz, wenn das Debuggen von FlashPro5 unterstützt wird. Nachdem Sie diesen Schritt abgeschlossen haben, geben Sie die folgenden Einschränkungen in das SDC ein file:
erstelle_uhr -name { TCK } \- Zeitraum TCK_PERIOD \
- waveform { 0 TCK_HALF_PERIOD } \ [ get_ports { TCK } ] Zum BeispielampFür ein Design, das eine TCK-Frequenz von 6 MHz verwendet, gelten die folgenden Einschränkungen.
erstelle_uhr -name { TCK } \ - Zeitraum 166.67 \
- Wellenform { 0 83.33 } \ [ get_ports { TCK } ]
- Verknüpfen Sie alle Einschränkungen files mit den Synthese-, Place-and-Route- und Timing-Verifizierungs-stages in der Einschränkungs-Manager > Registerkarte „Timing“. Dies wird durch die Aktivierung der entsprechenden Kontrollkästchen für die files, in denen die Einschränkungen eingegeben wurden
Änderungsverlauf
Anschlussname | Breite | Richtung | Beschreibung |
JTAG TAP-Anschlüsse | |||
TDI | 1 | Eingang | Testdateneingang. Serieller Dateneingang von TAP. |
TCK | 1 | Eingang | Testuhr. Taktquelle für alle sequentiellen Elemente innerhalb von CoreJTAGDebuggen. |
TMS | 1 | Eingang | Testmodus auswählen. |
TDO | 1 | Ausgabe | Testdatenausgang. Serielle Datenausgabe an TAP. |
TRSTB | 1 | Eingang | Test-Reset. Aktiver niedriger Reset-Eingang von TAP. |
JTAG Ziel-X-Ports | |||
TGT_TDO_x | 1 | Eingang | Testdaten vom Debugziel x zum TAP. Verbindung zum Ziel-TDO-Port herstellen. |
TGT_TCK_x | 1 | Ausgabe | Testen Sie die Taktausgabe, um Ziel x zu debuggen. TCK wird intern innerhalb von CoreJ zu einem globalen Netz mit geringer Verzerrung befördertTAGDebuggen. |
TGT_TRST_x | 1 | Ausgabe | Aktiv-High-Test-Reset. Wird nur verwendet, wenn TGT_ACTIVE_HIGH_RESET_x =1 |
TGT_TRSTN_x | 1 | Ausgabe | Aktiv-Low-Test-Reset. Wird nur verwendet, wenn TGT_ACTIVE_HIGH_RESET_x =0 |
TGT_TMS_x | 1 | Ausgabe | Testmodus: Wählen Sie die Ausgabe zum Debuggen von Ziel x. |
TGT_TDI_x | 1 | Ausgabe | Testdateneingang. Serielle Dateneingabe vom Debugziel x. |
UJTAG_BYPASS_TCK_x | 1 | Eingang | Testen Sie den Takteingang, um Ziel x vom GPIO-Pin zu debuggen. |
UJTAG_BYPASS_TMS_x | 1 | Eingang | Wählen Sie den Testmodus, um Ziel x vom GPIO-Pin aus zu debuggen. |
UJTAG_BYPASS_TDI_x | 1 | Eingang | Testdateneingang, serielle Daten zum Debuggen von Ziel x vom GPIO-Pin. |
UJTAG_BYPASS_TRSTB_x | 1 | Eingang | Test-Reset. Setzen Sie den Eingang zurück, um Ziel x vom GPIO-Pin zu debuggen. |
UJTAG_BYPASS_TDO_x | 1 | Ausgabe | Testdatenausgang, serielle Daten vom Debugziel x vom GPIO-Pin. |
SEC-Anschlüsse | |||
DE_SEC | 1 | Eingang | Aktiviert die Sicherheit. Ermöglicht dem Benutzerdesign, den externen TDI- und TRSTB-Eingang zum TAP zu überschreiben.Vorsicht: Gehen Sie beim Anschließen dieses Ports besonders vorsichtig vor. Weitere Einzelheiten finden Sie im Hinweis unten und unter „Geräteprogrammierung“. |
TDI_SEC | 1 | Eingang | TDI-Sicherheitsüberschreibung. Überschreibt den externen TDI-Eingang zum TAP, wenn EN_SEC HIGH ist. |
TRSTB_SEC | 1 | Eingang | TRSTB-Sicherheitsüberschreibung. Überschreibt den externen TRSTB-Eingang zum TAP, wenn SEC_EN HIGH ist. |
UTRSTB | 1 | Ausgabe | Testen des Reset-Monitors |
UTMS | 1 | Ausgabe | Testmodus Monitor auswählen |
Der Mikrochip WebWebsite
Microchip bietet Online-Support über unsere webSeite unter www.microchip.com/. Dies webWebsite wird verwendet, um files und Informationen für Kunden leicht zugänglich. Einige der verfügbaren Inhalte umfassen:
- Produkt-Support – Datenblätter und Errata, Anwendungshinweise und sampDateiprogramme, Designressourcen, Benutzerhandbücher und Hardware-Supportdokumente, neueste Softwareversionen und archivierte Software
- Allgemeiner technischer Support – Häufig gestellte Fragen (FAQs), Anfragen zum technischen Support, Online-Diskussionsgruppen, Mitgliederliste des Microchip-Designpartnerprogramms
- Geschäft von Microchip – Produktauswahl- und Bestellleitfäden, neueste Pressemitteilungen von Microchip, Auflistung von Seminaren und Veranstaltungen, Auflistung von Microchip-Vertriebsbüros, Distributoren und Fabrikvertretern
Benachrichtigungsservice für Produktänderungen
Der Benachrichtigungsservice für Produktänderungen von Microchip hilft Kunden, die Produkte von Microchip auf dem Laufenden zu halten. Abonnenten erhalten E-Mail-Benachrichtigungen, wenn Änderungen, Aktualisierungen, Überarbeitungen oder Errata in Bezug auf eine bestimmte Produktfamilie oder ein Entwicklungstool von Interesse vorliegen.
Um sich zu registrieren, gehen Sie zu www.microchip.com/pcn und folgen Sie den Anweisungen zur Registrierung. Kundensupport Benutzer von Microchip-Produkten können über mehrere Kanäle Unterstützung erhalten:
- Vertriebshändler oder Vertreter
- Lokales Verkaufsbüro
- Embedded Solutions Engineer (ESE) Technischer Support Kunden sollten sich für Support an ihren Distributor, Vertreter oder ESE wenden. Lokale Vertriebsbüros stehen den Kunden ebenfalls zur Verfügung. Eine Liste der Vertriebsbüros und Standorte finden Sie in diesem Dokument.
Technischen Support erhalten Sie über die webWebsite unter: www.microchip.com/support
Codeschutzfunktion von Microchip Devices
Beachten Sie die folgenden Details der Codeschutzfunktion auf Microchip-Geräten:
- Mikrochipprodukte erfüllen die in ihrem jeweiligen Mikrochip-Datenblatt enthaltenen Spezifikationen.
- Microchip ist der Ansicht, dass seine Produktfamilie bei bestimmungsgemäßer Verwendung und unter normalen Bedingungen sicher ist.
- Es werden unehrliche und möglicherweise illegale Methoden verwendet, um die Code-Schutzfunktionen der Microchip-Geräte zu verletzen. Wir glauben, dass diese Methoden eine Verwendung der Microchip-Produkte auf eine Weise erfordern, die außerhalb der in den Datenblättern von Microchip enthaltenen Betriebsspezifikationen liegt. Versuche, diese Code-Schutzfunktionen zu verletzen, können höchstwahrscheinlich nicht durchgeführt werden, ohne die geistigen Eigentumsrechte von Microchip zu verletzen.
- Microchip ist bereit, mit jedem Kunden zusammenzuarbeiten, der Bedenken hinsichtlich der Integrität seines Codes hat.
- Weder Microchip noch irgendein anderer Halbleiterhersteller kann die Sicherheit seines Codes garantieren. Code-Schutz bedeutet nicht, dass wir garantieren, dass das Produkt „unzerbrechlich“ ist. Der Codeschutz entwickelt sich ständig weiter. Wir bei Microchip sind bestrebt, die Codeschutzfunktionen unserer Produkte kontinuierlich zu verbessern. Versuche, die Codeschutzfunktion von Microchip zu brechen, können eine Verletzung des Digital Millennium Copyright Act darstellen. Wenn solche Handlungen unbefugten Zugriff auf Ihre Software oder andere urheberrechtlich geschützte Werke ermöglichen, haben Sie möglicherweise das Recht, nach diesem Gesetz Abhilfe zu schaffen.
Rechtliche Hinweise
Die in dieser Veröffentlichung enthaltenen Informationen dienen ausschließlich dem Design und der Verwendung von Microchip-Produkten. Informationen zu Geräteanwendungen und dergleichen dienen nur zu Ihrer Information und können durch Updates ersetzt werden. Es liegt in Ihrer Verantwortung, sicherzustellen, dass Ihre Anwendung Ihren Spezifikationen entspricht.
DIESE INFORMATIONEN WERDEN VON MICROCHIP „WIE BESEHEN“ BEREITGESTELLT. MICROCHIP GIBT KEINE ZUSICHERUNGEN
ODER GARANTIEN JEGLICHER ART, OB AUSDRÜCKLICH ODER STILLSCHWEIGEND, SCHRIFTLICH ODER MÜNDLICH, GESETZLICH
ODER ANDERWEITIG, IN BEZUG AUF DIE INFORMATIONEN, EINSCHLIESSLICH ABER NICHT BESCHRÄNKT AUF IMPLIZITE
GARANTIEN DER NICHTVERLETZUNG, MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK ODER GARANTIEN IN BEZUG AUF ZUSTAND, QUALITÄT ODER LEISTUNG. IN KEINEM FALL HAFTET MICROCHIP FÜR INDIREKTE, SPEZIELLE, STRAFENDE, ZUFÄLLIGE ODER FOLGESCHÄDEN, SCHÄDEN, KOSTEN ODER AUFWENDUNGEN JEGLICHER ART IM ZUSAMMENHANG MIT DEN INFORMATIONEN ODER IHRER VERWENDUNG, WIE AUCH IMMER ENTSTANDEN, SELBST WENN MICROCHIP AUF DIE MÖGLICHKEIT HINGEWIESEN WURDE ODER DIE SCHÄDEN VORHERSEHBAR SIND. Soweit gesetzlich zulässig, übersteigt die Gesamthaftung von Microchip für alle Ansprüche, die in irgendeiner Weise mit den Informationen oder ihrer Verwendung in Zusammenhang stehen, nicht den Betrag der Gebühren, die Sie gegebenenfalls direkt an Microchip für die Informationen bezahlt haben. Die Verwendung von Microchip-Geräten in lebenserhaltenden und/oder sicherheitsrelevanten Anwendungen erfolgt ausschließlich auf Risiko des Käufers, und der Käufer verpflichtet sich, Microchip von allen Schäden, Ansprüchen, Klagen oder Kosten freizustellen, die aus einer solchen Verwendung resultieren. Sofern nicht anders angegeben, werden keine Lizenzen im Rahmen der geistigen Eigentumsrechte von Microchip übertragen, weder implizit noch anderweitig.
AMERIKA | ASIEN/PAZIFIK | ASIEN/PAZIFIK | EUROPA |
Firmensitz2355 West Chandler Blvd. Chandler, AZ 85224-6199Tel: 480-792-7200Fax: 480-792-7277Technischer Support: www.microchip.com/support Web Adresse: www.microchip.com AtlantaDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455Austin, TexasTel: 512-257-3370Boston Westborough, MA Tel: 774-760-0087Fax: 774-760-0088ChicagoItasca, ILTel: 630-285-0071Fax: 630-285-0075DallasAddison, TXTel: 972-818-7423Fax: 972-818-2924DetroitNovi, MITel: 248-848-4000Houston, Texas (Bundesstaat)Tel: 281-894-5983Indianapolis Noblesville, IN Tel: 317-773-8323Fax: 317-773-5453Tel: 317-536-2380Los Angeles Mission Viejo, CA Tel: 949-462-9523Fax: 949-462-9608Tel: 951-273-7800Raleigh, North CarolinaTel: 919-844-7510New York, NYTel: 631-435-6000San Jose, KalifornienTel: 408-735-9110Tel: 408-436-4270Kanada – TorontoTel: 905-695-1980Fax: 905-695-2078 | Australien – SydneyTel: 61-2-9868-6733China – PekingTel: 86-10-8569-7000China – ChengduTel: 86-28-8665-5511China – ChongqingTel: 86-23-8980-9588China – DongguanTel: 86-769-8702-9880China – GuangzhouTel: 86-20-8755-8029China – HangzhouTel: 86-571-8792-8115China – Sonderverwaltungszone HongkongTel: 852-2943-5100China – NanjingTel: 86-25-8473-2460China – QingdaoTel: 86-532-8502-7355China – ShanghaiTel: 86-21-3326-8000China – ShenyangTel: 86-24-2334-2829China – ShenzhenTel: 86-755-8864-2200China – SuzhouTel: 86-186-6233-1526China – WuhanTel: 86-27-5980-5300China – Xi’anTel: 86-29-8833-7252China – XiamenTel: 86-592-2388138China – ZhuhaiTel: 86-756-3210040 | Indien – BangaloreTel: 91-80-3090-4444Indien – Neu-DelhiTel: 91-11-4160-8631Indien – PuneTel: 91-20-4121-0141Japan – ŌsakaTel: 81-6-6152-7160Japan – TokioTel: 81-3-6880-3770Korea – DaeguTel: 82-53-744-4301Korea – SeoulTel: 82-2-554-7200Malaysia - Kuala LumpurTel: 60-3-7651-7906Malaysia – PenangTel: 60-4-227-8870Philippinen – ManilaTel: 63-2-634-9065SingapurTel: 65-6334-8870Taiwan – Hsin ChuTel: 886-3-577-8366Taiwan – KaohsiungTel: 886-7-213-7830Taiwan – TaipehTel: 886-2-2508-8600Thailand – BangkokTel: 66-2-694-1351Vietnam – Ho Chi MinhTel: 84-28-5448-2100 | Österreich – WelsTel: 43-7242-2244-39Fax: 43-7242-2244-393Dänemark – KopenhagenTel: 45-4485-5910Fax: 45-4485-2829Finnland – EspooTel: 358-9-4520-820Frankreich – ParisTel: 33-1-69-53-63-20Fax: 33-1-69-30-90-79Deutschland – GarchingTel: 49-8931-9700Deutschland – HaanTel: 49-2129-3766400Deutschland – HeilbronnTel: 49-7131-72400Deutschland – KarlsruheTel: 49-721-625370Deutschland – MünchenTel: 49-89-627-144-0Fax: 49-89-627-144-44Deutschland – RosenheimTel: 49-8031-354-560Israel – Ra’ananaTel: 972-9-744-7705Italien – MailandTel: 39-0331-742611Fax: 39-0331-466781Italien – PaduaTel: 39-049-7625286Niederlande – DrunenTel: 31-416-690399Fax: 31-416-690340Norwegen – TrondheimTel: 47-72884388Polen – WarschauTel: 48-22-3325737Rumänien – BukarestTel: 40-21-407-87-50Spanien – MadridTel: 34-91-708-08-90Fax: 34-91-708-08-91Schweden – GöteborgTel: 46-31-704-60-40Schweden – StockholmTel: 46-8-5090-4654Großbritannien – WokinghamTel: 44-118-921-5800Fax: 44-118-921-5820 |
Dokumente / Ressourcen
![]() |
Microchip Technology CoreJTAGDebug-Prozessoren [pdf] Benutzerhandbuch CoreJTAGDebug-Prozessoren, CoreJTAGDebuggen, Prozessoren |