ARCHITECTURES AVANCÉES SUR PUCE PARTIE 1: DÉVELOPPEMENT SOFTWARE

ARCHITECTURES AVANCÉES SUR PUCE PARTIE 1: DÉVELOPPEMENT SOFTWARE 

Hanen SHALL shallhanen@yahoo.fr 

Xilinx SDK − AP SoC ZYNQ 

CONTENU 

Architecture d’un système à base de Zynq−7000 

Présentation de Xilinx SDK 

Configuration d’un BSP (borad support package) type Standalone 

Développement d’application sur Xilinx SDK 

Débogage sur la carte ZC702 

Configuration et utilisation de FSBL (First Stage Boot Loader) 

Programmation et démarrage de la mémoire QSPI flash ou carte SD 

Gestion des projets dans Xilinx SDK 

Développement d’application biprocesseurs 

Gestion des interruptions 


CONTENU 

Architecture d’un système à base de Zynq−7000 

Présentation de Xilinx SDK 

Configuration d’un BSP (borad support package) type Standalone 

Développement d’application sur Xilinx SDK 

Débogage sur la carte ZC702 

Configuration et utilisation de FSBL (First Stage Boot Loader) 

Programmation et démarrage de la mémoire QSPI flash ou carte SD 

Gestion des projets dans Xilinx SDK 

Développement d’application biprocesseurs 

Gestion des interruptions 


FPGA vs. CPU 

FPGA: 

– Traitement des flux de données (Processing of data flows; data intensive) 

– Un grand nombre d’algorithmes s’exécutant de façon parallèle (Massively 

parallel parallel algorithms) algorithms) 

– High I/O applications 

CPU: 

– Une prise de décision compliquée (Complicated decision making; data 

driven) 

Architecture d’un système à base de Zynq-7000 

FPGA + CPU 

Solutions: 

On implémente CPU sur FPGA 

➢ Des ressources considérables de FPGA sont consommées 

➢ La vitesse CPU n’est pas suffisante 

Exemple: Exemple: Le Le MicroBlaze MicroBlaze est est un un cœur cœur de de processur processur 32 32 bits bits de de la la société société 

Xilinx. Il est conçu pour être implémenté sur les FPGA de ce fabricant. 

CPU Chip à coté de FPGA 

➢Latence !! 

➢Développement difficile 

Architecture d’un système à base de Zynq-7000 

Architecture d’un système à base de Zynq-7000 

Ajouter CPU comme un block hardware dans la conception FPGA 

▪ Power PC CPU in Virtex-4/5/6 

▪ ARM in Zynq 

✓ Atteindre des fréquences élevées ✓ Puissance de traitement élevée ✓ Ressources FPGA libérées 

FPGA + CPU 


Avantages SOC – Vitesse élevée – Consommation d’énergie min – Dispositif de petite taille – Fiabilité meilleure – Coût réduit 

Architecture d’un système à base de Zynq-7000 

ARM Fournit une plateforme pour les OSs (Ex: Linux) 

FPGA -Time to Market -Flexibilité -Capacité améliorée 

Xilinx Zynq SOC ZedBoard 

Architecture d’un système à base de Zynq-7000 

Architecture d’un système à base de Zynq-7000 

Architecture d’un système à base de Zynq-7000 

10 

ZedBoard Block Diagram 

Architecture d’un système à base de Zynq-7000 

11 

❑ C’est le PS qui configure la PL. La PL seule n’est donc pas supportée sauf si on 

télécharge la configuration par le JTAG. 

❑ Il existe 2 modes de démarrage (boot) : 

Un mode normal 

→Un mode sécurisé où la configuration est cryptée. 

JTAG 

SD card 

QSPI 

QSPI 

Flash NOR 

Flash NOR 

Flash NOR 

Flash NAND 

Flash NAND 

Flash NAND 

Flash NAND 

Procédure de démarrage 

QSPI (128Mo, 50Mo/s)* NOR (64Mo, 20Mo/s)* NAND (tested up to 1Go, 10Mo/s)* SD (up to 32Go) 

Les Les modes modes de de configuration configuration normal normal 

12 

❑ La séquence de démarrage depuis une mémoire non volatile s’effectue en 3 étapes : 

Procédure de démarrage 

13 

Architecture d’un système à base de Zynq−7000 

Présentation de Xilinx SDK 

Configuration d’un BSP (borad support package) type Standalone 

Développement d’application sur Xilinx SDK 

Débogage sur la carte ZC702 

Configuration et utilisation de FSBL (First Stage Boot Loader) 

Programmation et démarrage de la mémoire QSPI flash ou carte SD 

Gestion des projets dans Xilinx SDK 

Développement d’application biprocesseurs 

Gestion des interruptions 

CONTENU 

14 

Flot de développement SDK 

15 

Flot de développement SDK 

16 

Côté PS, Vivado vous permet de : 

➢créer le PS et de le configurer. ➢définir les périphériques ARM utilisés via les MIO. ➢connecter les EMIO avec la PL. ➢rajouter des périphériques AXI génériques depuis un catalogue de fonctions (IP core) pour s’interfacer avec la PL. Ces périphériques sont réalisés avec de la logique programmable. ➢créer avec un assistant des périphériques AXI spécifiques réalisés avec de la la logique logique programmable. programmable. 

Côté design, Vivado vous permet de : 

➢créer un projet VHDL avec la partie PL ➢générer les fichiers du PS créé précédemment. ➢simuler avec Xsim. ➢synthétiser puis d’implémenter l’ensemble PS + PL. ➢ configurer la PL. ➢visualiser les signaux internes du FPGA avec Vivado Logic Analyzer. ➢exporter le projet à destination du SDK. 

Flot de développement SDK 

17 

Présentation de Xilinx SDK 

La plateforme HW Zynq 

18 

Quelles sont les interfaces disponibles dans le SoC Zynq pour relier les parties PS et PL ? ……………………. ……………………. ……………………. ……………………. Quel est le rôle de l’interface AXI dans les SoC Zynq ……………………. Vous Vous êtes êtes chargés chargés de de développer développer une une application application embarquée embarquée à à base base du du SoC SoC Zynq avec Xilinx SDK. 

Quels sont les éléments dont vous avez besoin afin de commencer le développement ? ……………………. 

Est−ce qu’il est nécessaire de connaître le processus de conception de la plateforme hardware avec Xilinx Vivado pour pouvoir développer votre application ? ……………………. 

Exercices 

19 

Flot de développement SDK 

❑ Le SDK vous permet de: 

✓ importer les spécifications matérielles fournies par Vivado. 

✓créer le BSP. 

✓créer le projet d’application logicielle 

✓générer ✓générer le le FSBL. FSBL. 

✓ configurer la PL. 

✓exécuter le programme ARM et de le debugger. 

✓… 

20 

Concept de base d’ECLIPSE IDE 

21 

CONTENU 

Architecture d’un système à base de Zynq−7000 

Présentation de Xilinx SDK 

Configuration d’un BSP (borad support package) type Standalone 

Développement d’application sur Xilinx SDK 

Débogage sur la carte ZC702 

Configuration et utilisation de FSBL (First Stage Boot Loader) 

Programmation et démarrage de la mémoire QSPI flash ou carte SD 

Gestion des projets dans Xilinx SDK 

Développement d’application biprocesseurs 

Gestion des interruptions 

22 

Configuration d’un BSP 

– Spécifié dans un fichier XML 

– Ce fichier XML est généré avec Vivado 

– Xilinx fournit un BSP « standalone » 

Dépendance software dans SDK 

23 

Configuration d’un BSP 

24 

Configuration d’un BSP 

EXEMPLE: UART DRIVER 

IP HW Driver Associé 

25 

Architecture d’un système à base de Zynq−7000 

Présentation de Xilinx SDK 

Configuration d’un BSP (borad support package) type Standalone 

Développement d’application sur Xilinx SDK 

Débogage sur la carte ZC702 

Configuration et utilisation de FSBL (First Stage Boot Loader) 

Programmation et démarrage de la mémoire QSPI flash ou carte SD 

Gestion des projets dans Xilinx SDK 

Développement d’application biprocesseurs 

Gestion des interruptions 

CONTENU 

26 

Développement d’application sur Xilinx SDK 

Exemples de codes pour les périphériques 

27 

Développement d’application sur Xilinx SDK 

Exemples de codes pour les applications 

28 

Développement d’application sur Xilinx SDK 

Applications C/C++ 

❑ L’utilisateur veut écrire quoi exactement ! 

❑ L’application peut être programmée en C ou en C++ 

❑ L’application est gérée comme un projet et incluant: 

➢ Opérations de compilation (« how the code is to be compiled ») 

➢ ➢ Linker Linker scripts scripts (décrit (décrit l’emplacement l’emplacement et et la la taille taille en en mémoire mémoire pour pour 

chaque partie du code et aussi quelle est la mémoire utilisée) 

➢ Tous les codes sources incluent des « header files » 

➢ Les fichiers binaires générés 

❑ Une application est toujours basé sur un BSP: 

➢ Qui peut être changé 

➢ Plusieurs applications peuvent utiliser un seul BSP 

29 

Développement d’application sur Xilinx SDK 

Les mémoires utilisées dans les LABs 

30 

Développement d’application sur Xilinx SDK 

Génération du “Linker script” 

31 

Développement d’application sur Xilinx SDK 

Hardware Platform Settings 

BSP 

BSP include files 

BSP Settings file 

Build results (exemple: *.elf) 

C Project sources 

Hardware Platform 

32 

Architecture d’un système à base de Zynq−7000 

Présentation de Xilinx SDK 

Configuration d’un BSP (borad support package) type Standalone 

Développement d’application sur Xilinx SDK 

Débogage sur la carte ZC702 

Configuration et utilisation de FSBL (First Stage Boot Loader) 

Programmation et démarrage de la mémoire QSPI flash ou carte SD 

Gestion des projets dans Xilinx SDK 

Développement d’application biprocesseurs 

Gestion des interruptions 

CONTENU 

33 

-Power IN -ON/OFF switch SW11 

Configuration du mode JTAG: SW10 Pour USB-JTAG 0-1 

Débogage sur la carte ZC702 

Matériel du LAB − Carte ZC702 

LEDs, BOUTONs Choix de la source de Boot SW16 00010 QSPI F 00110 SD 00000 JTAG QSPI flash 

Bouton RST 

Carte SD 

Zynq 7020 

1 Gb DDR3 

Micro USB- JTAG Mini USB- 

UART 

34 

Débogage sur la carte ZC702 

❑ La séquence de démarrage depuis le JTAG est la suivante : 

35 

Débogage sur la carte ZC702 

Perspective active 

Etat de la communications avec la carte 

Points d’arrêt 

– Variables – Mémoire – Output console – Terminal 

– Registres – Points d’arrêt 36 

Architecture d’un système à base de Zynq−7000 

Présentation de Xilinx SDK 

Configuration d’un BSP (borad support package) type Standalone 

Développement d’application sur Xilinx SDK 

Débogage sur la carte ZC702 

Configuration et utilisation de FSBL (First Stage Boot Loader) 

Programmation et démarrage de la mémoire QSPI flash ou carte SD 

Gestion des projets dans Xilinx SDK 

Développement d’application biprocesseurs 

Gestion des interruptions 

CONTENU 

37 

 

télécharger gratuitement cours de DÉVELOPPEMENT SOFTWARE

Quitter la version mobile