Beruflich Dokumente
Kultur Dokumente
1
Présentation du SoPC cible: zedbord
Présentation
La famille Zynq est à cheval entre la famille Artix (7010, 7015 et 7020)
et la famille Kintex (7030, 7045 et 7100) :
GTX transceiveurs : Les liaisons séries rapides (>> 1Gbits/s) sont de plus
en plus utilisées (USB, SATA, PCI Express, …). De plus, les interfaces
réseau Ethernet ne cessent de monter en débit (100 Gbit/s). Les GTX
transceiveurs arrivent jusqu’à 12.5 Gbps (PCI Express 1/2/3, 10 Gigabit
Ethernet, …).
Le PS inclut:
- deux cœurs ARM cortex A9,
- des bus AMBA et AXI,
- le DMA,
- les GPIOs,
- I2C, UART, CAN, SPI,
- le contrôleur des mémoires
QuadSPI, NAND et NOR,
- et le contrôleur de mémoire
vive.
10
Processing System (PS)
Présentation
C’est le PS qui configure la PL. La PL seule n’est donc pas supportée sauf
si vous télécharger la configuration par le JTAG.
La logique programmable peut utiliser 4 ports AXI haute performance pour un accès
direct (DMA) à la mémoire du PS. Les AXI FIFO Interfaces (AFI) ont une capacité
suffisamment élevée (FIFO 128 x 64-bit) pour transférer avec régularité de grandes
quantités de données entre PL et PS.
A.KHERIJI- Conception des systèmes embarqués 16
Interfaces du PS
Le bus AXI
Un bloc IP n’est pas limité qu’à une seule interface AXI mais peut
disposer de plusieurs.
21
Interfaces du PS
Interfaces externes du PS : les MIO
22
Interfaces du PS
Interfaces avec la PL : les EMIO
23
Interfaces du PS
Interfaces avec la PL : les EMIO
24
Flot de dévelopement
Introduction
Xilinx a abandonné son outil historique ISE pour passer à Vivado. ISE
s’est arrêté en 2013 avec la version 14.7 et permet de concevoir des
FPGA Xilinx jusqu’à la série 7 incluse, y compris la famille Zynq. Vivado
démarre à partir de la série 7 et donc ne peut être utilisé avec les FPGA
Xilinx plus anciens.
Signaux de
l’interface DDR3
Les MIO
L’horloge 33.33 MHz
et les PowerOnReset
et SystemReset du PS
31
Implémentation matérielle
Création du Wrapper
Ces E/S n’ont pas à être déclarées dans un fichier de contraintes XCF car
il s’agit d’une liaison directe avec le PS. Seules les E/S passant par la
logique programmable PL doivent être placées dans le fichier de
contraintes.
http://xilinx.eetrend.com/files-eetrend-xilinx/forum/201509/9239-
20459-xilinx_driver_gpiops_v1_02_a_xgpiops.pdf
#include<stdio.h>
#include "xgpiops.h"
#include "xparameters.h"
⁞
Int main(void)
{
La fonction printf() du C est fortement
XGpioPs_Config *GPIO_Config; déconseillée car elle occupe beaucoup de
XGpioPs my_Gpio; place en mémoire. La fonction xil_printf() a
int Status; la même syntaxe et est beaucoup plus
légère. Sa seule restriction, c’est qu’elle ne
traite pas les types float et double.
xil_printf("essai MIO\n");
⁞
Return 0;
}
M. FEKI - Conception des systèmes embarqués 52
Exercices
Exercice 2 : Contrôler la LED9 avec un bouton poussoir
56
Exercices
Exercice 3 : Accéder aux GPIO via les EMIO
Le bloc design :
59
Exercices
Exercice 3 : Accéder aux GPIO via les EMIO
60
Exercices
Exercice 3 : Accéder aux GPIO via les EMIO