FPGA-Design VHDL-basierter Designflow für FPGAs

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Advertisements

P. Marwedel Informatik 12, U. Dortmund
Network-on-Chip basierende Laufzeitsysteme für dynamisch rekonfigurierbare Hardware Ronald Hecht Institut für Mikroelektrotechnik und Datentechnik Universität.
Multiplizierer 10x10 Bit Finale: ZUSAMMENFASSUNG SPEED POWER AREA.
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock VLSI - Adder.
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock Spezielle Anwendungen.
Stephan Hermanns Architekturkonzepte für semi-synchrone Controller auf der Basis der Asynchronen Wave Pipeline Schaltungstechnik Sorin Alexander Huss.
Bericht über Arbeiten zu Asynchronen Wave Pipelines Stephan Hermanns Sorin Alexander Huss.
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
On a Buzzword: Hierachical Structure David Parnas.
Parser generieren Yet Another Compiler – Compiler YACC.
Konstruktoren.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Technische Informatik I
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Bericht über Arbeiten zu Asynchronen Wave Pipelines Stephan Hermanns Sorin Alexander Huss.
CPLD/FPGA-Programmierung mit E-blocks. Wozu die CPLD/FPGA-Programmierung untersuchen? Zusammenhang zur modernen Digitalen Elektronik Verschwinden der.
Effiziente Algorithmen
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Endliche Automaten Informatik JgSt. 13, Abitur 2009
FPGA... ein Versuch. Uli Schäfer 1. Historie: PLD Uli Schäfer 2 Schaltungsgrösse wächst drastisch mit Zahl der Eingänge CPLD = Array + Flipflops + macro.
Hardware / Software Codesign Hardware versus Software.
Wie sicher ist mein Geld ... ?
3.3 Speicher Latches SR-Latch 1-bit Speicher S Q Q R Q Q
1 SR-Latch 3.3 Speicher Latches © Béat Hirsbrunner, University of Fribourg, Switzerland, 31. Oktober 2007 S Q Q R Q Q 1-bit Speicher.
VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)
Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY.
Technische Informatik II
Seite 1 Technische Informatik II (INF 1211) – Kurzfragenteil (Ohne Unterlagen) Am Prof. W. Adi Zeit: (20 Minuten) Bitte schreiben Sie die Lösung.
Seite 1 Technische Informatik II (INF 1211) – Kurzfragenteil (Ohne Unterlagen) Am Prof. W. Adi Zeit: (20 Minuten) Bitte schreiben Sie die Lösung.
Back, S.; Weigel, H.: Design for Six Sigma. Hanser, München 2014.
Der Design-Flow eines ASIC
Rechnerstrukturen 3b. Endliche Automaten.
Linear Rückgekoppelte Schieberegister und Tristate Treiber
Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
X. Übungsblatt – Aufgabe X In dieser Aufgabe soll ein synchron getakteter Steuerungsautomat für den in Abbildung 1 dargestellten Prozessor-Chip mit geringem.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Hardware / Software Codesign Hardware versus Software.
© Till Hänisch, 2002 BA Heidenheim Methoden zur Aufwandsabschätzung Allgemein: –Reduktion der Komplexität –Vergleich mit Erfahrungswerten Probleme: –Erfassen.
Parallele Lösung von Differential-Algebraischen Gleichungssystemen und Sensitivitätssystemen Seminarvortrag Daniel Abele
WISSENSCHAFTLICHES PROJEKT Projekttitel Ihr Name | Name Ihres Lehrers| Ihre Schule.
Tobias Sammet 8DY1 Programmieren Tobias Sammet 8DY2 Programmierung ● = das Schreiben eines Computerprogramms ● Dient zur Lösung eines.
Das ABC der Statistik DIE SÄULENDIAGRAMME
Konstruktoren.
HCS Übung 3 Von: Patrick Denk Oleg Arenz
Technische Informatik II
Technische Informatik II
Arbeitsumgebung des FPGA Boards von PLDA
Vom HW-Automaten zum Prozessor
Programmierung mit Scratch
Wiederholung TexPoint fonts used in EMF.
Vom Transistor zum HW-Automaten
Unterschiedliche Kontrollstrukturen
Selling Story- u-remote IP67 = UR67
Mögliche Stoffverteilung im Grundkurs
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
CSL211 Computer Architecture
Objektorientierte Programmierung
 Präsentation transkript:

FPGA-Design VHDL-basierter Designflow für FPGAs Hauke Wessels Oldenburg 2002 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Übersicht Designflow Entscheidung für FPGA Erstellung des Layouts Simulation/Emulation Layoutsynthese/ Programmierung Kommunikation mit dem Design Der Designflow umfasst viele Teilschritte, angefangen von der Entscheidung für eine FPGA-Implementierung (Jan), zur Erstellung des Designs (in VHDL/anderen Designwerkzeugen), Simulation/Emulation (Ole /Andreas), Synthetisieren und programmieren des fertigen Hardwaredesigns 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Hauptthemen Device-Abhängige Vorteile nutzen tri-state-buffer Schaltungsklasse finit-state-machine (FSM) tri-state-buffer für FSM? 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Einführung Beim FPGA-Design gibt es im Vergleich zum ASIC-Entwurf einige Unterschiede, die schon auf Algorithmus-Ebene beachtet werden müssen. VHDL legt, anders als Software-Programmiersprachen, stärker wert auf das „wie“ auf Syntax-Ebene. Ein gutes Beispiel dafür ist ein Multiplexer. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Multiplexer Es gibt 2 Möglichkeiten, Multiplexer in FPGAs zu implementieren. LUTs tri-states In einigen FPGAs (Xilinx) sind tri-states bereits in Hardware vorhanden! Dadurch ist ihre Verwendung natürlich besonders Resourcensparend. Bei Altera-FPGAs werden sie über LUTs nachgebildet. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

Die Schaltungen sind in den FPGAs ohnehin vorhanden!! 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Bsp: Multiplexer Die Realisierung eines Multiplexers liefert folgende Daten (flex10K): 32-fach Multiplexer 21 LE max. Delay: 20,1ns 8-fach Multiplexer 5 LE max. Delay: 15,5ms Bei 6-fach Multiplexer: 5LE, 15,1ns 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

als tri-state Multiplexer Die Realisierung eines Multiplexers durch tri-states liefert folgende Daten (flex10K): 32-fach Multiplexer 49 LE max. Delay: 21,2ns 8-fach Multiplexer 5 LE max. Delay: 15,6ns bei 6-fach: 6 LE!!, 16ns 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Analyse Der Vorteil, der durch eine Realisierung mit tri-state Buffern zu erzielen ist, hängt vom verwendeten FPGA ab. Mit dem Flex10k ist die Verwendung des vom Hersteller implementierten Multiplexers effizienter, als eine durch LUTs nachgebildete tri-state-Implementierung. Das wir bei 4-fach Muxes noch wieder schlechter mit tri-states (1LUT mehr, 2ns langsamer). Die Multiplexer-Struktur wird auch durch die carry-chain-Architektur des Flex10k begünstigt (wie Jan). 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

state-machine encoding One-hot vs. binäre Kodierung Ein binary encoding spart Register und ist deshalb im ASIC-Design die Kodierung der Wahl. Bei einem FPGA liegen die Register aber ohnehin vor, egal ob man sie verwendet, oder nicht. Daher wird für FPGAs oft One-Hot encoding verwendet, da die Logik zur Berechnung des Folgezustandes geringeren Aufwand benötigt als ein binary-encoding. Ein binary encoding verbraucht sicher weniger Register, z.B. für 100 Zustände nur 7 Register, wo One-Hot encoding 100 Register benötigt. Allerdings ist die Logik bei One-hot meist weniger Aufwendig. Beim binary encoding hängt die Logik, die die Transition von 1 Zustand zum nächsten steuert, von alle Bits ab, dazu werden dann high fan-in functions benötigt, wohingegen bei One-Hot die Logik oft nur von Funktion von anderen state-bits sind (Altera: finit-state-machines.pdf) Allerdings ist auch das FPGA-abhängig. Der Flex10k ist Registerintensiv und für ihn ist daher One-hot meist die bessere Wahl. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

finit-state-machines in VHDL Automaten werden in VHDL wie in anderen Programmier-sprachen auch dargestellt. Zu beachten ist allerdings, dass die Zustände Aufzählungstypen verwenden. Ein Integer würde als Mux implementiert! type statetyp is (s1, s2, s3); signal current_state: statetype; Das Synthese-Tool muss erkennen, dass es sich um einen Automaten handelt, damit es die effizienteste Implementierung finden kann. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

Bsp. Write-Once Controller Ein etwas aufwendigerer Automat ist das Write-Once Protokoll für busbasierte shared-memory Architekturen. 5 Zustände und viel Ein-/ Ausgabe (Mealy-Automat). Cache Kohärenz Protokoll: Invalidation based CCC: Write Once Protokoll 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Resourcen One-Hot Messergebnisse One-Hot encoding: 37 logische Elemente Max. Takt: 113 Mhz Auf dem Floorplan sind übrigens die gelben Punkte LEs mit lokalem Fan-out und die roten haben LEs haben fan-out außerhalb des LAB. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM binäre Kodierung Ergebnisse für eine binary encoding (3bit): 39 logische Einheiten max. 125Mhz Dieses Ergebnis hat mich auch überrascht, und ich habe mir überlegt, woran das liegen mag. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM binary doch besser? Ein Blick auf die state-Tabelle zeigt, dass das Synthese-Tool bei 5 Zuständen gute Möglichkeiten zur Optimierung hat. Es wird in der Tat für jeden Zustandswechsel nur 1 Bit geändert. Zu Bemerken ist außerdem, dass der binary encoded Implementierung 2 LE mehr benötigt. Um die Möglichkeit der Optimierung einzuschränken, habe ich anschließend den Controller um 1 Zustand veringert und erneut verglichen -> 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Write-Once mit 4 states Ergebnisse: One-hot: 31 LEs fmax: 133Mhz binary-coding: 30 LEs fmax: 129Mhz Und hier erzeugt das Syntese-Werkzeugt auch den erwarteten Effekt: die binary encoded Implementierung benötigt weniger LEs und ist langsamer. Scheint es bei kleinen Automaten keine wirklichen Unterschiede zu geben, ich habe daher einen etwas aufwendigeren Automaten implementiert -> 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM ein modulo-50 Zähler Ein Modulo-50 Zähler (über Zustände kodiert) erzielt folgende Ergebnisse: binäre Kodierung 39 Logische Einheiten fmax: 111Mhz One-Hot: 86 Logische Einheiten fmax: 250Mhz Das ganze ohne unterschiedliche Eingaben (nur tick). Wie man sieht, ist hier wie erwartet das One-hot encoding die bessere Wahl. Interessant ist hier, wie das Synthese-Tool das Problem mit dem Anfangszustand behandelt. Man sieht in der Tabelle, dass sowohl beim binary encoding als auch beim One-Hot encoding der Zustand s0 durch Nullen markiert wird. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM der Startzustand In VHDL ist der Zustand, der als erstes in der enum Definition genannt wird, der Startzustand. type statetyp is (s1, s2, s3); s1 ist hier also Startzustand. Die Register des FPGA werden bei der Initialisierung alle auf 0 initialisiert. Daher ist der Startzustand beim One-Hot encoding nicht, wie erwartet 00...1 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Analyse Automaten Die Synthese-Algorithmen für Automaten sind ausgereift und man kann davon ausgehen, dass der Automat auch ohne eigenes Eingreifen optimal kodiert wird. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

tri-state encoding von FSMs? Wie ist es möglich, endliche Automaten mit tri-states zu kodieren? Der Folgezustand wird als tri-state bus dargestellt. Der Zustandsübergang wird getaktet in einem process durchgeführt. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Bewertung ein tri-state encoding ist wie folgt zu bewerten: pro: Wenn harte tri-states vorliegen können LEs eingespart werden. contra: Es kann für größere Automaten nur ein binary-encoding mit tri-states nachgebildet werden, z.B. ein 100 bit breiter tri-state bus überfordert auch die Xilinx-Architektur. Die Synthese-Tools erwarten so eine FSM nicht, so dass ggfs. schlechte Optimierung und Routing-Probleme auftreten können. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

Messergebnisse für mod 50 Messergebnisse für den Modulo-50 Zähler sehen auch erwartungs-gemäß schlecht aus: 97 LEs fmax: 77Mhz. (vgl. One-Hot: 86 LEs, 250Mhz) 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Zusammenfassung tri-states-Implementationen lohnen sich beim Flex10k nicht/selten. Automaten werden von den Synthese-Tools FPGA-abhängig richtig kodiert. Der Compiler ist unser Freund. Deswegen sollte man sich daran halten, wie z.B. ein Automat auszusehen hat. 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM

PG: sensorbasierte Steuerung eines Mikroroboters im REM Literatur Altera Papers und Codebeispiele (http://www.altera.com) Stamouli, Ford, Dunnett, White, Lister: „VHDL Methodologies für Effective Implementation on FPGA Devices and Subsequent Transition to ASIC Technology“ Gschwind, Salapura: „VHDL Design Methodology for FPGAs“ Quartus Online Doku Circuit Cellar (http://www.chipcenter.com/circuitcellar/) FPGA Overview (http://www.vcc.com/fpga.html) 21.09.2018 PG: sensorbasierte Steuerung eines Mikroroboters im REM