Vous êtes sur la page 1sur 21

Architectures reconfigurables (FPGA)

Daniel Etiemble
de@lri.fr

Le spectre d’implémentation

Microprocesseur Matériel ASIC


Reconfigurable
– ASIC
• Haute performance – dédié à l’application
• Non modifiable
– Processeur
• Programmable
• Non dédié à l’application
– Matériel reconfigurable
• Bon compromis
M1 Informatique Architectures avancées 2
2006-2007 D. Etiemble

1
M1 Informatique Architectures avancées 3
2006-2007 D. Etiemble

Logique combinatoire : les différentes approches


• La logique aléatoires : les portes de base
– Bibliothèque de portes
– Bibliothèque de cellules
• La logique régulière
– multiplexeurs
– décodeurs
• La logique programmable à deux niveaux
– PALs
– PLAs
– ROMs
• La logique programmable avec mémoires SRAM
– FPGA

M1 Informatique Architectures avancées 4


2006-2007 D. Etiemble

2
Logique à deux niveaux : PALs et PLAs

Bloc de base préfabriqué avec beaucoup de portes ET/OU (ou NOR/NAND).


Personnalisé par création ou destruction de connexions entre les portes

Bloc logique programmable pour la forme somme de produits

Entrées

Réseau de Réseau de
portes ET Termes produit portes OU

Sorties

M1 Informatique Architectures avancées 5


2006-2007 D. Etiemble

PALs et PLAs : le partage de termes produit


Equations
F0 = A + B' C'
Exemple: F1 = A C' + A B
F2 = B' C' + A B
F3 = B' C + A

Personnalisation Pour les entrées


1 = terme non complémenté
Terme Entrées Sorties 0 = terme complémenté
produit
A B C F0 F1 F2 F3 - = indifférent
AB 1 1 - 0 1 1 0
BC - 01 0 0 0 1 Pour les sorties
AC 1 - 0 0 1 0 0 1 = connecté à la sortie
BC - 00 1 0 1 0 0 = non connecté
A 1 - - 1 0 0 1 Réutilisation
de termes
M1 Informatique Architectures avancées 6
2006-2007 D. Etiemble

3
PALs versus PLAs

PAL : la topologie du réseau OU est fixée


- groupe fixé de lignes ET
- rapide, peu cher
- l’entrance est limitée

Une colonne donnée du


réseau OU a accès
seulement à un sous
ensemble des termes
produit possibles

M1 Informatique Architectures avancées 7


2006-2007 D. Etiemble

Les mémoires ROM (read only memory)

ROM : Réseau 2D de 1 et de 0.
Une ligne est un mot. Entrées du décodeur : adresse
Largeur d’une ligne : taille du mot
L’adresse est l’entrée ; le mot sélectionné est la sortie
+5V +5V +5V +5V

n
2 -1

Dec i Ligne mot 0011


j Ligne mot 1010

0 n-1 Lignes de bit


M1 Informatique Architectures avancées 8
2006-2007 Adresse D. Etiemble

4
ROM et logique combinatoire
Implémentation de logique combinatoire (forme canonique à deux niveaux) avec
une ROM
F0 = A' B' C + A B' C' + A B' C
F1 = A' B' C + A' B C' + A B C
F2 = A' B' C' + A' B' C + A B' C'
F3 = A' B C + A B' C' + A B C'

A B C F0 F1 F2 F3
0000 0 1 0 ROM
0011 1 1 0 8 mots x 4 bits/mot
0100 1 0 0
0110 0 0 1
1001 0 1 1
1011 0 0 0
1100 0 0 1 A B C F0 F1 F2 F3
1110 1 0 0 adresse sorties
Table Schéma
M1 Informatique Architectures avancées 9
2006-2007 D. Etiemble

Structure ROM
• Comme un PLA, mais avec un réseau ET complet (décodeur)
• Réseau OU complètement flexible (contrairement aux PALs)
N lignes d’adresse
• • •
entrées

réseau
Décodeur 2n lignes mémoire
de mots (2n mots
de m bits)
sorties
• • •
m lignes de données

M1 Informatique Architectures avancées 10


2006-2007 D. Etiemble

5
ROMs et PLAs
• PLA : topologies généralisées avec plans ET et OU
– Compact : term ET partagé
– A besoin d’un programme CAO : forme somme de produits optimisée
– Plus lent que les PAL
• ROM : Le plan ET est prédéterminé
– Implémentation sous forme canonique
– Le plan ET est aussi appelé décodeur d’adresses
– Satisfaisant lorque
• La plupart des combinaisons d’entrée sont utilisées
• Peu de partage de termes produit
• Pas d’outils de CAO
– La taille double par entrée
– Pas de termes indifférents
– Le plus lent

M1 Informatique Architectures avancées 11


2006-2007 D. Etiemble

CPLD/EPLD
Altera EPLD (Erasable Programmable Logic Devices)
Bloc de base Altera = MACROCELL
CLK
Réseau ET-OU avec
8 termes produit
+ MUX
Clk
MUX Plot E/S
Programmable
MUX pad
ET sortie
Q

Contrôle
inversion
MUX
F/B Bloc logique
séquentielle
Polarité programmable
Contre-réaction programmable
M1 Informatique Architectures avancées 12
2006-2007 D. Etiemble

6
Stratégies d’implémentation
Les structures ET-OU sont relativement limitées
Ne peuvent partager les signaux et termes produits entre macrocellules
Solution Altera : matrice de réseaux (MAX)

Routage global :
Réseau
Blocs d’interconnexion
De réseaux LAB A LAB H programmable
logiques

(comme LAB B LAB G EPM5128 :


macrocells) P
I 8 entrées fixes
A 52 plots d’E/S
LAB C LAB F 8 LABs
16 Macrocells/LAB
32 Extensions/LAB
LAB D LAB E
M1 Informatique Architectures avancées 13
2006-2007 D. Etiemble

Les FPGA
Elément logique Pistes

LE LE LE LE

LE LE LE LE

LE LE LE LE

– Chaque élément logique produit une sortie


– Interconnexion programmable entre les éléments
– Pistes d’interconnexion regroupées en canaux
– Eléments logiques : mémoire SRAM.
M1 Informatique Architectures avancées 14
2006-2007 D. Etiemble

7
Elément logique
Adresse Adresse Contenu
• LUT (Look-up table) 0 0000 0
– SRAM à 4 ou 5 bits d’adresse 1 0001 1
et 1 bit de sortie 2 0010 1
– Implante toutes les tables de 3 0011 0
vérité de 4 ou 5 entrées 4 0100 1
5 0101 0
• Avantage 6 0110 0
– Programmable (SRAM) 7 0111 1
– Toutes les fonctions sont 8 1000 1
équivalentes 9 1001 0
• XOR 10 1010 0
11 1011 1
12 1100 0
13 1101 1
14 1110 1
15 1111 0
M1 Informatique Architectures avancées 15
2006-2007 D. Etiemble

LUT dans un bloc logique

M1 Informatique Architectures avancées 16


2006-2007 D. Etiemble

8
Elément logique Cyclone (Altera)

M1 Informatique Architectures avancées 17


2006-2007 D. Etiemble

Elément logique – Mode normal

M1 Informatique Architectures avancées 18


2006-2007 D. Etiemble

9
Elément logique : retenues rapides

M1 Informatique Architectures avancées 19


2006-2007 D. Etiemble

Les problèmes du monde physique

S S

Coût des connexions


– Modélisation des délais.
– Amélioration des performances par buffers/segmentation
– Dépend de la technologie
– Coût de la reconfigurabilité

M1 Informatique Architectures avancées 20


2006-2007 D. Etiemble

10
De la conception au FPGA

Programme C Circuit Réseau


A + C
. B
.
C = A+B
. – CAO pour passer de la description textuelle du circuit à
l’implantation physique est au point
– CAO pour passer du programme C au circuit pas encore au
point (mais apparaissent des compilateurs C2H)
– Très difficile pour les concepteurs d’écrire des applications
haute performance

M1 Informatique Architectures avancées 21


2006-2007 D. Etiemble

Compilation de circuit
• De la fonction aux
élements logiques
physiques
LUT

• Placement physique des


LUT
LUT

?
• Routage : sélectionner
fils et commutateurs
pour les connexions

M1 Informatique Architectures avancées 22


2006-2007 D. Etiemble

11
L’additionneur 1 bit

A B
SYNTHESE LOGIQUE
Co FA Ci

S S = ABCi + ABCi + ABCi + ABCi


A
B LUT S
Ci

Co = ABCi + ABCi + ABCi + ABCi

A
B LUT Co
Ci
M1 Informatique Architectures avancées 23
2006-2007 D. Etiemble

RAM enfouie

• Xilinx – Block SelectRAM


– 18Kb dual-port RAM arranged in columns
• Altera – TriMatrix Dual-Port RAM
– M512 – 512 x 1
– M4K – 4096 x 1
– M-RAM – 64K x 8

M1 Informatique Architectures avancées 24


2006-2007 D. Etiemble

12
Multiplieurs enfouis

M1 Informatique Architectures avancées 25


2006-2007 D. Etiemble

Flot de conception FPGA


Spécification Entrées : codage RTL
Description structurelle ou comportementale

Simulation RTL
• Simulation fonctionnelle
• Vérifie le fonctionnement
logique et le flot de données
(Pas d’analyse temporelle)
LE Synthèse
• Traduit la conception en primitives matérielles spécifiques
MEM I/O •Optimisation pour satisfaire les contraintes en surface et
performance

Placement & Routage


• mappe les primitives à des endroits précis
dans la technologie cible par rapport aux
contraintes surface et performance
• spécifie les ressources de routage à utiliser

M1 Informatique Architectures avancées 26


2006-2007 D. Etiemble

13
Flot de conception FPGA
tclk
Analyse temporelle
- vérifie que les spécifications temporelles sont satisfaites
- Analyse temporelle statique

Simulation au niveau portes


- Simulation temporelle
- Vérifie que la réalisation fonctionnera sur la cible

Programmation & Test


- Programmation & Test du
composant sur la carte.

M1 Informatique Architectures avancées 27


2006-2007 D. Etiemble

Processeur + FPGA : processeur intégré

• Processeur dans le FPGA


– Processeur en dur
• PowerPC (Xilinx)
– Coeur défini par logiciel (soft core)
• NIOS II (Altera)
• MicroBlaze (Xilinx)

M1 Informatique Architectures avancées 28


2006-2007 D. Etiemble

14
Exemple (Xilinx)

Le Virtex II Pro de Xilinx


contient jusqu‘à 4 coeurs de
processeurs PowerPC

[© and source: Xilinx Inc.: Virtex-II Pro™ Platform


FPGAs: Functional Description, Sept. 2002,
//www.xilinx.com]

M1 Informatique Architectures avancées 29


2006-2007 D. Etiemble

Altera NIOS II
• Processeur RISC
32 bits (soft core)

M1 Informatique Architectures avancées 30


2006-2007 D. Etiemble

15
Altera NIOS

M1 Informatique Architectures avancées 31


2006-2007 D. Etiemble

Altera NIOS

M1 Informatique Architectures avancées 32


2006-2007 D. Etiemble

16
FPGA Cyclone d’Altera

• Caractéristiques
– Architecture
– Applications
• http://www.altera.com/products/devices/cost/cst-cost_step1.jsp
• Cyclone FPGA EP1C6-C7
– Caractéristiques
– Ressources logiques
– Ressources mémoire
– Horloges
– Entrées-sorties

M1 Informatique Architectures avancées 33


2006-2007 D. Etiemble

Caractéristiques de la famille Cyclone

M1 Informatique Architectures avancées 34


2006-2007 D. Etiemble

17
Structure des blocs du réseau logique Cyclone

M1 Informatique Architectures avancées 35


2006-2007 D. Etiemble

Elément logique Cyclone

M1 Informatique Architectures avancées 36


2006-2007 D. Etiemble

18
Blocs mémoire enfouis

M1 Informatique Architectures avancées 37


2006-2007 D. Etiemble

Distribution de l’horloge globale

M1 Informatique Architectures avancées 38


2006-2007 D. Etiemble

19
Elément d’entrée-sortie

M1 Informatique Architectures avancées 39


2006-2007 D. Etiemble

Configuration
• Méthodes
– JTAG
• ByteBlaster pod
– EPC2
• Built-in ByteBlaster
circuitry
• FPGA automatically
configures from EPC2
- should erase EPC2 if
that is not desirable
• Fichiers
– Fichier objet SRAM
(*.SOF)
– Fichier objet
programmeur (*.POF)

M1 Informatique Architectures avancées 40


2006-2007 D. Etiemble

20
Evolution des FPGA

• Spécialisation
– Mémoire
– E/S
• Coeur IP (“Intellectual Property”)
– Implantation de fonctionnalités particulières
– http://www.altera.com/products/ip/ipm-index.html
• Evolution vers les Systèmes sur puce (SoC)

M1 Informatique Architectures avancées 41


2006-2007 D. Etiemble

Architecture SoC North

Communication
Interface
tile North Ctrl

Multiplier
West East
uProc

ctrl
West
East
FPGA Multiplier

South Core

Core

Coeurs hétérogènes South


Connexions point à point
Interface de communication
M1 Informatique Architectures avancées 42
2006-2007 D. Etiemble

21

Vous aimerez peut-être aussi