190 likes | 292 Views
Open Source Prozessor Leon2. Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse. Überblick. Grundlagen Konfiguration Synthese Simulationstools Assembler Programmierung. Grundlagen. Open Source VHDL-Core www.Gaisler.com Lesser GNU Public License (LGPL)
E N D
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. 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 Speicher 8 IN/OUT Datenschnittstellen Aufbau wie ein Ring über Modulo n Zähler
Konfigurations-Details • Integer UnitMUL/DIV Befehle Komplexität Multiplizierer • Memory Controller8bit 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/ • L5www.cygwin.com