Architecture Zynq
Comprendre la séparation entre le Processing System et la logique programmable dans les familles Zynq-7000 et Zynq UltraScale+ MPSoC.
Un processeur et un FPGA dans le même composant
Un Zynq est un système sur puce, ou SoC pour System on Chip. Il réunit un système processeur et une matrice FPGA dans un seul composant. AMD nomme ces deux parties Processing System, ou PS, et Programmable Logic, ou PL.
Le PS contient des processeurs ARM, des contrôleurs mémoire et des périphériques. Il exécute du logiciel en C ou C++. La PL réalise les circuits décrits en VHDL ou en Verilog. Une LUT implémente une petite fonction logique, une bascule mémorise un bit et un bloc DSP accélère les calculs arithmétiques comme les multiplications.
Cette séparation définit le travail de l'ingénieur. Le logiciel traite les décisions, les protocoles complexes et le système d'exploitation. La logique programmable traite les flux parallèles, les interfaces personnalisées et les fonctions qui demandent une latence stable.

La famille Zynq-7000
Le Zynq-7000 associe un ou deux coeurs ARM Cortex-A9 à une logique FPGA de série 7. Le PS comprend les ressources suivantes.
| Ressource | Fonction |
|---|---|
| APU | Exécute l'application et peut utiliser un système d'exploitation |
| Caches L1 et L2 | Réduisent le temps moyen d'accès aux instructions et aux données |
| OCM | Fournit une mémoire interne rapide de 256 Kio |
| Contrôleur DDR | Donne accès à la mémoire dynamique externe |
| GIC | Priorise et distribue les interruptions |
| DMA du PS | Déplace des données sans faire exécuter chaque copie par le processeur |
| MIO et EMIO | Relient les périphériques du PS aux broches ou à la PL |
Les périphériques intégrés comprennent notamment UART, SPI, I2C, CAN, USB, Ethernet, GPIO et SDIO. Leur présence évite de reconstruire ces fonctions dans la PL lorsqu'une interface standard suffit.
La PL apporte les ressources matérielles. Elle peut contenir une chaîne de traitement, un contrôleur personnalisé, un accélérateur ou une IP AXI. Les deux parties communiquent principalement avec des interfaces AXI.
La famille Zynq UltraScale+ MPSoC
Le Zynq UltraScale+ MPSoC conserve la séparation entre PS et PL, mais le PS est plus riche. Il peut comprendre les blocs suivants.