(pld).

Transcription

(pld).
Chapitre II-2 :
Les FPGAs
Plan du chapitre
1.
2.
3.
4.
5.
6.
Réflexion sur la propriété de programmation
d’un circuit électronique
Les PLDs
Les CPLDs
Les FPGAs
Chez Xilinx
Chez Altera
I. Propriété de
programmation d’un
circuit électronique
Configuration / programmation


Un circuit est dit configurable (ou
programmable) lorsque sa fonctionnalité n’est
pas prédéfini lors de sa fabrication mais peut
être spécifié plus tard par une configuration (un
programme).
La programmation comme mesure de flexibilité
d’un circuit.
Les circuits programmables
Programmable Logic Devices (PLD)
PLD :
 PROM
 PLA
 PAL
 CPLD
 FPGA
ASIC programmables
 Microprocesseurs,
 DSP,
 Micro-contrôleurs
Quelle catégorie est la plus flexible ?
II. SPLD
Principe




Toute fonction peut s’exprimer sous la forme d’une
somme de produit
Le circuit est donc composé d’une matrice de portes
AND et d’une matrice de portes OR prédiffusées
Seule l’interconnexion est programmable !
Trois sortes de PLD :



PROM
PAL
PLA
PROM


Seule l’interconnexion de la
matrice (array) OR est
programmable,
Utilisé normalement pour
mémoriser des données readonly, la fonction de
mémorisation est remplacée
par une fonction booléenne
dont le paramètre d’entrée est
l’adresse et la sortie la
donnée.
•Fusibles
•Anti-fusibles
•EPROM (erasable)
•EEPROM (electrically)
•Flash
PAL Programmable Array of Logic
Seule l’interconnexion de la matrice (array) AND est
programmable,
PLA Programmable Logic Array
Les 2 matrices AND/OR sont programmables
Compromis
Flexibilité
Performance
PROM
+
++
PLA
++
-
PAL
+
++
SPLD
Simple Programmable Logic Device
or sequential PAL
III. CPLD
Limtitations du PLD





Impossibilité d’implémenter des fonctions multiniveaux,
Impossibilité de partager des produits entre fonctions.
Avec les CPLDs on peut maintenant non-seulement
programmer la fonctionnalité mais aussi
l’interconnexion entre 2 cellules !
Contrairement aux FPGAs, il n’y a qu’un seul chemin
entre 2 points.
Les CPLD perdent en flexibilité mais gagnent en
prédictibilité !
CPLD
Complex Programmable Logic Device
Altera




Dans les années 80, Altera sont les premiers à
fournir une solution utilisable de CPLD,
utilisé pour le prototypage rapide,
un problème restait pourtant au niveau de la
scalabilité quadratique de la matrice
d’interconnexion entre les SPLD,
limitant la taille des design à prototyper
IV. FPGA
Plan de la section
1.
2.
3.
4.
Principe général du FPGA
L’architecture d’un FPGA
L’architecture Xilinx
L’architecture Altera
1. Principe général
CPLD => FPGA



En 1984 Xilinx, lance le premier Field
Programmable Gate Array (FPGA), le XC2064.
La principale différence est sa scalabilité sans
perte de performances.
Son inconvénient est le manque de prédictibilité
des temps d’interconnexion.
Programmable logic devices familly
Différences




Les cellules logiques sont placées dans une topologie
donnée, et reliées par une infrastructure d’interconnexion.
Leur fonction est programmable,
Les chemins entre 2 cellules sont multiples et les temps ne
sont connues qu’après le routage !
Les cellules externes (IO cells) ne sont pas programmable
fonctionnellement mais en




Direction,
Voltage,
Bufferisation …
Avantage principal : Le temps de conception
Architecture générale d’un FPGA
Le marché du FPGA
Xilinx
Altera
Actel
Lattice
Atmel, QuickLogic
• QuickLogic
• Actel
• Mathstar
= lowpower
= Techno Flash
= Techno 1GHz
Les premiers circuits
programmables…
Xilinx Virtex II
Comparaison avec le Pentium IV
Pourquoi les FPGAs ?
1) L’utilisation transistor
2) Le coût de fabrication
Pourquoi les FPGA ?
Time-to-Market
Time-To-Market
Potential Sales Achieved
First-To-Market
100%
3 Months Late
73%
6 Months Late
53%
9 Months Late
32%
12 Months Late
9%
Principe simplifié
Technologie de programmation

Fusibles,
metal
Antifusibles,
capacité MOS
Transistor MOS à grille flottante, EPLD

(E)EPROM,





Nb de configurations limité,
Non volatile
RAM statique,


FPGA
FPGA-SRAM
Configuration à chaque mise sous tension
Plus rapide
Configurable
une fois
Reconfigurable
Bit-stream

Le bitstream représente la configuration de
l’ensemble des éléments configurables du circuit

Un transfert de bitstream est nécessaire à la mise
sous tension (CPLD, SRAM) et à chaque
reconfiguration (EPROM)
Flot de programmation d’un FPGA
Blocs
de base
Description de la fonctionnalité
( HDL )
Placement
Routage
Simulation
fonctionnelle
Back-annotation
Simulation
Timé
Bitstream - Programmation
Configuration

Reconfiguration statique



Reconfiguration partielle statique



Seule une portion du bitstream est chargé sur le FPGA,
L’exécution est interrompue pendant une durée plus petite,
Reconfiguration partielle dynamique (DPR)


Tout le design est reloadé dans le FPGA,
L’exécution est interrompue
Une portion (1D) du FPGA est reconfiguré pendant que le reste
continu de s’exécuté (=> SRAM),
Auto-reconfiguration (hors-sujet)


Contrairement aux 3 autres, ce n’est pas une propriété
technologique,
Elle s’appuie sur la DPR : le FPGA lance en dynamique des
configurations préconçues
2. L’architecture d’un
FPGA
FPGA
Field Programmable Gate Array
Architecture d’une cellule de base

Les architectures reconfigurables sont classées selon
deux grandes familles qui correspondent à la complexité
de la cellule élémentaire :




Grain-fin : la cellule correspond à une fonction booléenne
(de 4 à 9 variables) implémentée par une LUT et qqs éléments
de mémorisation,
Grain-épais : la cellule correspond à un chemin de données
configurable
Un circuit à grain fin implique un plus grand nombre de
cellule et donc un problème de routage plus complexe,
A l’inverse du grain épais mais qui exploite moins bien
sa structure (utilisation des cellules).
Réalisation d’une fonction booléenne


A partir de l’équation booléenne
Custom


Réseau prédiffusé


Placement des portes custom
Configuration
Configuration mémoire (non logiciel)

Look Up Table : LUT
Exemple de configuration de LUT
Elément de base d’un FPGA : le CLB
CLB : Combinatorial Logic Block
Constitué de :
 Un ensemble configurable d’entrée
 Plusieurs LUT à 2,3,4,5 entrées
 Un système de connections internes
 Un élément séquentiel : registre, latch…
L’interconnexion



Le réseau d’interconnexion est prédiffusé,
Il existe plusieurs chemin entre deux ports,
Chaque point de programmation est contrôlé
par un bit de SRAM (5 transistors).
Vue générale
Vue générale
Synthèse : Granularité des
architectures reconfigurables
3. Exemple :
FPGA Xilinx
Famille Xilinx



En 1984 Xinlinx est le premier constructeur de
FPGA appelés alors LCA (Logic Cell Array).
Aujourd’hui, il reste le premier fournisseur.
Deux séries de circuits :
Virtex
 Spartan

- low-cost
XC6200


Depuis la famille XC6200,
il est possible de
reconfigurer une partie du
circuit sans interrompre le
fonctionnement du reste.
Le format de la chaîne de
configuration est dans le
domaine publique et toute
configuration amène
toujours à une
configuration valide.
Architecture d’un CLB
CLB du Xilinx 4000
Exemple :
• Le XC4000 contient
plusieurs milliers de cellules
et nécessite 650 bits de
configuration pour chaque
cellule et ses
interconnexions,
• Le chargement de la
configuration prend
plusieurs millisecond,
• Il est impossible de
configurer une partie isolé
Architecture du Virtex-II pro
Dimensionnement du circuit
Architecture générale
Reconfiguration dynamique partielle
hors-ligne

Les circuits Virtex permettent de réaliser des
deisgn partielles. 2 modes de conception :
Module based design,
 Difference based design.



Chacun génère un bitstream pour chaque
nouveau module.
La communnication entre modules est possible
grâce aux Bus Macro placés entre les modules.
Reconfiguration partielle dynamique
en-ligne


Grâce au port ICAP (Internal Configuration
Access Port), il est possible de lire la
configuration actuelle d’une partie FPGA, de la
modifier puis de la recharger.
Cela nécessite de connaître le format du
biststream !!
bitstream du Virtex [XAPP151]
 Bitstream du Virtex-II non-diffusé

Structure générale du bitstream
virtexII


Header
Configuration



Block 0 = configuration des IOBs, clocks, et CLBs
Block 1 = configuration des RAMs,
Block 2 = configuration des interconnexions
Chaque bloc est décomposé en colonnes
 Comme indiqué chaque
Colonne est découpé en
frames de différentes
taillles.
 Le frame est l’unité
minimale de configuration

Hiérarchie de reconfiguration






Bit stream
Cut in frames (384 bits for XCV50)
A CLB needs 3 frames
A column of 16 CLBs needs 48 frames
A column of SelectRAM blocks (4) needs 27 frames
A module in the device needs to configure




CLBs
RAMs
IOBs
Interconnect
Taille de bitstream
Temps de reconfiguration
du Virtex-II pro
Architecture interne d’un CLB



Un CLB est structuré en 2 colonnes de 2 slices
chacune,
Chaque slice est connecté par un buffer tri-state
à une matrice d’interconnexion permettant de
communiquer avec n’importe quel autre CLB du
FPGA,
Ils sont également relié à un média de
communication local plus rapide,
Architecture du CLB VIIpro
Architecture d’un slice VII pro
Fonctionnalité possibles :
RAM, ROM double ou
simple port, registre à
décalage, fonction
combinatoire à 4 entrées
4 input LUT
Bascule D
4. Chez Altera…
Séries de circuits



Stratix, Stratix-II
Cyclone
MaxII
- low-cost
- structured ASIC
Relative Cost
Altera’s Product Portfolio
Relative Density & Features
Altera FPGA Roadmap
HardCopy IV
Stratix IV GX
Performance & Density
Stratix IV
HardCopy III
Stratix III GX
Stratix III
HardCopy II
HardCopy
Stratix II GX
Cyclone III
Stratix GX
Stratix
Cyclone IV
Stratix II
Cyclone II
Cyclone
130 nm
90 nm
65 nm
2002-04
2004-05
2006-07
Planning
45 nm
2008-10
CPLD Market Leadership
MAX
The CPLD
Market Leader
45%
2000: MAX 3000A
40%
High
Performance
35%
Market Share
Low Cost
30%
1998: MAX 7000A
25%
JTAG ISP
20%
1996: MAX 7000S
15%
10%
5%
0%
Altera
Source: Altera Estimate 2005
Xilinx
Lattice Cypress
Atmel
Other
$995
Carte Stratix I
Carte DE2
Structure du Stratix
4-Input
Look-Up Table
LUT
REG
Structure du Stratix
Logic Array
M4K Memory
Blocks
Top & Bottom
I/O Elements with
Support for
Memory Interfaces
Embedded
Multipliers
Side I/O
Elements with
Support for
PCI/PCI-X
& Memory
Interfaces
Phase-Locked
Loops
Caractéristiques
Stratix 1s10
Dimensionnement des circuits
Cellule de base : LAB



Logic Array Block
Est composé de 10 LE (Logic Elements)
Chaque LE contient :
Un registre
 Une LUT à 4 entrées
 Multiplexage
 Carry-logic

Stratix II Device Family
Device
ALMs
(1)
Equivalent
Logic
Elements
M512
RAM
M4K
RAM
MRAM
Total
Memory
Bits
18-Bit x
18-Bit
Multipliers(2)
PLLs(3)
EP2S15
6,240
15,600
104
78
0
419,328
48
6
EP2S30
13,552
33,880
202
144
1
1,369,728
64
6
EP2S60
24,176
60,440
329
255
2
2,544,192
144
12
EP2S90
36,384
90,960
488
408
4
4,520,448
192
12
EP2S130
53,016
132,540
699
609
6
6,747,840
252
12
EP2S180
71,760
179,400
930
768
9
9,383,040
384
12
(1) Adaptive Logic Modules
(2) Does Not Include Soft Multipliers Implemented in Memory Blocks
(3) Includes Enhanced & Fast PLLs
Logic Elements (=CLB)
Comparaison
2 modes de configurations
Mode arithmétique
Les interconnections
Connexions en ligne
Connections en colonnes
Les éléments mémoire
Système TriMatrix
More Data Bits for Larger Memory Buffering
M512 Blocks
M4K Blocks
M-RAM Block
More Data Ports for Greater Memory Bandwidth
Memory Block Summary
Feature
Performance
True Dual-Port
Parity
Shift Register
Mixed-Clock
Byte Enable
Initialization
Read-Only
Address Enable
M512
576 Bits
M4K
4,608 Bits
M-RAM
589,824 Bits
380 MHz
400 MHz
400 MHz
3 types de mémoire
Stratix 1s10
Interface d’une mémoire double port
Mémoires M512
Mémoires M4K
Mémoires M-RAM
Interface M-RAM
Bloques DSP
Répartition des bloques DSP
Schéma d’un bloque DSP
PLL, distribution de
l’horloge
Distribution de l’horloge
Programmable I/O
I/O
Conclusion

FPGA




Reconfiguration statique
Chargement séquentiel
Une architecture par
application
Evolution du FPGA


Reconfiguration dynamique
Les fonctions peuvent changer
en cours de fonctionnement
Conclusion

Le FPGA a tué l’ASIC
Moins performant
 Mais plus flexible


La contrainte actuelle du reconfigurable :



Le temps de reconfiguration
La conception sur reconfigurable nécessite de
nouveaux outils
Elle permet également la conception de SoC
Flexibilité Vs performances
Flexibilité
Coût de conception
Proc.
généraliste
µ. Contrôleur
DSP
ASIP
Performances-1
Conclusion
Conclusion
Bibliographie

New 2-Dimensional Partial Dynamic Reconfiguration Techniques for Realtime Adaptive Microelectronic Circuits, M. Hubner et al, IEEE Computer
Society Annual Symposium on Emerging VLSI Technologies and
Architectures (ISVLSI'06) pp. 97-102
Pourquoi les FPGAs ?
Configuration en fonctions à 4
entrées (Virtex I)
Fonction à 5 entrées

Documents pareils