Vous êtes sur la page 1sur 93

Implantation logicielle et/ou matérielle

FPGA : Historique

IXème av JC Les chinois comptent avec un boulier !


1640 Blaise Pascal, invente une machine mécanique à additionner et soustraire
1875 Sir J.W. Swan, 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

1
Implantation logicielle et/ou matérielle

FPGA : 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

2
Implantation logicielle et/ou matérielle

FPGA : 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 marchet 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

3
Implantation logicielle et/ou matérielle

FPGA : marché
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

4
Implantation logicielle et/ou matérielle

FPGA : marché
PARTS DE MARCHE DES FABRICANTS DE FPGA

40

35

30

25
Xilinx
Altera
% 20
Lattice
Other
15 Actel

10

0
1998 1999 2000
ANNEE

5
Implantation logicielle et/ou matérielle

FPGA : marché
PARTS DE MARCHE DES FABRICANTS DE FPGA POUR 2000

Actel
Other 6%
8%

Xilinx
Lattice 38%
14%

Altera
34%

6
Implantation logicielle et/ou matérielle

FPGA : É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²)

7
Implantation logicielle et/ou matérielle

FPGA : É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

8
Implantation logicielle et/ou matérielle

FPGA : Coût de production

300 mm
200 mm

L’augmentation de la taille de 200mm à 300mm permet des économies


d’échelles =>

Pour un coût égal à 1.9 fois celui du 200 mm

Intégration de 2.3 à 2.5 fois plus => diminution des prix de reviens

9
Implantation logicielle et/ou matérielle

FPGA : Problème technique


Pourcentage de perte à la
fabrication du à
l’augmentation de la taille
des wafers (de 200 à 300
mm) =>

300 mm

200 mm

Ressources surnuméraires déconnectables


permettent de prévoir le % de perte à la fabrication

10
Implantation logicielle et/ou matérielle

1,2 FPGA : Évolution


1
INDICE PRIX PAR ELEMENT LOGIQUE

0,8 Le prix par élément logique


diminue de 40 % par an
(Source : Altera)

0,6

0,4

0,2

0
1995 1996 1997 1998 1999 2000

11
Implantation logicielle et/ou matérielle

FPGA : Évolution

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

Densité (logique) + 55% par an

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

12
Implantation logicielle et/ou matérielle

FPGA : Évolution

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

13
Implantation logicielle et/ou matérielle

FPGA /ASIC

FPGA ? ASIC

14
Implantation logicielle et/ou matérielle

FPGA /ASIC

Les FPGA sont au cœurs des systèmes

15
Implantation logicielle et/ou matérielle

FPGA /ASIC
TEMPS DE MISE EN OEUVRE COMPARES

FPGA

ASIC

0 1 2 3 4 5 6 7 8 9 10

APPRENTISSAGE SAISIE COMPILATION SIMULATION FABRICATION

16
Implantation logicielle et/ou matérielle
FPGA /ASIC : avantages et inconvénients
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)

17
Implantation logicielle et/ou matérielle

FPGA /ASIC : avantages et inconvénients


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

18
Implantation logicielle et/ou matérielle

FPGA /ASIC : avantages et inconvénients

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

19
Implantation logicielle et/ou matérielle

FPGA /ASIC : avantages et inconvénients


D’après une interview du directeur de Xilinx dans la revue électronique
internationale
Les FPGA sont les rares produits d’électronique qui profitent 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 …. »

20
Implantation logicielle et/ou matérielle

FPGA ; Conjoncture économique mondiale


D’après une interview du directeur de Xilinx dans la revue électronique
internationale :
Les FPGA sont les rares produits d’électronique qui profitent 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 …. »

21
Implantation logicielle et/ou matérielle

FPGA : Architecture et conception

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

22
Implantation logicielle et/ou matérielle

FPGA : Architecture et conception, îlots de calcul

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

23
Implantation logicielle et/ou matérielle

FPGA : Architecture et conception, îlots de calcul


É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

24
Implantation logicielle et/ou matérielle

FPGA : Architecture et conception, îlots de calcul


Les blocs de connexions
EC

BC
EC

25
Implantation logicielle et/ou matérielle
FPGA : Architecture et conception, îlots de calcul
Les matrices de connexions

MC

0 1 2 3 0 1 2 3 0 1 2 3

3 3 3 3 3 3
2 2 2 2 2 2
1 1 1 1 1 1
0 0 0 0 0 0

0 1 2 3 0 1 2 3 0 1 2 3

DISJOINT UNIVERSEL WILTON


26
Implantation logicielle et/ou matérielle

FPGA : Architecture et conception, îlots de calcul


Topologie du routage : 1) la segmentation (horizontale ou verticale)

EC EC EC EC

Canal de 4 lignes de longueur 1

Canal de 2 lignes de longueur 2

Canal d’une ligne de longueur 4

27
Implantation logicielle et/ou matérielle
FPGA : Architecture et conception, îlots de calcul
Topologie du routage : 2) la population (horizontale ou verticale)

EC EC EC EC

Ligne complètement peuplée Ligne dépeuplée


28
Implantation logicielle et/ou matérielle

FPGA : Architecture et conception, îlots de calcul

29
Implantation logicielle et/ou matérielle

FPGA : Architecture et conception, 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

30
Implantation logicielle et/ou matérielle
FPGA : Architecture et conception, 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 niveau 1 Élément Hiérarchique de niveau 3


• éléments logiques
• éléments de mémorisation
• ...

31
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

32
Architecture logarithmique

Ce Ce Ce Ce Cellule logique de Ce Ce Ce Ce
base
ll ll ll ll ll ll ll ll
Ce Ce Ce Ce Ce Ce Ce Ce
Matrice de 16
ll ll ll ll cellules
ll ll ll ll
Ce Ce Ce Ce Ce Ce Ce Ce
ll ll ll ll ll ll ll ll
Lignes de
Ce Ce Ce Ce longueur 4
Ce Ce Ce Ce
ll ll ll ll cellules ll ll ll ll

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


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

33
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 rudimentaires à


base de multiplexeurs

34
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

35
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

36
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

37
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

38
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

39
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

40
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

41
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

42
Les Look Up Tables

Élément logique de base avec LUT


Carry-In

ENTREES

LUT D
SORTIES

FAST CARRY
CHAIN

HORLOGE

Carry-Out

43
Les éléments logiques

Élément logique de base avec multiplexeur


Multiplexeur = aiguillage

X1
Cellule très simple
X2 Cas du circuit Xilinx
1 XC6000
0

C
X3
SORTIE
Q
D S

CLK Q

44
Les éléments de mémorisation

Toutes les nouvelles générations de FPGA, chez tous les


fabricants disposent d’éléments de mémorisation, car dans les
systèmes d’électronique numérique les accès mémoires
restent des points faibles

En disposant de larges zones mémoires (configurables) à


l’intérieur du circuit on limite ainsi le nombre d’accès
externes.
Très intéressants pour réaliser des machines d’états

45
Les éléments de mémorisation

Exemple des blocks SelectRAM dans les circuits Spartan II,


Virtex et Virtex II de Xilinx

Elements de mémorisation configurables en


double port ou simple port

Taille max
2*18-Koctets

46
Les éléments de mémorisation

Configurations possibles pour chacun des ports :

16384*1bit (ADD sur 14 bits)


8192*2 bits (ADD sur 13 bits)
4096*4 bits (ADD sur 12 bits)
2048*9 bits (ADD sur 11 bits)
1024*18 bits (ADD sur 10 bits)
512*36 bits (ADD sur 9 bits)

47
Les opérateurs câblés

Dans les ressources logiques à dispositions, on peut trouver


des opérateurs câblés optimisés.
Exemple : Multiplieurs configurables Virtex II Xilinx

Embedded Multiplieur
18*18

48
Les opérateurs câblés

Configurations possibles des Multiplieurs du circuit Virtex II


Xilinx

S IG N E
C O N F IG U R A T IO N PO RT A PO R T B S O R T IE
N O N -S I G N E
M U L T IP L IE U R 1 7 * 1 7 17 17 34 N O N -S IG N E
M U L T IP L IE U R 8 * 8 8 8 16 N O N -S IG N E
M U L T IP L IE U R 8 * 8 8 8 16 S IG N E
M U L T IP L IE U R 4 * 4 4 4 8 N O N -S IG N E
M U L T IP L IE U R 4 * 4 4 4 8 S IG N E
M U L T IP L IE U R 6 * 6 6 6 12 S IG N E
M U L T IP L IE U R 5 * 5 5 5 10 N O N -S IG N E
M U L T IP L IE U R 5 * 5 5 5 10 N O N -S IG N E
M U L T IP L IE U R 5 * 5 5 5 10 N O N -S IG N E
M U L T IP L IE U R 4 * 4 4 4 8 S IG N E
M U L T IP L IE U R 7 * 7 7 7 14 N O N -S IG N E
M U L T IP L IE U R 4 * 4 4 4 8 S IG N E
M U L T IP L IE U R 3 * 3 3 3 6 S IG N E
COM PLEM EN T à 2 18 - 18 -
COM PLEM EN T à 2 9 - 9 -
VALEUR ABSOLUE 18 - 17 -

49
Utilisation

Les outils de synthèses (voir VII) ne savent pas synthétiser des


blocs de mémoires ou des opérateurs (type multiplieurs) dans
des blocs spécialisés…

Il faut donc spécifier en VHDL que l’on utilise telle ou telle


ressource du composant

50
Utilisation des BlockRAMs

Utilisation d’un Xilinx BlockRAM 512x36 DP


entity ….
component RAMB4_S8 is // composant de la librairie Xilinx Virtex
port (WE, EN, RST, CLK : in std_logic;
ADDR : in std_logic_vector(8 down to 0);
DI : in std_logic_vector(7 down to 0);
DO : out std_logic_vector(7 down to 0));
end component
Architecture Section …..
U_RAM : RAMB4_S8
port map (WE=>#, EN=>#, RST=>#, CLK=>#, ADDR=>#,
DI=>#, DO=>#);
….

51
Utilisation des multiplieurs

Utilisation d’un multiplieur signé 18x18


entity ….
component MUL18X18 is // composant de la librairie Xilinx Virtex
port (A : in std_logic_vector(17 down to 0);
B : in std_logic_vector(17 down to 0);
P : out std_logic_vector(35 down to 0));
end component
Architecture Section …..
U_MUL : MUL18X18
port map (A=>#, B=>#, P=>#);
….

52
Conséquence

Une conséquence importante est que par le biais de


l’utilisation de composants de librairies spécifiques aux
constructeurs (Xilinx, Altera, …) pour pouvoir utiliser les blocs
spécialisés (RAM, opérateurs) =>

le code VHDL ainsi produit est de moins en moins portable !!!

53
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

54
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
Matrice FPGA

55
Les cœurs de processeurs

PLL UART External Trace


Processor & Interfaces
Memory 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

56
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

57
Les entrées sorties

Comme tous composants d’électronique numérique les FPGA


disposent de ressources d’entrées-sorties pour communiquer
avec l’extérieur

Ces ressources sont aussi configurables

58
Les entrées sorties

Exemple des blocs d’entrées sorties du composants Virtex de


Xilinx

On peut choisir de mettre ou pas une résistance de Pull Up ou


Pull Down, et de positionner un Slew Rate
59
NOM Caractéristques Output Input Vdiff Vref Zo
Vcco Vcco

LVTTL Chip-to-chip interface 3.3 3.3 - -


Low Voltage TLL

LVCMOS2 Chip-to-chip interface 2.5 2.5 - -


Low Voltage CMOS

LVCMOS18 Chip-to-chip interface 1.8 1.8 - -


Low Voltage CMOS
Quelques standards SSTL3 I & II Memory bus standard 3.3 - 1.5 1.5 25 - 50

configurables sur les


Stub Series Terminated Logic HITATCHI & IBM

SSTL2 I & II Memory bus standard 2.5 - 1.25 1.25 25 – 50


entrées sorties, par bancs Stub Series Terminated Logic HITATCHI & IBM

HSTL I Memory bus standard 1.5 - 0.75 0.75 50 – 70


Higt Speed Transceiver Logic IBM

HSTL III & IV Memory bus standard 1.5 - 0.9 1.5 50 – 70


Higt Speed Transceiver Logic IBM

CTT Memory bus standard 3.3 - 1.5 1.5 10 –


Center Tap Terminated FUJITSU 100

Attention: l’utilisation de GTL High speed bus standard - - 0.8 1.2 50


Gunning Transceiver Logic Terminated XEROX
certain standards demande GTL + High speed bus standard - - 1.0 1.5 50
des connexions Gunning Transceiver Logic Plus XEROX

particulières AGP-2X
Advance Graphic Port
Bus standard for graphic applications
INTEL
3.3 - 1.32 - 50 - 85

LVDS Differential I/O standard 2.5 - - - 100


Low Voltage Differential Signal

PCI33_3 Bus application 3.3 3.3 - -


Peripheral Component Interface INTEL

PCI66_3 Bus application 3.3 3.3 - -


Peripheral Component Interface INTEL

LVPECL Differential I/O standard 3.3 - - -


Low Voltage Positive Emitter Coupled

60
Exemple de connexions en différentielles

61
L’adaptation d’impédance

Beaucoup de normes disponibles en entrées sorties


=> différentes adaptions d’impédances
=> de nombreuses résistances sur la carte

Aujourd’hui de nouvelles solutions permettent de mieux répondre à ces problèmes


d’adaptation:
les contrôleurs d’impédance:
• XILINX => XCITE : Xilinx Controlled Impedance Technology (disponible sur Virtex II
et Virtex II Pro)
• ALETRA => TERMINATOR TECHNOLOGIE (disponible
sur Stratix)

62
L’adaptation d’impédance

63
Le contrôleur d ’impédance

64
Exemple : XCITE

Xilinx Controlled Impedance TEchnology

65
Exemple : XCITE

66
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 !!!

67
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

68
Solutions d’asservissement des horloges

Les PLL (analogique)


Phase-Locked Loop
( ALTERA )

Les DLL (numérique)


Delay-Locked Loop
( XILINX )

69
Caractéristiques des PLL et DLL

70
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 ???

71
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 !!!

72
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

73
Répartition de la consommation de puissance

RESEAU D’HORLOGE
21%

ENTREES SORTIES
9% RESSOURCES DE ROUTAGE
65%

RESSOURCES LOGIQUES
5%

74
Modélisation de la consommation de puissance

La consommation globale du circuit peut être donnée par le model 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

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

76
VIII. UTILISATIONS
&
CAO
77
Diagramme en Y - Gajski

Domaine comportemental Domaine structurel


1 Synthèse système
Système
Algorithme Processeur, ASIC, ASIP, FPGA, etc.
Transfert de registres UAL, RAM, etc.
Logique Portes, bascules, etc.
Fonction de transfert Transistor

Partitions pysiques
Plan de masse

1 Synthèse Système Dessin des modules

2 Synthèse Architecturale Dessin des cellules

3 Synthèse RTL Dessin des transistors

4 Synthèse Logique Domaine physique

78
Flot de conception

ENTREE
(schéma et/ou fichier VHDL)

SIMULATION FONCTIONNELLE

SYNTHESE LOGIQUE

SIMULATION FONCTIONNELLE

PLACEMENT

ROUTAGE

SIMULATION TEMPORELLE

CONFIGURATION
ET TESTS OPERATIONNELS

79
80
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 !

81
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

82
Autres outils de CAO

Flot FPGA

Synthèse

Simulation

83
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

Et plus encore !
84
Exemple d’IP : NIOS

SRAM
NIOS : cœur de processeur RISC

PBM
CPU

IRQ
générique optimisé
FLASH
Caractéristiques :
• données sur 16 ou 32 bits Timer
• 128, 256 ou 512 registres Serial
UART
• registres à décalage rapide ( 1, 3, 7, Port
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

APEX EP20K200E
85
Exemple d’IP : NIOS

IP ALTERA Other
Cores
(Future)

200
ARM
Core
100
Performance
PERFRORMANT
(MIPs)
50

Core FLEXIBLE
20

0 Soft Core Hard Cores

86
Conclusion

Même si l’utilisation des FPGA paraît simple (en autre grâce au langage comme
VHDL) et même si les FPGA reconfigurables donnent droit à l’erreur il faut adopter
des méthodologies de conception des systèmes numériques (en autre ; les
méthodologies synchrones).

Elles sont obligatoires pour développer un ASIC, mais restent un peu de côté pour
les petits systèmes à base de FPGA. Aujourd’hui avec des FPGA de plus en plus
complexes elles deviennent aussi indispensables que pour les ASIC.

87
IX. EVOLUTIONS

CODESIGN, SORC

88
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

89
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)

90
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

TESTS

91
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é

92
Evolution des architectures de FPGA

FPGA

93

Vous aimerez peut-être aussi