Open Source Prozessor Leon2
-
Upload
blossom-martinez -
Category
Documents
-
view
44 -
download
0
description
Transcript of Open Source Prozessor Leon2
![Page 1: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/1.jpg)
Open Source Prozessor Leon2
Peer Royla und Marco Siebert
RST-Labor WS 04/05Prof. Dr.-Ing. Thomas Risse
![Page 2: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/2.jpg)
Überblick
Grundlagen Konfiguration Synthese Simulationstools Assembler Programmierung
![Page 3: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/3.jpg)
Grundlagen
Open Source VHDL-Corewww.Gaisler.comLesser GNU Public License (LGPL)
Beruht auf SPARC V8 Architektur Fehlertoleranter LeonFT
![Page 4: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/4.jpg)
Ü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)
![Page 5: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/5.jpg)
Übersicht Leon2
Quelle L3
![Page 6: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/6.jpg)
Ü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
![Page 7: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/7.jpg)
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
![Page 8: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/8.jpg)
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
![Page 9: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/9.jpg)
Quelle: L1
![Page 10: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/10.jpg)
Konfigurations-Details
Integer UnitMUL/DIV Befehle
Komplexität Multiplizierer Memory Controller
8bit oder 16bit Bus PROM 512MBSRAM 1GBSDRAM-Controller 1GB
![Page 11: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/11.jpg)
Konfigurations-Details
Debug Support UnitAnsteuerung PCI-Bus oder DCL(Debug Communication Link)
Setzen von Hardware WatchpointsBreakpoint-Befehl im CodeSteigende Flanke Externes Signal
![Page 12: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/12.jpg)
LeonFT
Quelle L2
![Page 13: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/13.jpg)
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
![Page 14: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/14.jpg)
Symulationstool GRMON
GRMON-EvalArbeiten über die KonsoleMit Grafischem Interface in Eclipse-eingeschränkte Einstellmöglichkeiten
![Page 15: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/15.jpg)
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
![Page 16: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/16.jpg)
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
![Page 17: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/17.jpg)
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.
![Page 18: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/18.jpg)
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
![Page 19: Open Source Prozessor Leon2](https://reader030.fdocument.pub/reader030/viewer/2022032612/5681322c550346895d989038/html5/thumbnails/19.jpg)
ENDE