FPGA: Alles über diese Chips und ihre Programmierung

FPGA-Chip

Die FPGAs sind immer beliebter geworden in den letzten Zeiten. Selbst für professionelle Anwendungen werden diese Chips häufig verwendet, aber auch für Heimwerker und Hersteller, die eine diskrete Schaltung in einem Chip mit allen damit verbundenen Vorteilen implementieren möchten. Es ist nicht billig oder einfach, eine Fabrik zu finden, in der Sie Ihre Layouts oder Muster versenden und einen maßgeschneiderten Chip für Sie herstellen lassen können.

Es ist wahr, dass einige Gießereien erlauben Wafer oder Multiprojekt-Wafer herstellen Chips von Einzelpersonen oder Universitäten zu machen, um mit ihnen zu testen. Diese Arten von Fabriken sind, wie ich schon sagte, schwer zu finden, sie befinden sich normalerweise im Ausland und sind nicht billig. Nach einer Weile werden Muster Ihrer Chips an die vereinbarte Adresse gesendet, aber sie sind nicht dafür verantwortlich, diese zu testen oder zu überprüfen, ob sie funktionieren. Es hängt alles von Ihrem Design ab ...

Eine Eine alternative Lösung ist der Kauf eines FPGA und programmieren Sie alles, was Sie für die Implementierung im Chip benötigen ...

Was ist ein FPGA?

Programmierbare Zellen

FPGA steht für Field Programmable Gate Array. Es handelt sich um digitale Geräte oder Chips, die so konfiguriert werden können, dass praktisch alles implementiert werden kann. Das heißt, mit anderen Worten, es ist ein leerer Chip, auf dem Sie "schreiben" können. Das bedeutet, dass Sie eine CPU, einen Speicher, eine Steuerung, eine beliebige Logik usw. implementieren können, um einen sehr schnellen Betrieb zu erzielen und alle Vorteile einer Integration in einen Chip und nicht mit elektronischen Elementen zu erzielen.

Ross Freeman und Bernard Vonderschmitt, Mitbegründer von Xilinx, waren diejenigen, die 1984 das FPGA erfanden. Sie haben es als Weiterentwicklung der damaligen CPLD-Chips getan. Die programmierbaren CPLD-Chips hatten einige Mängel, die die neuen FPGA-Designs lösten, und seitdem haben sie sich bis heute weiterentwickelt.

Der FPGA-Markt ist so fruchtbar, dass Unternehmen ihn mögen Intel, Xilinx, Altera, Quick Logic, Lattice usw.Sie haben viel investiert, um bessere FPGAs und auch eingebettete Programmierumgebungen oder IDEs für sie zu entwickeln. Dies bietet sehr gute Plattformen, um die Aufgabe von Entwicklern oder Machern zu erleichtern.

Derzeit bieten diese Hersteller nicht nur einen programmierbaren Chip an, sondern umfassen auch zahlreiche Hilfselemente Entwicklern mehr Möglichkeiten zu bieten. Zum Beispiel umfassen sie Flash-Speicherzellen, SDRAM-Speicherzellen und so weiter.

Wofür werden sie verwendet?

IDE zum Programmieren von FPGA

Daher kann ein FPGA einem ASIC ähnlich sein, aber das wir können wählen was sein wird. Zum Beispiel könnten wir einen Code erstellen, um ihn zu programmieren und in eine CPU, eine GPU, einen Addierer, einen Speichercontroller oder eine andere auf einem einzelnen Chip implementierte Logikschaltung umzuwandeln.

Die Möglichkeiten sind ziemlich endlos. In der Tat empfehle ich Ihnen, die Website zu besuchen opencores.org, eine Website, die sich dem Angebot einer Vielzahl von Projekten widmet hardware libre. Sie finden Codes in VHDL, Verligo usw., z RAM, CPU, GPU, Controller, ALUs, FPUs, Decoder und eine lange usw..

Wie ist es programmiert?

FPGA-Programmierer

Um ein FPGA zu programmieren, können wir dies von unserem bevorzugten Betriebssystem wie GNU / Linux, Windows und MacOS aus tun, obwohl es sicherlich mehr Entwicklungsumgebungen für Windows gibt. Im Allgemeinen bieten dieselben Unternehmen, die das FPGA herstellen, a Sehr vollständige IDE zum Arbeiten und wo Sie alle benötigten Tools in derselben Software-Suite finden.

Sie benötigen auch die FPGA-Chip oder -Karte und das erforderliche Kabel oder Programmiergerät mit dem Sie das FPGA an Ihren PC anschließen können, um den geschriebenen Code an das FPGA zu übergeben, und so wird es programmiert. Dies ähnelt dem, was Sie mit der Arduino-Karte tun, indem Sie das Arduino IDE-Programm in den programmierbaren Speicher des Mikrocontrollers schreiben.

Nur im Fall des FPGA haben wir eine Matrix oder ein Array von Elementarkomponenten wie Speicherzellen, UND-Gatter, ODER, NICHT, Flip-Flops und andere. Grundelemente oder Blöcke der digitalen Elektronik das können wir verwenden. Mit dem geschriebenen Programm legen wir fest, wie diese wesentlichen Blöcke zu der kleinen Schaltung zusammengefasst werden sollen, die wir möchten, z. B. eine ALU.

Das heißt, wenn wir einen Addierer in unserer IDE programmieren, die notwendigen Blöcke, um diesen Addierer zu implementieren sie werden verlinken auf die richtige Weise innerhalb des FPGA, so dass der Chip als Addierer arbeitet. Einfach richtig? Im Allgemeinen werden für diese Programmierung auf physikalischer Ebene verschiedene Methoden verwendet, z. B. Speicher oder Sicherungen, um in diesem Fall eine dauerhafte Verbindung herzustellen.

Die Geschwindigkeit, mit der sie arbeiten, hängt davon ab Taktfrequenz zu dem das von uns gekaufte FPGA funktioniert. Zum Beispiel arbeiten die grundlegendsten normalerweise mit 50 MHz, andere mit viel höheren Frequenzen. Im Fall des 50-MHz-FPGA bedeutet dies, dass es mit einer Geschwindigkeit von 50.000.000 Mal pro Sekunde arbeitet. Wenn wir mit dem Addierer fortfahren, den ich als Beispiel gegeben habe, können Sie diese Menge an Summen in einer Sekunde erledigen ...

Fortsetzung des Themas von Die ProgrammierungSobald wir wissen, dass Sie Code wie in der Arduino IDE schreiben oder ein anderes Programm entwickeln können und sehen, wie es auf Hardwareebene gemacht wird, werde ich sagen, dass es wirklich nicht als solches programmiert. Es handelt sich vielmehr um eine Hardwarebeschreibung. Tatsächlich werden Hardwarebeschreibungssprachen wie VHDL, Verilog usw. verwendet.

Mit Dieses Programm wird auf einer logischen Ebene beschrieben Was macht die kleine Schaltung, die wir implementieren wollen? Und dann geht es zum FPGA. Obwohl es wahr ist, dass einige Plattformen die Programmierung in Programmiersprachen wie C ermöglichen, um eine CPU im FPGA zu implementieren und dann Programme zu generieren, die in den Speicher geladen und von diesem Prozessor verarbeitet werden.

Integration mit Arduino

FPGA-Arduino

FPGAs werden normalerweise separat verwendet, aber es gibt zwar viele Tools und Kits auf dem Markt, die Ihnen die Integration erleichtern FPGA mit der Arduino-Plattform. Ein Beispiel für ein Board, mit dem Sie FPGAs mit Arduino in Ihre Projekte integrieren können, ist MKR Vidor 4000, obwohl es andere gibt.

MKR Viewer 4000 Es ist ein Board mit drei Chips. Eines davon ist ein FPGA, insbesondere ein Intel Cyclone 10. Es gibt auch andere Chips für Bluetooth LE oder verbrauchsarme Konnektivität sowie WiFi-Kompatibilität. Eine gute Ergänzung, um Ihrem Arduino Konnektivitätsfunktionen zur Verfügung zu stellen und das zu implementieren, was Sie im FPGA benötigen.

Damit haben Sie eine anpassbare Hardware, selbst konfiguriert für den gewünschten Zweck. Das bietet endlose Möglichkeiten.


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.