CoursDocuments

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 

  • Créée avec Vivado 
  • Pré-compilée Pré-compilée 
  • Il n’est pas nécessaire d’avoir le projet Vivado au complet, une description hardware (*.hdf) est suffisante 

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 

  • Pré-construite pour la formation Xilinx SDK 
  • Output de la formation Xilinx Hardware (Vivado) 

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 

  • Chaque « workspace » a une seule plateforme HW 

– Spécifié dans un fichier XML 

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

  • Plusieurs « Board Support Packages » (BSPs) peuvent référencer une seule plateforme HW 

– Xilinx fournit un BSP « standalone » 

  • Plusieurs C/C++ peuvent référencer un seul BSP 

Dépendance software dans SDK 

23 

  • Un BSP (Board Support Package) est un ensemble de fichiers contenant du code spécifique à votre système matériel afin de pouvoir développer l’application logicielle. Par exemple, le BSP permet de dire au SDK quelles sont les ressources matérielles disponibles ainsi que leurs adresses. Il s’agit en général de fichiers source en C, de fichiers d’entête .h, de fichiers d’initialisation, … 
  • Un Board Support Package (BSP) est une collection de drivers paramétrés pour un système à base de μP 

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 

  • Xilinx fournit un exemple de code pour chaque driver de périphérique. 

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 

  • Permet de modifier le « Linker script » (l’emplacement de l’application dans la mémoire) Assignation individuelle des sections de la mémoire Modification de « stack » et « Heap » 

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 

  • Test Access Port (TAP) intégré dans Zynq comme pour le reste de la gamme 7 de Xilinx 
  • ARM Debug Access Port (DAP) pour un debug via SDK 
  • La carte ZC702 possède un port USB-JTAG et par conséquent il faut seulement disposer d’un câble micro USB pour établir la connexion avec SDK 

Débogage sur la carte ZC702 

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

35 

  • « System debugger » avec le nouveau protocole de communicationTCF (Target Communication Framework) 

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

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Bouton retour en haut de la page

Adblock détecté

S'il vous plaît envisager de nous soutenir en désactivant votre bloqueur de publicité