FPGA Design
- Art: Diplomarbeit
- Autor: Thomas Strutzmann
- Abgabedatum: März 2003
- Umfang: 77 Seiten
- Dateigröße: 2,8 MB
- Note: 1,0
- Institution / Hochschule: Hochschule Mittweida (FH) Deutschland
- ISBN (eBook): 978-3-8324-8958-8
-
ISBN (Paperback) :
978-3-8324-8958-8 P - ISBN (CD) :978-3-8324-8958-8 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Strutzmann, Thomas März 2003: FPGA Design, Hamburg: Diplomica Verlag
- Schlagworte: VHDL, Mikroprozessor, Entwicklung, Elektronik, Programmierung
In den Warenkorb
74,00 €
Diplomarbeit von Thomas Strutzmann
Einleitung:
Da sich die Anfragen von Kundenseite her nach der Möglichkeit von FPGA-Entwicklung bei Flextronics Design Althofen mehr und mehr häuften, war es an der Zeit das entsprechende Know-How aufzubauen. Bis dato hat die Firma jahrelange Erfahrung im Bereich Mikrokontroller-Programmierung und auf Basis dieser Erfahrung sollte die FPGA-Entwicklung aufbauen.
Für die Erstellung der Programme bzw. zur Personalisierung des FPGAs werden Entwurfswerkzeuge der Fa. Xilinx verwendet.
Da es verschiedenste Entwicklungswerkzeuge unterschiedlichster Hersteller gibt, die in diesem Rahmen nicht bearbeitet werden können, wird in diesem Falle speziell das Xilinx ISE WebPack Paket, welches es auf der Xilinx Homepage (wwwxilinxcom) gratis zum Download gibt, verwendet. Diese Version ist natürlich teilweise eingeschränkt.
Es soll in diesem Rahmen noch mit frei erhältlicher Software gearbeitet werden, mit welcher auch gezeigt werden soll, dass hiermit bereits umfangreiche und komplexe Designs erstellt werden können.
Die Programmbeispiele sollen anhand eines ausgewählten Demoboards ausgetestet werden, bzw. veranschaulicht werden können.
Es soll ein kundenspezifischer Mikroprozessor nach vorgegebenen Befehlssatz programmiert, verifiziert und nach Möglichkeit auf einer FPGA Plattform implementiert werden. Der Softcore MP sollte nach einer 4bit Harvard Architektur aufgebaut werden. Zur Verifikation ist auch zu beachten, dass es mit höchster Wahrscheinlichkeit keinen Assembler geben wird, der entsprechend den Vorgaben aufgebaut ist.
Problemstellung:
Folgende Punkte sind zu bearbeiten:
- Was ist ein FPGA?
- Wo sind FPGAs einzuordnen?
- Wo finden FPGAs ihre Anwendung, bzw. wo machen sie Sinn?
- Wie sieht der Entwicklungsablauf eines FPGAs aus?
- Kurzeinführung in die Hardwarebeschreibungssprache VHDL - Erstellen einer Mikroprozessor Softcore, welche Mitarbeitern als Übungsmodell dienen sollte.
Inhaltsverzeichnis:
| 1. | Einleitung | 3 |
| 1.1 | Motivation | 3 |
| 2. | Pflichtenheft | 3 |
| 2.1 | Allgemein | 3 |
| 2.2 | Software | 3 |
| 2.3 | Hardware | 3 |
| 2.4 | Anwendung | 3 |
| 3. | Abkürzungsverzeichnis / Begriffserklärung | 4 |
| 4. | FPGA-Grundlagen | 5 |
| 4.1 | Eigenschaften | 6 |
| 4.2 | Anwendungen | 7 |
| 5. | Hersteller | 8 |
| 6. | Designentwurf | 9 |
| 6.1 | Überführung von Schaltfunktion in VHDL | 10 |
| 6.2 | Entwicklungsumgebung ISE WebPack | 19 |
| 7. | VHDL | 27 |
| 7.1 | Allgemeines | 27 |
| 7.2 | Eigenschaften von VHDL | 27 |
| 7.3 | Aufbau einer VHDL-Beschreibung | 27 |
| 8. | Entwicklung einer Mikroprozessor Softcore auf einer FPGA Plattform | 31 |
| 8.1 | Allgemeine Lösungsansätze | 31 |
| 8.2 | Detaillierte Lösungsansätze | 32 |
| 8.3 | Anforderungen | 35 |
| 8.3.1 | Befehlssatz | 35 |
| 8.4 | Blockschaltbild | 36 |
| 8.4.1 | Programmspeicher | 36 |
| 8.4.2 | Datenspeicher | 37 |
| 8.4.3 | CPU | 38 |
| 8.4.4 | Ablaufsteuerung | 39 |
| 8.4.5 | Datenpfad | 40 |
| 8.4.6 | Takt Generator | 40 |
| 8.5 | Gesamtschaltbild | 41 |
| 8.6 | Schnittstellen des VHDL Modelles | 43 |
| 9. | Verifikation | 44 |
| 9.1 | Verifikationsstrategie | 44 |
| 9.1.1 | Hierarchie des Designs | 45 |
| 9.1.2 | Verifikationsplan | 46 |
| 9.2 | Testbench | 47 |
| 9.3 | Simulation | 47 |
| 9.3.1 | Programmspeicher | 48 |
| 9.3.2 | Taktgenerator | 55 |
| 10. | Laden auf FPGA Plattform | 55 |
| 11. | Erweiterungsmöglichkeiten | 56 |
| 12. | Zukunftsaussichten | 56 |
| 13. | Zusammenfassung | 57 |
| 14. | Anhang | 58 |
| 14.1 | VHDL Source Code | 58 |
| 14.2 | Assembler Files | 69 |
| 15. | Abbildungsverzeichnis | 72 |
| 16. | Literatur | 73 |
Der Programmspeicher kann ein Programm mit bis maximal 128 Anweisungen aufnehmen, da sieben Adressbits dafür reserviert wurden (somit 27=128 Befehle). Das Programm selbst kann sowohl in Assembler, C oder einer anderen Programmiersprache erstellt werden. In den meisten Fällen wird durch assemblieren und compilieren daraus ein Intel-Hex – Format erzeugt. Bevorzugt ist aber Binärformat, welches in VHDL einfacher zu verarbeiten ist. In der Assembler- und C -Programmierung wird jedem Befehl ein Opcode zugewiesen, dieser Teil wird normalerweise, durch einen Compiler durchgeführt. In diesem Fall handelt es sich um einen kundenspezifischen Befehlssatz, der von keinem Standard Compiler abgedeckt werden kann. Somit muss auch bedacht werden, dass in weiterer Folge ein Compiler adaptiert werden muss. [...]
Die soeben angeführten Vor- und Nachteile sind aus dem Versuch der Einbindung von unterschiedlichsten frei verfügbaren MPU Cores, wie z.B. 8051, AC8 Atmel, PIC16F84, u.s.w. entstanden. Keine der verfügbaren Cores ist nach Einbindung lauffähig, es muss zuerst mit hohem Aufwand das Design abgeändert werden, bis eine Funktion gegeben ist. Das Problem beginnt aber meist schon bei der Einbindung, wie schon bei den Nachteilen beschrieben, werden unterschiedlichste Libraries verwendet, die nicht bei jeder Entwicklungsumgebung verfügbar sind. c.) IP-Core von FPGA Hersteller Vorteile: • • • • • Optimierung auf Anwendung und Zielhardware Know How, bzw. Support ist vom Hersteller verfügbar Teure Entwicklungswerkzeuge werden in der Firma nicht benötigt Garantie auf Korrektheit Verkürzung der Durchlaufzeiten [...]
In dieser Arbeit wird gezeigt, dass kundenspezifische Mikroprozessoren, bzw. Mikrocontroller, die sich bereits im Einsatz befinden, jederzeit als Softcore auf einer FPGA-Plattform nachgebildet werden können. Sowie auch jederzeit ein kundenspezifischer Controller erstellt werden kann. Weiters werden Möglichkeiten der Verifikationsstrategien aufgezeigt, um der Forderung nach Funktion und Korrektheit gerecht zu werden. Es wird auch aufgezeigt, dass schon mit einfacher, frei erhältlicher Entwicklungssoftware anspruchsvolle und komplexe Designs erstellt werden können. Es werden bereits am Markt Opencores angeboten, sei es jetzt von den FPGA-Herstellern selbst, Firmen, Schulen oder Universitäten. Prinzipiell ist hier zwischen frei verfügbaren sowie kostenpflichtigen Cores zu unterscheiden. Die kostenpflichtigen Cores sind meist sehr teuer, und es werden weiters auch noch jährliche Lizenzgebühren verlangt. Bei den frei verfügbaren Cores besteht das Problem, das viele Cores nicht funktionieren, die Dokumentation sehr dürftig ist, die Entwicklungstools und somit die verwendeten Libraries sehr unterschiedlich sind, natürlich auch nur speziell für eine bestimmte Plattform von FPGAs nutzbar sind. Die Designs sind auch absolut nicht in Bezug auf benötigte Chipfläche/Gatter optimiert, sodass man noch keinen Gedanken daran verlieren kann, FPGAs als z.B. möglichen Mikrocontroller Ersatz zu verwenden, da die Preisunterschiede noch immens sind. Somit ist immer noch überlegenswert, wenn eine bestimmte Core on Chip benötigt wird, diese entsprechend den Anforderungen selbständig und in Modulbauweise aufzubauen, bzw. Libraries zu erstellen. Diese Einzelmodule können einfacher verifiziert und in Einsatz genommen werden. Mit einer solchen Entwicklungsstruktur ist natürlich eine „System on Chip“ Entwicklung bei weitem einfacher zu realisieren, und die Entwicklungsdurchlaufzeiten können entsprechend reduziert werden, welches heutzutage eines der höchsten Ziele darstellt. Im Zuge dieser Arbeit wird die Entwicklung eines Mikrocontroller-Core Moduls für eine FPGA –Plattform mit der Hardwarebeschreibungssprache VHDL gezeigt, sowie dessen Verifikation und Implementierung. [...]
In den Warenkorb
74,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832489588
Arbeit zitieren:
Strutzmann, Thomas März 2003: FPGA Design, Hamburg: Diplomica Verlag
Schlagworte:
VHDL, Mikroprozessor, Entwicklung, Elektronik, Programmierung



