Cypress FPGAs per USB konfigurieren

Elektronische Systeme auf FPGA-Basis per USB zu konfigurieren, bietet mehrere Vorteile. Zum Beispiel sind so Upgrades vor Ort möglich. Außerdem kann damit der JTAG-Anschluss, der gerne als Konfigurationsschnittstelle genutzt wird entfallen, was wiederum Platz und Kosten spart.

FPGAs sind einfache programmierbare Logikschaltungen mit einer Vielzahl elektrisch programmierbarer Verbindungen zwischen den einzelnen Logikblöcken. Beim FPGA kann der Anwender die Logikblöcke und deren Verbindungen konfigurieren. Sie wurden eingeführt, um die gesamte Funktionalität eines Systems auf einem Chip zu implementieren und durch die mehrfache Programmierbarkeit eine hohe Flexibilität zu erreichen. Heute decken FPGAs einen großen Anwendungsbereich auf den Gebieten Automobil, Industrie, Medizin, Netzwerke in der Comsumer-Elektronik, Sicherheit, Hochleistungscomputer, Video und Imaging, digitale Signalverarbeitung usw. ab. Die verschiedenen Arten der Konfiguration von FPGAs werden in den folgenden Abschnitten behandelt.

FPGAs haben zwei Betriebsarten: den Konfigurationsmodus und den User-Modus. Nach dem Einschalten befindet sich das FPGA zur Programmierung im Konfigurationsmodus. Bei der Konfiguration eines FPGAs wird über bestimmte Anschlüsse ein Bitstream aus Nullen und Einsen zum Bauteil gesendet. Wenn die Konfiguration des FPGAs abgeschlossen ist, schaltet es in den User-Modus, um die programmierte Logikfunktion auszuführen.

Die meisten FPGAs speichern die Konfigurationsdaten in SRAM. Da SRAM-Inhalte flüchtig sind, müssen die Konfigurationsdaten nach dem Einschalten erst in das SRAM übertragen werden.  Die Konfiguration kann auch automatisch aus nicht flüchtigem Speicher wie EPROM, SPI Flash oder einem externen Prozessor übernommen werden. Mikroprozessoren, Mikrocontroller und digitale Signalprozessoren können die Konfigurationsdaten ebenfalls in das SRAM des FPGAs übertragen. Neben diesem Verfahren kann die Konfiguration auch über die weit verbreiteten JTAG-Schnittstellen, USB-Schnittstellen usw. eingelesen werden.