Grundaufbau und Programmierung. eines FPGAs

Größe: px
Ab Seite anzeigen:

Download "Grundaufbau und Programmierung. eines FPGAs"

Transkript

1 Seminararbeit Grundaufbau und Programmierung eines FPGAs Autor: Oestreich Jérôme Matrikelnr.: Erstprüfer: Prof. Dr. Wilhelm Hanrath Zweitprüfer: Dipl.-Ing. Björn Christian Höper Aachen, den

2

3 1 Einführung zur Technologie von programmierbaren Logikbausteinen Inhaltsverzeichnis 1 Einführung zur Technologie von programmierbaren Logikbausteinen Was sind FPGAs? Anwendungsgebiete Programmiertechnologien Vergleich FPGA vs. ASIC Vergleich Mikrocontroller Fazit Programmierung von FPGAs Der Programmierablauf Die Design Eingabe Die Synthese Die Implementierung Übersetzen Map Place & Route Programmierung des FPGAs Design Verifikation Literaturverzeichnis... 20

4 1 Einführung zur Technologie von programmierbaren Logikbausteinen 1 Einführung zur Technologie von programmierbaren Logikbausteinen Programmierbare Logikbausteine bieten die Möglichkeit, digitale Schaltungen mit hoher Komplexität aufzubauen. Heutzutage versteht man unter programmierbaren Logik Bausteinen, Bauelemente die in einer Hardwarebeschreibungssprache (Hardware Description Languages, HDL) wie VHDL oder Verilog konfiguriert werden. Zu diesen Bausteinen gehören FPGAs. 1.1 Was sind FPGAs? Wie oben bereits beschrieben ist das Field Programmable Gate Array kurz FPGA - ein integrierter Schaltkreis der Digitaltechnik, der zum Aufbau digitaler, logischer Schaltungen dient. Im allgemeinen Sprachgebrauch sind integrierte Schaltkreise auch als Chip bekannt. Ein FPGA besteht im Wesentlichen aus einer zweidimensionalen Matrix (Array) von (programmierbaren) Logikblöcken (Configurable Logic Block) und konfigurierbaren Verbindungen (Interconnection Resources) zwischen diesen Blöcken. Des Weiteren existieren noch Ein- und Ausgabeblöcke (I/O Blocks) zur Kommunikation mit der Außenwelt. Alle diese Blöcke eines FPGAs sind von einer oder mehreren Uhren abhängig (Abbildung 1). 1 Abbildung1: Interne Architektur eines FPGA 1 3

5 1 Einführung zur Technologie von programmierbaren Logikbausteinen 1.2 Anwendungsgebiete FPGAs wurden früher als Glue-Logic eingesetzt. Sie dienten lediglich dazu zwei einfache miteinander inkompatible logische Schaltungen zu verbinden. Außer dieser Verbindung hatten sie keine weitere Funktion. Durch die extreme Weiterentwicklung von FPGAs in den letzten Jahrzehnten haben sich auch die Anwendungsbereiche vervielfacht. FPGAs werden heute nicht mehr nur als Glue- Logic verwendet. Sie werden bei der Echtzeit Verarbeitung von einfachen bis hin zu komplexen Algorithmen eingesetzt. Diese Algorithmen reichen über digitale Filter bis hin zur Ausführung einer schnellen Fourier Transformation. FPGAs werden auch in Parallelcomputern verbaut. Es gibt FPGA-Rechner die zum Brechen kryptografischer Verfahren eingesetzt werden. Ein Beispiel für so einen Entschlüsselungsrechner ist der aus 120 FPGAs bestehende Parallelrechner COPACABANA. Die inzwischen erreichte Anzahl von Logikblöcken erlaubt die Integration mehrerer eingebetteter Computersysteme in einen einzigen FPGA-Baustein inklusive CPU(s), Bussystem(en), RAM, ROM, RAM- Controller, Peripherie-Controller etc. Solche kompletten Systeme werden als System on a Chip (SoC) bezeichnet. Aber auch Protokoll-Implementierungen wie Teile des Ethernet-MAC-Layers, die Kodierung von digitalen Videosignalen, die Verschlüsselung von Daten und Fehlerkorrekturverfahren sind Anwendungsgebiete. 2 Fazit: FPGAs werden in allen Bereichen der Digitaltechnik eingesetzt, vor allem aber dort, wo es auf schnelle Signalverarbeitung und flexible Änderung der Schaltung ankommt, um beispielsweise nachträgliche Verbesserungen an den implementierten Funktionen vornehmen zu können, ohne dabei direkt die physische Hardware ändern zu müssen

6 1 Einführung zur Technologie von programmierbaren Logikbausteinen 1.3 Programmiertechnologien Die vorhandenen Logikbausteine und Verbindungsleitungen eines FPGAs (auch Programmierelemente genannt) können so programmiert werden, dass eine bestimmte, vom Anwender gewünschte Funktion realisiert wird. Dass die Logikfunktionen programmiert werden ist nicht korrekt, denn FPGAs laden keine ablauffähige Software. Stattdessen werden die auf dem FPGA vorhandenen Ressourcen so konfiguriert, dass sie den Wünschen des Anwenders entsprechen. Es ist also sinnvoller von einer Konfiguration des FPGA zu sprechen. Benutzt werden allerdings beide Begriffe. Die Art und Weise wie Programmierelemente physikalisch realisiert werden, wird Programmiertechnologie genannt. 4 Es gibt zwei grundlegende Arten von Programmiertechnologien: Rekonfigurierbare FPGAs und nicht-rekonfigurierbare OTP 5 FPGAs, die nur einmal beschrieben werden können. Diese beiden unterscheiden sich in der Implementierung und im Mechanismus zur Verbindung der Logikblöcke. Rekonfigurierbare FPGAs sind die dominierende Art, da ihr Vorteil in der unbeschränkten Wiederprogrammierbarkeit liegt. Bei rekonfigurierbaren FPGAs wird die Konfiguration in Speicherzellen abgelegt. Diese Speicherzellen können SRAM 6 -, EPROM 7 -, EEPROM 8 - oder Flash-PROM 9 -Zellen sein. Mit dem Ausgangssignal einer solchen Zelle kann ein Durchgangsgatter (a) oder ein Multiplexer (b) angesprochen werden. Es kann aber auch eine sogenannte Nachschlagetabelle (c) (Lookup Table, LUT) aus mehreren Zellen gebildet werden (Abbildung 2). Abbildung 2: Darstellung eines Durchgangsgatters (a), eines Multiplexers (b) und einer Nachschlagetabelle (c). Abhängig vom Zustand der Speicherzelle eines Durchgangsgatters sind die Leitungssegmente, die an beiden Seiten des Transistors (der verbindungsherstellende Teil des Durchgangsgatters) angeschlossen sind, miteinander leitend verbunden oder nicht One Time Programmable 6 Static random-access memory 7 Erasable programmable read-only memory 8 Electrically erasable programmable read-only memory 9 Programmable read-only memory

7 1 Einführung zur Technologie von programmierbaren Logikbausteinen Durch jeden leitenden Transistor wird ein Widerstand in den Signalfluss eingebaut, der eine entsprechend längere Signallaufzeit verursacht. Bei einem Multiplexer wird anhand des Inhalts der Speicherzelle entschieden welche Eingangsleitung bis zum Ausgang durchgeschaltet wird. Mit Hilfe von Nachschlagetabellen können beliebige boolesche Funktionen nachgebildet werden. Eine LUT besteht aus n Eingängen, für alle der möglichen 2 n Kombinationen der Eingänge existiert eine Speicherzelle. Die Adressierung der richtigen Speicherzelle wird durch die Kombination der n Eingänge gewährleistet. In dieser Speicherzelle ist der, für die Eingangskombination festgelegte, Ausgabewert der booleschen Funktion gespeichert. Das bedeutet, dass bei entsprechender Änderung der gespeicherten Werte, die Eingänge beliebig vertauscht werden können. Auch das zeitliche Verhalten wird durch Vertauschung der Eingänge nicht beeinflusst, da die Durchlaufzeit für eine LUT immer der Zugriffszeit auf eine Speicherzelle entspricht (Abbildung 3). Abbildung 3: Eine LUT mit 2 Eingängen, bestehend aus 4x1 RAM. Das RAM ist mit belegt und implementiert so die Funktion a xor b. 11 In den FPGA-Bausteinen gibt es zumeist keine speziellen Bereiche für den Konfigurationsspeicher. Vielmehr sind die Speicherzellen über den Chip verteilt, so dass sie in der Nähe der Logikelemente angeordnet sind, die sie kontrollieren. 12 Bei rekonfigurierbaren FPGAs hält die Programmierung nur so lange wie durch das FPGA Strom fließt. Wird die Stromzufuhr unterbrochen dann muss das FPGA neu konfiguriert werden. Durch diesen Vorgang ist es möglich das FPGA mit einer ganz anderen Konfiguration zu beschreiben. Wenn man nicht nach jeder Stromunterbrechung die Konfiguration neu laden möchte bieten sich OTP FPGAs an

8 1 Einführung zur Technologie von programmierbaren Logikbausteinen OTP FPGAs benutzen die Antifuse 13 - Technologie um permanente Verbindungen im Chip herzustellen. Diese Technologie funktioniert invers zur Sicherung. Eine Sicherung schmilzt bei Aktivierung irreversibel und unterbricht so einen bestehenden Kontakt. Bei Antifuses wird die Isolationsschicht durch das Anlegen einer Programmierspannung irreversibel durchgebrannt und es entsteht eine niederohmige Verbindung mit geringer Kapazität. Die zur Programmierung notwendigen hohen Spannungen und Ströme werden von peripheren Schaltelementen des FPGA bereitgestellt, die aufgrund der erforderlichen Leistung deutlich mehr Platz einnehmen als die eigentliche Schaltung selbst. Im Vergleich zur Fuse-Technik sind geringere Ströme zur Programmierung erforderlich. 14 OTPs können nur einmal konfiguriert werden. Möchte man eine Designänderung durchführen muss der gesamte Chip weggeworfen werden und an seiner Stelle ein neuer, noch nicht konfigurierter, Chip eingesetzt werden. Dafür bleibt die Programmierung auch ohne Spannung erhalten es ist also kein weiterer PROM vonnöten. Fazit: FPGAs können anhand der Rekonfigurierbarkeit, der Größe und Anzahl der Programmierelemente, dem Herstellungsaufwand, den elektronischen Eigenschaften der Verbindungselemente und der Programmiertechnologie unterschieden werden. Neben der Rekonfigurierbarkeit bildet auch die Größe der Programmierelemente, der Herstellungsaufwand und die elektronischen Eigenschaften des Verbindungselementes weitere Unterschiede zwischen den Programmiertechnologien. Alle Programmiertechnologien haben ihre Vor- und Nachteile, die sie für bestimmte Anwendungen prädestinieren. 13 Übersetzung: Anti- Sicherungen

9 1 Einführung zur Technologie von programmierbaren Logikbausteinen 1.4 Vergleich FPGA vs. ASIC Ein Application Specific Integrated Circuit (ASIC) bezeichnet einen integrierten Schaltkreis, der für eine ganz bestimmte Anwendung entwickelt und produziert wird. Da der Chip speziell an die Bedürfnisse des Anwenders angepasst ist, kann das ASIC auch nur für diese Anwendung gebraucht werden, für andere Anwendungen ist das ASIC nicht zu gebrauchen. Die Kosten: Wie Darstellung 4 zu entnehmen ist sind die Kosten für die Entwicklung und Vorbereitung zur Fertigung eines ASICs deutlich höher als bei einem FPGA. Abbildung 4: Als NRE-Kosten (Non recovering Engineering) werden die Kosten für die Entwicklung und Vorbereitung zur Fertigung von ASICs bezeichnet. 15 Wenn man benutzerdefinierte Hardwarefunktionen für eine relativ kleine Anzahl von Systemen benötigt rechnen sich ASICs nicht. Änderungen im FPGA-Design fallen im Vergleich zu den hohen Kosten der Neugestaltung eines ASICs kaum ins Gewicht. Die Markteinführungszeit: Die FPGA-Technologie bietet Flexibilität und die notwendigen Funktionen für eine schnelle Prototypenerstellung. Dies ist besonders wichtig vor dem Hintergrund einer schnellen Markteinführung. Mit Hilfe von FPGAs können Ideen und Konzepte getestet und anschließend in Hardware überprüft werden, ohne dass ein langer Entwicklungs- und Fertigungsprozess wie bei ASICs notwendig wäre. 16 Zudem wird durch die Flexibilität von FPGAs der Langzeiteinsatz gewährleistet. Sie können ohne größeren Kosten- und Zeitaufwand neu konfiguriert werden und sich so dem aktuellen Stand der Technik anpassen. Dies ist im Bereich der Kommunikationsprotokolle wichtig, da sich die Spezifikationen der Protokolle über Jahre hinweg verändern können. Bei ASICs wären dafür Wartungen und gewisse Aufwärtskompatibilitäten erforderlich

10 1 Einführung zur Technologie von programmierbaren Logikbausteinen Die Hardware: Die Hardware betreffend sind FPGAs den ASICs gegenüber im Nachteil. FPGAs haben eine geringere Taktrate und eine geringere Logikdichte, ein FPGA braucht bei gleicher Technologie das Zehnfache der Fläche die ein ASIC benötigt. Der Leistungsbedarf eines FPGAs für die gleiche Menge an Logik bzw. an Funktionen ist wesentlich höher. Der größte Nachteil, aber auch der größte Vorteil von FPGAs gegenüber ASICs ist ihre Rekonfigurierbarkeit. Bei einem Großteil der FPGAs (OTPs ausgenommen) geht die Konfiguration bei jeder Spannungsunterbrechung verloren. Zum Schluss sind in Tabelle 1 nochmal die größten Vor- und Nachteile von FPGAs und ASICs gegenübergestellt. Tabelle 1: Vor- und Nachteile von FPGAs und ASICs. ASIC FPGA Preis Hoch Niedrig Entwicklungszeit Hoch Niedrig Fertigungszeit Hoch Niedrig Herstellungskosten Hoch Niedrig Fläche Niedrig Hoch Ausnutzung Hoch Niedrig Geschwindigkeit Hoch Niedrig Flexibilität Niedrig Hoch 9

11 1 Einführung zur Technologie von programmierbaren Logikbausteinen 1.5 Vergleich zu Mikrocontrollern Als Mikrocontroller (auch µcontroller, µc, MCU) werden Halbleiterchips bezeichnet, die mit dem Prozessor mindestens Peripheriefunktionen auf einem Chip vereinen. In vielen Fällen befindet sich der Arbeits- und Programmspeicher ebenfalls teilweise oder vollständig auf dem gleichen Chip. Ein Mikrocontroller ist praktisch ein Ein-Chip-Computersystem. Für manche Mikrocontroller wird auch der Begriff System-on-a-Chip oder SoC verwendet. 17 Die Informationsverarbeitung: FPGAs bieten grundsätzlich die Möglichkeit Informationen vollkommen parallel zu verarbeiten. Schnell zu erfassende Signale werden oft voll parallel und langsamere Signale zyklisch verarbeitet. Dadurch sind auch bei niedriger Taktung viele Operationen gleichzeitig möglich. Es muss aber für jede Operation auf einem FPGA ein Stück Hardware synthetisiert werden. Der Grad der Parallelisierung ist also durch die Hardware beschränkt. Der Prozessor eines Mikrokontrollers arbeitet lange Programme sequentiell ab und benötigt dafür nur sehr wenig Hardware. Der Unterschied in der Leistungsfähigkeit von konfigurierbaren Logikschaltungen und Mikroprozessoren wird in der folgenden Abbildung deutlich (Abbildung 5). Abbildung 5: Leistungsfähigkeit von konfigurierbaren Logikschaltungen und Mikroprozessoren Beide Systeme führen nur den gezeigten Algorithmus aus, der Mikroprozessor braucht im Gegensatz zum FPGA sechsmal so viele Zyklen

12 1 Einführung zur Technologie von programmierbaren Logikbausteinen 1.6 Fazit Der branchenübergreifende Einsatz von FPGA-Chips erklärt sich aus dem Umstand, dass FPGAs die besten Eigenschaften von ASICs und prozessorgestützten Systemen vereinen. Im Gegensatz zu ASICs bieten FPGAs hardwaregetaktete Geschwindigkeit und Zuverlässigkeit bei gleichzeitiger Kosteneffizienz. Wiederprogrammierbare Siliziumchips sind genauso flexibel, wie Software, die auf einem Prozessor ausgeführt wird. Ihre Leistungsfähigkeit wird jedoch nicht von der Anzahl der verfügbaren Prozessorkerne eingeschränkt. Im Unterschied zu Prozessoren verfügen FPGAs tatsächlich über parallele Ausführung, so dass verschiedene Verarbeitungsoperationen nicht auf die gleiche Ressource angewiesen sind. Jeder einzelne Verarbeitungs-Task wird einem dedizierten Bereich auf dem Chip zugewiesen und kann so autonom und ohne Beeinflussung anderer Logikblöcke ausgeführt werden. Auf Grund dessen wird die Leistungsfähigkeit der Anwendung nicht eingeschränkt, wenn weitere Verarbeitungs-Tasks hinzugefügt werden

13 2 Programmierung von FPGAs 2 Programmierung von FPGAs Wie schon ganz zu Anfang beschrieben, werden programmierbare Logikbausteine mit Hilfe von Hardwarebeschreibungssprachen konfiguriert. Da FPGAs zu diesen Logikbausteinen gehören werden auch sie mit Sprachen wie VHDL oder Verilog programmiert. Diese Sprachen sind formale Sprachen die das Design und die Operationen von integrierten Schaltungen beschreiben. Um den Unterschied zwischen einer Hochsprache und einer Hardwarebeschreibungssprache zu verdeutlichen folgt eine Vergleichstabelle der wichtigsten Eigenschaften. In Hochsprachen werden Werte in Variablen gespeichert werden Module durch Funktionen realisiert, die durch Aufruf abgearbeitet werden erfolgt Kommunikation zwischen Modulen über Funktionsparameter werden Instruktionen sequentiell abgearbeitet benötigt jede Instruktion eine gewisse Anzahl an Prozessorzyklen zur Ausführung In Hardware- Beschreibungssprachen sind Werte entweder Signale oder Register-Variablen werden Module durch FEs (Funktionseinheiten) realisiert, deren Ausgangssignale nur bei Änderung eines Eingangs neu berechnet werden erfolgt Kommunikation durch Austausch von Signalen über Ports arbeiten alle FEs parallel. Innerhalb eines FE wird aber ggf. sequentiell abgearbeitet benötigt jede Funktionseinheit eine Verzögerung t. Diese Verzögerung entsteht, da jede FE auf den nächsten Uhrentakt wartet, um ihr Signal weiterzugeben. 12

14 2 Programmierung von FPGAs 2.1 Der Programmierablauf Der vereinfachte Designablauf für die Programmierung eines FPGAs ist in Abbildung 6 dargestellt. Abbildung 6: Designablauf für die Programmierung eines FPGAs. Auf der linken Seite sind die Grundschritte des Designablaufs in der abzuarbeitenden Reihenfolge dargestellt. Auf der rechten Seite stehen die Simulationen und Analysen zur Designverifikation in Abhängigkeit von den für sie relevanten Grundschritten. Begonnen wird mit der Eingabe des Designs. Wenn die gewünschte Funktionalität eingegeben und mit Hilfe der Verhaltenssimulation überprüft worden ist, folgt die Synthese. Sie produziert eine Netzliste, die in der Implementation benötigt wird. Die Implementierung passt den Programmcode an die gewählte Architektur (des FPGA) an. Anschließend wird die Netzliste in einen Bitstream für die Konfiguration konvertiert. Das Besondere an dem Ablauf ist, dass der Designer nach jeder Simulation bzw. Analyse im Fehlerfall gezwungen ist zurück zur Eingabe des Designs zu gehen und eventuelle Fehler zu beheben oder Verbesserungen vorzunehmen. Die Simulationen und Analysen zur Verifikation des Designs werden im Punkt erläutert. Die Spezifikationen und Namen der während dem Designablauf erstellten Dateien und der Designablauf selber bezieht sich auf die Firma Xilinx. 13

15 2 Programmierung von FPGAs Die Design Eingabe Zur Konfigurationseingabe stehen dem Designer verschiedene Techniken zur Verfügung: Die Schematische Eingabe (Abbildung 7), Hardwarebeschreibungssprachen(Abbildung 8) und eine Kombination aus beidem. Abbildung 7: Schematische Eingabe Abbildung 8: Hardwarebeschreibungssprache Für welche Technik sich der Designer entscheidet liegt an der zu implementierenden Funktionalität und dem Designer selbst. Die Techniken können auch gemischt werden. Wenn der Designer hardwarebezogener denkt ist die schematische Eingabe vorteilhaft, zumal die schematische Eingabe eine bessere Visualisierung des Designs ermöglicht. Wenn das Design komplex ist oder der Designer eher algorithmenorientiert denkt, dann ist eine Hardwarebeschreibungssprache die bessere Wahl. Beschreibungssprachen bieten auch eine höhere Ebene der Abstraktion. Der Designer wird von den Details der Hardwareimplementierung isoliert. Eine weitere existierende aber selten genutzte Möglichkeit für die Eingabe ist der Entwurf mittels Zustandsmaschinen. Diese Möglichkeit bietet sich für die Programmierung einzelner Funktionseinheiten des FPGAs als Zustandsmaschine an. Bei schematischer Eingabe oder bei der Eingabe über eine Hardwarebeschreibungssprache ist die Zustandsprogrammierung nicht so anschaulich und folglich schwerer zu programmieren. Allerdings gibt es wenige Design- Werkzeuge die diese Eingabemöglichkeit anbieten. In der weiteren Beschreibung des Designablaufs werde ich mich auf die Eingabe des Designs mit der Hardwaresprache VHDL konzentrieren. 14

16 2 Programmierung von FPGAs Die Synthese Die Synthese ist der Prozess, in dem die Eingabedaten in einer der Hardwarebeschreibungssprache VHDL oder Verilog in eine Geräte- Netzliste übersetzt werden, d.h in eine Liste aus Schaltungen von logischen Elementen (Logikgatter, Flip Flops, usw.). Wenn das Design in mehrere Einheiten aufgeteilt ist, wird für jede Designeinheit eine eigene Netzliste erstellt. Der Syntheseprozess überprüft die Syntax des Programmcodes und analysiert die Hierarchie des Designs. Bei der Synthese spielt die konkrete Hardware, auf der die Funktionalität später implementiert werden soll, noch keine Rolle. Die erzeugten Netzlisten werden in einer NGC( Native Generic Circuit) Datei gespeichert (Abbildung 9). Abbildung 9: Synthese einer NGC Datei. 15

17 2 Programmierung von FPGAs Die Implementierung Erst mit der Implementierung beginnt die Anpassung des Programmcodes an die gewählte FPGA Architektur. Die Implementierung beinhaltet drei Arbeitsschritte: 1. Übersetzen (Translate) 2. Map 3. Place & Route Übersetzen Vor dem Übersetzen werden Einschränkungen definiert, diese Einschränkungen sind nichts anderes als die Zuordnung der Ports aus dem Design zu physikalischen Elementen (Pins, Taster, Knöpfe, usw.) der Zielarchitektur und die Angabe zeitlicher Anforderungen an das Design. Alle Informationen bezüglich der Einschränkungen werden in einer UCF (User Constraints File) Datei gespeichert. Das Übersetzen kombiniert alle Netzlisten und Einschränkungen (Constraints) zu einer Logik Design Datei. Diese Datei wird als eine NGD (Native Generic Database) gespeichert, die mit Hilfe des NGD Build Programms erstellt wird (Abbildung 10) Map Abbildung 10: Erstellung einer Native Generic Database (NGD) Datei. Beim Mapping wird den abstrakten Logikelementen der Netzliste konkrete Hardware aus dem FPGA zugeteilt. Es wird eine NCD (Native Circuit Description) Datei generiert, die die beim Übersetzen erzeugte NGD Datei in eine physikalische Repräsentation des Designs auf die Komponenten des FPGAs darstellt (Abbildung 11). 16

18 2 Programmierung von FPGAs Place & Route Abbildung 11: Erstellung einer Native Circuit Description (NCD) Datei. Der Place and Route Prozess (PAR) platziert (Place) die vom Mapping zugeteilten Hardware Bausteine innerhalb des FPGAs unter Berücksichtigung der beim Übersetzen erzeugten Einschränkungen. Zudem werden diese Logikblöcke miteinander verdrahtet (Route) (Abbildung 12). Der Placer hat auszuwählen welcher Hardware Baustein genutzt werden soll. Der Placer beginnt in einer Ecke des FPGA und fängt an dieses anhand der ihm zur Verfügung stehende Netzliste zu füllen. Er nimmt dabei - so lange Komponenten in der Netzliste vorhanden sind - die oberste Komponente aus der Netzliste und platziert sie auf dem nächsten freien Platz. Der Router muss beim Verdrahten der Bausteine die zeitlichen Vorgaben (Constraints) beachten und nicht einem schnellen Signal eine lange Leitung zuweisen. Allerdings stimmt es nicht ganz, dass der Router immer die optimale Leitung berechnet, da die Berechnung zu aufwändig wäre und zu viel Zeit in Anspruch nehmen würde. Er beachtet hierbei hauptsächlich die vom Designer eingegebenen Vorgaben und verknüpft die restlichen Bauelemente ohne weitere Optimierung miteinander. Das PAR ist der aufwändigste Teil der Implementierung. Die Software versucht dabei, eine optimale Anordnung der Schaltungsteile im FPGA zu finden die mit den vorhandenen Ressourcen realisierbar ist. Abbildung 12: Place & Route. 17

19 2 Programmierung von FPGAs Programmierung des FPGAs Um dem FPGA schlussendlich seine Konfiguration zu übergeben wird die vom PAR erzeugte geroutete NCD Datei in einen Bitstream konvertiert und mit Hilfe eines JTAG 20 - Adapters auf das FPGA oder seinen Konfigurationsspeicher gespielt Design Verifikation Verhaltenssimulation (Behavioral Simulation) Die Verhaltenssimulation wird vor der Synthese durchgeführt, um zu prüfen ob der Programmcode korrekt ist und das eingegebene Design wie vorgesehen funktioniert. Die Verhaltenssimulation wird bei VHDL oder Verilog Designs durchgeführt. Es werden Signale und Variablen beobachtet, es können Haltepunkte gesetzt werden und man kann das Zusammenspiel der Prozeduren und Funktionen begutachten. Wenn dem Designer Fehler oder Unstimmigkeiten auffallen kann er den HDL Code ändern. Zur Zeit der Verhaltenssimulation sind die spätere Ressourcennutzung und die zeitlichen Einschränkungen noch unbekannt. Ein Beispiel ist in Abbildung 13 zu sehen. Abbildung 13: Verhaltenssimulation eines Counters in ISim. Die Verhaltenssimulation ist mit dem Debugging bei Hochsprachen zu vergleichen. Es können zum Beispiel Haltepunkte definiert werden, allerdings gibt es auch Unterschiede. Es werden keine Variablen betrachtet, sondern die Signale an sich. Zu beachten ist hierbei, dass sich die Signale nicht wie Variablen 20 Joint Test Action Group : IEEE Standard

20 2 Programmierung von FPGAs sequentiell, also nacheinander, sondern parallel verändern. Die Verhaltenssimulation wird außerdem nur für eine vom Designer festgelegte Zeit durchgeführt und nicht bis zum Ende des Programms, da es ja nur eine bestimmte Konfiguration des FPGAs gibt und kein Programm das auf dem FPGA läuft. Funktionale Simulation (Functional Simulation) Die funktionale Simulation gibt Informationen über die logischen Operationen der Schaltung. Der Designer kann mit dieser Simulation nach dem Übersetzungsprozess nochmals die Funktionalität der Schaltung überprüfen. Statische Zeitanalyse (Static Timing Analysis) Die statische Zeitanalyse liefert eine Analyse des Zeitverhaltens einer Schaltung. Sie kann nach dem Mapping und nach dem Place & Route ausgeführt werden, da erst dann die gewünschten Zeiten für das Design bekannt sind. Der Unterschied zwischen der Zeitanalyse nach dem Mapping und nach dem PAR ist das realitätsnähere Zeitverhalten in der Schaltung. Bei der Zeitanalyse nach dem Mapping wird die Gesamtzeitverzögerung der Schaltung berechnet und geschaut ob die vorgegebenen zeitlichen Einschränkungen erreichbar sind. Diese Berechnung basiert auf Mittelwerten für die durchschnittliche Zeitverzögerung eines Bauelements des FPGAs. Bei der Zeitanalyse nach dem PAR sind, im Gegensatz zur Zeitanalyse nach dem Mapping, die konkreten Zeitverluste der zur Benutzung ausgewählten Bauteile bekannt und die Gesamtzeitverzögerung der Schaltung kann genauer berechnet werden. Entspricht die errechnete Zeitverzögerung nicht den Vorgaben muss der Designer seine Konfiguration überarbeiten oder sein Mapping überprüfen und optimieren. 19

21 3 Literaturverzeichnis 3 Literaturverzeichnis 1. Xilinx - Programmable Logic Design Quick Start Guide ( ) 2. RoboterNetz - Artikel FPGA (Stand ) 3. National Instruments Developer Zone Artikel Wie funktionieren FPGAs? (Stand ) 4. Mandapati Krishna Chaitanya FPGA Design Flow (Stand ) 5. WEB LEXIKON: Ein Blick zurück Field Programmable Gate Array (Stand ) 6. Wikipedia Artikel Anwendungsspezifische integrierte Schaltung (Stand ) 7. Alexander Giese Seminar: Rekonfigurierbare Hardware- Strukturen ( ) ws0405/alexander_giese/praesentation.pdf 8. Only-VLSI Artikel FPGA vs. ASIC (Stand ) Artikel FPGA (Stand ) Wikipedia- Artikel Field Programmable Gate Array (Stand ) National Instruments Developer Zone Artikel Einführung in die FPGA- Technologie: Die 5 größten Vorteile (Stand ) Markus Wannemacher Das FPGA-Kochbuch (1998) Artikel FPGA/CPLD Toolchain (Stand ) Wikipedia- Artikel Very High Speed Integrated Circuit Hardware Description Language (Stand ) Wikipedia Artikle Hardwarebeschreibungssprache (Stand ) Artikel Programmierbare Logik (Stand ) 20

FPGA vs. Mikrocontroller. Agenda

FPGA vs. Mikrocontroller. Agenda FPGA vs. Mikrocontroller Name: Jan Becker Matrikelnummer: 546508 Agenda - Kurzvorstellung eines FPGAs - Komponenten eines FPGAs - Programmierung eines FPGAs - Kurzvorstellung eines Mikrocontrollers - Komponenten

Mehr

FPGA. Field Programmable Gate Array

FPGA. Field Programmable Gate Array FPGA Field Programmable Gate Array FPGA Was ist das? Das FPGA ist ein relativ neuer, programmierbarer Baustein, der zum Aufbau digitaler, logischer Schaltungen dient. Aufbau Ein FPGA besteht aus einzelnen

Mehr

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007 Paderborn Center for Parallel l Computing Paderborn University 29. Mai 2007 Übersicht 1. FPGAs 2. Entwicklungssprache VHDL 3. Matlab/Simulink 4. Entwicklungssprache Handel-C 5. Fazit Übersicht FPGAs 1.

Mehr

FPGA Field Programmable Gate Array im Unterschied zu anderen PLD-Architekturen.

FPGA Field Programmable Gate Array im Unterschied zu anderen PLD-Architekturen. FPGA Field Programmable Gate Array im Unterschied zu anderen PLD-Architekturen. Kasdaghli Ameni Inhalt. Die Klassifizierung von ASIC 2. Simple Programmable Logic Device SPLD 3. Complex Programmable Logic

Mehr

Hardware Programmierbare Logik

Hardware Programmierbare Logik Hardware Programmierbare Logik Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware Programmierbare Logik 1/23

Mehr

Teil 1: Digitale Logik

Teil 1: Digitale Logik Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Tri-State Ausgangslogik Ausgang eines

Mehr

Digital Design 5 Rechnergestützte Schaltungsentwicklung

Digital Design 5 Rechnergestützte Schaltungsentwicklung 5 Rechnergestützte Schaltungsentwicklung 5.1 Technologische Trends Richard Roth / FB Informatik und Mathematik Rechnergestützte Schaltungsentwicklung 1 Richard Roth / FB Informatik und Mathematik Rechnergestützte

Mehr

Teil 1: Digitale Logik

Teil 1: Digitale Logik Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Tri-State Ausgangslogik Ausgang eines

Mehr

F Programmierbare Logikbausteine

F Programmierbare Logikbausteine 1 Einordnung Ebene 6 Problemorientierte Sprache Ebene 5 Assemblersprache F Programmierbare Logikbausteine Ebene 4 Ebene 3 Ebene 2 Ebene 1 Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur

Mehr

Ein Vortrag von Kamal Laghmari im Fach: Technische Informatik

Ein Vortrag von Kamal Laghmari im Fach: Technische Informatik Vortrag über FPAA`s Ein Vortrag von im Fach: Technische Informatik Inhalt o Einführung in FPAA`s o Funktionsweise o Architektur o Switched Capacity (SC) o Entwicklungsmethoden o Anwendungsgebiete oausblick

Mehr

ASIC. Application-Specific Integrated Circuit. Technische Informatik K. Slotala

ASIC. Application-Specific Integrated Circuit. Technische Informatik K. Slotala ASIC Application-Specific Integrated Circuit Technische Informatik K. Slotala Was ist ASIC? Anwendungsspezifische Schaltung, die fest im Schaltkreis integriert ist An die Anforderungen der Anwender angepasst

Mehr

F Programmierbare Logikbausteine

F Programmierbare Logikbausteine 1 Einordnung Ebene 6 Problemorientierte Sprache Ebene 5 Assemblersprache F Programmierbare Logikbausteine Ebene 4 Ebene 3 Ebene 2 Ebene 1 Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur

Mehr

SPKC. Inhalte der Vorlesung. Signalprozessoren und Kommunikationscontroller. Prof. Dr.-Ing. Peter Schulz. Signalprozessoren

SPKC. Inhalte der Vorlesung. Signalprozessoren und Kommunikationscontroller. Prof. Dr.-Ing. Peter Schulz. Signalprozessoren Signalprozessoren und Kommunikationscontroller für den Schwerpunkt Telekommunikationstechnik: für alle anderen Schwerpunkte: Pflichtfach Wahlpflichtfach Inhalte der Vorlesung Signalprozessoren Systemarchitekturen

Mehr

ASIC Application-Specific Integrated Circuit

ASIC Application-Specific Integrated Circuit ASIC Application-Specific Integrated Circuit Technische Informatik Henning Rob Sonntag, 21. Januar 2018 Agenda Einführung Schaltungsentwurf Arten von ASICs 21.01.2018 ASIC - Henning Rob 2 Agenda Einführung

Mehr

Hardware Praktikum 2008

Hardware Praktikum 2008 HaPra 2008 - Versuchsreihe 4 - Aufbau eines Volladdierers Hardware Praktikum 2008 Prof. Dr. H.-J. Wunderlich Dipl.-Inf. M. Imhof Dipl.-Inf. S. Holst Übersicht Entwurfsablauf Diskreter Aufbau Rechnergestützter

Mehr

Digitaltechnik II SS 2007

Digitaltechnik II SS 2007 Digitaltechnik II SS 27 9. Vorlesung Klaus Kasper Inhalt Realisierung digitaler Systeme Nutzung isplever Automaten Moore-Automat Mealy-Automat Beispiel Übung Massenspeicher Digitaltechnik 2 2 Realisierung

Mehr

Software ubiquitärer Systeme

Software ubiquitärer Systeme Software ubiquitärer Systeme Übung 2: Speicherarchitekturen in Mikrocontrollern und AOStuBS Christoph Borchert Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/~chb/

Mehr

EHP Einführung Projekt A

EHP Einführung Projekt A Volker Dörsing EHP Einführung Projekt A email: doersing@uni-jena.de praktische Übung www: http://users.minet.uni-jena.de/~ehp-head Vorbereitung, Durchführung, Kolloquium Infos zur Veranstaltung, Versuchsanleitung

Mehr

Teil 1: Digitale Logik

Teil 1: Digitale Logik Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Tri-State Ausgangslogik Ausgang eines

Mehr

Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten

Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten E. Zenker 9. November 2011 1 / 28 Gliederung 1. Field Programmable Gate Array - FPGA 2. Satisfiability Testing

Mehr

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen Programmierbare Logik CPLDs Studienprojekt B Tammo van Lessen Gliederung Programmierbare Logik Verschiedene Typen Speichertechnologie Komplexe Programmierbare Logik System On a Chip Motivation Warum Programmierbare

Mehr

Architekturen, Werkzeuge und Laufzeitumgebungen für eingebettete Systeme

Architekturen, Werkzeuge und Laufzeitumgebungen für eingebettete Systeme Farbverlauf Architekturen, Werkzeuge und Laufzeitumgebungen für eingebettete Systeme Embedded Systems Christian Hochberger Professur Mikrorechner Fakultät Informatik Technische Universität Dresden Nötiges

Mehr

Anwenderprogrammierbare

Anwenderprogrammierbare 4. Einteilung der Programmiertechnologien Programmable logic device (PLD) Field programmable gate array (FPGA) Zusammenfassende Bewertung S. A. Huss / Folie 4-1 Einteilung der Programmiertechnologien Programmierung

Mehr

COOL HASHING MIT FPGAS. Robert Bachran

COOL HASHING MIT FPGAS. Robert Bachran COOL HASHING MIT FPGAS Robert Bachran Dresden, 16.1.2012 Einführung Grundlagen Kriterien für gute Hashverfahren Grundlagen FPGAs Hashverfahren auf FPGAs Skein auf FPGA Evolutionäre Hashverfahren Energiesparendes

Mehr

Electronic Design Automation (EDA) Systementwurf

Electronic Design Automation (EDA) Systementwurf Electronic Design Automation (EDA) Systementwurf Systembegriff Beispiel Antiblockiersystem Signalverarbeitung Hardware/Software- Partitionierung Hardware oder Software? Electronic Design Automation Systementwurf:

Mehr

4.Vorlesung Rechnerorganisation

4.Vorlesung Rechnerorganisation Mario.Trams@informatik.tu-chemnitz.de, 22. April 2004 1 Inhalt: 4.Vorlesung Rechnerorganisation technischer Hintergrund der von uns verwendeten Experimentierhardware kurze Einführung in das Altera Entwicklungssystem

Mehr

5 Zusammengesetzte und reguläre Schaltungsstrukturen

5 Zusammengesetzte und reguläre Schaltungsstrukturen 5 Zusammengesetzte und reguläre Schaltungsstrukturen regelmäßig aufgebaute (reguläre) Schaltungsstrukturen implementieren jeweils eine größere Zahl an Gatterfunktionen wichtigste Vertreter: Speicher, programmierbare

Mehr

Prof. Dr.-Ing. Peter Schulz

Prof. Dr.-Ing. Peter Schulz Wahlpflichtfächer für Antriebe und Automation Motivation: Antriebe Antriebssysteme enthalten Mess- und Regelkreise, z.b.: - Drehzahlmessung und -regelung - Positionserfassung und -regelung - Verschleißmessung

Mehr

Lösung 2.1 PROM - Dual-zu-Siebensegmentdecoder

Lösung 2.1 PROM - Dual-zu-Siebensegmentdecoder Lösung 2. PROM - Dual-zu-Siebensegmentdecoder Die Ziffern bzw. Buchstaben sollen auf der Siebensegmentanzeige gemäß der Abbildung dargestellt werden: 0 2 3 4 5 6 7 8 9 0 2 3 4 5 Die Ansteuerung der Leuchtsegmente

Mehr

Entwurfsmethodik für rekonfigurierbare Mixed-Signal-ICs

Entwurfsmethodik für rekonfigurierbare Mixed-Signal-ICs Entwurfsmethodik für rekonfigurierbare Mixed-Signal-ICs Abschlußvortrag zum gleichnamigen Forschungsprojekt Prof. Dr.-Ing. T. Harriehausen 27.11.2002 E-Mail: Th.Harriehausen@FH-Wolfenbuettel.DE WWW: Public.RZ.FH-Wolfenbuettel.DE\fb\e\~harrieha\vl

Mehr

13 Programmierbare Speicher- und Logikbausteine

13 Programmierbare Speicher- und Logikbausteine 13 Programmierbare Speicher- und Logikbausteine Speicherung einer Tabelle (Programm) Read Only Memory (ROM) Festwertspeicher Nichtflüchtig Nichtlöschbar: ROM PROM bzw. OTP-ROM Anwender programmierbares

Mehr

Prozessorarchitektur SS2017 Rahmenbedingungen zum Praktikum

Prozessorarchitektur SS2017 Rahmenbedingungen zum Praktikum Prozessorarchitektur SS2017 Rahmenbedingungen zum Praktikum Vater, Frank Frohberg, Max 26.04.2017 Agenda 1 Rahmenbedingungen für das Praktikum 2 Überblick Designprozess 3 Einführung in VHDL 4 Bearbeitung

Mehr

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware Normann Decker 1 Philip Gottschling 2 1 Institut für Softwaretechnik und Programmiersprachen Universität zu Lübeck decker@isp.uni-luebeck.de

Mehr

Zwischenbericht zum Projekt FPGA-Entwurfssystem

Zwischenbericht zum Projekt FPGA-Entwurfssystem Zwischenbericht zum Projekt FPGA-Entwurfssystem Test und Integration von Synthese- und Layoutwerkzeugen für den FPGA-Entwurf Steffen, M.; Herrmann, P.; Möhrke, U.; Spruth, W.G. Universität Leipzig Augustusplatz

Mehr

Rechnerorganisation 5. Vorlesung

Rechnerorganisation 5. Vorlesung Rechnerorganisation 5. Vorlesung Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen

Mehr

Entwurf von digitalen Schaltungen und Systemen mit HDLsundFPGAs

Entwurf von digitalen Schaltungen und Systemen mit HDLsundFPGAs Entwurf von digitalen Schaltungen und Systemen mit HDLsundFPGAs Einführung mit VHDL und SystemC von Prof. Dr.-Ing. Frank Kesel und Dr. Rüben Bartholomä 2., korrigierte Auflage Oldenbourg Verlag München

Mehr

Entwurf und Simulation einfacher Logikelemente

Entwurf und Simulation einfacher Logikelemente Entwurf und Simulation einfacher Logikelemente Philipp Fischer 10. Dezember 2002 1 Inhaltsverzeichnis I Theoretische Grundlagen 3 Einleitung 3 Entwurf einer Schaltung 3 Entitys und Architectures.........................

Mehr

ASIC s (Application Specific Integrated Circuit)

ASIC s (Application Specific Integrated Circuit) 6. Semester Hard- und Softwaretechnik ASIC s (Application Specific Integrated Circuit) Andreas Zbinden Gewerblich-Industrielle Berufsschule Bern, GIBB Zusammenfassung Das vorliegende Dokument zeigt eine

Mehr

Configurable Embedded Systems

Configurable Embedded Systems Configurable Embedded Systems Prof. Dr. Sven-Hendrik Voß Wintersemester 2017 Technische Informatik (Master), Semester 2 Termin 3, 23.10.2017 Seite 2 Zynq Design Flow Configurable Embedded Systems Wintersemester

Mehr

Technische Grundlagen der Informatik

Technische Grundlagen der Informatik Technische Grundlagen der Informatik WS 2008/2009 16. Vorlesung Klaus Kasper WS 2008/2009 Technische Grundlagen der Informatik 1 Inhalt Wiederholung: Gleitkommadarstellung Konstruktion Normalisierte /

Mehr

Technische Grundlagen der Informatik

Technische Grundlagen der Informatik Technische Grundlagen der Informatik WS 2008/2009 17. Vorlesung Klaus Kasper WS 2008/2009 Technische Grundlagen der Informatik 1 Wiederholung ROM Inhalt Realisierung digitaler Systeme Endliche Automaten

Mehr

F. Technologische Grundlagen

F. Technologische Grundlagen F. Technologische Grundlagen F.1. Einordnung Bisher: - wenige Schaltkreise pro Chip, - feste Verdrahtung. Nun: - Generischer Schaltkreis, - Löschen & programmieren, - Umfangreiche Funktionalität, - Einstellbare

Mehr

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen Mehdi Khayati Sarkandi Uni Siegen Hardware Description Language (HDL) Werkzeug zum Entwurf komplexer digitaler Schaltungen, zur Simulation des Systemverhaltens, zur Überprüfung auf korrekte Funktionsfähigkeit

Mehr

Test & Diagnose digitaler! Systeme,! Prüffreundlicher Entwurf.!

Test & Diagnose digitaler! Systeme,! Prüffreundlicher Entwurf.! Fakultät Informatik Institut für Technische Informatik VLSI-Entwurfssysteme, Diagnostik und Entwurf! Test & Diagnose digitaler! Systeme,! Prüffreundlicher Entwurf.! Norman Seßler! Dresden, 1.7.2009! Gliederung!

Mehr

Einleitung_. FPAAs Field Programmable Analog Arrays. (1) Was sind FPAAs? (2) Wie funktionieren FPAAs? (3) Stand der Technik heute?

Einleitung_. FPAAs Field Programmable Analog Arrays. (1) Was sind FPAAs? (2) Wie funktionieren FPAAs? (3) Stand der Technik heute? FPAAs Field Programmable Analog Arrays Ein Vortrag von Noah Smeets im Fach: Technische Informatik Montag, 29. Januar 2018 Einleitung_ (1) Was sind FPAAs? (2) Wie funktionieren FPAAs? (3) Stand der Technik

Mehr

Rechnerstrukturen, Teil 1

Rechnerstrukturen, Teil 1 Rechnerstrukturen, Teil 1 Vorlesung 4 SWS WS 18/19 Prof. Dr. Jian- Jia Chen Fakultät für Informatik Technische Universität Dortmund jian- jia.chen@cs.uni-.de http://ls12- www.cs.tu-.de Übersicht 1. Organisatorisches

Mehr

Tristate Buffer / erste Module

Tristate Buffer / erste Module IP-Core Generator / Automaten / Platzierung Tristate Buffer / erste Module 27 November 2009 Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel Self-Organization 27 November 2009 1 Inhalt IP-Core Generator Implementierung

Mehr

FPGA - aktuelle Bausteine und ihre Anwendungen von Altera

FPGA - aktuelle Bausteine und ihre Anwendungen von Altera FPGA - aktuelle Bausteine und ihre Anwendungen von Altera T E C H N I S C H E I N F O R M A T I K P R Ä S E N T A T I O N 1 8. 0 1. 2 0 1 8 B E R N H A R D S A N G M A T R I K E L N U M M E R : 6 4 0 3

Mehr

Fachbereich Medienproduktion

Fachbereich Medienproduktion Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen

Mehr

High Performance Embedded Processors

High Performance Embedded Processors High Performance Embedded Processors Matthias Schwarz Hardware-Software-Co-Design Universität Erlangen-Nürnberg martin.rustler@e-technik.stud.uni-erlangen.de matthias.schwarz@e-technik.stud.uni-erlangen.de

Mehr

SOC - System on a Chip

SOC - System on a Chip SOC - System on a Chip Was ist das und wofür sind sie gut? HS Düsseldorf Technische Informatik Prof. Dr.-Ing. Ulrich Schaarschmidt Maximilian Roitzheim Matrikelnummer: 639071 Wintersemester 17/18 Inhaltsverzeichnis

Mehr

Manual Universaladapterboard für Spartan3_Board

Manual Universaladapterboard für Spartan3_Board Manual Universaladapterboard für Spartan3_Board Programmieranschluss Tastaturanschluss Mausanschluss Richtungs LEDs Logik Level LED Verbinder zum Spartan3_Board Manual_Universaladapterboard_deu.pdf 1/6

Mehr

3. Hardware CPLD XC9536 von Xilinx. CPLD / FPGA Tutorial

3. Hardware CPLD XC9536 von Xilinx. CPLD / FPGA Tutorial 3. Hardware 3.1. CPLD XC9536 von Xilinx Programmierbare Logikbausteine sind in unzähligen Varianten verfügbar. Die Baugrößen reichen von 20 bis 1704 Pins. Der Preis beginnt bei wenigen Euro für einfache

Mehr

Emulation und Rapid Prototyping. Hw-Sw-Co-Design

Emulation und Rapid Prototyping. Hw-Sw-Co-Design Emulation und Rapid Prototyping Hw-Sw-Co-Design Simulation von komplexen ICs Design level Description language Primitives Simulation time (instructions/cycle) Algorithm HLL Instruction sets 10-100 Architecture

Mehr

Emulation und Rapid Prototyping

Emulation und Rapid Prototyping Emulation und Rapid Prototyping Hw-Sw-Co-Design Simulation von komplexen ICs Design level Description language Primitives Simulation time (instructions/cycle) Algorithm HLL Instruction sets 10-100 Architecture

Mehr

Vertiefungsrichtung Rechnerarchitektur

Vertiefungsrichtung Rechnerarchitektur srichtung () ( für ) Prof. Dietmar Fey Ziele der srichtung RA Vertiefen des Verständnis vom Aufbau, Funktionsweise von Rechnern und Prozessoren Modellierung und Entwurf von Rechnern und Prozessoren ()

Mehr

Gliederung des Vortrags

Gliederung des Vortrags FPAA Welche analogen Schaltfunktionen lassen sich programmierbar integrieren Mattis Brummel Matrikelnummer: 750430 [1] Gliederung des Vortrags 1. Einleitung 2. Aufbau und Funktion 1. Prinzipieller Aufbau

Mehr

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg VHDL - Synthese Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 VHDL - Synthese 1/19 2007-10-27 Inhalt Begriff Arten

Mehr

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm Der Design- und Verifizierungsprozess von elektronischen Schaltungen Y Diagramm Verhaltens Beschreibung Struktur Beschreibung z.b. Vout =Vin/2 Analog: Teiler Digital: Schieberegister Widerstand oder Mosfet

Mehr

Electronic Design Automation (EDA) Technology Mapping

Electronic Design Automation (EDA) Technology Mapping Electronic Design Automation (EDA) Technology Mapping Überblick digitale Synthese Technology Mapping Abbildung durch die Abdeckung eines Baumes Partitionierung des DAG Dekomposition und Abdeckung Beispiel

Mehr

Inhalt. 1. Mikrocontroller 2. FPGA 3. Vergleich 4. Hybride Systeme 5. Zusammenfassung 6. Quellenverzeichnis 12.01.2016

Inhalt. 1. Mikrocontroller 2. FPGA 3. Vergleich 4. Hybride Systeme 5. Zusammenfassung 6. Quellenverzeichnis 12.01.2016 Vergleich FPGA und Mikrocontroller Laura Hilleke Technische Informatik 07.01.2016 07.01.2016 Vergleich FPGA und Mikrocontroller 2 1 Aufbau Funktionsweise Programmierung 07.01.2016 Vergleich FPGA und Mikrocontroller

Mehr

Digitales Hardwaredesign mit VHDL und FPGAs

Digitales Hardwaredesign mit VHDL und FPGAs TAE Technische Akademie Esslingen Ihr Partner für Weiterbildung In Zusammenarbeit mit dem VDE-Bezirksverein Württemberg e.v. (VDE) Maschinenbau, Fahrzeugtechnik und Tribologie Mechatronik und Automatisierungstechnik

Mehr

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Aufgabe 1.1: Verilog Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009 a) Wie können Werte an Wire-Variablen zugewiesen

Mehr

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017 CPU, GPU und FPGA, Bianca Forkel 21. November 2017 CPU, GPU und FPGA Inhalt CPU: Central Processing Unit GPU: Graphical Processing Unit FPGA: Field Programmable Gate Array 2 CPU Central Processing Unit

Mehr

Rechnergestützter VLSI-Entwurf

Rechnergestützter VLSI-Entwurf Schaltungssynthese Dipl.-Ing. e-mail: rgerndt@iam.de Seite SYN/1 Motivation Vereinfachung des Systementwurfes Weniger Fehler durch abstrakte Beschreibung Portierbarkeit der Schaltung (PLD, CPLD, FPGA,

Mehr

Hyperrekonfigurierbare Hardware - Modelle, Partitionierungsprobleme und Schedulingstrategien

Hyperrekonfigurierbare Hardware - Modelle, Partitionierungsprobleme und Schedulingstrategien Hyperrekonfigurierbare Hardware - Modelle, Partitionierungsprobleme und Schedulingstrategien Sebastian Lange Martin Middendorf Parallelverarbeitung und Komplexe Systeme Inhalt Einführung Hyperrekonfiguration

Mehr

Semestralklausur Einführung in Computer Microsystems

Semestralklausur Einführung in Computer Microsystems Semestralklausur Einführung in Computer Microsystems 07. Juli 2008 Dr.-Ing. Wolfgang Heenes Name (Nachname, Vorname) Matrikelnummer Unterschrift Prüfung Bitte ankreuzen Anzahl abgegebene Zusatzblätter:

Mehr

Electronic Design Automation (EDA) Entwurfseingabe

Electronic Design Automation (EDA) Entwurfseingabe Electronic Design Automation (EDA) Entwurfseingabe Entwurfseingabe Systemebene...SystemC...SystemVerilog RT-Ebene...Verilog...VHDL Gatterebene...Gatternetzliste...Schematic Entry Elektrische Ebene/ Strukturelle

Mehr

Entwurf integrierter Schaltungen

Entwurf integrierter Schaltungen Navigation Entwurf integrierter Schaltungen Entwurf integrierter Schaltungen Klassifizierung nach Struktur Flexibilität hat ihren Preis Individualisten Marktorientierte Einteilung Kosten und Stückzahlen

Mehr

Programmierbare Logikbauelemente

Programmierbare Logikbauelemente Programmierbare Logikbauelemente Architekturen und Anwendungen von Axel Sikora mit 148 Bildern und 31 Tabellen HANSER Grundlagen 13 1.1 Einführung 13 1.2 Grundlagen digitaler Schaltungen 15 1.2.1 Grandlagen

Mehr

Schwerpunktprogramm 1148 Rekonfigurierbare Rechensysteme. Rekonfigurierbare Controller

Schwerpunktprogramm 1148 Rekonfigurierbare Rechensysteme. Rekonfigurierbare Controller Schwerpunktprogramm 1148 Rekonfigurierbare Rechensysteme Rekonfigurierbare Controller Roland Kasper Thomas Reinemann Institut für Mechatronik und Antriebstechnik Otto-von-Guericke-Universität Magdeburg

Mehr

HS Technische Informatik

HS Technische Informatik Technische Universität Dresden Fakultät Informatik Institut Technische Informatik HS Technische Informatik Architektur eines dynamisch rekonfigurierbaren Rechnersystems Johannes.Goerner@mailbox.tu-dresden.de

Mehr

FPGAs und Mikrocontroller - Ein Vergleich

FPGAs und Mikrocontroller - Ein Vergleich FPGAs und Mikrocontroller - Ein Vergleich Proseminar Microcontroller und eingebettete Systeme WS24/25 Simon Rehwald Lehrstuhl für Echtzeitsysteme und Robotik Fakultät für Informatik Technische Universität

Mehr

Rechnerstrukturen WS 2013/14

Rechnerstrukturen WS 2013/14 Rechnerstrukturen WS 2013/14 1 Boolesche Funktionen und Schaltnetze 2 Hazards (Wiederholung/Abschluss) 3 Programmierbare Bausteine Einleitung Einsatz von PLAs 4 Sequenzielle Schaltungen Einleitung Folien

Mehr

Ressourceneffiziente Informationsverarbeitung Universität Bielefeld, CITEC, AG-KS Martin Kaiser.

Ressourceneffiziente Informationsverarbeitung Universität Bielefeld, CITEC, AG-KS Martin Kaiser. Ressourceneffiziente Informationsverarbeitung Universität Bielefeld, CITEC, AG-KS Martin Kaiser www.its-owl.de Ressourceneffiziente Informationsverarbeitung Anwendungsdomänen Verkehrstechnik IKT Medizintechnik

Mehr

An den Vizepräsident für Forschung, Entwicklung und Technologietransfer der Fachhochschule Braunschweig/Wolfenbüttel

An den Vizepräsident für Forschung, Entwicklung und Technologietransfer der Fachhochschule Braunschweig/Wolfenbüttel An den Vizepräsident für Forschung, Entwicklung und Technologietransfer der Fachhochschule Braunschweig/Wolfenbüttel Forschungsbericht (Kurzfassung) WS 02/03 Kreyßig, Jürgen, Prof. Dr., Institut für Verteilte

Mehr

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012 October 29, 2012 Inhaltsverzeichnis 1 2 3 4 5 6 Motivation Motivation CUDA bietet extreme Leistung für parallelisierbare Programme Kompliziert zu programmieren, da multi-level parallel und explizit verwalteter

Mehr

2.2 Register-Transfer-Synthese

2.2 Register-Transfer-Synthese 2.2 Register-Transfer-Synthese Register-Transfer-Synthese Überblick digitale Synthese Register-Transfer- Synthese Makrozellgeneratoren Beispiel Addierer Beispiel Speicher Synthese endlicher Automaten Zustandskodierung

Mehr

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010 VHDL Einleitung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010 VHDL Einleitung 1/17 2010-04-14 Inhalt Entwurfsebenen und -sichten

Mehr

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche

Mehr

Rekonfigurierbare Prozessoren

Rekonfigurierbare Prozessoren 15 Rekonfigurierbare Prozessoren 1 Inhalt Vorhandene Architekturen Rekonfigurierbare Systeme Rekonfigurierbare Hardware Rekonfigurierbarer Instruction Set Processor CRISP 2 DSP Processor Spec FU Spec FU

Mehr

Car on a Chip: Neue Steuergeräte-Architekturen mit Systems-on-Chip im Automobilbereich.

Car on a Chip: Neue Steuergeräte-Architekturen mit Systems-on-Chip im Automobilbereich. CoaCh Car on a Chip: Neue Steuergeräte-Architekturen mit Systems-on-Chip im Automobilbereich Olaf Spinczyk Horst Schirmeier Jochen Streicher Michael Engel Lehrstuhl XII AG Eingebettete Systemsoftware http://ess.cs.uni-dortmund.de/de/teaching/pgs/coach/

Mehr

Verilog Hardware Description Language (HDL)

Verilog Hardware Description Language (HDL) Elektrotechnik Intelligent Systems Design Verilog Hardware Description Language (HDL) Einführung Prof. Dr.-Ing. Michael Karagounis Sommersemester 2016 HDL Konzept Was ist eine Hardwarebeschreibungssprache?

Mehr

Projektarbeiten WiSe 13/14

Projektarbeiten WiSe 13/14 Projektarbeiten WiSe 13/14 Fynn Schwiegelshohn, Muhammed Al Kadi, Max Ferger Prof. Dr.-Ing. Michael Hübner, Lehrstuhl für Eingebettete Systeme der Informationstechnik (ESIT) Fakultät für Elektrotechnik

Mehr

Mikroprozessortechnik Grundlagen 1

Mikroprozessortechnik Grundlagen 1 Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes

Mehr

Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten

Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten Analyse von Ansätzen zur Beschleunigung von SAT - Lösern durch dedizierte Hardware Komponenten E. Zenker 24. Februar 2011 1 / 20 Gliederung 1. Satisfiability Testing 2. FPGAs 3. Aktuelle Hardware SAT Solver

Mehr

Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister

Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister Prof. Dr.-Ing. Michael Karagounis Dipl.-Ing. Rolf Paulus 1. Motivation Das Ziel dieses Laborversuchs ist es, den Entwurf von taktsensitiven always

Mehr

Übung Hardwareentwurf

Übung Hardwareentwurf Übung Hardwareentwurf Übung vom. Mai 25 Stefan Reichör HWE- 25- Slides7.tex (7. Mai 25) Überblick Finite Machines Moore FSM Mealy FSM Implementierung von FSMs in VHDL Xilinx Synthesetool Xilinx LUTs Übung

Mehr

Integrated HW/SW Systems Group 20 November 2009 Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel.

Integrated HW/SW Systems Group  20 November 2009 Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel. Erweiterte Simulation / Aufgaben 20 November 2009 Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel Self-Organization 20 November 2009 1 Inhalt Erweiterung der Simulation Ausgabe der Bilddaten in eine Datei

Mehr

HW/SW Codesign für Real-time Ethernet basierte Steuergeräte

HW/SW Codesign für Real-time Ethernet basierte Steuergeräte HW/SW Codesign für Real-time Ethernet basierte Steuergeräte Master Projektvorstudie Für das Fach: Anwendungen 1 In der Arbeitsgruppe CoRE Communication over Real-time Ethernet Friedrich Groß Agenda Motivation

Mehr

D. Programmierbare Logik

D. Programmierbare Logik D. Programmierbare Logik Bisher: - wenige Schaltkreise pro Chip, - feste Verdrahtung. Nun: - Generischer Schaltkreis, - Löschen & programmieren, - Umfangreiche Funktionalität, - Einstellbare Logikfunktionen,

Mehr

Hardware Praktikum 2008

Hardware Praktikum 2008 HaPra 2008 - Versuchsreihe 5 - ALU Hardware Praktikum 2008 Prof. Dr. H.-J. Wunderlich Dipl.-Inf. M. Imhof Dipl.-Inf. S. Holst Agenda Die HaPra-CPU Eine kleine Übersicht VHDL Projekt-Organisation Entwurf

Mehr

GRUNDLAGEN EMBEDDED: Einführung in NI LabVIEW

GRUNDLAGEN EMBEDDED: Einführung in NI LabVIEW S e i t e 1 GRUNDLAGEN EMBEDDED: Einführung in NI LabVIEW FPGA Jan Kniewasser Academic Relations Central Europe National Instruments 29. Oktober 2010 S e i t e 2 INHALTSVERZEICHNIS Wann wird die FPGA-Technologie

Mehr

Programmierbare Logik mit GAL und CPLD. Einführung in die Schaltungsentwicklung mit Logikbausteinen in ISP-Technologie von Christian Ellwein

Programmierbare Logik mit GAL und CPLD. Einführung in die Schaltungsentwicklung mit Logikbausteinen in ISP-Technologie von Christian Ellwein Programmierbare Logik mit GAL und CPLD Einführung in die Schaltungsentwicklung mit Logikbausteinen in ISP-Technologie von Christian Ellwein R.Oldenbourg Verlag München Wien 999 Inhaltsverzeichnis Vorwort..2.2..2.2.2.3.3.4

Mehr