Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas...
-
Upload
bernd-heiberger -
Category
Documents
-
view
107 -
download
2
Transcript of Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas...
Open Source Prozessor Leon2
Peer Royla und Marco Siebert
RST-Labor WS 04/05Prof. Dr.-Ing. Thomas Risse
Überblick
Grundlagen Konfiguration Synthese Simulationstools Assembler Programmierung
Grundlagen
Open Source VHDL-Corewww.Gaisler.comLesser GNU Public License (LGPL)
Beruht auf SPARC V8 Architektur Fehlertoleranter LeonFT
Übersicht Konfiguration
Allgemeine oder spezielle FPGA´s 2-32 Registersätze Integer Unit optional FPU-Schnittstelle Coprozessor-Schnittstelle MMU Memory Management Unit Debug Support Unit AMBA-Bus (AHB/APB)
Übersicht Leon2
Quelle L3
Übersicht Konfiguration
Memory Controler 2ter IRQ-Controler Watchdog AHB-Onchip RAM (max. 64kB) OpenCores Ethernet-Schnittstelle PCI-Interface (target only) Booten von Intern oder Extern
Konfigurations-Details
Cache Einstellung für Instruction- und Data-Cache
1-4 Assoziativ Sets
1-64kB pro Set
16/32 Bytes pro Line
Replacement über Random/LRU/LRR
Konfigurations-Details
Registersätze des SPARC
8 GLOBAL globaler Speicher
2-32 Sätze á8 LOCAL lokaler Speicher8 IN/OUT Datenschnittstellen
Aufbau wie ein Ring über Modulo n Zähler
Quelle: L1
Konfigurations-Details
Integer UnitMUL/DIV Befehle
Komplexität Multiplizierer Memory Controller
8bit oder 16bit Bus PROM 512MBSRAM 1GBSDRAM-Controller 1GB
Konfigurations-Details
Debug Support UnitAnsteuerung PCI-Bus oder DCL(Debug Communication Link)
Setzen von Hardware WatchpointsBreakpoint-Befehl im CodeSteigende Flanke Externes Signal
LeonFT
Quelle L2
Synthese
Cygwin wird benötigt um Linux-Tools unter Windows laufen zu lassen.
Konfigurieren des VHDL-Codes per Make-Funktion make xconfig
Xilinx Vorstellung des SourceCodes
Modelsim
Symulationstool GRMON
GRMON-EvalArbeiten über die KonsoleMit Grafischem Interface in Eclipse-eingeschränkte Einstellmöglichkeiten
Assembler Programmierung(1)
Arbeitsschritte um ein C-Programm in Assembler zu optimieren
1. sparc-elf-gcc name.c -o name.bin
2. GRMON benutzen um Anfang und Ende zu bestimmen
Assembler Programmierung(2)
3. Mit Hilfe einer Batchdatei im GRMON disassemblieren
4. Code analysieren und mit Text-Editor optimieren
5. sparc-elf-gcc -N -Ttext=0x40000000 -nostartfiles file.S -o name.bin
Assembler Programmierung(3)
6. Gleich das C-Programm mit sparc-elf-gcc –O2 –o name.out name.binKompilieren spart die ganze Arbeit.
Der kleinste und schnellste Code wird vom Compiler erstellt.
Quellen
L1 sparcv8.pdf www.gaisler.com L2 www.estec.esa.nl/wsmwww
/mpd2004/leonumc-mpd2004.pdf L3 www.gaisler.com L4 http://groups.yahoo.com/group/
leon_sparc/ L5 www.cygwin.com
ENDE