Vous êtes sur la page 1sur 79

ARCHITECTURES

CONCEPTION

UTILISATION

DES
FPGA
1
Plan
I. Introduction, historique
II. FPGA vs ASIC
III. Architecture et conception des FPGA
IV. Les FPGA Altera
V. Les FPGA Xilinx
VI. Utilisation des FPGA, CAO

2
Historique
1970 Introduction du terme PAL Texas Instrument

1ère ROM, Harris Semiconductor

1971 intel, 1er UV-PROM (effaçable par UV)

1972 Intel, 1er processeur : 4004

1973 André Truong et Francis Grenelle mettent au point et commercialisent le 1er


micro-ordinateur du monde, le Micral, made in France !

1975 Un certain Bill Gates fonde une petite société d’informatique : Microsoft

1978 1ère famille PAL commerciale

1980 Premiers microprocesseurs 32 bits chez intel et Motorola

1981 IBM lance le PC

3
Historique
1983 1er GAL effaçable électriquement, Lattice
1984 Apple lance le Macintosh
1984 Introduction du FPGA par XILINX : le XC2000 (de 600 à 1500 portes)
création de la société ALTERA
Technologie CMOS UV-EPROM
1985 mise sur le marché du 1er FPGA XILINX
1992 1er FPGA Altera : le Flex 8000 (15 000 portes max)
1993 Technologie EEPROM
2001 Lancement de la famille Virtex Xilinx
Lancement de la Stratix d’Altera
2005 Fabrication des FPGA avec des capacités de quelques millions de portes
et fonctionnant à des fréquences surpassant les 500 MHz

4
Historique

Evolution des FPGA de la famille Stratix d’Altera


et de la famille Virtex de Xilinx 5
Évolutions

En 2012, pour le fabriquant Xilinx, les plus gros


FPGA est un Virtex 7 :
• une capacités de 2 millions de portes
• des complexités de 6.5 milliards de transistors
• utilisant des puces de technologies à 28 nm qui
permet d'empiler 15 couches sur un substrat de
silicium
• avec des cœurs de microprocesseurs câblés
cadencés à des GHz
6
Évolutions

La technologie cuivre
(aujourd’hui maîtrisée) permet
d’augmenter la rapidité des
circuits donc d’augmenter les
fréquences de fonctionnement

7
Évolutions de la technologie
Évolution de la technologie

600 nm 250 nm 130 nm 65 nm 28 nm


Technologie : trois couches cinq couches 9 couches 12 couches 15 couches
de métal de métal de métal de métal de métal

Année : 1994 1998 2002 2006 2011


2013 : technologie cuivre 14 nm

8
Marché des FPGA

9
( milliards de dollars )
Les ventes de FPGA et CPLD
6

5
4,78

4
3,38
3

0
2009 2010 2011 Années
10
FPGA ? ASIC

11
Comparaison: Capacités
100M
Nombre de portes (log)

10M

1M

100k

10k
80% des design fonctionnent
aujourd’hui à moins de 200 MHZ
1k

1990 2000 2010 Années


12
Les ASIC
AVANTAGES
• hautes intégrations
• hautes performances (vitesse, low-power)
• coûts faibles pour de gros volumes de production
• personnalisation

INCONVENIENTS
• prix du 1er exemplaire
• pas d’erreur possible
• non-flexible
• time-to-market élevé
• fabrication réservée aux spécialistes (fondeur)
13
Les FPGA
AVANTAGES
• possibilité de prototypage
• time-to-market faible
• adaptabilité aux futurs évolutions grâce à la reconfiguration
• flexibilité

INCONVENIENTS
• intégration limité par les ressources de routage
• performances
• prix à l’unité élevé pour de grosses productions

14
Conclusion: ASIC vs FPGA
Le choix entre les FPGA ou les ASIC se fait en fonction du cahier des
charges de l’application :

• temps de mise sur le marché et durée de vie courte FPGA

• très petit nombre de circuits FPGA

• optimisation des performances ASIC

• grande série ASIC

15
Les FPGA (Field Programmable Gate Arrays)

L’architecture, retenue par Xilinx, se présente


sous forme de deux couches :

• une couche appelée circuit configurable,


• une couche réseau mémoire SRAM.

16
Les FPGA (Field Programmable Gate Arrays)

• La couche dite 'circuit configurable' est constituée d'une matrice


de blocs logiques configurables CLB permettant de réaliser des
fonctions combinatoires et des fonctions séquentielles.
• Tout autour de ces blocs logiques configurables, nous trouvons
des blocs entrées/sorties IOB dont le rôle est de gérer les
entrées-sorties réalisant l'interface avec les modules extérieurs .
La programmation du circuit FPGA appelé aussi LCA (logic
cells arrays) consistera par le biais de l'application d'un potentiel
adéquat sur la grille de certains transistors à effet de champ à
interconnecter les éléments des CLB et des IOB afin de réaliser
les fonctions souhaitées et d'assurer la propagation des signaux.
• Ces potentiels sont mémorisés dans le réseau mémoire SRAM.
17
Les FPGA (Field Programmable Gate Arrays)
• La configuration du circuit est mémorisée sur la couche réseau SRAM
et stockée dans une ROM externe. Un dispositif interne permet à
chaque mise sous tension de charger la SRAM interne à partir de la
ROM. Ainsi, un même circuit peut être exploité successivement avec
des ROM différentes puisque sa programmation interne n'est jamais
définitive.
• La mise au point d'une configuration s'effectue en deux temps: une
première étape purement logicielle va consister à dessiner puis simuler
logiquement le circuit fini, puis lorsque cette étape sera terminée on
effectuera une simulation matérielle en configurant un circuit réel et
l'on pourra alors vérifier si le fonctionnement réel correspond bien à
l'attente du concepteur et si besoin est identifier les anomalies liées
généralement à des temps de transit réels légèrement différents de ceux
supposés lors de la simulation logicielle ce qui peut conduire à des
états instables voire même erronés.

18
Principe de la reconfiguration
VGA
Flash OGG
OGG WMA
WMA
I/O

Processeur
MP3
MP3
AIFF
AIFF
 Flexible: Nécessité de service
central
RAM CNA  Évolutif :
CAN I/O  Mise à jour
MPEG 1
MPEG 2  Ajout de service
MPEG 4
Bluetooth
Bluetooth

802.11
802.11 VGA
GPRS
GPRS
Flash
I/O

Processeur
central
RAM CNA

CAN I/O

Accélérateur Flexible
Systèmes sur puce (SoC)

19
Accélérateur reconfigurable
Le concept de base de la reconfiguration
statique

La reconfiguration statique :

Chaque FPGA garde la même configuration

Gestionnaire
Mise Application 1 Application 2 Application N
sous d’application
tension

Exécution Exécution Exécution


FPGA 1 FPGA 2 FPGA N
Configuration
Traitement
d’application

Traitement

Gestionnaire
Résultat 1 Résultat 2 Résultat N
de résultat
Arrêt

Mémoire de 20
données
Le concept de base de la reconfiguration
dynamique totale

La reconfiguration dynamique totale: 1 - Mode sélectif :


Reconfiguration  Souplesse des applications
 Rupture des séquences
 Contrôle et choix du traitement
Traitement
Exécution
1
Configuration1 Configuration2 Configuration 3

Sélection
Architecture
Reconfigurable
Dynamiquement

Traitement Traitement
2 3
FPGA

Application 21
Le concept de base de la reconfiguration
dynamique totale

La reconfiguration dynamique totale: 2 - Mode d’auto-reconfiguration :


Reconfiguration  Meilleur utilisation du silicium
 Accélération des traitements
Traitement  Exécution avec des fréquences adaptées
1
Exécution
Configuration1 Configuration2 Configuration 3 Configuration 4
Sélection
Traitement
2
Architecture
Reconfigurable
Dynamiquement
Traitement
3

FPGA

Traitement
4

Application 22
Le concept de base de la reconfiguration
dynamique partielle

Reconfiguration dynamique partielle : Config 1 Config 2 Config 3


 Chargement continu de plusieurs tâches
 Meilleur manipulation des différentes tâches de l’application
 Exécution de certaines tâches lors du chargement

Mémoire Gestionnaire
principale de tâches Configuration 3
1
2
Exécution

Tâche
1
Tâche
2 FPGA

Tâche Tâche
3 4

Tâche Tâche
5 6
23
Les types de Reconfiguration ________
La Reconfiguration statique

Configuration 2
1
Start

Arrêter

Virtex-II Pro
Les types de Reconfiguration ________
La Reconfiguration statique

Configuration 2
Start

Arrêter

Virtex-II Pro 2
Les types de Reconfiguration _____
La Reconfiguration dynamique

Configuration 21
Start

Arrêter

Virtex-II Pro
Les architectures

L’architecture reflète la topologie du réseau de routage

Trois grands styles architecturaux s’affrontent


• îlots de calcul, majoritaire chez Xilinx
• hiérarchique, majoritaire chez Altera
• logarithmique, un peu exotique...

27
Les architectures îlots de calculs

Les éléments fonctionnels (logique, mémoire, IO) sont


regroupés sous forme de matrice

Ce type d’architecture est très répandu, en particulier chez


Xilinx, mais aussi chez ATMEL

28
Les architectures îlots de calculs

29
Les architectures îlots de calculs
Élément configurable :
• élément logique
• élément de mémorisation
EC • élément arithmétique
• entrée/sortie

Réseau de routage :
• lignes horizontales
• lignes verticales

Matrice de connexions

BC MC
Bloc de connexions

30
Architecture hiérarchique

Les réseaux de routage d’une architecture


hiérarchique dépendent du niveau de hiérarchie
dans lequel on se trouve.
Ceci permet une optimisation du routage par
niveau
Très répandu chez Altera et Lattice

31
Architecture hiérarchique

32
Architecture hiérarchique

Réseau de routage de
niveau 2

Élément Hiérarchique de
niveau 2

Réseau de routage de Réseau de routage de


niveau 1 niveau 3

Élément Hiérarchique de Élément Hiérarchique de


niveau 1 niveau 3
• éléments logiques
• éléments de mémorisation
• ... 33
Architecture logarithmique

Architecture logarithmique dans laquelle chaque niveau i


correspond à une matrice de 42i cellules de bases.
Chacun de ces niveaux possède des ressources de longueur
42i-1.

34
Architecture logarithmique
Cellule logique
Cell Cell Cell Cell de base Cell Cell Cell Cell

Cell Cell Cell Cell Cell Cell Cell Cell


Matrice de 16
cellules
Cell Cell Cell Cell Cell Cell Cell Cell

Lignes de
Cell Cell Cell Cell longueur Cell Cell Cell Cell
4 cellules

4*4 4*4 4*4 4*4 16*16 16*16 16*16 16*16


Lignes de
longueur
4*4 4*4 4*4 4*4 16 cellules 16*16 16*16 16*16 16*16

4*4 4*4 4*4 4*4 16*16 16*16 16*16 16*16

Lignes de
4*4 4*4 4*4 4*4 longueur 16*16 16*16 16*16 16*16
64 cellules
35
Les éléments logiques CLB

Les éléments logiques configurables nommé CLB


(Blocs Logique Configurables) sont les briques de
bases de tous les FPGA. Ils sont majoritairement
réalisés autour de LUT ( Look Up Table), des
portes logiques et des bascule D.

On rencontre toutefois des cellules logiques


rudimentaires à base de multiplexeurs

36
Les Look Up Tables
Ce sont de petits éléments de mémorisation, qui reflètent la
table de vérité d’une fonction logique.
LUT = Générateur de fonction In 0 In 1 In 2 In 3

LUT 4 entrées = RAM 2 octets

SRAM

SRAM

In 0
SRAM
In 1
LUT 4 Out
In 2 SRAM
In 3
SRAM

SRAM
Out

37
Les Look Up Tables
In 0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

38
Les Look Up Tables
In 0 = 0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

39
Les Look Up Tables
In 0 =0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

40
Les Look Up Tables
In 0 =0 In 1 = 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

41
Les Look Up Tables
In 0 =0 In 1 = 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out

42
Les Look Up Tables
In 0 =0 In 1 = 1 In 2 =1 In 3 = 1

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1 Out= 1 = In3 • In2 • In1 • Ino

43
Les Look Up Tables

Généralement le nombre d’entrées des LUT est de


quatre ou de six car c’est un bon compromis entre
vitesse et surface
Le nombre de LUT dans les blocs logiques varie de
2 à 4 généralement

44
Les Look Up Tables
Élément logique de base avec une LUT
Carry-In

ENTREES
SORTIES
LUT D

Portes
logiques

HORLOGE

Carry-Out

45
Les réseaux d’horloges
Les circuits sont de
plus en plus grands =>
augmentation de la
longueur des
connexions =>
les chemins d’horloges
sont plus longs =>
plus de retard =>
ASYNCHRONISME
MALSAINT !!!

46
Les réseaux d’horloges
Le problème 1 : JITTER : bruit de phase

Le problème 2 : CLOCK SKEW : Décalage entre


les transitions de la même horloge à différents
points d’un circuit.
Le problème 3 : on peut avoir besoin de
plusieurs horloges dans un même circuit
47
Les réseaux d’horloges
Les PLL
Phase-Locked Loop
( ALTERA )

Les DLL
Delay-Locked Loop
( XILINX )

48
Les cœurs de processeurs
Aujourd’hui les systèmes numériques font de plus en plus
appel conjointement à des ressources logicielles micro-
programmées (µP, µC, DSP) et des ressources matérielles
re-configurables (FPGA)
D’où l’idée de mettre sur une même puce un cœur de
microprocesseur et un cœur de logique configurable, les
deux étant optimisés technologiquement

Le cœur du processeur peut prendre environ 10% de la


surface totale de la puce
49
Les cœurs de processeurs

Xilinx propose des versions de la famille Virtex avec un ou


plusieurs cœurs de processeurs

Le Virtex peut contenir :

• de 1 à 4 cœurs Power-PC (RISC 32 bits) 125 MHz

• des milliers de portes logiques

50
Les alimentations en énergie

Le cœur est alimenté


généralement en 1.8 V (voir
1.5 V) car avec la technologie
de quelques nm, les oxydes ne
sont pas assez épais pour
supporter plus de tension

Les entrées sorties sont


alimentées sous 3.3V, 2.5V,
1.8V ou 1.5 V suivant le
standard choisi

51
IV- Les FPGA
Altera

52
La Famille Altera
1984 Débuts d’Altera qui vend des EPLD
1988 Lancement des CPLD MAX (Multiple Array matriX) qui sont des fétus de FPGA
1992 1er FPGA Altera : le FLEX 8000 (15 000 portes) (Flexible Logic Element matriX)
technologie 0.5 µm
1995 Lancement de la famille FLEX 10K (250 000 portes)
1997 Famille FLEX 6K bas coûts (24 000 portes)
1999 Famille APEX 20K (1 500 000 portes)
2000 Famille APEX 20K C utilisant la technologie cuivre
2000 Famille APEX 20K E avec plus de ressources mémoires technologie 0.18 µm
2001 Circuit Excalibur couplant une matrice FPGA APEX 20K 1000 et un cœur de
processeur ARM 9
2001 Famille APEX II (dont le but est de concurrencer le Virtex de Xilinx) (3 000 000 de
portes) technologie 0.15 µm
2002 Lancement du STRATIX concurrent direct du Virtex II Xilinx, technologie
cuivre 0.13 µm
2002 Lancement du Cyclone un petit FPGA (architecture STRATIX) pour
application grand public bas-coûts
53
La Famille Altera
Faible Milieux de Haute
Technologies performance
coût gamme
130 nm Cyclone Stratix

90 nm Cyclone II Stratix II

65 nm Cyclone III Arria I Stratix III

40 nm Cyclone IV Arria II Stratix IV


54
La Famille Altera
STRATIX

55
La Famille Altera

Toujours plus gros, toujours plus performant, Stratix. 56


La Famille Altera

57
La Famille Altera

58
La Famille Altera

59
V- Les FPGA Xilinx

60
La Famille Xilinx
1985 Lancement de la 1er famille de FPGA Xilinx le XC2000 (1500 portes - obsolète)
1987 Famille XC3000 (6000 portes - obsolète)
1991 Famille XC 4000 (500 000 portes)
1995 Famille XC 5200 spéciale petit design (18 000 portes) 0.6 µm 6 couches
1996 Innovations avec la famille XC 6200 (100 000) visant le coprocessing et le
reconfigurable dynamiquement, echec commercial
1998 Famille SPARTRAN vise la souplesse d’utilisation et les petits design
1999 Famille VIRTEX vise les fortes capacités ( 4 millions de portes)
techno 0,22 µm 5 niveaux de métallisation
1999 VIRTEX-E amélioration du VIRTEX avec plus de mémoires,
techno 0.18 µm 6 niveaux de métallisation
2000 Famille SPARTRAN II, FPGA moyennes capacités (100 000 portes) bas coûts,
ce sont de petits VIRTEX, techno 0.18 µm 6 niveaux de métallisation
2001 Famille VIRTEX II, toujours plus fort (10 millions de portes)
techno 0.15 µm 8 niveaux de métallisation, avec des transistors rapide 0.12 µm
2002 Famille VIRTEX II-Pro qui contient 4 cœurs de µP RISC Power-PC
2012 Famille VIRTEX 7
Xilinx propose aussi une gamme complète de CPLD 61
La Famille Xilinx

62
La Famille Xilinx

Technologies Faible coût Haute


performance
120/150 nm Virtex 2, 2 Pro
90 nm Spartan 3 Virtex 4
65 nm Virtex 5
45 nm Spartan 6
40 nm Virtex 6
63
La Famille Xilinx

64
La Famille Xilinx
Spartan 3 : Architecture
Configurable logic block (CLB)
Slice Slice

CLB CLB Logic cell Logic cell

Logic cell Logic cell

Slice Slice
CLB CLB Logic cell Logic cell

Logic cell Logic cell

65
La Famille Xilinx
Spartan 3 : Architecture

66
La Famille Xilinx

Spartan 3 Virtex 5, Virtex 6,


Virtex 4 Spartan 6

Look-Up Tables 4-input 6-input

Nombre de slices 4 2
par CLB

Nombre de LUTs 2 4
par CLB slice

67
La Famille Xilinx

68
La Famille Xilinx

69
VI- Autres Familles de FPGA

70
Autres exemples de FPGA

Il n’est pas nécessaire de détailler d’autres


architectures de FPGA, elles n’apportent rien
de plus que ce que l’on a vue chez Xilinx ou
Altera

Mais il est toutefois intéressant de connaître


l’offre d’autres fabricants

71
Marché des FPGA

72
Autres exemples de FPGA
ACTEL ProASIC technologie flash, ASIC
reprogrammable, non volatile et à
granularité fine.

RTAX FPGAs technologie antifusibles


=> OTP (One Time Programmable),
FPGA les plus rapide à 350MHz
série militaire, tolérance aux radiations

73
Autres exemples de FPGA
ATMEL AT40K, technologie SRAM, architecture
îlots de calcul, faible densité (5K à 50K
portes), reconfigurable dynamiquement,
des cœurs FPGA dérivés de cette
famille peuvent s’intégrer dans les
circuits prédiffusés ATMEL.

Lattice MachXO2, technologie SRAM, archi


îlots de calcul, densité de 125K à 1,2M
portes. EEPROM de configuration
intégré => configuration à la mise sous
tension en quelques µs
74
Autres exemples de FPGA
QuickLogic Eclipse II, série Quick (Ram, PCI),
technologie antifusible (One Time
Programmable), faible densité
de 47K à 400K portes

Cypress PSoC® 5 , architecture mixte


CPLD-FPGA

75
VII- Utilisation des FPGA, CAO

76
Programmation des FPGA

77
Outils de CAO
Tous les fabricants de FPGA proposent des
outils de CAO, passage obligé pour
configurer leurs circuits

pour Xilinx c’est ISE - Foundation

pour Altera c’est Quartus II

Avec ces outils, on peut réaliser tout le flot


de conception de la synthèse à la
configuration. Pour certaines phases du flot
ces outils font en fait appel à d’autres outils

78
Outils de CAO

Flot FPGA

Synthèse

Simulation
79

Vous aimerez peut-être aussi