Wie bootet man Linux auf einem Xilinx FPGA?
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
Das Booten von Linux auf einem Xilinx FPGA beinhaltet die Verwendung einer SoC-basierten FPGA-Plattform wie der Zynq-7000 oder Versal, die sowohl programmierbare Logik (PL) als auch ein Prozessorsystem (PS, typischerweise ARM Cortex-A9/A53) integriert. Hier ist eine Schritt-für-Schritt-Übersicht:
Linux auf einem Xilinx FPGA booten (z. B. Zynq-7000)
1. Geeignete Hardware verwenden
Du benötigst ein FPGA-Board mit integriertem ARM-Prozessor, z. B.:
-
ZedBoard
-
PYNQ-Z1 / Z2
-
ZCU102 (für Zynq UltraScale+)
-
Ultra96
Diese Boards enthalten:
-
Processing System (PS): ARM-CPU zum Ausführen von Linux
-
Programmable Logic (PL): FPGA für benutzerdefinierte Hardware
2. Tools installieren
Du brauchst:
-
Serielles Terminal (z. B. PuTTY, minicom)
3. Hardware-Design in Vivado erstellen
-
Vivado öffnen → Block Design erstellen
-
ZYNQ7 Processing System hinzufügen
-
Block Automation ausführen
-
(Optional) Eigene IP-Blöcke hinzufügen (z. B. GPIO, AXI)
-
Bitstream generieren
Design exportieren:
4. PetaLinux-Projekt erstellen
Kernel, Device Tree, RootFS anpassen:
5. Linux-Image bauen
Erzeugte Dateien:
-
BOOT.BIN
(Bootloader + Bitstream + FSBL) -
image.ub
(Kernel + Device Tree + RootFS) -
boot.scr
(U-Boot-Skript, optional)
6. SD-Karte vorbereiten
SD-Karte mit FAT32 formatieren und kopieren:
-
BOOT.BIN
-
image.ub
-
(optional)
boot.scr
In das FPGA-Board einlegen.
7. Verbinden & Booten
-
Serielles Terminal öffnen (115200 Baud)
-
Board einschalten
-
Du siehst U-Boot → dann Linux-Boot-Meldungen
Am Ende erscheint ein Prompt:
Tipp: Vorgefertigte Linux-Images (z. B. PYNQ)
Für Boards wie PYNQ-Z1 kannst du einfach ein fertiges Linux-Image verwenden:
-
Download: www.pynq.io
-
Auf SD-Karte flashen
-
Linux mit Jupyter & Python startet automatisch
Zusammenfassung der Dateien
Datei | Funktion |
---|---|
BOOT.BIN |
FSBL + Bitstream + U-Boot (erster Bootschritt) |
image.ub |
Kernel + Device Tree + Root Filesystem |
boot.scr |
Bootskript (optional) |
Was passiert beim Booten?
-
FSBL: Initialisiert System, lädt Bitstream
-
U-Boot: Lädt Kernel
-
Linux-Kernel: Initialisiert Treiber, mountet RootFS
-
Shell: Bereit zur Nutzung über UART oder Netzwerk
Verwandte Artikel
- ·Ist ein FPGA-Chip für die Algorithmusentwicklung geeignet?
- ·Die besten MCUs/MPUs für industrielle humanoide Roboter
- ·Was sind die Unterschiede zwischen FPGA- und DSP-Prozessoren für die Signalverarbeitung?
- ·Wie wird man FPGA-Ingenieur? Welches FPGA-Board und welche Software sind für Anfänger geeignet?
- ·Wie erzeugt man niedrige Taktfrequenzen in FPGA?
- ·Wie verwende ich DDR-Speicher mit FPGA für DSP-Anwendungen?
- ·Anwendung von eingebetteten Systemen in der Luft- und Raumfahrt sowie im Verteidigungsbereich
- ·Vergleich von FPGA-, ARM-, STM32- und DSP-Plattformen
- ·Vergleich von FPGA, CPLD, SPS, Mikroprozessor, Mikrocontroller und DSP