Hardware Logik-Analysatoren Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware Logik-Analysatoren 1/24 2010-10-12
Übersicht Inhalt: Motivation Logik-Analysatoren Interner LA Weitere Debug-Möglichkeiten Hardware Logik-Analysatoren 2/24 2010-10-12
Motivation Problem Wie debugt man Hardware? Lösungsansätze Während der Modellierung: Simulation, später: Aufzeichnen der Signale an den Pins / auf dem Bus, spezielle Debug-/Test-Logiken als Teil der HW (z.b. Boundary Scan), bei ASICs auch maximal-invasiv. Hardware Logik-Analysatoren 3/24 2010-10-12
(Speicher-)Oszilloskope Prinzip Zeigen den Verlauf von Spannungspegeln über der Zeit an, Trigger dient der Synchronisation der Zeitbasis, typische Eigenschaften: wenige Kanäle, einfache, periodische Trigger, hohe Auflösung im Spannungsbereich. Hardware Logik-Analysatoren 4/24 2010-10-12
(Speicher-)Oszilloskope (2) Idee Für Digitaltechnik nur Logikpegel (bzw. Information über die Änderung derselben) nötig Einsparung von Ressourcen mehr Kanäle und komplexere Trigger möglich Logik-Analysatoren. Hardware Logik-Analysatoren 5/24 2010-10-12
Logik-Analysatoren Prinzip Speichere ständig Verläufe der Logik-Pegel aller interessanten Signale in FIFOs, Schieberegistern o.ä., warte am Anfang, bis FIFO gefüllt ist, vergleiche dann definierte FIFO-Position mit interessantem Signalwechselmuster ( Trigger ), sobald Trigger auftritt: unterbreche die Aufzeichnung, stelle die FIFO-Inhalte als Wellenform dar. Hardware Logik-Analysatoren 6/24 2010-10-12
Logik-Analysatoren (2) Geräte Früher: Komplettlösungen (von der Klemme bis zum Monitor), heute oft Teillösungen: Steuerung und Darstellung übernimmt normaler PC. Hardware Logik-Analysatoren 7/24 2010-10-12
Logik-Analysatoren: Abgreifklemme Hardware Logik-Analysatoren 8/24 2010-10-12
Logik-Analysatoren: Komplettsystem Hardware Logik-Analysatoren 9/24 2010-10-12
Logik-Analysatoren: Bus-Abgreifkarte Hardware Logik-Analysatoren 10/24 2010-10-12
Logik-Analysatoren: Client auf dem Bus Hardware Logik-Analysatoren 11/24 2010-10-12
Interner LA Unser Prototyp verfügt über eine interne LA-Logik, die die wesentliche Signale des lokalen Busses, die Signale der FIFO-Ansteuerung, die seriellen Eingangs-, Ausgangs- und Steuersignale aufzeichnen und auf sie triggern kann. Zusätzlich: externer Trigger (von Peer). Hardware Logik-Analysatoren 12/24 2010-10-12
Interner LA Struktur Hardware Logik-Analysatoren 13/24 2010-10-12
Interner LA Benutzerschnittstelle Kommunikation mit LA erfolgt über TCP/IP, einfaches, selbstdefiniertes Protokoll, Benutzerschnittstelle in Software (GTK+-GUI), gtkwave als Betrachter für Aufzeichnungen. Hardware Logik-Analysatoren 14/24 2010-10-12
Interner LA GUI-Hauptmenü Hardware Logik-Analysatoren 15/24 2010-10-12
Interner LA Wellenformbetrachter Hardware Logik-Analysatoren 16/24 2010-10-12
Interner LA Trigger-Position Ort in der FIFO des LA, an dem nach dem Trigger gesucht wird. CHANNELS 0 1 2 3 Trigger Position Hardware Logik-Analysatoren 17/24 2010-10-12
Weitere Debug-Möglichkeiten Student-Error, interner Loopback, Test-Interrupt. Hardware Logik-Analysatoren 18/24 2010-10-12
Weitere Debug-Möglichkeiten (2) Student-Error Interrupt (Maske 0x80) und triggerbares Signal, bei Lesen aus leerer FIFO, Schreiben in volle FIFO, HW-Error-Check fehlgeschlagen. Hardware Logik-Analysatoren 19/24 2010-10-12
Weitere Debug-Möglichkeiten (3) FIFO-Zugriffsfehler Werden durch spezielle Flags in Kontrollregistern unterschieden: SW-Err Full (Reg. 0x10, Bit 15) Schreiben in volle Send-FIFO, HW-Err Empty (Reg. 0x10, Bit 14) Lesen aus leerer Send-FIFO, HW-Err Full (Reg. 0x14, Bit 15) Schreiben in volle Recv-FIFO, SW-Err Empty (Reg. 0x14, Bit 14) Lesen aus leerer Recv-FIFO, Hardware Logik-Analysatoren 20/24 2010-10-12
Weitere Debug-Möglichkeiten (4) HW-Error-Check Aktivieren mit Bit 13 in Register 0x0C, Hardware erzeugt Pseudo-Zufallsfolgen nach u.g. Algorithmus, gesendete und empfangene Bitströme werden mit Zufallsreihe verglichen, bei Abweichung: Auslösen von Student-Error und Setzen von entsprechendem Bit: HW-Err PSC (Reg. 0x10, Bit 13) vor Parallel-Seriell-Wandler, HW-Err SPC (Reg. 0x14, Bit 13) nach Seriell-Parallel- Wandler. Hardware Logik-Analysatoren 21/24 2010-10-12
Weitere Debug-Möglichkeiten (5) HW-Error-Check (Forts.) Schieberegister, in jedem Schritt wird ein Byte erzeugt, Initialwert ist 0x1ff. compare XOR Hardware Logik-Analysatoren 22/24 2010-10-12
Weitere Debug-Möglichkeiten (6) Interner Loopback Direkte Verbindung von SER-OUT mit SER-IN und READY-OUT mit READY-IN, per Software schaltbar, Register-Offset 0x0C, Bit 11. Hardware Logik-Analysatoren 23/24 2010-10-12
Weitere Debug-Möglichkeiten (7) Test-Interrupt Auslösen mit Bit 12 in Register 0x0C, Flanke von 0 1 erzeugt Interrupt, Maske für Test-Interrupt: 0x01. Hardware Logik-Analysatoren 24/24 2010-10-12