Vous êtes sur la page 1sur 113

Les circuits FPGA

Concepts de base, architecture et applications


Cours Master Recherche
«S ystèmes Intelligents et Communicants »

François Verdier
www-etis.ensea.fr/~verdier/
Université de Cergy-Pontoise Laboratoire ETIS - UMR CNRS 8051
Plan du cours

1 - Technologie et densité 4 - Méthodologie de conception


2 - La famille des circuits logiques 4.1 - Le flot de conception
2.1 - Les fonctions logiques 4.2 - Les Intelectual Properties
2.2 - Les technologies 4.3 - La production en volume
3 - Architecture des FPGA XILINX 5 - Applications : Les FCCM
3.1 - Architecture générale 5.1 - Exemples de machines
3.2 - Les interconnexions 5.2 - Le CoDesign
3.3 - Les CLB 6 - La reconfiguration dynamique
3.4 - Les IOB 7 - Des FPGA aux SOPC
3.6 - La configuration des 7.1 - Architecture Virtex2-Pro
circuits 7.2 - Architecture Virtex4
3.5 - Les canaux de routage 7.3 - ALTERA Excalibur-ARM
3.6 - La mémoire interne 7.4 - XPP de PACT
3.7 - Configuration des FPGA 8 - Conclusion
3.8 - Evolution des produits 9 - Pistes
1 - Technologie et densité

• Les systèmes électroniques modernes sont de plus en


plus complexes,
• Les contraintes de taille, de puissance dissipée et de
performances sont de plus en plus sévères (téléphonie
mobile, ordinateurs, traitement du signal, de l'image,
etc...).
• Accroissement spectaculaire des densités.
Les techniques de circuit imprimés à trous
traversants

Densité limitée par la surface ! Insertion des


composants
Pistes de cuivre
Trous métallisés

Carte en fibre epoxy


Soudure
Les techniques de circuit imprimés à
montage en surface

Densité multipliée par 10


Dépôt et collage
des CMS
Pistes en cuivre
multicouches

Carte en fibre epoxy


Composants sur les deux faces !
Les contraintes physiques, technologiques et commerciales
imposent aujourd'hui la conception de systèmes de plus en
plus :
- compacts,
- économes en énergie,
- rapides à concevoir,
- fiables et peu coûteux.

La contrainte de « time to market » devient la plus


importante et rend inefficace désormais les cycles classiques
de développement / vérification / réalisation physique.

=> besoin d'une technologie fiable, abordable et souple...


2 - La grande famille des circuits
logiques
• La logique standard
• Les mémoires (RAM, PROM, EPROM...)
• Les réseaux logiques programmables (PLA, PLD,
EPLD, CPLD...)
• réseaux ET/OU
• technologie fusibles/anti-fusibles
• réseaux logiques programmables sur site (FPGA)
• technologie RAM/SRAM
• logique à LUT
2.1 - Les différentes techniques de
réalisation d’une fonction logique

S = (A . B) +
C

A
B S
C
2.1.1 - La logique standard

• Utilisation de circuits TTL / CMOS ...


A
B S
C

densité : <20%
temps : mn à h
7408 7432
2.1.2 - La logique à mémoire : LUT

• à partir d’une table de vérité


S = (A . B) + C et d’une mémoire (8x1bit)
C B A S
0 0 0 0 0
0 0 1 0 0
0 1 0 0 A 0
0 1 1 1 B 1
1 0 0 1 C 1
1 0 1 1 1
1 1 0 1 1
1 1 1 1 1
S
2.1.3 - Les connexions
programmables : Les circuits PAL

A réseau de portes ET
B
C
réseau de portes OU

S = A.B + C

Connexions à base A.B


C
de fusibles
L’équation se programme sous sa première forme
canonique (somme de produits)
2.1.4 - Les FPGA
(Field Programmable Gate Array)

A
LUT
ET LUT Un ensemble de
B
chemins de
routage

LUT LUT
OU S = A.B + C
C

Programmation des mémoires Un ensemble de mémoires LUT


et établissement des connexions
2.1.4 - Les FPGA

A Connexions par transistors MOS


ET
B

OU S = A.B + C
C

Cellule mémoire
2.2 - Classification des technologies

Logique

Logique standard ASIC

PLD

PAL CPLD FPGA

anti-fusibles
EPROM

EEPROM/FLASH SRAM
Les circuits FPGA SRAM deviennent des solutions de
remplacement avantageuses pour les systèmes numériques
à haute intégration.

Les cycles de développement et de prototypage (test et


vérification en conditions réelles) sont accélérés et même
confondus.
Spécification

Conception

Vérification

Réalisation
3 - Architecture des circuits FPGA
(XILINX)
• Un FPGA réalise une fonction logique complexe. Il est
programmable, et re-programmable dans son
environnement
• Les circuits FPGA XILINX sont disponibles en de
nombreuses configurations de taille, de vitesse et de
prix
• Des outils logiciels puissants et automatiques
permettent de réaliser facilement un système sur
FPGA.
Evolution de la technologie des circuits
FPGA XILINX

198 5 /8 6 1994 1995 1996/97 2000 2001


Nom bre de
Tra nsist ors 85 K 3 ,5 M 6M 12 M 75 M > 100 M
Nom bre de
Port es 800 25 K 50 K 100 K 500 K 10 M
Couches de
Mét a l 2 3 3 3-4 4-5 8
Les différentes « familles » FPGA XILINX

Famille # portes # E/S # bascules # RAM bits # CLB

XC2000* 0.6 - 1.5K 58 - 74 122 - 174 0 64-100


XC3000* 1.3 - 9K 64 - 176 256 - 1320 0 64-484
XC4000 2 - 180K 80 - 448 360 - 7168 3K - 100K 100-3136
XC6200* 9K - 100K 192 - 512 2K - 16K 0 2K - 16K
XC4000XV 75K - 500K 448 10K - 20K 131K - 270K 2.5K-5K
SPARTAN 2K - 200K 77 - 284 360 - 2016 16K - 57K 238 - 5292
VIRTEX 58K - 1M 180 - 512 1728 - 27K 32K - 131K 384-6144
VIRTEX2 40K - 10M 88 - 1108 256 - 61K 72K - 3.4M 64-15360*

* produits obsolètes
3.1 - Architecture générale

• Un FPGA est un réseau (matrice) de


blocs combinatoires et séquentiels (CLB)
• Des blocs d’entrée/sortie (IOB) sont
associés aux broches du circuit
• Les CLB et IOB sont interconnectés entre
eux par des dispositifs variés
• Les matrices s’organisent de 8x8 à
128x120
3.1 - Architecture générale

CLB

IOB

lignes de
connections
matrices de
connexion
3.2 - Les interconnexions
(directes)
2 ns

CLB CLB

DELAIS DEPENDANT
5 ns DU ROUTAGE !!!

CLB CLB
3.2 - Les interconnexions
(matrices)

CLB CLB

CLB CLB
3.2 - Les interconnexions (lignes)

CLB CLB

CLB CLB
3.3 - Structure des CLB

• Une table de transcodage combinatoire (LUT)


pouvant implanter :
– deux fonctions indépendantes à 4 variables
– une fonction complète à 5 variables
– une fonction incomplète à 6 variables
• Deux cellules séquentielles (bascules D)
• Des multiplexeurs de configuration
3.3.1 - Structure d’un CLB 3000
3.3.2 - Structure d’un CLB 4000
3.3.3 - Structure d’un CLB
SPARTAN
3.4 - Structure des IOB

Ports d’entrée/sortie totalement programmables :

• Seuil d’entrée TTL ou CMOS


• Slew-rate programmable
• Buffer de sortie programmable en haute
impédance
• Entrées et sorties directes ou mémorisées
• Inverseur programmable
3.4.1 - Structure des IOB (XC3000)
3.4.2 - Structure des IOB (XC4000)
3.4.3 - Structure des IOB
(SPARTAN)
3.5 - Canaux de routage
Matrices d'interconnexions
(Programmable Switch Matrix)

Routage inter-CLB
3.6 - Utilisation des CLB en
mémoires
3.7 - Configuration des FPGA
Les circuits FPGA XILINX se configurent selon plusieurs modes :

1) Le mode série qui utilise une EEPROM série (avantage de


la compacité mais faible rapidité)

2) Le mode parallèle 8 bits (EPROM classique) plus rapide

3) Le mode parallèle asynchrone : le circuit FPGA se comporte


comme un périphérique de micro-processeur : possibilité de
(re)configuration partielle intelligente

Dans chaque mode, plusieurs FPGAs peuvent être chaînés en


mode maître/esclave.
Mode de configuration série (EEPROM série)

Circuit «principal» Circuits en «daisy chain»


Mode de configuration parallèle
(EPROM parallèle)
Mode de configuration parallèle asynchrone
(mode périphérique de processeur)
3.8 - Evolution des produits
La technologie micro-électronique continue d'évoluer de manière
exponentielle (en densité, en vitesse, en taille et en consommation) :
• La taille des puces augmente : les entrées/sorties sont plus
nombreuses
• La densité augmente : le grain des FPGA augmente
• La technologie SRAM se fiabilise : la quantité de mémoire augmente
• Les nouvelles familles apparaissent :
- XC4000(X)
- VIRTEX
- VIRTEX-II
- VIRTEX-II PRO
- VIRTEX-4
3.8.1 - XC4000X

La technologie évolue (premier FPGA


avec une technologie 0.25 microns)
et la densité des circuits augmente...

...tandis que la consommation


diminue
3.8.1 - XC4000X

Les performances augmentent avec


la finesse de la technologie

Fréquences inter-circuits Fréquences intra-ciruits


Les produits XC4000(X)
3.8.2 - La famille VIRTEX

CLB Logic Block SelectRAM


Device # gates Array Cells RAM bits bits Max I/O

XCV50 58K 16 x 24 1728 32768 24576 180


XCV100 109K 20 x 30 2700 40960 38400 180
XCV150 164K 24 x 36 3888 49152 55296 260
XCV200 236K 28 x 42 5292 57344 75264 284
XCV300 323K 32 x 48 6912 65536 98304 316
XCV400 468K 40 x 60 10800 81920 153600 404
XCV600 661K 48 x 72 15552 98304 221184 512
XCV800 888K 56 x 84 21168 114688 301056 512
XCV1000 1.1M 64 x 96 27648 131072 393216 512
3.8.3 - La famille VIRTEX-II

Accélération
des délais
de routage

Avec la densité qui augmente,


intégration de la notion
d'« Intelectual Properties »
(IP = Macro-Cellules tierces)
3.8.3 - La famille VIRTEX-II

Vaste choix de formats et de


standards d'entrées/sorties grâce
aux canaux différentiels
configurables

Technologie plus rapide :


certaines applications DSP
deviennent concurentielles
3.8.3 - La famille VIRTEX-II

Protection de la propriété industrielle :


le Reverse Engineering est impossible
3.8.3 - La famille VIRTEX-II

CLB SelectRAM
Device # gates Array SlicesMax RAM Kbits
Multipliers Kbits Max I/O

XC2V40 40K 8x8 256 8 4 72 88


XC2V80 80K 16 x 8 512 16 8 144 120
XC2V250 250K 24 x 16 1536 48 24 432 200
XC2V500 500K 32 x 24 3072 96 32 576 264
XC2V1000 1M 40 x 32 5120 160 40 720 432
XC2V1500 1.5M 48 x 40 7680 240 48 864 528
XC2V2000 2M 56 x 48 10752 336 56 1008 624
XC2V3000 3M 64 x 56 14336 448 96 1728 720
XC2V4000 4M 80 x 72 23040 720 120 2160 912
XC2V6000 6M 96 x 88 33792 1056 144 2592 1104
XC2V8000 8M 112 x 10446592 1456 168 3024 1108
XC2V10000 10M 128 x 12061440 1920 192 3456 1108
3.8.3 - Architecture VIRTEX-II
Générateurs d'horloge
Matrice de « Slices »

Blocs d'E/S Multiplieurs 18x18


Blocs de mémoire
4 - Méthodologie de conception
Les systèmes à concevoir devenant de plus en plus complexes, les
types de descriptions deviennent de plus en plus variés :
- schémas,
- VHDL structurel, fonctionnel,
- ABEL (machines à états), Verilog,
- code C / C++ ?

Plus les systèmes deviennent complexes à concevoir, plus les


étapes de vérification sont nécessaires :
- simulation fonctionnelle,
- analyse des timings (chemins critiques),
- simulation post-routage (temporelle),...

Avec l'augmentation de la densité des circuits, les notions de


placement géométrique deviennent indispensables :
- floorplanning
4.1 - Le flot de conception
1- Description du système :
- Schémas (hiérarchie),
- code VHDL (Verilog, ABEL)
2- Compilation du code VHDL :
- synthèse si code fonctionnel
3- Simulation fonctionnelle :
- vérification de la description
4- Placement relatif et estimation du routage :
- «floorplanning» et gestion des contraintes d'E/S
5- Compilation du circuit :
- conversion du Netlist,
- optimisation combinatoire,
- placement / routage des cellules
- retro-annotation temporelle
6- Vérification finale :
- simulation temporelle,
- configuration / validation
4.2 - Les Intelectual Properties (IP)

Les IP sont des macro-celulles (pré-placées et/ou pré-routées)


disponibles comme des cellules de bibliothèque proposant sous
forme de « boites noires » des fonctions complexes entièrement
simulables et respectant la propriété industrielle.

On transpose directement la méthodologie de conception d'un


système complexe (associant logique discrète, composants
standards, circuits spécifiques) dans un seul circuit FPGA...

La description complète du système associe saisie de schémas,


spécifications de haut niveau (structurelle et/ou fonctionnelle)
en langage VHDL ou Verilog et langage C.
Spécification Spécification
C VHDL

Bibliothèque
standard

COMPILATEUR Bibliothèque
IP

Simulation

PLACE & ROUTE

Rétro-
annotation Modèle de
temporelle Programmation
du composant composant

Validation
Les bibliothèques d'Intelectual Properties

IP Typ e Pr ovid e r

C2 9 1 0 a Microprogram cont roller CAST Inc.


C8 0 5 1 Micro Cont roller CAST Inc.
ARC3 2 32-bit Configurable ARC Cores
RISC Processor
D8 0 5 3 0 8 -bit Micro Cont roller CAST Inc.
C2 9 0 1 Microprocessor Slice CAST Inc.
W 6 5 C0 2 S Micro Processor West ern Design Cent er
M in i-RISC Micro Processor OpenCores.org
Op e n RISC-1 0 0 0 RISC Processor OpenCores.org
La va CORE Jav a Microprocessor Deriv at ion Syst em Inc.
Fr e e -RISC8 Microprocessor The Free IP Project
LEON-1 SPARC-com pat ible European Space Agency
Micro Processor (ESA)
Les bibliothèques d'Intelectual Properties

IP Applica t ion

Encode ur Re e d-Solom on Transm ission de données


Dé code ur Re e d-Solom on Transm ission de données
Int e r fa ce PCI-X Bus de com m unicat ion
Cont r ôle ur H DLC Connect ion couche physique
Code ur /dé code ur ADPCMTransm ission, com pression
4.3 - La production en volume : HardWireTM
Le coût de production d'une solution sur FPGA devient
considérable sur de grands volumes. Le surcoût introduit
par les capacités de re-programmabilité devient prohibitif.
=> Transformation FPGA -> ASIC (Gate Array)

La technologie HardWireTM permet le passage d'une version


prototype (reprogrammable) validée à une version de
production en grande série.

Les cibles FpgASIC sont totalement compatibles et vérifiées.

Volume Début de production


Fin de vie

Circuits FpgASIC
FPGA HardWire FPGA

Durée de vie du produit


5 - Application des FPGAs :
Les machines (re)configurables
L'existence de composants logiques (re)programmables in-situ et
performants conduit à un nouveau paradigme de programmation :

« la fonction cablée reconfigurable »

Un traitement complexe se pense désormais en termes d'opérateurs


matériels optimisés configurables et programmables à l'infini.

Les FCCM (FPGA-based Custom Computing Machines) deviennent


de réels (co)processeurs de calcul optimisés.

Des traitements coûteux deviennent possibles : le temps-réel


embarqué devient possible (codage/décodage, TI, TS, etc..).
Le concept de FCCM

Processeur
hôte
Réseau d'interconnexion Plusieurs circuits FPGA

FPGA FPGA

Mem. Mem.

FPGA FPGA

Mémoires
Mem. de travail
5.1 - Quelques exemples de
FCCM

Machine FPGA Processeur Mémoire Bus

9 20 4 /FPGA 2 x XC402 5 T9000 64Ko + 8Mo Tran spu t er DS-Lin k


DVC1 2 x XC401 3 1 Mo + FIFOs Sbu s
EDgAR-2 4 x XC401 3 PCI
Funct ional Memory Comput8er
x XC401 0 + 3 x XC401 3 1 Mo PCI
LIRMM 2 x XC401 3 TMS 3 2 0C40 2 x 1 Mo ISA ou Sbu s
MARC-1 2 5 x XC4005 6 Mo Sbu s
MORRPH-ISA 6 x XC402 5 Dédié
CARMeN VIRTEX XCV1 000 ARM 8Mo + 2 Mo PCI, CAN, et c...
OPART 2 x XC402 8EX Pen t iu m + PPC2 Mo + FIFO Com pact PCI
ARDOISE ATMEL At 40K DSP 2 Mo / m odu le Dédié
5.1.1 - La machine ARMEN
Laboratoire d'Informatique de Brest
Université de Bretagne Occidentale

Processeurs Transputer T805

FPGA XC3090
5.1.2 - La machine CARMeN
SIDSA
5.2 - Programmation des FCCM :
Le CODESIGN
Application

DSP Réseau FPGA


Les projets d'outils de CODESIGN
CO SI IRISA (Renn es) ASIC : Sy st em On Ch ip
SYN D EX INRIA Trait em en t du signal
M CSE IRESTE (Nan t es) Spécif icat ion pou r le Codesign
M O SARTS Univ ersit é de Nice-An t ipolis Télécom . : part it ionn em en t
LI RM M Univ ersit é de Mon t pellier Télécom . Sy nt h èse et v érif icat ion
SKIPPER Univ . de Clerm ont -Ferran d Parallélisat ion de code en TI
CO SM O S TIMA (Grenoble) IP + processeu rs classiques
PO LI S Univ . de Berkeley Concept ion m ix t e / FSM
CO W ARE Belgique IP et st andardisat ion
Cod e X Univ . de KaiserSlau t ern Réseau x m ix t es sy st oliqu es
CH IN O O K Univ . de Wash in gt on Sy st èm es m ix t es in du st riels

Form alisat ion des lan gages de descript ion :

H a n d e lC Anglet erre Lan gage de descript ion m ix t e (OCCAM)


LCC Univ . de Virgin ie Lan gage m ix t e DSP + FPGA
Sy st e m C COWARE / Fron t ier / Sy n opsy s Lan gage et com pilat eu r C+ + m ix t e
5.2.1 - Les problèmes ouverts du CoDesign
Spécification de haut niveau Bibliothèque
(C, C++) Modèle
standard et IP
d'architecture

Analyse Extraction
du code du parallélisme

Analyse des dépendances


DSP Compilateur de données
séquentiel
Gestion des
communication Analyse des ressouces
s mémoire

FPGA Place / Route


5.2.2 - Le flot classique de conception

Modèle niveau système Description


C / C++ Traduction VHDL / Verilog
Développement

SIMULATION

ANALYSE

SYNTHESE

Résultats de test
5.2.2 - Un nouveau standard : SystemCTM
(Synopsys + CoWare + Frontier Design : www.systemc.org)

Modèle SystemC
Essais d'architectures
Amélioration
Analyse de
performances
Modèle temporel
Harware / Software
Partitionnemen
t

Modèle abstrait
Modèle Bus
RTOS

Amélioration Amélioration

Modèle cycle
Cible RTOS
synthétisable
6 – La Reconfiguration Dynamique des FPGA

Les architectures de type FPGA offrent la possibilité de modifier à


la demande l’agencement structurel ainsi que la fonctionalité des
ressources internes de la puce.

L’exploitation de ce concept introduit la notion de “fonction


câblée” programmable :

Parallélisme spatial (de données)


Parallélisme temporel (pipeline)
Flexibilité
La machine ARDOISE (Atmel)
Action incitative inter-GDR (ETIS)
ARDOISE :
Architecture Reconfigurable Dynamiquement Orientée Image et Signal Embarqué

Carte m ère + 3 m odules

Pro toty p e d’un m odule


Objectifs du projet ARDOISE
1. Utiliser la reconfiguration dynamique des FPGA
• Reconfiguration totale = 0,8 ms
• Reconfiguration partielle possible
• Changement d’algorithmes en temps réel sur le même
circuit
• Vitesse des architectures câblées, flexibilité des
architectures programmables
2. Développer l’architecture, les méthodes et les outils
• ARDOISE = prototype expérimental (académique)
• Applications en segmentation d’images
• Applications en caméras intelligentes
• Application en compression / décompression d’images
(MPEG)
Ac quisition, traitem ent
et visualisation en tem ps réel

• Proc esse ur front-end de c ontrôle des


c onfigurations ADSP SHARC 21161
• Rec o nfig uration pa rtielle et dy nam iq ue
des c irc uits FPGA ATMEL AT40K40
Architecture d’ARDOISE :
ARDOISE = application du principe de
reconfiguration dynamique en traitement
d'images :

op1 op2

Image i
Image i-1
op1
Image i-2
Image i+1
Conf. Deriche1
GTI1 BC GTI2

Mémoire
256kx32

IN FPGA
OUT
FPGA
GTI1
Deriche 1 GTI2

Mémoire
256kx32
Exec. Deriche1 / Conf. Deriche 2
GTI1 BC GTI2

Mémoire
256kx32

IN FPGA
OUT
FPGA
GTI1
Deriche 1 GTI2

Mémoire
256kx32
Exec. Deriche 2 / Conf. Contours
GTI1 BC GTI2

Mémoire
256kx32

IN FPGA
OUT
FPGA
GTI1
Deriche 2 GTI2

Mémoire
256kx32
Exec. Contours / Conf. Fermeture 1
GTI1 BC GTI2

Mémoire
256kx32

IN FPGA
OUT
FPGA
GTI1
Contours GTI2

Mémoire
256kx32
Exec. Fermeture 1 / Conf. Fermeture 2
GTI1 BC GTI2

Mémoire
256kx32

IN OUT
FPGA Fermeture FPGA
GTI1 1 GTI2

Mémoire
256kx32
Exec. Fermeture 2 / Conf. région 1
GTI1 BC GTI2

Mémoire
256kx32

IN OUT
FPGA Fermeture FPGA
GTI1 2 GTI2

Mémoire
256kx32
Exec. Région 1 / Conf. région 2
GTI1 BC GTI2

Mémoire
256kx32

IN OUT
FPGA Région FPGA
GTI1 1 GTI2

Mémoire
256kx32
Exec. Région 2 / Conf. Deriche 1
GTI1 BC GTI2

Mémoire
256kx32

IN OUT
FPGA Région FPGA
GTI1 2 GTI2

Mémoire
256kx32
Exec. Deriche 1 / Conf. Deriche 2
GTI1 BC GTI2

Mémoire
256kx32

IN OUT
FPGA Deriche 1 FPGA
GTI1 GTI2

Mémoire
256kx32
ARDOISE : Estimation de performances
Application de segmentation d’images
7 – Des FPGA aux SOPC
Systems On Programmable Chips

Les applications susceptibles d'être intégrées dans des FPGA (ou


dans des systèmes configurables) gagnent en complexité et en
densité.

La granularité des architectures FPGA ne suffit plus pour le


développement des applications :
- multiplieurs, mémoires, E/S rapides (Xilinx Virtex)
- blocs Mult-Accu-Reg pour le traitement du signal (Altera)

De plus en plus d'applications nécessitent des ressources


programmables classiques sous forme de processeurs (RISC ou
DSP)
7.1 – Architecture des Virtex2-Pro

Transceivers
RocketIO 622 Mbps

Architecture FPGA
VitexII

Processeur PowerPC
32 bits 400MHz
7.1 – Architecture des Virtex2-Pro

PPC
405
7.1 – Architecture des Virtex2-Pro
Auto-reconfiguration complète de la plate-forme !

Mémoire

PPC
405

Ethernet
I/O

Internal Configuration
Acces Port
7.2 – Architecture des Virtex4-multiPlatform
Virtex-4 LX FPGA Devices
Une « famille » de composants « plate-forme »
différenciés en fonction des besoins :
• LX : logique haute performances
• FX : TS très hautes performances
• SX : traitement embarqué et connectivité
rapide

Virtex-4 SX FPGA Devices

Virtex-4 FX FPGA Devices


7.2 – Architecture des Virtex4-multiPlatform

Virtex-4 LX FPGA Device Combinations


XC XC XC XC XC XC XC XC
Feature/Product 4VLX15 4VLX25 4VLX40 4VLX60 4VLX80 4VLX100 4VLX160 4VLX200

EasyPath™ Cost
XCE XCE XCE XCE XCE XCE XCE
Reduction --
4VLX25 4VLX40 4VLX60 4VL80 4VLX100 4VLX160 4LX200
Solutions

Logic Cells 13,824 24,192 41,472 59,904 80,640 110,592 152,064 200,448

Block RAM/FIFO
w/ECC (18 kbits 48 72 96 160 200 240 288 336
each)

Total Block RAM


864 1,296 1,728 2,880 3,600 4,320 5,184 6,048
(kbits)

Digital Clock
4 8 8 8 12 12 12 12
Managers (DCM)

Phase-matched
Clock Dividers 0 4 4 4 8 8 8 8
(PMCD)

Max Differential
160 224 320 320 384 480 480 480
I/O Pairs

XtremeDSP™
32 48 64 64 80 96 96 96
Slices

PowerPC™
-- -- -- -- -- -- -- --
Processor Blocks

10/100/1000
Ethernet MAC -- -- -- -- --- -- -- --
Blocks

RocketIO™ Serial
-- -- -- -- -- -- -- --
Transceivers

Configuration
4,875,392 8,037,312 12,647,680 18,315,520 24,101,440 31,818,624 41,863,296 50,648,448
Memory Bits

Max SelectIO™ 320 448 640 640 768 960 960 960
7.2 – Architecture des Virtex4-multiPlatform

Virtex-4 SX FPGA Device Combinations

XC XC XC
Feature/Product 4VSX25 4VSX35 4VSX55
XCE XCE XCE
EasyPath Cost Reduction Solutions
4VSX25 4VSX35 4VSX55
Logic Cells 23,040 34,560 55,296
Block RAM/FIFO w/ECC (18 kbits
128 192 320
each)
Total Block RAM (kbits) 2,304 3,456 5,760
Digital Clock Managers (DCM) 4 8 8

Phase-matched Clock Dividers (PMCD) 0 4 4

Max Differential I/O Pairs 160 224 320


XtremeDSP™ Slices 128 192 512
PowerPC Processor Blocks -- -- --
10/100/1000 Ethernet MAC Blocks -- -- --
RocketIO Serial Transceivers -- -- --
Configuration Memory Bits 9,651,072 14,476,608 24,088,320
Max SelectIO 320 448 640
7.2 – Architecture des Virtex4-multiPlatform
Virtex-4 FX FPGA Device Combinations
XC XC XC XC XC
Feature/Product 4VFX12 4VFX20 4VFX40 4VFX60 4VFX140

EasyPath Cost XCE XCE XCE XCE


--
Reduction Solutions 4VFX20 4VFX40 4VFX60 4VFX140

Logic Cells 12,312 19,224 41,904 56,880 142,128

Block RAM/FIFO w/ECC


36 68 144 232 552
(18 kbits each)

Total Block RAM (kbits) 648 1224 2,592 4,176 9,936

Digital Clock Managers


4 4 8 12 20
(DCM)

Phase-matched Clock
0 0 4 8 8
Dividers (PMCD)

Max Differential I/O Pairs 160 160 224 288 448

XtremeDSP™ Slices 32 32 48 128 192

PowerPC Processor
1 1 2 2 2
Blocks

10/100/1000 Ethernet MAC


2 2 4 4 4
Blocks

RocketIO Serial
0 8 12 16 24
Transceivers

Configuration Memory Bits 5,017,088 7,641,088 15,838,464 22,262,016 50,900,352

Max SelectIO 320 320 448 576 896


7.3 – Architecture Excalibur-ARM
7.4 – Architecture XPPTM de PACT
Du SOPC au RSoC : Reconfigurable System on Chip

Architecture interne organisée autour d’un réseau de communication :


• Processeur central intégré (ARM 32 bits)
• Mémoire intégrée
• Ressources d’entrée/sortie
• Périphériques
• Zone reconfigurable dynamiquement (64 ALUs reconfigurables)

• Applications de type multimédia


8 – CONCLUSION
L’évolution des performances de la technologie reconfigurable rend
les RSoC économiquement faisables et meilleurs candidats pour les
machines de type plateformes.

La technologie est mûre, maîtrisée et les concepts de configuration


statique largement acceptés.

Les SOPC et RSoC deviennent de plus en plus intégrés, parallèles et


hétérogènes. Leurs applications se déplacent progressivement vers le
temps réel « mou » et « dur ».

Besoin de développer des méthodologies d’exploitation efficace de


ces machines :
• OS embarqués temps-réel
• méthodologies de conception par composants
• exploitation de la reconfiguration dynamique en ligne…
9 – PISTES
Le challenge scientifique est aujourd’hui de concevoir des plate-
formes embarquées totalement autonomes dotées des capacités de
reconfiguration partielle dynamique (RSoC).

Complexité architecturale + complexité des applications


+ hétérogénéité des ressources + HW/SW
= nouvelles méthodologies de conception
Applications : radio-logicielle, plate-formes multimédia portables,
contrôle/commande embarqué…

Ressources : processeurs RISC (ARM, PPC), processeurs DSP,


µContrôleurs, mémoire(s), bus, réseaux, IP dédiées,
ARD, I/O

Concepts : Reconfiguration dynamique (ARD), routage


dynamique (réseaux), SW+HW, RTOS,
parallélisme, séquentiel, reprogrammabilité « en ligne »,
qualité de service…

Méthodes : Génie logiciel, modélisation, concepts objets,


portabilité, validation à haut niveau
Modèle logiciel des plate-formes

Application

OS pour SOC+ARD

Interconnexions (réseau, bus...)

Communications flexibles Communications flexibles


noyau noyau noyau noyau noyau noyau
noyau noyau
MV MM MM MV MV MM
Reconf. HAL Reconf. HAL

Proc. DSP ARD1 ARD2

non-reconfigurable reconfigurable
OS pour ARD
Gestion OS_createMV()
des entrepot
communications
de config.
main
OS_createMM()

MODULE MATERIEL MACHINE VIRTUELLE

PROCESSEUR CENTRAL

réseau de communication
flexible

Zone reconfigurable
OS pour ARD
mémoires
de tâches

PROCESSEUR CENTRAL

MODULE MATERIEL MACHINE VIRTUELLE

réseau de communication
flexible
Zone reconfigurable
OS pour ARD changement de contexte
Migration changements
de contexte
Ordonnancement soft / soft

Migration
hard / soft

PROCESSEUR CENTRAL

MODULE MATERIEL MACHINE VIRTUELLE

Préemption
matérielle
Zone reconfigurable
Modélisation UML des plate-formes
Flot de modélisation, d’abstraction et de raffinement
http://oversoc.ensea.fr
Projet ANR 2005-2008