Vous êtes sur la page 1sur 8

12/04/2020

Structure des FPGA Field Programmable Gate Array

Ou réseau de portes programmables


Ce sont des circuits intégrés programmables (ou plutôt reconfigurables) plusieurs
fois et de plus en plus dynamiquement!
---------------------------------
INTRODUCTION AUX FPGAS
CONCEPTS DE BASE, ARCHITECTURE
ET APPLICATIONS
-----------------------
Partie 3
Mme H.Boumeridja
Département des Systèmes d’Ingenierie Electrique
Faculté de la Technologie
Université de Boumerdes
Avril 2020
1 2

FPGA structure Structure Simplifiée d’un CLB

Look-Up MUX
SET
CLB SB CLB Table D Q
(LUT)

CLR Q
CLB SB CLB

SB SB SB

SB SB SB
Configurable Logic Blocks
CLB SB CLB

Interconnection Network
Configurable Logic Blocks
CLB SB CLB
I/O Signals (Pins)
Interconnection Network

I/O Signals (Pins)

3 4

Blocs de mémoire intégrée


FPGA: en plus de…
Plus de transistors => Intégration des mémoires.
Mémoire accessible directement à l’intérieur de la puce.
Colonnes de blocs de mémoire intégrées à travers les CLBs.
DES BLOCS DE MÉMOIRE INTÉGRÉE
Colum ns of em bedded
RAM blocks
DES FONCTIONS ARITHMÉTIQUES AVANCÉES
Arrays of
DES MODULES DE GÉNÉRATION D’HORLOGE program mable
logic blocks

DES RÉSEAUX DE DISTRIBUTION D’HORLOGES


DES MICROPROCESSEURS FIXES

5 6

1
12/04/2020

Fonctions arithmétiques avancées Génération d’horloge


Dans une conception synchrone, le concepteur doit utiliser une horloge.
Cependant, à l’intérieur du Design, il se peut que des sous circuits ont besoin
d’horloge de fréquences différentes.
La multiplication est une RAM blocks
Le générateur accepte en entrée une horloge externe et génère une ou plusieurs
Multipliers
opération fondamentale dans horloges internes.
Logic blocks
les applications du traitement
de signal => Les FPGAs ont
fait leur preuve dans ce Clock signal from
domaine. outside world Daughter clocks
used to drive
Clock
Les manufacturiers de FPGAs internal clock trees
Manager
or output pins
ont donc rajouté des etc.
multiplicateurs dédiés.
Special clock
pin and pad

7 8

Distribution d’horloge Microprocesseurs fixes


 L’horloge est distribuée à travers le circuit grâce à un réseau en arbre dédié.
 Ce dernier est fait de telle sorte qu’il peut minimiser le déphasage d’horloge.

Clock
Plusieurs FPGA intègrent des
Flip-flops
tree microprocesseurs fixes.
N’utilisent pas de CLB ni de mémoire
du FPGA.
Architecture résultante très
performante, SoC-sur-FPGA.
Accès rapide entre le microprocesseur
Special clock
fixe et le reste de la logique, les
pin and pad multiplicateurs et la mémoire.
Clock signal from
outside world

Ce réseau est alimenté par une patte spéciale du FPGA à laquelle est
associé un amplificateur dédié.
9 10

Architectures des FPGAs


CLB & SLICES
Configurable logic block (CLB) SLICES Doivent permettre la réalisation de n’importe quel circuit
combinatoire ou séquentiel par eux mêmes ou par plusieurs
Slice Slice blocs(slices) groupés.
CLB CLB Logic cell Logic cell
Slice 0

Logic cell Logic cell Chaque Slice possède quatre sorties LUT Carry D
PRE
Q
CE

Deux sorties enregistrées, CLR

Slice Slice Deux sorties non enregistrées


CLB CLB Logic cell Logic cell La logique de la retenue ou Carry logic
s’éxécute verticalement et vers le haut LUT Carry D PRE
Q
seulement.
CE

Logic cell Logic cell CLR

The Design Warrior’s Guide to FPGAs


Devices, Tools, and Flows. ISBN 0750676043
11 12
Copyright © 2004 Mentor Graphics Corp. (www.mentor.com)

2
12/04/2020

MODÈLE SIMPLIFIÉ D’UN SLICE DE VIRTEX 2 PRO


La fonction d’un IOB est de permettre le passage d’un signal dans/ dehors
du circuit.
G4
YQ
BLOCS D’E/S Pour cela, dépendement de l’interface électrique, cet élément doit avoir les
G3
Table de
D Q
ressources suivantes:
 Sorties configurables de type Tri-State ou Open-Collector.
correspondance
G2 G CLK
16 X 1 S0

 Entrées avec possiblité de pull-up ou pull-down programables.


G!

 Registres de sortie.
Y
Deux tables de correspondance H

à 4 entrées: H1 S1
 Registres d’entrée.
fonction logique F4
Permettent de configurer les caractéristiques des terminaux
mémoire RAM F3 D Q
XQ
d’entrée/sortie de l’FPGA.
1.Utilisation du terminal comme entrée:
Table de
correspondance
mémoire ROM F2 F CLK

• Bistable pour la mémorisation.


16 X 1 S2

décalage F1

Deux éléments à mémoire, bascule ou loquet.


X • Choix d’entrée directe ou mémorisée à travers le bistable.
• Niveau logique: ttl, cmos, etc.
Des multiplexeurs pour router les signaux.
2.Utilisation du terminal comme sortie:
S3
CLK

• Bistable de mémorisation.
• Choix de sortie directe ou mémorisée à travers le bistable.
• Courant de sortie maximal,etc.
13 14

BLOCS LOGIQUES INTERNES : NOTION DE LUT Exemple d’une configuration d’un CLB: NOTION DE LUT: IMPLÉMENTATION DES FONCTIONS COMBINATOIRES

On montre comment un CLB peut être configuré afin de réaliser ces deux
Le concept du FPGA est basé sur l'utilisation d'une LUT (LookUp fonctions:

Table) comme élément combinatoire de la cellule de base (SLICE).

En première approximation, cette LUT peut être vue comme une


mémoire (16 bits en général) qui permet de créer n’importe quelle
fonction logique combinatoire de 4 variables d’entrées appelée aussi
générateur de fonction.

15 16

BLOCS LOGIQUES INTERNES : NOTION DE LUT: IMPLÉMENTATION DES FONCTIONS COMBINATOIRES BLOCS LOGIQUES INTERNES : NOTION DE LUT: IMPLÉMENTATION DES FONCTIONS COMBINATOIRES

X5 X4 X3 X2 X1 Y
0 0 0 0 0 0
La logique combinatoire est stockée dans les Look-Up Tables (LUTs) 0 0 0 0 1 1
0 0 0 1 0 0
0 0 0 1 1 0
Appelées aussi Générateurs de fonction “Function Generators 0 0 1 0 0 1

(FGs)”
Et si c’était une fonction à 5 0 0 1 0 1
0 0 1 1 0
0 0 1 1 1
1
0
0 LUT
entrées, combien de luts va t-elle 0 1 0 0 0
0 1 0 0 1
1
0
Leur capacité est limitée par le nombre d’entrées, et non pas de leur
utiliser?
0 1 0 1 0 0
0 1 0 1 1 1 OUT
0 1 1 0 0 1
compléxité. 0 1 1 0 1
0 1 1 1 0
1
1
0 1 1 1 1 1
1 0 0 0 0 0

Probablement 2 luts. 1 0 0 0 1
1 0 0 1 0
0
0
Délai à travers la LUT est constant. 1 0 0 1 1
1 0 1 0 0
0
0
1 0 1 0 1 0
1 0 1 1 0 0
1 0 1 1 1 1
1 1 0 0 0 0
1 1 0 0 1 1
LUT
1 1 0 1 0 0
1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 0 1 1
1 1 1 1 0 0
1 1 1 1 1 0

17 18

3
12/04/2020

BLOCS LOGIQUES INTERNES : NOTION DE LUT: IMPLÉMENTATION DES FONCTIONS SÉQUENTIELLES BLOCS D’ENTRÉE/SORTIE
IOB: IN, OUT, INOUT
Pour implémenter les fonctions séquentielles, un flip-flop D est utilisé.
On réalimente la sortie séquentielle dans une des entrées de la LUT si L'information peut être transmise
c’est nécessaire. directement ou mémorisée dans une
mémoire aussi bien à l'entrée qu'à la sortie.
Pour la voie de sortie, un multiplexeur permet
• Implémenter Flip Flop D dans un bloc: de contourner ou non la mémoire; pour la
voie d'entrée, il existe deux chemins
d'accès différents.

L'état actif des horloges de


synchronisation (output clock, input clock) et de
D
la donnée sortante peut être inversé par un
enable LUT
reset FF-D Q circuit programmable formé d'un inverseur
et d'un multiplexeur.
clk
Le signal d'entrée peut être éventuellement
19 retardé (bloc "Delay") de manière à permettre 20

son échantillonnage.

Interconnexions Programmables:
Interconnexions Programmables: Définition
Topologie Générale du Réseau
Le réseau de connexions est un
élément fondamental de
l'organisation d'un circuit Elle résulte de la disposition
intégré programmable. adoptée pour les blocs fonctionnels
Il a un impact direct sur les du circuit (CLB et IOB).
performances du circuit par Le réseau est formé à partir de trois
son influence sur les délais de sous-réseaux:
transmission des signaux.
Il intervient dans le coût de 1. un réseau de pistes est-ouest,
fabrication vu la surface qui doit 2. un réseau de pistes nord-sud,
lui être attribuée (environ 80% 3. un réseau configuré en anneau
de la surface du circuit) et vu les à la périphérie du circuit.
exigences qu'il génère sur le
choix de la technologie
(nombreuses couches de
métallisation).
21 22

Interconnexions Programmables: Interconnexions Programmables:


Topologie Générale du Réseau Lignes d’Interconnexion
La dispersion des ressources logiques dans les FPGAs
nécessitent de disposer des ressources d’interconnexion
Structure d'interconnexion hiérarchique sur différents flexibles.
niveaux de métallisation RESSOURCES Cette flexibilité s’obtient grâce aux l’ignes d’interconnexion de
D’INTERCONNEXION différentes longitudes, qui se distribuent par différentes
– niveaux supérieur: routes globales (longues). formes à l’intérieur des FPGAs.
– niveaux intermédiaires: routes semi-globales. Les lignes d’interconnexion se connectent entre elles par des
– niveaux inférieurs: routes locales (courtes). connexions configurables, réalisées de différentes formes
sans oublier: dans différents FPGAs, dépendant de la technologie.
– distribution des alimentations (VDD et GND). TYPES DE LIGNES D’INTERCONNEXION
– distribution des horloges.
– distribution des infos de configuration.
LIGNES (CHEMINS)
D’INTERCONNEXION

23 24

4
12/04/2020

LIGNES (CHEMINS) D’INTERCONNEXION Interconnexions Programmables:


Cas A Connexion entre CLBs
CHEMINS D’INTERCONNEXION Pour utiliser les ressources de manière optimale:
DIRECTS:
1. Relient deux CLB adjacents. différentes longueurs de pistes sont nécessaires.
2. Ne passent pas par une matrice connexions possibles (flexibilité) via PIP(point de contact
de connexion (PSM) programmable).

MOINS DE RETARD MAIS MOINS DE


FLEXIBILITÉ

CLB

Cas B
CHEMINS D’INTERCONNEXION
SEGMENTÉS (INDIRECTS)

PLUS DE FLEXIBILITÉ MAIS PLUS DE


RETARD.
25 26

Interconnexions Programmables: CONNEXIONS CONFIGURABLES


Connexions Configurables : Types de Connexions CONNEXIONS CONFIGURABLES ENTRE LIGNES DIRECTES PAR DES
Configurables POINTS DE CONNEXIONS PROGRAMMABLES SIMPLES.

27 28

CONNEXIONS CONFIGURABLES Interconnexions Programmables:


EXEMPLE CONCRET Point de Contact Programmable (PIP)
Connexions configurables entre lignes segmentées par des points de
connexion programmable simple. Point de contact = connexion entre deux pistes différentes
– Typiquement connexion horizontale/verticale
Point de contact programmable = connexion
Programmable entre deux pistes.

Exemple de raccordement d'un CLB

En général, un seul point de contact


utilisé

29 30

5
12/04/2020

CONNEXIONS CONFIGURABLES CONNEXIONS CONFIGURABLES

POINT DE CONNEXION PROGRAMMABLE COMPOSÉ MATRICES DE COMMUTATION DES FAMILLES 3000 ET 4000 DE XILINX

31 32

Interconnexions Programmables: Interconnexions Programmables:


Le Switch Switch Box: Programmable Switch Matrix
Un switch ("commutateur" en français) est un élément de routage
qui permet toute une série de configurations de chemins à partir de
deux axes perpendiculaires.

Élément de routage à 6 points de contact.


– avantage: compact et flexible.
Quelques routages possibles

33 34

Interconnexions Programmables: Interconnexions Programmables:


Switch Box: Programmable Switch Matrix Switch Box:
La « switch box » rassemble une série de switches
au croisement de routes nord-sud et est-ouest.

35 36

6
12/04/2020

Interconnexions Programmables:
Couches de métallisation FPGA : Zoom
Une exploitation efficace des Les interconnexions sont représentées sur la figure:
connexions => disposer de plusieurs
niveaux de métallisation afin de
permettre le croisement des pistes. 1. Les liaisons sont assurées par des canaux de lignes horizontales et
Il est intéressant de disposer d'au moins verticales sur lesquels les blocs logiques viennent se connecter
quatre niveaux de métallisation, à (connection block).
savoir:
1. un niveau pour organiser
2. Le routage des signaux est assuré par des boîtiers d'interrupteurs
l'alimentation des circuits (VDD et programmables (Switch box) situés au croisement des canaux.
GND),
2. un niveau pour les liaisons locales,
3. un niveau pour les liaisons nord-sud,
4. et un niveau pour les liaisons est-
ouest.
En pratique, la plupart des FPGA récents
exploitent des technologies à 5 et 6
couches de métallisation.

37 38

CLB : Virtex Détails d’un Slice Virtex

39 40

La famille Virtex
Implémentation de fonctions >= 5

Utilisation

De

9 Entrées

41 42

7
12/04/2020

La famille Virtex
La famille Virtex-II pro

43 44

Familles Xilinx FPGA


Old families
XC3000, XC4000, XC5200
Old 0.5µm, 0.35µm and 0.25µm technology. Not recommended for modern
designs.
High-performance families
Virtex (0.22µm)
Virtex-E, Virtex-EM (0.18µm)
Virtex-II, Virtex-II PRO (0.13µm)
Virtex-4 (0.09µm)
Low Cost Family
Spartan/XL – derived from XC4000
Spartan-II – derived from Virtex
Spartan-IIE – derived from Virtex-E
Spartan-3

45 46