Upload
vuthu
View
220
Download
1
Embed Size (px)
Citation preview
1 / 50
Hardwarepraktikum 2.0Entwurf eines Speicher- und IO-Interfaces auf einem FPGA
sowieeines Assembler-Compilers/-Debuggers und Memory-Viewers
Bachelorarbeiten
Dennis Reuling und Simon Hardt
Fachgruppe fur MikrosystementwurfFakultat IV, Department Elektrotechnik und Informatik
Universitat Siegen
17. Mai 2011
Hardwarepraktikum 2.0 . Bachelorarbeiten
2 / 50
Gliederung
1 Einleitung
2 Entwurfsuberblick
3 Speicher- und IO-Interface fur einen FPGAModulubersichtenFPGA-Testboard
4 Assembler-Compiler/-Debugger und Memory-ViewerCompiler/DebuggerBenutzeroberflache
5 Zusammenfassung und Ausblick
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Einleitung 3 / 50
Gliederung
1 Einleitung
2 Entwurfsuberblick
3 Speicher- und IO-Interface fur einen FPGAModulubersichtenFPGA-Testboard
4 Assembler-Compiler/-Debugger und Memory-ViewerCompiler/DebuggerBenutzeroberflache
5 Zusammenfassung und Ausblick
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Einleitung 4 / 50
Hardwarepraktikum
Das Hardwarepraktikum wird von der Fachgruppe Mikrosystementwurfjedes Sommersemester angeboten
Zielgruppe: Studenten der Informatik
Zielsetzung: Praktische Erfahrungen in hardwarenaher Entwicklung unddem Zusammenspiel zwischen Hardware und Software sammeln
Das Praktikum besteht aus zwei wichtigen Abschnitten:
Entwicklung eines Prozessors auf einem FPGA
Assemblerprogrammierung und anschließende Ausfuhrung auf demzuvor entwickelten Prozessor
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Einleitung 4 / 50
Hardwarepraktikum
Das Hardwarepraktikum wird von der Fachgruppe Mikrosystementwurfjedes Sommersemester angeboten
Zielgruppe: Studenten der Informatik
Zielsetzung: Praktische Erfahrungen in hardwarenaher Entwicklung unddem Zusammenspiel zwischen Hardware und Software sammeln
Das Praktikum besteht aus zwei wichtigen Abschnitten:
Entwicklung eines Prozessors auf einem FPGA
Assemblerprogrammierung und anschließende Ausfuhrung auf demzuvor entwickelten Prozessor
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Entwurfsuberblick 5 / 50
Gliederung
1 Einleitung
2 Entwurfsuberblick
3 Speicher- und IO-Interface fur einen FPGAModulubersichtenFPGA-Testboard
4 Assembler-Compiler/-Debugger und Memory-ViewerCompiler/DebuggerBenutzeroberflache
5 Zusammenfassung und Ausblick
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Entwurfsuberblick 6 / 50
Ausgangslage - Hardwareseite
Kommunikation uber die RS232-Schnittstelle zwischen dem FPGA unddem Computer
- Speicher schreiben- Speicher lesen- Eingaben- Ausgaben- Baudrate von 9600
Prozessor kann auf den Speicher zugreifen
Assemblerprogramme konnen auf dem FPGA ausgefuhrt werden,welche uber den Computer mit dem Benutzer interagieren
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Entwurfsuberblick 7 / 50
Anforderungen - Hardwareseite
Load / Store Befehle mussen moglich sein
Die Kommunikation uber RS232-Schnittstelle
- Hohere Baudrate als 9600- FPGA Module zurucksetzten- Fehlererkennung bei der Ubertragung
Die Verwendung der moglichen Sensoren und Aktoren auf demFPGA-Testboard
Die Kompatibilitat zu alten Prozessoren und altenAssemblerprogrammen
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Entwurfsuberblick 8 / 50
Ausgangslage - Softwareseite
Kompilieren und Debuggen von Assemblercode mit Hilfe einerKonsolenanwendung
Verwendung des Assemblercompilers von Andre Hertwig:
- Kompilieren von Assemblerprogrammen- Debuggen von Assemblerprogrammen
Editieren und Ubertragen von Assemblercode mit Hilfe einer grafischenAnwendung
Der verwendete Assembler- und Memoryviewer von Carsten Giersbachbietet folgende Mglichkeiten:
- Entwerfen, Laden und Speichern von Assemblerprogrammen- Kompilieren des Assemblercodes mit Hilfe des Assemblercompilers- Kommunikation mit einem angeschlossenen FPGA- Lesen, Schreiben sowie Visualisieren des Speichers vom FPGA
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Entwurfsuberblick 9 / 50
Anforderungen - Softwareseite
Durch praktische Erfahrungen besteht der Wunsch nach Erweiterungen:
Reduzierung von zwei benotigten Programmen auf ein Programm, abermit dem gesamten Funktionsumfang:
- Editieren, kompilieren und debuggen von Assemblerprogrammen- Kommunikation mit einem FPGA- Lesen, schreiben sowie visualisieren des Speichers vom FPGA
Alle Funktionen benutzbar in grafischer Oberflache
Unterstutzung mehrerer Betriebssysteme
Moglichkeiten zur Erweiterung bieten
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Entwurfsuberblick 10 / 50
Verwendetes Schichtenmodell
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA 11 / 50
Gliederung
1 Einleitung
2 Entwurfsuberblick
3 Speicher- und IO-Interface fur einen FPGAModulubersichtenFPGA-Testboard
4 Assembler-Compiler/-Debugger und Memory-ViewerCompiler/DebuggerBenutzeroberflache
5 Zusammenfassung und Ausblick
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA 12 / 50
Einleitung
Es entstanden viele neue Module
- neue RS232-Ubertragungsmodule- neue Aktor und Sensormodule
Es entstanden viele neue Moglichkeiten durch neue Module
- Reset der Module auf dem FPGA-Testboard uber RS232-Port- Moglichkeit zur Interatkion uber Switches- Moglichkeit zum Anzeigen von Daten uber LEDS- Moglichkeit zum Anzeigen von Daten uber 7-Segment-Anzeigen
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 13 / 50
Ubersicht
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 14 / 50
RS232rx
Ermoglicht das Empfangen von Bits uber den RS232-Port
Mogliche Baudraten: 9600, 19200, 38400, 57600, 115200
Momentan verwendete Baudrate: 115200
Baudratenerzeugung aus 50Mhz Clock vom FPGA-Testboard
Empfangt 1 Startbit, 8 Datenbits, 1 Stopbit
Programmiert als Zustandsautomat
Synchronisation mit ankommenden Startbit
Angeschlossen am RS232-Modul
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 15 / 50
RS232rx Osszilloskopaufnahme
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 16 / 50
RS232tx
Ermoglicht das Senden von Bits uber den RS232-Port
Mogliche Baudraten: 9600, 19200, 38400, 57600, 115200
Momentan verwendete Baudrate: 115200
Baudratenerzeugung aus 50Mhz Clock vom FPGA-Testboard
Sendet 1 Startbit, 8 Datenbits, 1 Stopbit
Programmiert als Ablaufdiagramm
Synchronisiert sich mit dem Versenden eines Startbits
Angeschlossen am RS232-Modul
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 17 / 50
RS232tx Osszilloskopaufnahme
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 18 / 50
CRC
Berechnet CRC-Hash zu 8-Bit Datum
CRC-Polynom: 0x2C
Hamming-Distanz bei 16-Bit Datum: 3
Angeschlossen am RS232-Modul
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 19 / 50
RS232
Herzstuck des RS232-Ports
Verwaltet Anfragen an und vom RS232-Port
Ist direkt mit dem IO-Controller verbunden
Arbeitet auf Byte-Ebene, Bits werden vom RS232tx und RS232rxModul verarbeitet
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 20 / 50
IO-Controller
Zentrale BUS Verwaltungseinheit
Verwaltet Kommunikation zwischen:
- Prozessor - Speicher- Prozessor - RS232-Port- Prozessor - IO-Modulen- RS232-Port - Speicher
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 21 / 50
IO-Controller Blockschaltbild
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . Modulubersichten 22 / 50
IO-Bus
Zwei Eingehende Leitungen
io out, Datenbus vom Modul zum IO-Controller, 16 Bit breit
io ready, Signalleitung vom Modul zum IO-Controller, 1 Bit breit
Vier Ausgehende Leitungen
io read, Signalleitung vom IO-Controller zum Modul, 1 Bit breit
io write, Signalleitung vom IO-Controller zum Modul, 1 Bit breit
io in, Datenbus vom IO-Controller zum Modul, 1 Bit breit
io adr, Adressbus vom IO-Controller zum Modul, 1 Bit breit
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . FPGA-Testboard 23 / 50
Moglichkeiten
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . FPGA-Testboard 24 / 50
LED-Modul
Zeigt untere 7 Bits eines 16-Bit breiten Datums auf den LEDs an
Speichert intern den angezeigten Wert
Anzeige kann ausgelesen werden
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . FPGA-Testboard 25 / 50
7-Segment-Modul
Zeigt Datum als Hexadezimalwert auf vier 7-Segment-Anzeigen an
Speichert intern den angezeigten Wert
Anzeige kann ausgelesen werden
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Speicher- und IO-Interface fur einen FPGA . FPGA-Testboard 26 / 50
Switches-Modul
Liest Zustand von den acht Schaltern auf dem FPGA-Testboard aus
Die Schalterzustande werden in den unteren acht Bit gespeichert
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer 27 / 50
Gliederung
1 Einleitung
2 Entwurfsuberblick
3 Speicher- und IO-Interface fur einen FPGAModulubersichtenFPGA-Testboard
4 Assembler-Compiler/-Debugger und Memory-ViewerCompiler/DebuggerBenutzeroberflache
5 Zusammenfassung und Ausblick
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 28 / 50
Einleitung - Assemblersprache
Die Assemblersprache bietet:
- Arithmetische Befehle- Bit Operationen- Sprunge- Tests auf ”0”- Labels- (Mehrzeilige)Kommentare- Breakpoints
Beispiel:Multiplikation 3 * 4:
1 l d r1 ,#02 l d r2 ,#33 l d r5 ,#14 l d r6 ,#45
6 l o o p :7 !BREAK!8 add r1 , r2 , r 19 sub r6 , r6 , r 5
10 j n z #loop , r 611 jmp #ende12 ende :13 h a l t
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 29 / 50
Einleitung - Compiler
Ein Compiler ubersetzt Sprache A nach Sprache B, in diesem Fall:
Assemblerprogramm⇒ Maschinencode
Er durchlauft dabei mehrere Schritte:1 Lexikalische Analyse (Uberprufung von Mustern)2 Syntaktische Analyse (Uberprufung der Grammatik)
. Muster und Grammatik definieren die gesamte Assemblerspracheund deren Moglichkeiten
Diese werden in der erweiterten Backus-Naur Form definiert (EBNF)
Optional fuhrt der Compiler zusatzlich zu den obigen SchrittenAktionen aus
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 30 / 50
Muster der Assemblersprache
1 MINUS : ’− ’ ;2 DIGIT : ( ’ 0 ’ . . ’ 9 ’ ) ;3 HEXDIGIT : ( ( ’A ’ . . ’ F ’ | ’ a ’ . . ’ f ’ ) | DIGIT ) ;4 LETTER : ( ’ a ’ . . ’ z ’ | ’A ’ . . ’Z ’ ) ;5 REGISTER : ( ’ r ’ | ’R ’ ) ( ’ 0 ’ . . ’ 7 ’ ) ;6 CHAR: ( (LETTER) | ( DIGIT ) | ’ ’ | ’ $ ’ | ’#’ ) ;7 IDENT : ( (LETTER) (CHAR) ∗) ;8 NUMBER: ( DIGIT ) +;9 HEXNUMBER: ( ’ 0 x ’ ( HEXDIGIT )+) ;
10 LABEL : IDENT ’ : ’ ;11 WHITESPACE : ( ’ ’ | ’\ t ’ | ’\ f ’ )+ { $ c h a n n e l=HIDDEN ; } ;12 NEWLINE : ( ’\n ’ | ’\ r ’ )+ ;13 SLCOMMENT: ’ // ’ .∗ NEWLINE ;14 MLCOMMENT: ’ /∗ ’ .∗ ’∗/ ’ NEWLINE ;15 BREAKPOINT : ’ !BREAK! ’ ;
Neu eingebaut im Zuge der Bachelorarbeit:
MLCOMMENT - Mehrzeilige Kommentare
BREAKPOINT - Abbruchpunkte fur den Debugger
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 31 / 50
Grammatik der Assemblersprache
Ein Beispiel aus der Grammatik, der STORE Befehl:
Dieser definiert alle Moglichkeiten, den STORE Befehl zu verwenden
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 32 / 50
Grammatik der Assemblersprache
So erkennt der Compiler den STORE Befehl st r1, r2:
Dieser Befehl speichert den Inhalt des Registers 2 in Register 1
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 33 / 50
Aktionen
Je nach Muster oder Regel werden Aktionen ausgefuhrt:
Werte aus Tabellen/Arrays lesen
Werte in Tabellen/Arrays schreiben
Berechnungen durchfuhren
Ausgaben bzw Eingaben verarbeiten
Welche Aktion jeweils ausgefuhrt wird, hangt ab von:
Erkannte Regeln
Aktueller Schritt des Compilers
Status des Debuggers
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 33 / 50
Aktionen
Je nach Muster oder Regel werden Aktionen ausgefuhrt:
Werte aus Tabellen/Arrays lesen
Werte in Tabellen/Arrays schreiben
Berechnungen durchfuhren
Ausgaben bzw Eingaben verarbeiten
Welche Aktion jeweils ausgefuhrt wird, hangt ab von:
Erkannte Regeln
Aktueller Schritt des Compilers
Status des Debuggers
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 34 / 50
Schritte des Compilers
Der Compiler fuhrt 3 Schritte durch, um ein Assemblerprogramm zukompilieren:
1 Die Label-Tabelle fur die folgenden Schritte aufbauen
2 Das Befehls-Array fur den Debugger aufbauen
3 Den Maschinencode in das Speicher-Array schreiben
. Nach Schritt 3 kann dann das Speicher Array in ein Memoryfile(*.mem) geschrieben und an den FPGA ubertragen werden
Optional kann der Debugger nach Schritt 3 aufgerufen werden
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 35 / 50
Schritte des Compilers
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 36 / 50
Aktionen des Compilers - Schritt 3
Ein Ausschnitt des LOAD Befehls:
1 l d :2 ( ’ l d ’ | ’LD ’ ) ( r d e s t=REGISTER ’ , ’ r s r c 1=REGISTER3 { I n s t r u c t i o n S e t . memory [ a d r e s s ] = I n s t r u c t i o n S e t . getOpCode ( ”
LD” )4 + I n s t r u c t i o n S e t . getOpCode ( ”REG IMM” )5 + I n s t r u c t i o n S e t . getOpCode ( $ r d e s t . t e x t )6 + I n s t r u c t i o n S e t . getOpCode ( ”REG OFFSET” )7 + I n s t r u c t i o n S e t . getOpCode ( $ r s r c 1 . t e x t ) ;8 i f ( P r e f e r e n c e s . hexa == t r u e )9 I n s t r u c t i o n S e t . memory [ a d r e s s ] = I n s t r u c t i o n S e t .
opCodeToHex ( I n s t r u c t i o n S e t . memory [ a d r e s s ] ) ;}10 |11 .12 .13 .
Durchfuhrung:ld r1,r2 −−−−−→
Compiler8842
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 36 / 50
Aktionen des Compilers - Schritt 3
Ein Ausschnitt des LOAD Befehls:
1 l d :2 ( ’ l d ’ | ’LD ’ ) ( r d e s t=REGISTER ’ , ’ r s r c 1=REGISTER3 { I n s t r u c t i o n S e t . memory [ a d r e s s ] = I n s t r u c t i o n S e t . getOpCode ( ”
LD” )4 + I n s t r u c t i o n S e t . getOpCode ( ”REG IMM” )5 + I n s t r u c t i o n S e t . getOpCode ( $ r d e s t . t e x t )6 + I n s t r u c t i o n S e t . getOpCode ( ”REG OFFSET” )7 + I n s t r u c t i o n S e t . getOpCode ( $ r s r c 1 . t e x t ) ;8 i f ( P r e f e r e n c e s . hexa == t r u e )9 I n s t r u c t i o n S e t . memory [ a d r e s s ] = I n s t r u c t i o n S e t .
opCodeToHex ( I n s t r u c t i o n S e t . memory [ a d r e s s ] ) ;}10 |11 .12 .13 .
Durchfuhrung:ld r1,r2 −−−−−→
Compiler8842
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 37 / 50
Debugger
Erleichtert die Suche der Fehlerquelle (Prozessor oderAssemblerprogramm)
Dient zur Fehleruberprufung des Assemblerprogramms
Kann optional nach dem Kompilieren durchgefuhrt werden
Simuliert den entworfenen Prozessor im Hardwarepraktikum
Neu im Zuge der Bachelorarbeit:
Verarbeitet Ein- und Ausgaben
Kann mit Breakpoints an gezielten Stellen angehalten werden
Liefert Ausgabedateien fur spatere Betrachtung
Komplett in grafischer Oberflache bedienbar
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 37 / 50
Debugger
Erleichtert die Suche der Fehlerquelle (Prozessor oderAssemblerprogramm)
Dient zur Fehleruberprufung des Assemblerprogramms
Kann optional nach dem Kompilieren durchgefuhrt werden
Simuliert den entworfenen Prozessor im Hardwarepraktikum
Neu im Zuge der Bachelorarbeit:
Verarbeitet Ein- und Ausgaben
Kann mit Breakpoints an gezielten Stellen angehalten werden
Liefert Ausgabedateien fur spatere Betrachtung
Komplett in grafischer Oberflache bedienbar
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Compiler/Debugger 38 / 50
Aktionen des Debuggers
Erneut ein Ausschnitt des LOAD Befehls:
1 l d :2 ( ’ l d ’ | ’LD ’ ) ( r d e s t=REGISTER ’ , ’ r s r c 1=REGISTER3 { I n s t r u c t i o n S e t . r e g i s t e r s [ I n t e g e r . p a r s e I n t ( I n s t r u c t i o n S e t . getOpCode
( $ r d e s t . t e x t ) , 2 ) ] =4 I n s t r u c t i o n S e t . r e g i s t e r s [ I n t e g e r . p a r s e I n t ( I n s t r u c t i o n S e t . getOpCode (
$ r s r c 1 . t e x t ) , 2 ) ] ; }5 |6 .7 .8 .
Ladt den Inhalt eines Registers in ein anderes Register
Wird erreicht durch Beschreiben des Register-Arrays
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 39 / 50
Einleitung - Benutzeroberflache
Bietet dem Anwender eine Schnittstelle zur Verwendung desCompilers/Debuggers
Sollte Folgendes bieten:
- Intuitiv- Ubersichtlich- Einfach zu bedienen
. Realisierbar durch Konsole oder grafische Oberflache
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 39 / 50
Einleitung - Benutzeroberflache
Bietet dem Anwender eine Schnittstelle zur Verwendung desCompilers/Debuggers
Sollte Folgendes bieten:
- Intuitiv- Ubersichtlich- Einfach zu bedienen
. Realisierbar durch Konsole oder grafische Oberflache
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 40 / 50
Gegenuberstellung
Konsole
Vorteile:
Schlank und ressourcenarm
Wenig Abhangigkeiten
Uberall ausfuhrbar
Nachteile:
Weniger Ubersicht
Kein integrierter Editor
Nicht alle Funktionalitatenverfugbar
Grafische Oberflache
Vorteile:
Ubersichtlich
Einfach und intuitiv zu bedienen
Bietet alle Funktionalitaten
Nachteile:
Benotigt grafische Abhangigkeiten
. Beide Varianten realisiert
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 40 / 50
Gegenuberstellung
Konsole
Vorteile:
Schlank und ressourcenarm
Wenig Abhangigkeiten
Uberall ausfuhrbar
Nachteile:
Weniger Ubersicht
Kein integrierter Editor
Nicht alle Funktionalitatenverfugbar
Grafische Oberflache
Vorteile:
Ubersichtlich
Einfach und intuitiv zu bedienen
Bietet alle Funktionalitaten
Nachteile:
Benotigt grafische Abhangigkeiten
. Beide Varianten realisiert
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 41 / 50
Grafische Oberflache - Layout
In 3 Registerkarten aufgeteilt:- Assembler Editor- Assembler Debugger- Memory-Viewer
. Bedingt durch einen Arbeitsablauf im Hardwarepraktikum
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 41 / 50
Grafische Oberflache - Layout
In 3 Registerkarten aufgeteilt:- Assembler Editor- Assembler Debugger- Memory-Viewer
. Bedingt durch einen Arbeitsablauf im Hardwarepraktikum
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 42 / 50
Arbeitsablauf im Hardwarepraktikum
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 43 / 50
Assembler Editor
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 44 / 50
Assembler Debugger
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 45 / 50
Memory-Viewer
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 46 / 50
Praktisches Beispiel - Rudimentarer Taschenrechner
Es werden zwei Zahlen vom Computer eingelesen
Fallentscheidung fur Operation auf Zahlen
- Switch 0: Addieren- Switch 1: Subtrahieren- Switch 2: Multiplizieren
Ergebnis wird auf 7-Segment-Anzeige und zusatzlich am PC dargestellt
Anzahl der Durchlaufe wird auf den LEDs dargestellt
Fallentscheidung fur Programmende
- Switch 7: Programmausfuhrung beenden- Sonst: Zahlen vom Computer einlesen ...
. Vorfuhrung
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Assembler-Compiler/-Debugger und Memory-Viewer . Benutzeroberflache 46 / 50
Praktisches Beispiel - Rudimentarer Taschenrechner
Es werden zwei Zahlen vom Computer eingelesen
Fallentscheidung fur Operation auf Zahlen
- Switch 0: Addieren- Switch 1: Subtrahieren- Switch 2: Multiplizieren
Ergebnis wird auf 7-Segment-Anzeige und zusatzlich am PC dargestellt
Anzahl der Durchlaufe wird auf den LEDs dargestellt
Fallentscheidung fur Programmende
- Switch 7: Programmausfuhrung beenden- Sonst: Zahlen vom Computer einlesen ...
. Vorfuhrung
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Zusammenfassung und Ausblick 47 / 50
Gliederung
1 Einleitung
2 Entwurfsuberblick
3 Speicher- und IO-Interface fur einen FPGAModulubersichtenFPGA-Testboard
4 Assembler-Compiler/-Debugger und Memory-ViewerCompiler/DebuggerBenutzeroberflache
5 Zusammenfassung und Ausblick
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Zusammenfassung und Ausblick 48 / 50
Was wurde erreicht
Hardwareseite:
Load / Store Befehle sind moglich
Kommunikation uber RS232-Schnittstelle
Verwendung einiger Sensoren und Aktoren auf dem FPGA-Testboard
Die Kompatibilitat zu alten Prozessoren und altenAssembler-Programmen ist gegeben
Softwareseite:
Neuentwicklung der verwendeten Programme als Gesamtprogramm
Neue Oberflache, grafisch wie auf Konsole
Funktionserweiterungen
Unterstutzung mehrerer Betriebssysteme
Moglichkeiten zur Erweiterung
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Zusammenfassung und Ausblick 48 / 50
Was wurde erreicht
Hardwareseite:
Load / Store Befehle sind moglich
Kommunikation uber RS232-Schnittstelle
Verwendung einiger Sensoren und Aktoren auf dem FPGA-Testboard
Die Kompatibilitat zu alten Prozessoren und altenAssembler-Programmen ist gegeben
Softwareseite:
Neuentwicklung der verwendeten Programme als Gesamtprogramm
Neue Oberflache, grafisch wie auf Konsole
Funktionserweiterungen
Unterstutzung mehrerer Betriebssysteme
Moglichkeiten zur Erweiterung
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Zusammenfassung und Ausblick 49 / 50
Mogliche Erweiterungen
Weitere IO-Module wie VGA-Modul
Weitere Kommunikationsmodule fur die Computer Schnittstelle(z.b. USB)
Darstellung der Sensoren und Aktoren des FPGAs am PC(z.b. LEDs)
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Zusammenfassung und Ausblick 50 / 50
Fragen
Irgendwelche Fragen ?
. Vielen Dank fur Ihre Aufmerksamkeit!
Dennis Reuling und Simon Hardt (Universitat Siegen)
Hardwarepraktikum 2.0 . Bachelorarbeiten
. Zusammenfassung und Ausblick 50 / 50
Fragen
Irgendwelche Fragen ?
. Vielen Dank fur Ihre Aufmerksamkeit!
Dennis Reuling und Simon Hardt (Universitat Siegen)