ARCHITECTURES AVANCÉES SUR PUCE PARTIE 1: DÉVELOPPEMENT SOFTWARE
1
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
2
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
3
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
4
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
5
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
6
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
7
Architecture d’un système à base de Zynq-7000
8
Architecture d’un système à base de Zynq-7000
9
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