Grundaufbau und Programmierung. eines FPGAs
|
|
- Maya Althaus
- vor 7 Jahren
- Abrufe
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 Name: Jan Becker Matrikelnummer: 546508 Agenda - Kurzvorstellung eines FPGAs - Komponenten eines FPGAs - Programmierung eines FPGAs - Kurzvorstellung eines Mikrocontrollers - Komponenten
MehrFPGA. 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
MehrFPGA 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.
MehrFPGA 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
MehrHardware 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
MehrTeil 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
MehrDigital 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
MehrTeil 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
MehrF 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
MehrEin 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
MehrASIC. 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
MehrF 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
MehrSPKC. 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
MehrASIC 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
MehrHardware 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
MehrDigitaltechnik 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
MehrSoftware 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/
MehrEHP 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
MehrTeil 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
MehrAnalyse 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
MehrProgrammierbare 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
MehrArchitekturen, 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
MehrAnwenderprogrammierbare
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
MehrCOOL 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
MehrElectronic Design Automation (EDA) Systementwurf
Electronic Design Automation (EDA) Systementwurf Systembegriff Beispiel Antiblockiersystem Signalverarbeitung Hardware/Software- Partitionierung Hardware oder Software? Electronic Design Automation Systementwurf:
Mehr4.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
Mehr5 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
MehrProf. 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
MehrLö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
MehrEntwurfsmethodik 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
Mehr13 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
MehrProzessorarchitektur 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
MehrEffiziente Ü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
MehrZwischenbericht 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
MehrRechnerorganisation 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
MehrEntwurf 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
MehrEntwurf 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.........................
MehrASIC 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
MehrConfigurable 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
MehrTechnische 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 /
MehrTechnische 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
MehrF. 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
MehrVerilog/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
MehrTest & 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!
MehrEinleitung_. 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
MehrRechnerstrukturen, 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
MehrTristate 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
MehrFPGA - 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
MehrFachbereich Medienproduktion
Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen
MehrHigh 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
MehrSOC - 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
MehrManual 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
Mehr3. 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
MehrEmulation 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
MehrEmulation 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
MehrVertiefungsrichtung 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 ()
MehrGliederung 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
MehrVHDL - 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
MehrDer 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
MehrElectronic 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
MehrInhalt. 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
MehrDigitales 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
MehrLö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
MehrCPU, 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
MehrRechnergestü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,
MehrHyperrekonfigurierbare Hardware - Modelle, Partitionierungsprobleme und Schedulingstrategien
Hyperrekonfigurierbare Hardware - Modelle, Partitionierungsprobleme und Schedulingstrategien Sebastian Lange Martin Middendorf Parallelverarbeitung und Komplexe Systeme Inhalt Einführung Hyperrekonfiguration
MehrSemestralklausur 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:
MehrElectronic Design Automation (EDA) Entwurfseingabe
Electronic Design Automation (EDA) Entwurfseingabe Entwurfseingabe Systemebene...SystemC...SystemVerilog RT-Ebene...Verilog...VHDL Gatterebene...Gatternetzliste...Schematic Entry Elektrische Ebene/ Strukturelle
MehrEntwurf integrierter Schaltungen
Navigation Entwurf integrierter Schaltungen Entwurf integrierter Schaltungen Klassifizierung nach Struktur Flexibilität hat ihren Preis Individualisten Marktorientierte Einteilung Kosten und Stückzahlen
MehrProgrammierbare 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
MehrSchwerpunktprogramm 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
MehrHS 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
MehrFPGAs 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
MehrRechnerstrukturen 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
MehrRessourceneffiziente 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
MehrAn 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
MehrC-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
Mehr2.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
MehrVHDL 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
MehrSelbststudium 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
MehrRekonfigurierbare Prozessoren
15 Rekonfigurierbare Prozessoren 1 Inhalt Vorhandene Architekturen Rekonfigurierbare Systeme Rekonfigurierbare Hardware Rekonfigurierbarer Instruction Set Processor CRISP 2 DSP Processor Spec FU Spec FU
MehrCar 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/
MehrVerilog 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?
MehrProjektarbeiten 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
MehrMikroprozessortechnik Grundlagen 1
Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes
MehrAnalyse 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
MehrTutorial 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 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
MehrIntegrated 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
MehrHW/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
MehrD. Programmierbare Logik
D. Programmierbare Logik Bisher: - wenige Schaltkreise pro Chip, - feste Verdrahtung. Nun: - Generischer Schaltkreis, - Löschen & programmieren, - Umfangreiche Funktionalität, - Einstellbare Logikfunktionen,
MehrHardware 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
MehrGRUNDLAGEN 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
MehrProgrammierbare 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