Praktischer ZYNQ-Ersatz: Was ändert sich bei der Migration von Xilinx ZYNQ zu PBC7Z020G/021G
Das ursprüngliche Design nutzt Xilinx Zynq-7000 (XC7Z020) für die heterogene ARM-Software-plus-FPGA-Echtzeitlogik-Lösung und muss nun lokalisiert werden. Bedeutet der Chiptausch einen Komplettrebuild oder nur lokale Änderungen? Dieser Artikel teilt die Migration von HWD7Z020 (XC7Z020-kompatibel) auf PBC7Z020G/021G in drei Ebenen — PS-Software, PL-Logik, Boot und BSP — und zerlegt tatsächlichen Änderungsaufwand, wiederverwendbare Teile und Risikopunkte.
1. Warum migrieren: Von XC7Z020 zu heimischem HWD7Z020
Der Wert von ZYNQ liegt darin, dass ein Chip sowohl einen Dual-Core ARM Cortex-A9 (PS, Systemsoftware, Netzwerk, Dateisystem) als auch programmierbare Logik (PL, parallele Erfassung, Protokollbeschleunigung, Echtzeit-IO) enthält. Wenn ein XC7Z020-Design lokalisiert werden muss, ist das Ziel keine völlig andere Architektur, sondern ein kompatibler Drop-in in Befehlssatz, Peripherie und Vivado-Flow. PBC7Z020G trägt HWD7Z020-1PBGA400, PBC7Z021G trägt HWD7Z020-1CLG484; beide sind industriell, Dual-Core A9@800MHz plus FPGA, nativ Vivado-kompatibel ohne Patch, -55~125°C ultra-breiter Temperaturbereich.
Vor der Migration das Projekt in drei Ebenen teilen und jede einschätzen:
1. PS-Software: Bare-Metal-Programme, FreeRTOS-Aufgaben, Linux-Apps und Treiber auf dem A9.
2. PL-Logik: RTL, IP-Kerne, Constraints und Pin-Mapping aus Vivado, im FPGA-Gewebe.
3. Boot und BSP: Boot-Image, QSPI/eMMC/SD-Boot-Konfig, Device Tree und Board Support Package.
2. PS-Software-Migration: Höchste BSP-Wiederverwendung
1. Bare-Metal und FreeRTOS: Das Projekt ändert sich kaum
Bare-Metal- und FreeRTOS-Projekte rufen A9-Peripherieschnittstellen (UART, GPIO, Timer, Interrupt-Controller) über das BSP auf. Das PS-Register-Layout von HWD7Z020 ist mit XC7Z020 kompatibel, SDK/BSP-Treiber sind wiederverwendbar, Anwendungscode braucht keinen Rewrite. Änderungen konzentrieren sich auf Neugenerierung des BSP unter der heimischen Gerätebibliothek, Neukompilierung und Prüfung von Interruptnummern und Taktkonfig. Der Aufwand wird in Tagen gemessen, nicht Monaten.
2. Linux: Lokale Anpassungen an Device Tree, U-Boot und Kernel
Bei Linux-Designs ändert sich die PS-Seite mehr als bei Bare-Metal, ist aber kein Neustart:
- Device Tree (DTS): PS-Peripherie- und PL-Anschlussknoten vom XC7Z020-Baum auf die Heim-Board-Stecker remappen; DDR3-Kapazität/Breite, eMMC/QSPI-Partitionen, Ethernet/USB-Knoten für das neue Board eintragen.
- U-Boot und Kernel: XC7Z020-kompatible Konfig beschneiden; bootargs, Konsolen-Baudrate und rootfs-Mount anpassen; eigene Treiber rekompilieren und auf dem heimischen Gerät regresstesten.
- Anwendungsschicht: Nutzdienste, Netzwerkprogramme und Geschäftsalgorithmen sind chipunabhängig und wandern direkt.
DDR3-Bandbreite zuerst aus der Board-Konfig schätzen: beide PBC7Z020G/021G nutzen DDR3 1GB, 32-Bit-Bus, 1066Mbps; Byte-Bandbreite = 4B × 1066MT/s ≈ 4,26 GB/s, für gewöhnliche Steuerung und leichte Bildübertragung ausreichend, kein Plattformwechsel wegen Bandbreite nötig.
3. PL-Logik-Migration: Constraints nach Ressourcenabgleich neu planen
PL-Ressourcenvergleich (XC7Z020-Klasse vs HWD7Z020 / PBC7Z021G)
| Ressource | XC7Z020-Klasse | PBC7Z021G (HWD7Z020-1CLG484) | Migrationsurteil |
|---|---|---|---|
| Logikzellen | ~85K | 85K | Gleiche Klasse, passt |
| LUT | ~53,2K | 53.200 | Gleiche Klasse |
| Flip-Flops | ~106K | 106.400 | Gleiche Klasse |
| DSP-Multiplizierer | 220 | 220 | Gleiche Klasse |
| Block RAM | 4,9 Mb | 4,9 Mb | Gleiche Klasse |
| Verfügbares PL-IO | — | 198 (plus 48 LVDS-Paare, 100 spannungskonfigurierbare IO) | An neue Stecker neu planen |
Ursprüngliches RTL-Verhalten, reine Kombinations-/Sequenzlogik und die meisten IP-Kerne (BRAM, FIFO, PLL/MMCM, AXI-Interconnect) synthetisieren direkt im kompatiblen Flow ohne Rewrite.
Constraints, IP und Pin-Neuzuordnung
Nach dem Paketwechsel von PBGA400 (020G, winzig 35×42mm) zu 1CLG484 (021G, 60×60mm) unterscheiden sich physische Pins und herausgeführte IO, daher muss die XDC-Constraint-Datei nach den neuen Board-Steckern neu zugeordnet werden; Strombaum, DDR3-Routing und Takte (021G: 33,33MHz PS-Quarz plus 50MHz PL-Quarz) werden ebenfalls gegen das neue Board geprüft. Nutzt ein IP einen herstellereigenen Hardblock (bestimmte Transceiver, Sicherheitsmodule), prüfen auf äquivalentes IP des heimischen Geräts; sonst durch generisches RTL ersetzen.
4. Boot-Kette und Landungs-Checkliste
Boot-Modi und Boot-Image
PBC7Z021G reserviert einen 6-Pin-JTAG und unterstützt JTAG/QSPI/SD-Karten-Boot-Modi per DIP-Schalter; PBC7Z020G nutzt 2×120-Pin-Panasonic-Stecker und 5V-Versorgung. Die Migration über diese Checkliste landen:
1. PS-Software: BSP neugenerieren, Bare-Metal/FreeRTOS neukompilieren und regresstesten; für Linux Device Tree, U-Boot-bootargs und Kernel-Konfig aktualisieren.
2. PL-Logik: Originalprojekt synthetisieren, XDC-Constraints für neues Paket umschreiben, IP-Kompatibilität und Timing-Closure prüfen.
3. Boot-Konfig: Boot-Modus bestätigen (JTAG-Debug → QSPI/SD-Serie), boot.bin (FSBL, Bitstream, Device Tree) und rootfs bauen.
4. Breite Temperatur und Zuverlässigkeit: Heimische Boards -55~125°C (020G/021G); Thermozyklen und Langzeit-Einbautest für den Zielzustand laufen lassen, Strommarge bestätigen.
Auswahl: 020G / 021G / reines FPGA nach Größe und IO wählen
- Ultra-kleiner Ersatz (PBC7Z020G, ¥799): 35×42×5,5mm, 2×120-Pin, für raumenge, logik-mäßige miniaturisierte Embedded- und Ersatzknoten.
- Voll herausgeführte Serie (PBC7Z021G, ¥999): 60×60mm, 4×80-Pin, 198 PL-IO und 48 LVDS-Paare, PS/PL-Ressourcen voll herausgeführt, für Serienfertigung und Designs mit mehr externem IO.
- Reine FPGA-Großressourcen-Erweiterung (PBC7K325G, ¥1.999): Wenn die PL-Seite Hochgeschwindigkeitstransceiver oder große Logik braucht (16 GTX@12,5Gb/s, 2GB DDR3, 326K Logikzellen), übernimmt ein heimisches Kintex-7-SoM und ergänzt das ZYNQ-Konzept.
ZYNQ-China-Ersatz ist kein Rebuild: PS-Software und Anwendungsschicht werden am stärksten wiederverwendet; tatsächlich anfassen heißt, PL-Constraints für das neue Paket neu planen und Device Tree sowie Boot-Image aktualisieren. In PS, PL und Boot getrennt einschätzen; im kompatiblen Flow ist ein Projekt nur lokal anzupassen, das Risiko konzentriert sich auf IP-Kompatibilität und Breit-Temperatur-Regression, so landet die Migration planmäßig.
