Vous êtes sur la page 1sur 145

LES CIRCUITS LOGIQUES

PROGRAMMABLES

El hadj youssef Wajih

A.U : 2014 - 2015


PLAN
I. Introduction, historique
II. FPGA vs ASIC
III. Architecture et conception des FPGA
IV. Famille de FPGA Altera
V. Famille de FPGA Xilinx
VI. Autres Exemples de FPGA
VII. Utilisation des FPGA, CAO
VIII. CoDesign, SORC et nouvelles
Conclusion

2
I. INTRODUCTION

3
DÉFINITION

FPGA : Field Programmable Gate Array

En français :
Composant, constitué d’un ensemble de ressources
logiques élémentaires configurables pouvant être
mises en relation par un réseau d’interconnexions
également configurable

4
HISTORIQUE
IXème av JC Les chinois comptent avec un boulier !
1640 Blaise Pascal, invente une machine mécanique à additionner et soustraire : la
Pascaline
1875 Sir J.W. Swan invente le tube à incandescence
1940 Utilisation des premières PLL (principe étudié en 1932 par Bellescize)
1946 ENIAC 1er calculateur électronique (18 000 tubes, tient dans un hall de 10*17m)
Von Neumann présente le concept de programme enregistré
1948 Bardeen, Brattain et Shockley (Bells Labs) inventent le transistor bipolaire
1er ordinateur le SSEC d’IBM
1950 1er circuit reconfigurable « the fuse configurable diode matrix » Harris
Semiconductor
1958 Jack Kibly invente le circuit intégrée, brevet Texas
Fairchild dépose un brevet sur la fabrication des CI par procédé Planar
1962 Famille TTL

5
HISTORIQUE
1968 Famille MOS
Robert Noyce et Gordon Moore créer une startup : intel
1er PLA « read only associative memory ROAM » IBM
1969 Neil Amstrong marche sur la Lune
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, MMI
1980 Premiers microprocesseurs 32 bits chez intel et Motorola
1981 IBM lance le PC

6
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 du Virtex II Xilinx (jusqu’à 10 millions de portes)
2005 FPGA avec des capacités supérieures à 50 millions de portes fonctionnant à
des fréquences surpassant les 500 MHz

7
MARCHÉ DES FPGA
REVENUS NETS DE XILINX ET ALTERA

1200000

1000000
REVENUS NETS EN $

800000

600000

400000

200000

0
1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
ANNEE

XILINX ALTERA
8
MARCHÉ DES FPGA
PARTS DE MARCHE DES FABRICANTS DE FPGA

40

35

30

25
Xilinx
Altera
% 20
Lattice
Other
15 Actel

10

0
1998 1999 2000
ANNEE
9
MARCHÉ DES FPGA
PARTS DE MARCHE DES FABRICANTS DE FPGA POUR 2000

Actel
Other 6%
8%

Xilinx
Lattice 38%
14%

Altera
34%

10
ÉVOLUTION DE LA TECHNOLOGIE
Évolution de la technologie

0.6 µ 0.5 µ 0.35 µ 0.25 µ 0.18 µ


Technologie : trois couches trois couches quatre couches cinq couches six couches
de métal de métal de métal de métal de métal
Taille relative : 100% 78% 32% 19% 12%

Année : 1994 1995 1996 1998 1999

2002 : techno cuivre 0.13 µm à 8 couches de métal


2004 : techno cuivre 0.09 µm à 12 couches de métal (200 000 portes/mm²)
11
ÉVOLUTION DE LA TECHNOLOGIE

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

12
ÉVOLUTION DES PRIX
1,2
INDICE PRIX PAR ELEMENT LOGIQUE

0,8 Le prix par élément logique


(Source : Altera)

diminue de 40 % par an
0,6

0,4

0,2

0
1995 1996 1997 1998 1999 2000
13
ÉVOLUTIONS

Prix (de l’élément logique) - 46% par an

Densité (logique) + 55% par an

Vitesse (fréquence système) + 35% par an

14
ÉVOLUTIONS

D’après Xilinx, en 2005 les plus gros FPGA auront


• des capacités de 50 millions de portes
• des complexités de 2 billions de transistors
• utilisant des technologies à 70 nm avec 12 couches
de métallisations (cuivre)
• avec des cœurs de microprocesseurs câblés
cadencés à 1GHz

15
FPGA ? ASIC

16
TAXONOMIE DES CI (HARD)
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standard Sea of Gate


FPGA CPLD PAL
Custom ASIC cell
gate array

SRAM Antifuse
ASIC : Application Specific Integrated Circuit
FPGA : Field Programmable Gate Array
PLD
CPLD : Complex Programmable Logic Device
PAL : Programmable Array Logic
GAL : Generic Array Logic = PAL
17
SRAM : Static Random Access Memory
ASIC FULL CUSTOM
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standard Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

ASIC : Application Specific Integrated Circuit

18
ASIC FULL CUSTOM

Au départ

Au final

SPECIFICATIONS

19
ASIC STANDARD CELL
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standard Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

ASIC : Application Specific Integrated Circuit

20
ASIC STANDARD CELL

Au départ

BIBLIHOTEQUE Au final
D’ELEMENTS
PRE-CARACTERISES
SPECIFICATIONS

21
ASIC GATE ARRAY
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standart Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

ASIC : Application Specific Integrated Circuit

22
ASIC GATE ARRAY

Au départ

Au final

SPECIFICATIONS

Il est possible aussi d’utiliser des bibliothèques de composants pré-caractérisés 23


PAL
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standart Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

PAL : Programmable Array Logic

24
PAL

Matrice de ET réalisant
tous les produits
possibles connectée aux
sorties par des OU

Grande surface de Si
utilisée. Ces circuits ne
sont plus utilisés
aujourd’hui

25
CPLD
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standart Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

CPLD : Complex Programmable Logic Device

26
CPLD

Les CPLDs regroupent


plusieurs PALs
PAL PAL
interconnectés par un
réseau de connexions
programmables.

Les CPLDs sont les E/S MATRICE D’INTERCONNECTIONS E/S


prémisses des premiers
FPGAs.

Ces circuits ne sont plus PAL PAL


utilisés aujourd’hui car
remplacés par les FPGAs.

27
FPGA
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standart Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

FPGA : Field Programmable Gate Array


A SUIVRE !!!

28
COMPARAISON

ASIC
CARACTERISTIQUES FPGA
GATE ARRAY STANDARD CELL FULL CUSTOM

DENSITE FAIBLE MOYENNE MOYENNE GRANDE

FLEXIBILITE GRANDE PETITE MOYENNE GRANDE

ANALOGIQUE NON NON OUI OUI

PERFORMANCE FAIBLE MOYENNE BONNE TRES BONNE


TEMPS DE
TRES PETIT MOYEN MOYEN GRAND
CONCEPTION
COUT DE
TRES PETIT MOYEN MOYEN TRES GRAND
CONCEPTION
UTILISATION DES
SIMPLE COMPLEXE COMPLEXE TRES COMPLEXE
OUTILS
VOLUME DE
PETIT MOYEN GRAND GRAND
PRODUCTION

29
CAPACITÉS COMPARÉES

100M
Nombre de portes (log)

10M

1M

100k

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

1989 année 1997 2001


30
LES FPGA SONT AU CŒURS DES SYSTÈMES

31
TEMPS DE MISE EN ŒUVRE
TEMPS DE MISE EN OEUVRE COMPARES

FPGA

ASIC

0 1 2 3 4 5 6 7 8 9 10

APPRENTISSAGE SAISIE COMPILATION SIMULATION FABRICATION 32


LES ASIC
AVANTAGES
• hautes intégrations
• hautes performances (vitesse, low-power)
• coûts faibles pour de gros volumes de production
• personnalisation
• sécurité industrielle
INCONVENIENTS
• prix du 1er exemplaire
• pas d’erreur possible
• non-flexible
• time-to-market élevé
• fabrication réservée aux spécialistes (fondeur)
33
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

34
CONCLUSION

Le choix entre FPGA ou 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

35
FPGA ET CONJONCTURE ÉCONOMIQUE MONDIALE

Les FPGA sont les rares produits d’électronique qui profite de la crise
économique actuelle dans le domaine des technologies de pointes
ceci pour plusieurs raisons :
• diminution des volumes de production
• diminution de la durée de vies des produits
• possibilités techniques des FPGAs largement suffisantes pour la plus
part des applications

« en 2006, il y aura un circuit logique programmable dans chaque


appareil numérique …. »

36
FPGA ET CONJONCTURE ÉCONOMIQUE MONDIALE

37
III. ARCHITECTURE
&
CONCEPTION
38
LES DIFFÉRENTES FAMILLES DE CIRCUITS LOGIQUES PROGRAMMABLES
1) QUELQUES DÉFINITIONS

 EEPROM ou E2PROM (Electrical Erasable Programmable Read-


Only Memory) :Mémoire programmable à lecture seule, effaçable
électriquement.
 EPLD (Erasable Programmable Logic Device):Circuits logiques
reprogrammables.
 FPGA (Field Programmable Gate Array):Réseau de portes
programmables
 GAL (Generic Array Logic):Circuits logiques PAL reprogrammables
à technologie CMOS.
 ISP (In System Programmable):Circuit que l’on peut programmer
(et donc effacer) même lorsqu’il est en place sur l’application.
 PAL (Programmable Array Logic):Circuits logiques programmables
dans lesquels seules les fonctions ET sont programmables, les
fonctions OU ne le sont pas.
 PLD (Programmable Logic Device):Famille des circuits
programmables qui comprend les PAL,GAL,EPLD et FPGA.

39
2)LES DIFFÉRENTES FAMILLES DE PLD
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standard Sea of Gate


FPGA CPLD PAL
Custom ASIC cell
gate array

SRAM Antifuse
ASIC : Application Specific Integrated Circuit
FPGA : Field Programmable Gate Array
PLD
CPLD : Complex Programmable Logic Device
PAL : Programmable Array Logic
GAL : Generic Array Logic = PAL
40
SRAM : Static Random Access Memory
Les différentes familles de PLD
(suite)
TYPE Nombre de portes Matrice ET Matrice OU Effaçable
intégrées

PROM 2 000 à 500 000 Fixe Programmable Non

PAL 10 à 100 Programmable Fixe Non

GAL 10 à 100 Programmable Fixe Electriquement

EPLD 100 à 3000 Programmable Fixe Aux U-V


Electriquement

FPGA 3000 à 6.000.000 Programmable Programmable Electriquement


Non
41
A) LES PAL

 L’invention des PAL date d’une vingtaine


d’année, ce sont les ingénieurs de la société MMI
rachetée par AMD qui ont eut l’idée d’utiliser la
technologie des fusibles.
 Ce sont des composants programmables une
seule fois.

42
Structure de base d’un PLD

•Ils possèdent des matrices


b a
« ET » programmables et des
1 1 1 1

matrices « OU » fixes.
&

•La fusion des fusibles est


obtenue en appliquant à leurs &

bornes une tension de 11,5 V


pendant 10 à 50 µS (leur &

tension de fonctionnement
est environ de 5V).
&

•Cette opération est bien sûr


effectuée en utilisant un >1 >1
43
programmateur adapté. Q0 Q1
Structure de base avec les normes des constructeurs
.

b a b a

: Fusible intact : Fusible intact

Q0 Q1 Q0  a.b  a.b Q0 Q1 Q1  a.b  a.b


Q0  Q1  a.b.a.b  a.b.a.b  a.b.a.b  a.b.a.b  0

PLD ayant ses fusibles intacts PLD programmé 44


Configuration des entrées/sorties

•Certaines broches de ces circuits


peuvent être utilisées aussi bien
Porte trois états permettant
en entrée qu’en sortie grâce à un de déconnecter la broche
système de logique 3 états. de la matrice "ET"

•La commande de cette dernière I /O


est configurée au moment de la
programmation.

•La structure de sortie permet


aussi de réinjecter les sorties en
entrée (Feed-back).

45
REFERENCE DES PAL

Les diverses possibilités de ces circuits et leur standardisation ont conduit les constructeurs à
définir une nomenclature permettant de décoder assez facilement la référence des PALs.
Lettre(s) Code(s) Structure de sortie
PAL : PAL
(CE) : CE pour version CMOS
XX : Nombre d’entrées L Combinatoire active bas

AB : Structure de sortie H Combinatoire active haut


YY : Nombre de sorties
C : Consommation C Combinatoire complémentaire
ZZ : Vitesse
DEF : Type de boîtier R Registre synchrone (D)

RA Registre asynchrone

X Registre OU exclusif

V Versatile
46
Remarques :
 Le nombre d’entrées varie entre 10 et 22.
 Le nombre de sorties varie entre 1 et 10.
 La puissance est indiquée par une lettre code.
 La vitesse indique le temps de propagation en nS.
 Les versions versatiles ont une cellule de sortie programmable permettant d’obtenir n’importe quel
autre type de structure de sortie (L, H, R ...).
 Les versions CMOS (CE) sont effaçables électriquement. Les fusibles sont remplacés par des
transistors de type MOS FET. Ce ne sont ni plus ni moins que des « GALs ».

Exemple : PAL 16 L 8 H 15 PC

PAL : PAL
: Nombre d’entrées :
: Structure de sortie :
: Nombre de sorties :
: Consommation :
: Vitesse :
: Type de boîtier :

47
STRUCTURES DE BASE DES PAL
Brochage du PAL 16R6 Brochage du PAL 16L6
- -

48
PAL22V10 : SORTIE (VERSATILE)

49
PAL22V10

50

ZOOM Complet
B) LES GAL
 Les GAL sont des PAL à technologie CMOS, c’est à dire
programmables et surtout effaçables électriquement.
 On retrouve les mêmes références qu’en PAL.

Protection contre la duplication.

 Les GAL sont dotés d’un bit de sécurité qui peut être
activé lors de la programmation empêchant ainsi toute
lecture du contenu du circuit. Ce bit est remis à zéro
seulement en effaçant complètement le GAL.
 Il est constitué d’un ensemble de huit octets, appelé
signature électronique, pouvant contenir des
informations diverses sur le produit.

51
C) LES EPLD
Généralités
 L’introduction des EPLD telle que l’a voulue
ALTERA visait deux buts :

 Densité d’intégration supérieure aux PAL

 Fonctionner à une vitesse au moins égale aux


PAL bipolaires

52
EPLD : DESCRIPTION FONCTIONNELLE

Les EPLD de la famille MAX possèdent une architecture


comportant les éléments suivants :
 Logic array blocks (LABs)

 Macrocellules

 Réseau d’interconnections Programmables (PIA)

 I/O control blocks

Les séries MAX incluent des entrées dédiées telles que


des (horloges, clear,..) pour chaque macrocellule.

53
EXEMPLE DE EPLD : LE MACH 4

Le MACH 4 est un EPLD


programmable in situ (ISP)
par l'intermédiaire d'un bus
J-TAG.
Il dispose de 32 entrées /
sortie, de matrices « ET »
programmables, de matrices
"OU" fixes, d'une matrice
centrale d'interconnexion,
d'une circuiterie d'horloge et
de 32 ou 64 macrocellules.
L'architecture interne du
MACH 4-32/32 est
équivalente à 4 PALCE 22V10
interconnectés.

54
D) 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.

55
LES FPGA

 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
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 56
SRAM.
LA SRAM

 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.

 On voit tout le parti que l'on peut tirer de cette souplesse en


particulier lors d'une phase de mise au point. 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
 Une deuxième étape: on effectue 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..
57
ARCHITECTURE INTERNE DU FPGA
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...

58
ARCHITECTURE Î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

59
LES COMPOSANTS LOGIQUES PROGRAMMABLES :

ARCHITECTURES GLOBALES

Figure 1 : Structure of a CPLD


Les MACROCELL = P-TERM
(PAL-Like)

60
A) ARCHITECTURE Î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

61
LES BLOCS DE CONNEXIONS

EC

BC
EC

62
B) 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

63
ARCHITECTURE HIÉRARCHIQUE

64
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 65
• ...
C) ARCHITECTURE LOGARITHMIQUE

Architecture hiérarchique 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.

Exemple typique: le circuit XC6200 de Xilinx

66
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
67
LES ÉLÉMENTS LOGIQUES

Les éléments logiques configurables sont les briques de bases de


tous les FPGA, ils sont majoritairement réalisés autour de LUT(Look
Up Table) de chaîne de propagation rapide de la retenue et de bascule
D.

On rencontre toutefois des cellules logiques basiques à base de


multiplexeurs

68
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.

In 0 In 1 In 2 In 3
LUT = Table de scrutation
LUT 4 entrées = RAM 2octets
SRAM

SRAM

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

SRAM
Out

69
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

Out= 1 = In3 • In2 • In1 • Ino


70
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

71
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

72
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

73
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

74
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

75
LES LOOK UP TABLES
Généralement le nombre d’entrées des LUT est de quatre car c’est un
bon compromis entre vitesse et surface
Le nombre de LUT dans les éléments logiques varie de 2 à 4
généralement
Résultats d’une étude de l’Université de Toronto :

Critère Taille des LUT Nombre de LUT


Surface 3–4 6 – 10
Délais 7 4 – 10
Surface et délais 4–6 4 – 10
76
LES LOOK UP TABLES
Élément logique de base avec LUT
Carry-In

ENTREES
SORTIES
LUT D

FAST
CARRY
CHAIN
HORLOGE

Carry-Out 77
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 !!!

78
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
79
SOLUTIONS D’ASSERVISSEMENT DES HORLOGES
Les PLL (analogique)
Phase-Locked Loop
(ou boucle à phase asservie,
ou encore boucle à
verrouillage de phase)
( ALTERA )

Les DLL (numérique)


Delay-Locked Loop (changer
la phase d'un signal d'horloge)
( XILINX )

80
CARACTÉRISTIQUES DES PLL ET DLL

81
COMPARAISON PLL VS DLL

Comparaison "objective"
faite par ALTERA

Bien que plus performantes


les PLL sont aussi beaucoup
plus complexes à intégrer
(mixage analogique et
numérique)

Avons nous besoin d’une


telle précision ???

82
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 un même puce un cœur de
microprocesseur et un cœur de logique configurable,
les deux étant optimisés technologiquement

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


la surface totale de la puce
83
LES CŒURS DE PROCESSEURS
RAM double port RAM simple port Cœur
Altera propose le circuit Excalibur ARM 922T
contenant :

• une partie configurable :


type APEX 20K1000

• un cœur de processeur :
ARM9 (32 Bits) à 200MHz
8 K octets de cache
Instructions
8 K octets de cache
Données
84
Matrice FPGA
LES CŒURS DE PROCESSEURS
PLL UART External Trace
Processor & Memory
Interfaces Module SRAM SRAM SRAM
Interfaces
Coeur de
JTAG Timer processeur
I-CACHE Interrupt
D-CACHE
Watchdog ARM922T DPRAM DPRAM DPRAM
ARM 8K Bytes Controller
8K Byte
Timer

XA1

LEs 4160 32 Kbytes SRAM


ESB Bytes 6.5K 16 Kbytes DPRAM

FPGA
XA4
LEs 16400
128 Kbytes SRAM
ESB Bytes 26K 64 Kbytes DPRAM

LEs 38400 XA10


256 Kbytes SRAM
ESB Bytes 40K 128 Kbytes DPRAM
85
LES CŒURS DE PROCESSEURS

Xilinx propose aussi une version de son circuit


Virtex II avec un cœur de processeur

le Virtex II-Pro comprenant :

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

• matrice VIRTEX avec capacité de 900 mille portes

86
LES ALIMENTATIONS EN ÉNERGIE

Le cœur est alimenté


généralement en 1.8 V (voir
1.5 V) car avec la technologie
à 0.18 µm 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

Dans la plupart des cas il faut deux alimentations


Attention à la consommation des E/S => minimiser leur nombre !!! 87
LES ALIMENTATIONS EN ÉNERGIE

Technologiquement pour permettre aux


entrées sorties de supporter des tensions
d’alimentations jusqu’à 3.3V on effectue
plusieurs oxydations avec des masques
spéciaux

De cette façon la technologie utilisée pour


les entrées-sorties n’est pas la même que
pour le cœur

88
RÉPARTITION DE LA CONSOMMATION DE PUISSANCE

RESEAU D’HORLOGE
21%

ENTREES SORTIES
9% RESSOURCES DE ROUTAGE
65%

RESSOURCES LOGIQUES
5%

89
MODÉLISATION DE LA CONSOMMATION DE PUISSANCE
La consommation globale du circuit peut être donnée par le modèle
suivant :
P = Pstat + α*[Cwire + Cswitches]*Vdd²*f
De ce fait la répartition vue précédemment est vraie dans certaines
conditions:
• Technologie (Pstat , C, Vdd)
• Fréquence (action linéaire)
• Taux d’activité (action linéaire)
• Taux d’occupation (C)
• Algorithmes de placement routage (fmax, C)
• Nombre d’entrées sorties utilisées
=> du fait de ces nombreux paramètres il est très compliqué de trouver
un moyen d’estimer la consommation de puissance du circuit pour une
application 90
Les architectures de FPGA sont donc très
variées, tant aux niveau du routage que du
grain des ressources qui les composent.
Savoir quels types d’architecture et de
ressources sont les plus en adéquation avec
l’application que l’on développe reste un
challenge aujourd’hui.

91
IV. LA FAMILLE
ALTERA

92
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
Février 2002 : Lancement du STRATIX concurrent direct du Virtex II Xilinx, technologie
cuivre 0.13 µm
Septembre 2002 : Lancement du Cyclone un petit FPGA (architecture STRATIX) pour
application grand public bas-coûts
93
LA FAMILLE ALTERA

STRATIX

94
APEX II - CARACTÉRISTIQUES

Le plus gros composant disponible est l’APEX II EP2A70


Caractéristiques MAX:
• 3 000 000 de portes utilisables
• 1 146 880 bits de mémoires RAM soit 140 Kilo octets
• 4 PLL
• cœur alimenté en 1.5 V
• 1 060 entrées sorties (tension 1.5 V, 1.8 V, 2.5 V ou 3.3 V)
• 380 Mbps de débit en entrées sorties
• technologie cuivre 0.15 µm 8 niveaux de métallisation
• taille de la puce 40*40 mm soit 1600 mm²
95
APEX II - ARCHITECTURE
L’architecture est de type hiérarchique, au premier niveau de hiérarchie
apparaisse les MegaLAB : Mega Logic Array Block

4 rangées de MegaLAB
soit au total 280 MegaLAB

70 colonnes de MegaLAB 96
APEX II - MEGALAB

Un MegaLAB contient de 16 à 24 LAB


(Logic Array Block)
et 1 ESB (Embedded System Block)

97
APEX II - LAB

Les LAB sont constitués de 10 LE : Logic Element

98
APEX II - LE

Le nombre max de LE pour


un APEX II est de 67 200

99
APEX II - CARRY CHAIN

100
APEX II - ESB

Bloc de mémoire de 4096 bits


configurable en simple ou
double port
Peut être utilisé en CAM
(Content Access Memory)
et en matrice PAL

101
APEX II - ENTRÉES SORTIES

102
APEX II - PLL

103
STRATIX

Toujours plus gros, toujours plus performant, Stratix, le dernier née d’Altera !
104
STRATIX - ARCHITECTURE

105
STRATIX - ARCHITECTURE

106
STRATIX - BLOCS MÉMOIRES

107
STRATIX - DSP ÉLÉMENTAIRES

Des blocs multiplieurs sont insérés

108
STRATIX - RÉSEAU D’HORLOGES

109
ÉVOLUTIONS FUTURES

Progression de la famille STRATIX:

Version Excalibur avec un cœur ARM10

Version bas coûts, plus petite, pour les grandes


séries (=> CYCLONE)

110
VI. FAMILLE

XILINX
111
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

112
Xilinx propose aussi une gamme complète de CPLD
LA FAMILLE XILINX

113
VIRTEX II - CARACTÉRISTIQUES
Le plus gros composant disponible est le VIRTEX II XC2V 10000
Caractéristiques MAX:
• 10 millions de portes utilisables (122 880 LUT et 10 *+ de bascule D)
• 5 376 K bits de mémoires RAM soit 656 Kilo octets
• 192 Multiplieurs (18*18 bits à 200MHz)
• 12 DLL
• cœur alimenté en 1.5 V
• 1 108 entrées sorties (tension 1.5 V, 1.8 V, 2.5 V ou 3.3 V)
• Fréquence interne 420 MHz
• 840 Mbps de débit en entrées sorties
• technologie allu 0.15µm 8 niveaux de métallisation
• taille de la puce 40*40 mm soit 1600 mm² 114
VIRTEX II - ARCHITECTURE
CLB : Configurable Logic Block
CLB
Slice

115
VIRTEX II - RÉSEAU DE ROUTAGE

116
VIRTEX II - RÉSEAU D’HORLOGES

DCM : Digital Clock Manager


117
VIRTEX II - DCM
Digital Clock Manager

118
VIRTEX II - ENTRÉES SORTIES

119
VIRTEX II - CONFIGURATION

120
VIRTEX II - ÉVOLUTION

121
VIRTEX II PRO- ARCHITECTURE

122
VII. AUTRES
EXEMPLES
DE FPGA
123
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

124
AUTRES EXEMPLES DE FPGA

ACTEL ProASIC technologie flash, ASIC


reprogrammable, non volatile et à
granularité fine, ISP. Utilise les outils
ASIC ou FPGA
AXELERATOR technologie antifusibles
=> OTP (One Time Programmable),
FPGA les plus rapide à 500MHz interne
et 300MHz de fonctionnement système
HiRel, RT, RH, technologie antifusibles
série militaire, tolérance aux radiations
125
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 ispXPGA, technologie SRAM, archi


îlots de calcul, densité de 125K à 1,2M
portes. EEPROM de configuration
intégré => configuration à la mise sous
tension en moins de 200 µs 126
AUTRES EXEMPLES DE FPGA

Quick
Logic pASIC (1,2 et 3), série Quick (Ram, PCI),
technologie antifusible (One Time
Programmable), faible densité
de 1K à 90K portes

Cypress CY39K, architecture mixte CPLD-FPGA

127
VIII. UTILISATIONS
&
CAO
128
PROGRAMMATION DES PLDS.
Cahier des charges
La programmation des
PLDs nécessite un Mise en « équation » du problème
logiciel adapté pour le
développement du Résolution du problème sous forme d’équation
logique, de logigramme ou d’algorithme
programme et un
programmateur Choix du PLD en fonction du nombre d’entrées et de
sorties
permettant de
« griller » le circuit.
Saisie des équations logiques, de la table de vérité, du
logigramme ou de l’algorithme avec le logiciel
Le fichier JEDEC est
un ensemble de Simplification logique
données binaires
indiquant au Génération d’un fichier au format JEDEC Ces étapes sont
effectuées par le
programmateur les logiciel
fusibles à « griller ». Simulation

Programmation du PLD à l’aide du fichier JEDEC et


du programmateur
129

PLD programmé
130
OUTILS DE CAO

Les outils de CAO sont les points faibles de ces circuits. Si un


circuit est très performant il ne se vendra pas si les outils qui
lui sont associés ne sont pas performants !

Chez Xilinx 50% des ingénieurs de R&D se consacrent à ces


outils !

131
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 ou MAX + 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
132
AUTRES OUTILS DE CAO

Flot FPGA

Synthèse

Simulation
133
IP : INTELLECTUAL PROPERTY
Digital Signal Processor,
Communications Bus Interface
Processing Peripheral
ADPCM (u-law, PCI Target Color Space Converter NiosTM Processor
a-law)
PCI Master-Target Correlator Tensilica X-tensa
ATM Controller Processor
PCI-X Digital Modulator
CRC PalmChip Bus
CAN Bus Discrete Cosine Transform
Ethernet MAC SDRAM Controller
(10/100/Gigabit) IIC Master & Slave Fast Fourier Transform
DDR-SDRAM
HDLC Protocol Core IEEE 1394 FIR Compiler Controller
IMA Controller PowerPC Bus IIR Filter QDR-SDRAM
Arbiter Controller
SONET/SDH Framer Image Processing Library
PowerPC Bus 8237 DMA Controller
T3/E3 Framer Master NCO
Reed Solomon 8255 Peripheral
Packet Over SONET PowerPC Bus Slave Interface
Processor Encoder/Decoder
USB Function 8259 Interrupt
Telephony Tone Generator Controller Interleaver/Deinterleaver
Controller
Utopia Master & Slave USB Host Viterbi Decoder
8254 Timer/Counter
Controller Turbo Decoder
POS-PHY Interface 8051, 6502, Z80
134
Et plus encore !
EXEMPLE D’IP : NIOS

NIOS : cœur de processeur SRAM

PBM

IRQ
RISC générique optimisé CPU
FLASH
Caractéristiques :
• données sur 16 ou 32 bits
Timer
• 128, 256 ou 512 registres
Serial
• registres à décalage rapide ( 1, Port UART
3, 7, 15 ou 31 bits/clock)
• possibilités de lui adjoindre
des périphériques (UART, RAM,
ROM)
12% d’un Ici le reste de
EP20K200E votre système

135
APEX EP20K200E
IX. EVOLUTIONS

CODESIGN, SORC

136
LES NOUVELLES UTILISATIONS DES FPGA

Longtemps réduit au prototypage, aujourd’hui les FPGA sont utilisés,


pour leur capacité de reconfiguration, dans des systèmes
électroniques complexes, même pour de la grande série.

• le CoDesign pour le Run Time Reconfigurable

• les SORC : System-On-a-Reconfigurable-Chip

137
LE CODESIGN
Définition : Les méthodes de CoDesign sont des méthodes de
développement simultané (de manière concurrente) des parties HW et
SW (spécification, design, vérification)

SW = microprocesseur HW = FPGA ou ASIC

Buts :
• Gérer au mieux l’hétérogénéité de la nature des fonctions qui
composent le système (du logiciel à l’architecture reconfigurable)
• Comparer les différents choix de partitionnement
• Définir les interfaces entre le SW et le HW
• Valider le système complet (co-vérification et co-simulation)
138
FLOT DE CODESIGN
SPECIFICATION HAUT NIVEAU DE L’APPLICATION

ordonnancement de l’application
proposition de candidats HW et SW
ESTIMATION SYSTEME

ESTIMATION LOGICIELLE ESTIMATION MATERIELLE

PARTITIONNEMENT Choix des réalisation HW ou SW

SYNTHESE LOGICIELLE SYNTHESE INTERFACE SYNTHESE MATERIELLE

COSIMULATION

Retour d’expérience IMPLEMENTATION


HW et SW

139
TESTS
LES SORC
Technique héritière direct des SOC : System On Chip

Différentes notations :

• SORC (Xilinx) : System On a Reconfigurable Chip


• SOPC (Altera) : System On a Programmable Chip
• CSOC : Configurable System On Chip

L’utilisation des techniques de CoDesign est inévitable !

L’engouement pour les SORC est certain vue le nombre de cœur de


processeurs (IP ou câblés) présents sur le marché 140
CONCLUSIONS

141
LE FUTUR

142
LE FUTUR
Processeurs re-programmant
leur environnement
en temps réel :
« Hardware intelligent
programmé à haut niveau »

143
LE FUTUR
Circuit programmable Analogiques
et Mixtes : (www.anadigm.com)

144

Intégration de MEMS : Plus tard


MERCI ...

145

Vous aimerez peut-être aussi