Vous êtes sur la page 1sur 38

FPGA

( FIELD-PROGRAMMABLE GATE ARRAY)

LASCMI3

Enseignante : Mounira TARHOUNI


Origine
2

 En 1984, Xilinx tente d’apporter une réponse en proposant le


premier FPGA.

 FPGA : Field Programmable Gate Array

 Les premiers FPGA utilise une technologie CMOS et des cellules à


base de LUT (SRAM) disposées en matrice.

 Un design sera décomposé en cellules et placé sur la


matrice.

 Cette structure simple est encore utilisée aujourd’hui.


Que sont les FPGA?
3

 Field-Programmable Gate Array - réseau de portes


programmables.
 Ce sont des circuits intégrés programmables (ou plutôt
reconfigurables) plusieurs fois et de plus en plus
dynamiquement!
 Ils permettent
 Soit d’émuler un circuit afin de le valider avant la gravure
silicium
 Soit d’implanter un système complet, System on Chip (SoC)
En utilisant la reconfiguration dynamique, ce système peut
devenir adaptatif en fonction des besoins (accélération de
fonctionnalités choisies).
Pourquoi sont-ils si intéressants?
4

 Complexité
 Les PLD sont programmables, mais trop simples.
 Les ASIC sont très denses, mais figés.
Les FPGA sont un intermédiaire.
 Programmation

 Les CPU sont programmables, mais mal adaptés au calcul


répétitif sur de gros volumes de données.
 Les ASIC sont adaptés à ce problème, mais non
programmables.
 Les FPGA sont un intermédiaire.
A quoi peuvent-ils servir?
5

 Utilisations
 Milieu des années 80
 Machines à états de complexité moyenne
 Traitement de données simple
 Début des années 90
 Télécommunication
 Réseaux
 Fin des années 90
 Applications industrielles (traitement d’image, robotique, contrôle,…)
 Applications personnelles (multimédia, périphériques PC,…)
 Applications automobiles (automotive)
 Début des années 2000
 DSP
 Systèmes sur une puce programmables
FPGA : Field Programmable Gate Array
6

 Un circuit logique programmable est un circuit intégré


comportant un très grand nombre de ressources logiques (des
fonctions élémentaires combinatoires et séquentielles) dont la
plupart des interconnexions sont laissées ouvertes

 Le concepteur conçoit la fonction globale du circuit à l’aide


d’un langage de haut niveau (HDL : Hardware Description
Langage).
Un outil de synthèse convertit le code HDL en description
normalisée de blocs logiques et d’interconnexions

Un outil de configuration réalise les connexions matérielles

Le circuit est reconfigurable.


Structure d’un FPGA - Xilinx
7

Les FPGA sont un rassemblement et une combinaison de différents


blocs :
 d’entrées/sorties (IOB - Input Output Blocks),
 de routage (PSM - Programmable Switch Matrix),
 de logique programmable (CLB - Configurable Logic Blocks)
 et d’autres blocs plus spécifiques.
les cellules logiques de Xilinx
8
les cellules logiques de Xilinx
9
les cellules logiques de Xilinx
10

 Quatre slices forment un CLB (Configurable Logic


Block).

Cette hiérarchie reflète la hiérarchie du routage :


On communique plus vite à l’intérieur d’un LC qu’entre deux LC distincts.
On communique plus vite à l’intérieur d’un slice qu’entre deux slices distincts.
 On communique plus vite à l’intérieur d’un CLB qu’entre deux CLB distincts.
Mémoire intégrée
11
 Les opérateurs de calcul travaillent sur des gros volumes de données
qu’il faut pouvoir stocker.

 Au départ le stockage était externe, mais le temps d’accès a


commencé à devenir pénalisant au fur et à mesure que les
performances des FPGA ont augmenté.

 Pour réduire ce temps, les constructeurs ont ajouté des blocs de


mémoire interne.

 Ces blocs créent une hiérarchie mémoire :


 Mémoire externe grande et lente d’accès.
 Mémoire interne petite mais très rapide.
Mémoire intégrée (embedded RAM).
12
LUT (look up table)
13

 La LUT peut être programmée pour réaliser n’importe qu’elle fonction


logique à 3 entrées.
 Le verrou/bascule peut être programmé pour réaliser n’importe quel latch
(verrou) ou flip-flop (bascule), avec ou sans
 set ou reset

 enable ou disable

 Le multiplexeur permet de stocker la sortie de la LUT ou une entrée du PLB.


LUT (look up table)
14
LUT (look up table)
15

 Les LUT sont passées à 6 entrées. On peut les utiliser en une


fonction combinatoire à 6 entrées ou en 2 fonctions
combinatoires indépendantes à 5 entrées.
Technologie à LUT
16

 Technologie à masques
 Technologie à PROM
 Technologie à EPROM (UV-EPROM)
 Technologie à EEPROM
 Technologie à FLASH
 Technologie à SRAM
Ressources d’horloges
17

 Il y a beaucoup plus de ressources d’horloge dans le FPGA avec des horloges


globales et régionales. Il n’y a quasiment plus de restriction sur le nombre d’horloges.

Des MMCM (Mixed-Mode Clock


Manager) : les MMCM permettent la
génération de signaux d’horloge. Un seul
oscillateur génère plusieurs signaux avec des
fréquences multiples ou sous multiples de la
fréquence d’entrée
Les Phase Locked Loop (PLL) sont conçues
pour travailler avec les IO phaser pour le
contrôle de la mémoire.
Clock wizard
Par programmation
...
Input/Ouput block (IOB)
18

 Les IOB peuvent être de deux


types :
 Les IOB « high range »
supportent des tensions
jusqu’à 3.3 V
 Les IOB « high performance »
supportent les standards
jusqu’à 1.8 V
 Les broches ont des ressources
spécifiques (IO PLL et IO
phaser shift) pour s’interfacer
avec des mémoires de type
DDR3
Bloc DSP
19

 Pour accélérer les applications de traitement du signal,


certains FPGA embarquent des blocs DSP, également
appelés cellules MAC (Multiply Accumulate).
 Ils contiennent des opérateurs arithmétiques et
séquentiels (addition, soustraction, multiplication,
registre, …) câblés donc plus rapide que s’ils étaient
programmés dans des cellules du FPGA.
Flot de conception
20
Flot de conception
21
Synthèse Netlist
22
Assignement des pins
23
Mapping
24
Placement/Routage
25
Programmation
26
Programmation conjointe: le codesign
27
 HW exécute les algorithmes les plus compliqués / longs
 Bénéficie des avantages de parallélisme HW

 Maintient une haute fréquence de traitement

 SW contrôle et met à jour les éléments de ces algorithmes


 Facilité de gérer les entrées compliquées (multiples
variables, accès mémoires)
 Nécessitant une fréquence moins importante que le HW
Exemple de plateforme à base de
FPGA
Exemple de plateforme à base de
FPGA

Artix-7 35T Arty FPGA Evaluation Kit


ZC702 Evaluation Board
Connecteur FMC Mémoire Quad SPI Flash
Slot SDIO +carte SDIO 5Interrupteurs
LEDs (5-pole DIP)

4 Interrupteurs (2*2-
Connecteur d'alimentation 12V pole DIP)
+ Interrupteur ON /OFF

Pushbuttons
Oscillateur 200 MHz FPGA SOC
(Zynq-7020)
Connecteur HDMI

Mémoires DDR3

Port USB-UART
Les broches d'entrées sorties PS
Port USB-JTAG

Ethernet (10/100/1000 Mbps) USB 2.0 ULPI Transceiver,


SoCFPGA
 System On a Chip FPGA (SoCFPGA)
 Composé de :
 Programmable logic (PL)

 Processing System (PS)


 Processeur
 OCM
 Interfaces périphériques (UART, SPI, CAP, etc.)
 Etc.
L’architecture de Zynq-7020
32
Architecture de AP SoC Zynq-7000
33
Les éléments logiques constitutifs de la
34
carte Z-7020
Procédure de boot de la ZYNQ
 Il existe cinq sources de démarrage (d’amorçage)
possibles. Soit à partir d’un mémoire flash (NAND,
NOR, carte SD ou Quad-SPI) dans ce cas, le
démarrage est considéré comme un démarrage en
mode maître, soit à partir d’une connexion JTAG
dans ce cas, le démarrage est considéré comme un
démarrage en mode esclave. La carte Z-7020
possède seulement trois sources configurable par les
interrupteurs SW16.
Procédure de boot de la ZYNQ
Etude de cas
 Création d’une Application software avec SDK

Vous aimerez peut-être aussi