Intel® FPGAs and Programmable Devices

 

Oftmals wird bei der Entwicklung von FPGA-Schaltungen von Programmierung gesprochen. Der Begriff ist in diesem Kontext aber anders zu verstehen, als es von der Erstellung von .

Fluid Bed Particle Processing Author:

Accelerate the World

The Hello World Collection

Diese reichen von Schaltungen geringer Komplexität, wie z. 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 Hardware ändern zu müssen.

Heute gestatten sie die preiswerte und flexible Fertigung komplexer Systeme wie Mobilfunk - Basisstationen als Alternative zur teureren Auftragsfertigung durch Halbleiterhersteller. Multiplexer -Strukturen in den Basisblöcken ermöglichen häufig sehr schnelle lokale Signalpfade, zur Einbindung oder Umgehung des Flipflops, zur Rückkopplung von dessen Ausgang, zur Verbindung von Nachbarblöcken und ähnlichem.

Für die ferneren Verbindungen liegt zwischen den Basisblöcken ein Gitter aus immensen Busstrukturen, an das Ein- und Ausgänge angeschlossen werden können. Weitere programmierbare Schaltkomponenten in den Kreuzungspunkten des Gitters erlauben die Signalverteilung über den gesamten Chip.

Man kann zwischen Methoden unterscheiden, die es ermöglichen, das FPGA mehrmals zu programmieren, und Methoden, die nur eine einmalige Programmierung zulassen.

Der Begriff ist in diesem Kontext aber anders zu verstehen, als es von der Erstellung von Software für Prozessoren her bekannt ist. Im Rahmen des Entwicklungsprozesses erfolgt zunächst ein Schaltungsentwurf, gefolgt von einer Prüfung der entstandenen Hardwarebeschreibung mittels Simulationswerkzeugen und dann eine Implementierung Place and Route sowie gfs laufzeitbasierende Simulation. Ein sogenanntes Synthesewerkzeug führt diese Beschreibung wie ein Programm aus und erstellt dann in mehreren Schritten für einen gewünschten Baustein eine spezifische Netzliste unter Nutzung der in diesem Baustein verfügbaren Ressourcen.

Der hardwarebeschreibende Code wird dann in einem Zwischenschritt automatisch erzeugt. Für SystemC existieren keine Synthesetools, der praktische Nutzen für konkrete FPGA-Entwicklungen liegt bei der abstrakten Verhaltensmodellierung und deutlich beschleunigten Systemsimulationen, weshalb es dort zum weitverbreiteten Industriestandard avanciert ist. Diese Funktionseinheiten, IP-Core genannt, liegen manchmal als Quellcode, oder meist als verschlüsselte Netzliste vor und sind in der Regel parametrierbar z.

Baudrate bei seriellen asynchronen Schnittstellen oder Fifo-Tiefe oder Breite der Parallelschnittstelle. Diese werden über Busse mit anderen Funktionseinheiten verbunden. Nach der Beschreibung während des Entwurfsflusses folgen weitere Schritte wie die funktionale Simulation, Synthese. Ein bekanntes Werkzeug für die Simulation ist ModelSim. Für FPGAs wird beim Schaltungsentwurf ein synchrones Schaltungsdesign empfohlen, wenngleich nicht zwingend erforderlich.

An allen Flipflops in einer sogenannten Takt-Domäne engl. Das vermeidet schwer handhabbare Laufzeiteffekte. Manche FPGAs bieten spezielle Umschalter an, die das garantiert störungsfreie glitch-freie Wechseln zwischen verschiedenen Taktquellen im Betrieb erlauben.

Ausgehend von einer verifizierten Logikschaltung erfolgt dann ein Umsetzen der Netzliste für das konkrete FPGA, wobei auch externe Funktionsblöcke, die von Drittanbietern angeboten werden und bisher nur als black box existierten, eingefügt werden.

Unter Anwendung weiterer Randbedingungen erfolgt dann in letztlich das Umsetzen auf ein Programmierfile zum Beladen des FPGAs, aus dem wiederum ein weiteres Programmierfile erzeugt werden kann, das zum Beladen des Flash-Speichers dient.

Durch die Rekonfigurierbarkeit von FPGAs direkt beim Endanwender besteht darüber hinaus der wesentliche Vorteil, auf aktuelle technische Entwicklungen reagieren zu können und die digitalen Schaltungen durch Updates anpassen zu können, ohne direkt die zugrundeliegende Hardware der FPGA-Chips verändern zu müssen.

FPGAs werden beispielsweise zur Echtzeit-Verarbeitung von einfachen bis komplexen Algorithmen genutzt, zur digitalen Signalverarbeitung im Rahmen von digitalen Filtern oder zur schnellen Fourier-Transformation. Nvidia benchmarks were done using Tegra X1 Note 3: Xilinx high-level design tools like Vivado System Generator for DSP and Vivado High Level Synthesis provide a level of abstraction that empower system architects and domain experts to rapidly evaluate new algorithms and focus on developing the differentiating parts of their design.

The complete Xilinx DSP solution is a combination of these design tools, IP, reference designs, methodologies and boards that work together to get to a working production design in the shortest time possible.

Xilinx offers a range of libraries which are optimized for performance, resource utilization and ease of use. MathWorks and leading high-speed analog suppliers, Avnet offers DSP-centric development kits and production-ready system-on-modules SOM for embedded vision, software-defined radio and high-performance motor control.

This massive parallelism translates into exceptional levels of DSP performance: Various tool flows are available for different use models and different levels of design abstraction: Hardware designers can design in: Useful Design Techniques and Information To achieve the most optimal and efficient usage of the DSP48 slices within Xilinx FPGAs, the following information and techniques should be reviewed and utilized where possible.

Floating Point to Fixed Point. Application Profiling for Acceleration SDSoC provides the ability to profile a given application and allows for the creation of hardware accelerators to run more efficiently in the Programmable Logic PL , where the flexibility and parallelism of the FPGA are leveraged to provide large performance improvements.

Some useful examples can be found at the following locations: Xilinx Data-type Support Xilinx has very flexible data-type support in their devices. Converting to a fixed point solution where possible will bring large benefits: Learn more about Vivado High Level Synthesis: AD features a bit, 1. Default Default Title Date. OpenCV libraries Deep learning inference framework supporting Caffe Design examples such as optical flow, stereo vision and CNN-based scene segmentation.

Xilinx has created GitHub repositories which contain useful examples for many applications including DSP related functions.