Jürgen Haufe 1, Matthias Gulbins 1, Peter Schwarz 1, Christoph Fritsch 2, Jens Große 3 1 für 2 Bosch Telecom 3 SharcWare 1
Gliederung Motivation für Hardware-Debugging Anforderungen und Methode Architekturvarianten eines HW-Debuggers Debuggerkomponenten Designflow Ausblick 2
Motivation für Hardware-Debugging Trotz treten Fehler auf beim Prototyping und In-System-Test RT- und Gate-Level-Simulation Statischer Timing-Analyse Formaler Verification Entwurfsspekifikation nicht ausreichend RTL-Simulation nicht vollständig Verwendung von Third-Party-Cores: RTL-Modelle nicht verfügbar oder nicht korrekt Verifikationsumgebung nicht ausreichend Mehrtaktsysteme, asynchrone I/O usw. Derzeitige Lösungen Wünsche der Entwerfer Testpins und Logikanalysatoren,... Lange Simulationsläufe, teilweise auf Gate-Level während der ASIC-Prototyp in Echtzeit arbeitet: vollständige Sichtbarkeit der HW-internen Knoten vollständige Modifizierbarkeit der HW-internen Knoten 3
Anforderungen an Hardware-Debbugging läuft in Echtzeit Debugger läuft in Echtzeit, rückwirkunsfrei auf - Timing Trace und Breakpoint-Erkennung in Echtzeit Update-Daten Breakpoints System- Umgebung Debugger ist unabhängig von -Technologie, aber vorrangig gedacht für FPGAs Steuerung über Rechnerinterface geeignet für übliche Designflows Plug-and-Play - Lösung Host-Interface Trace-Daten (Register, RAM) -Board : Device Under Test 4
Methode: Trace-Mode : Device Under Test Fehler Systemumgebung 0 Echtzeit Debugger interface Fehler erkannt im Echtzeitumgebung HW- Debugger Abtastwerte Simulator-Initialisierung mit Abtastwerten Simulationsumgebung Simulator 0 eingesparte Simulationszeit Fehler erkannt in Simulation Fehleranalyse-Intervall Simulationszeit 5
Methode: Update-Mode : Device Under Test Systemumgebung 0 Echtzeit Debugger interface -Initialisierung mit Simulationsergebnissen Echtzeitumgebung HW- Debugger Simulationsumgebung Simulator 0 eingesparte Simulationszeit Fehler erkannt in Simulation Fehleranalyse-Intervall Simulationszeit 6
Architekturvarianten eines HW-Debuggers Basisstruktur -Datenregister Trace-Mode Schattenregisterkette(n) HW-Debug-Controller RAM Host-Interface 7
Architekturvarianten eines HW-Debuggers HW-Debugger getrennt vom Debugger-Interface seriell geringe Datenrate wenige Pins On-chip Debugger-Komponenten wenig Fläche Separates Debugger-Board möglich RAM HW debug controller Host interface Separates Debugger- Board System- Umgebung Trace/Update Breakpoint Debugger-Interface zeitkritisch 8
Architekturvarianten eines HW-Debuggers HW-Debugger integriert im Debugger-Interface seriell maximale Datenrate wenige Pins On-chip Debugger-Komponenten maximale Fläche Debugger-Core möglich RAM Host interface HW- Debug- Controller Debugger-Interface zeitkritisch Trace/Update Breakpoint System- Umgebung 9
Architekturvarianten eines HW-Debuggers HW-Debugger-Kernel im Debugger-Interface parallel optimale Datenrate maximale Pinanzahl On-chip Debugger-Komponenten optimale Fläche Separates Debugger-Board möglich RAM HW- Debug- Controller Host- Interface Debugger-Interface HW- Debug- Kernel zeitkritisch System- Umgebung Trace/Update Breakpoint 10
11 Scahttenzelle Debugger-Komponenten HW- Debug Kernel Trace/Update Breakpoint C1 d q qb clk d upd clk q qb si so cpt sc se en ce 1E en 1D C1 1E 1D C1 1E 0 1 0 1 d upd clk si cpt sc se en ce q qb so 1D 1D 1S C1 2D 2S C2 2E 1E1 1E2
Debugger-Komponenten Breakpoint-Zelle HW debug kernel Trace/Update Breakpoint VHDL-Beispiel: if <breakcondition> then rtlbreak <= ë1í; else... end if; Register-Transfer-Level-Breakpoint = watched node gtlbreak Enable Reference Gate-Level-Breakpoint breakpoint cell path 12
Debugger-Komponenten On-chip Debugger-Kernel BoardReset HW- Debug- Kernel Trace/Update Breakpoint reset Update TraceOn TraceOff Read/Write Init Wait RAMinit Go Run+Trace Break TraceOff TraceOn Break Run 13
Debugger-Komponenten Debugger-Interface RAM Parallel Port RAM-Interface Data port 15.. 0 Host-Interface Start signal go HW Debug- Controller Host- Interface Addr port 16.. 0 Chip enable Mode trace Mode update HW- Debug Kernel Debugger-Interface 42 Pins Write enable Output enable User intervention Debugger busy Trace/Update Breakpoint break occurred 14
Designflow -Design.v(hd) optional RTLBreakInsert Synthesephase optional RTL Synthesis GTLBreakInsert GTL-Breakpoint-Zellen ShadowInsert Schattenzellen Linking HW-Debug-Kernel Place & Route Verifikationsphase HW2sim Steuerdaten Sim2HW Gate-Level-Simulation 15
Vorteil Nachteil Gegenwärtige Beschränkungen Ausblick erlaubt die Beobachtung und Modifikation aller Register eines ASIC-Prototypen technologie- und herstellerunabhängig rückwirkungsfrei echtzeitfähig Plug-and-Play -Lösung Debugger-Komponenten notwendig im Prototyp zusätzliche Pins notwendig keine Abbildung von Trace-Daten in das RT-Level keine Unterstützung von embedded RAM nur Eintaktsysteme keine kontinuierlicher I/O-Signalabttastung Beseitigung der gegenwärtigen Beschränkungen Separates Debugger-Board Ausblick 16
Ausblick Anwendungen Fehlersuche beim Prototyping Data Logging Fehleremulation begrenzte temporäre Schaltungsmodifikation ohne Redesign gezielte Zustandsänderung der Schaltungsregister IP-Core-Test im Schaltkreis elementarer SW-Debugger für Prozessor-Cores... 17