Vous êtes sur la page 1sur 84
Les circuits logiques programmables - FPGA Fabrice CAIGNET LAAS - CNRS fcaignet@laas.fr

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Fabrice CAIGNET LAAS - CNRS fcaignet@laas.fr

Fabrice CAIGNET LAAS - CNRS fcaignet@laas.fr

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

I. Les Réseaux Logiques Programmables : PLD

II. Les technologies des éléments programmables

III. Les FPGAs

IV. Les outils de développement

V. Les tendances des composants programmables

VI. Le langage VHDL

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

PLD = Programmable Logic Devices

Circuits logiques + ou - complexes remplaçant l’association de plusieurs

boîtes logiques

• Simplification de câblage

• Encombrement réduit

• Diminution des coûts

• Facilité d’utilisation

• Diminution du risque des pannes

d’utilisation • Diminution du risque des pannes entrées   PLD Association de fct Logiques  

entrées

• Diminution du risque des pannes entrées   PLD Association de fct Logiques    
 

PLD Association de fct Logiques

 
   

Sorties

1 seul circuit intégré

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Importance du «Time To Market »

Le cahier des charges du développement d’un système doit prendre en compte les paramètres suivants :

Le coût de production

Les performances

La consommation

L'intégration

L'évolution du produit

La maintenance

La protection industrielle

Deux alternatives existent :

• La protection industrielle Deux alternatives existent : Nb de ventes Entreprise 1 Entreprise 2 temps

Nb de ventes

Entreprise 1 Entreprise 2
Entreprise 1
Entreprise 2
existent : Nb de ventes Entreprise 1 Entreprise 2 temps • Les ASIC (Application Specific integrated

temps

Les ASIC (Application Specific integrated Circuits)

Les Circuits à réseaux programmables

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Quelles différences entre un ASIC et un PLD

ASIC

Application Specific Integrated Circuits

Choix du fondeur
Choix du fondeur
Conception du circuit (full-custom - bibliothèques)
Conception du circuit
(full-custom - bibliothèques)
Très grand niveau d’intégration
Très grand niveau d’intégration
Fabrication à très grand nombre d’exemplaire
Fabrication
à très grand nombre
d’exemplaire

Un circuit dédié à une application

Choix de la technologie Maximum de performances

nombre d’exemplaire • Un circuit dédié à une application • Choix de la technologie Maximum de

PLD

Programmable Logic Device

Choix du circuit
Choix du circuit
Programmation du circuit (logiciel + interface circuit)
Programmation du circuit
(logiciel + interface circuit)
Intégration limitée
Intégration limitée
Implémentation nombre d’exemplaires limité
Implémentation
nombre d’exemplaires
limité

Un circuit programmé pour une application

Technologie figée mais :

limité • Un circuit programmé pour une application • Technologie figée mais : Facilité de programmation

Facilité de programmation

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Avantages des PLD

Le coût et temps de développement.

Le prototypage et temps de simulation accéléré.

La prise de risque est réduite. (modifications possibles,

risque d'inventaire)

Des supports logiciels peu chers.

Des produits éprouvés. (pas de vecteurs de test structurel)

Inconvénients

Un niveau d'intégration moindre aux ASIC.

Une consommation plus élevée.

Des prix importants et une faible disponibilité pour de

grandes séries .

plus élevée. • Des prix importants et une fa ible disponibilité pour de grandes séries .

Symbolisation

Normalisée

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Quatre Familles de PLD

boîtes logiques

PLDPLD
PLDPLD
Les circuits logiques programmables - FPGA Quatre Familles de PLD boîtes logiques PLDPLD PAL GAL EPLD

PAL

GAL

Les circuits logiques programmables - FPGA Quatre Familles de PLD boîtes logiques PLDPLD PAL GAL EPLD

EPLD

FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

PAL (Programmable Array Logic) : réseaux logiques programmables

• Développés au début des années 70 par MMI (ex-AMD)

• La programmation se fait par destruction de fusibles

• Aucun fusible n’est grillé à l’achat de la PAL

FusiblesFusibles Fusibles
FusiblesFusibles Fusibles

LesLes fonctionsfonctions ETET sontsont programmablesprogrammables

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

PAL (Programmable Array Logic) : réseaux logiques programmables

Représentation :

- les fusibles intactes sont représentés par une connexion

- les fusibles détruits sont représentés par une absence de connexion

FusibleFusible Fusible intactintact intact FusibleFusible Fusible détruitdétruit détruit
FusibleFusible Fusible intactintact intact
FusibleFusible Fusible détruitdétruit détruit

ExempleExemple d’und’un “OU“OU EXCLUSIF”EXCLUSIF”

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

PAL (Programmable Array Logic) : réseaux logiques programmables Que peut-on trouver dans une PAL??

logiques programmables Que peut-on trouver dans une PAL?? Tout P.A.L. est constitué : - D'entrées (Input):

Tout P.A.L. est constitué :

- D'entrées (Input): I1 à In avec

8<n<20.

- De sorties (Output) Ou d’entrées /

sorties (I/O) de type Totem Pôle ou Trois Etats :O1 à On ou IO1 à IOn

(2<n<15).

On trouve aussi :

- Une entrée d'horloge (Clock): Clk ou Clock.

- Une entrée de validation des

sorties trois états: OE (Output Enable) ou Enable.

- Une entrée de remise à zéro des registres: RESET.

Les circuits logiques programmables - FPGA I. Les Réseaux Logiques Programmables : PLD PAL :

Les circuits logiques programmables - FPGA

I. Les Réseaux Logiques Programmables : PLD

- FPGA I. Les Réseaux Logiques Programmables : PLD PAL : Matrice de programmation La plupart
- FPGA I. Les Réseaux Logiques Programmables : PLD PAL : Matrice de programmation La plupart

PAL : Matrice de programmation

La plupart des P.A.L. sont constitués :

- Un ensemble de portes « ET »

sur lesquelles viennent se connecter les variables d’entrée et leurs compléments.

- Un ensemble de portes « OU »

sur lesquelles les sorties des opérateurs « ET » sont connectées les variables d’entrée.

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

PAL : Structure de sortie

Il existe 3 structures de sortie qui peuvent-être aussi de entrées/sorties :

- Combinatoire

- Séquentielle

- versatiles

• Entrées / Sorties combinatoires Sortie 3 états rebouchée vers la matrice une sortie peut servir de variable intermédiaire une sortie peut servir d’entrée (en mode haute impédance)

matrice une sortie peut servir de variable intermédiaire une sortie peut servir d’entrée (en mode haute
matrice une sortie peut servir de variable intermédiaire une sortie peut servir d’entrée (en mode haute

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

PAL : Structure de sortie

• Entrées / Sorties séquentielles, à registre

Une bascule D permet la logique séquentielle sorties séquencées sur une horloge H une sortie ne peut pas servir d’entrée une commande OE (Ouput Enable) permet de désactiver la sortie

d’entrée une commande OE (Ouput Enable) permet de désactiver la sortie OE Sortie Sortie à à
d’entrée une commande OE (Ouput Enable) permet de désactiver la sortie OE Sortie Sortie à à
d’entrée une commande OE (Ouput Enable) permet de désactiver la sortie OE Sortie Sortie à à
OE
OE

SortieSortie àà REGISTREREGISTRE

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

PAL (Programmable Array Logic) : Structure de sortie

• Entrées / Sorties versatiles (VPAL)

Structure de sortie • Entrées / Sorties versatiles (VPAL) On peut configurer par programmati on le

On peut configurer par programmation le mode d’utilisation de la broche de sortie

programmati on le mode d’utilisation de la broche de sortie Entrée Entrée / / Sortie Sortie

EntréeEntrée // SortieSortie VERSATILEVERSATILE

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

PAL (Programmable Array Logic) : Exemple de PAL22V10 (AMD)

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

GAL (Généric Array Logic), « LATICE Semiconductor »

RéseauRéseau LogiqueLogique ReReprogrammableprogrammable

Un GAL est un PAL effaçable électriquement
Un
GAL
est un
PAL
effaçable
électriquement

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA Erasable Erasable Programmable Programmable Logic Logic Device Device
Les circuits logiques programmables - FPGA Erasable Erasable Programmable Programmable Logic Logic Device Device
Les circuits logiques programmables - FPGA Erasable Erasable Programmable Programmable Logic Logic Device Device
Les circuits logiques programmables - FPGA Erasable Erasable Programmable Programmable Logic Logic Device Device

ErasableErasable ProgrammableProgrammable LogicLogic DeviceDevice

CircuitCircuit LogiqueLogique reprogrammablereprogrammable

dede grandegrande capacitécapacité

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA Forecasting Forecasting Programmable Programmable Gate Gate Array Array La
Les circuits logiques programmables - FPGA Forecasting Forecasting Programmable Programmable Gate Gate Array Array La
Les circuits logiques programmables - FPGA Forecasting Forecasting Programmable Programmable Gate Gate Array Array La
Les circuits logiques programmables - FPGA Forecasting Forecasting Programmable Programmable Gate Gate Array Array La

ForecastingForecasting ProgrammableProgrammable GateGate ArrayArray

La densité croissante des circuits programmables actuels, notamment des

RéseauRéseau dede portesportes programmablesprogrammables àà lala demandedemande

FPGA (Field Programmable Gate Array), permet le prototypage rapide des

circuits numériques à grande complexité. Aussi, il est possible de tester

rapidement la validité de concepts architecturaux nouveaux: l'implémentation

complète d'un processeur sur des circuits FPGA est aujourd'hui à notre

portée, entraînant ainsi plus de possibilités d'évaluation que celles offertes par des simulateurs logiciels. De plus, la reprogrammabilité de certains circuits FPGA a ouvert de nouvelles voies de recherche: des méthodologies de conception des systèmes reconfigurables, capables d'évoluer ou de s'adapter à des environnements ou à des contraintes variables.

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Résumé graphique des familles de P.L.D.

PLD Circuits Logiques Programmables PAL et FPLS PAL à fusibles bipolaires PAL CMOS effaçables électriquement
PLD
Circuits Logiques
Programmables
PAL et FPLS
PAL à fusibles bipolaires
PAL CMOS effaçables électriquement
GAL effaçables électriquement
PAL effaçables aux UV
GPLD - EPLD
LCA
FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les principaux critères de choix des P.L.D. sont:

- Vitesse de fonctionnement

- Nombre de portes

- Consommation

- Technologie

- Prix

critères de choix des P.L.D. sont: - Vitesse de fonctionnement - Nombre de portes - Consommation

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Généralité sur les technologies des éléments programmables

On trouve les éléments programmables dans les blocs logiques des PLDs, afin de leur donner une fonctionnalité, mais aussi dans les matrices d'interconnexions entre ces blocs. Un élément programmable peut être considéré comme un interrupteur. Afin de respecter les contraintes imposées à l'ingénieur, les éléments programmables doivent posséder plusieurs qualités :

programmables doivent posséd er plusieurs qualités : - Ils doivent occuper une surface la plus petite

- Ils doivent occuper une surface la plus petite possible (Ce point

s'explique pour des raisons évidentes de coût. Ceci est d'autant plus vrai que l'on désire en disposer d'un grand nombre).

que l'on désire en disposer d'un grand nombre). Ils doivent posséder une résistance de passage faible

Ils doivent posséder une résistance de passage faible et une résistance de coupure très élevée.

-

faible et une résistance de coupure très élevée. - - Ils doivent apporter un minimum de

- Ils doivent apporter un minimum de capacité parasite.

Les deux derniers points s'expliquent quant à eux pour des raisons de performance en terme de fréquence de fonctionnement du PLD. Plus la résistance et la capacité sur le chemin d'un signal sont faibles, plus la fréquence de ce signal peut être élevée (RC effet).

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les technologies à fusibles Les fusibles sont grillés en appliquant des tensions élevées (12V)

sont grillés en appliquant des tensions élevées (12V) T e c h n o l o

Technologie fusible-diode

n o l o g i e f u s i b l e - d

Technologie fusible-transistor

Technologies Technologies maintenant maintenant abandonnées abandonnées pour pour des des raisons raisons de de manque manque de de fiabilité. fiabilité.

Le Le fait fait de de "griller" "griller" les les fusibles fusibles provoque provoque des des perturbations perturbations qui qui peuvent peuvent affecter affecter le le reste reste du du circuit. circuit.

De De plus, plus, cette cette programmation programmation est est irréversible irréversible et et ne ne permet permet donc donc pas pas la la re-programmabilité. re-programmabilité.

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les technologies à anti-fusibles (Actel, QuickLogic, Crosspointet Xilinx)

un anti-fusible est un élément programmable qui à l'inverse des fusibles n'est passant qu'après programmation. La connexion s effectue en détruisant un diélectrique

Technologie anti-fusible PLICE
Technologie anti-fusible PLICE
détruisant un diélectrique Technologie anti-fusible PLICE Technologie anti-fusible VIA-Link Technologie Technologie
Technologie anti-fusible VIA-Link
Technologie anti-fusible VIA-Link

Technologie Technologie difficile difficile à à maîtriser maîtriser

ne ne permettent permettent pas pas la la reprogrammation reprogrammation

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les technologies à EPROM/FLASH (Actel, AMD

)

Il existe deux variantes de l'EPROM,

- Erasable Programmable Read Only Memory classique (EPROM)

- Electrically Erasable Programmable Read Only Memory (EEPROM).

Erasable Programmable Read Only Memory (EEPROM). Cellule à grille flottante d’une EPROM S y s t

Cellule à grille flottante d’une EPROM

Memory (EEPROM). Cellule à grille flottante d’une EPROM S y s t è m e d
Memory (EEPROM). Cellule à grille flottante d’une EPROM S y s t è m e d
Memory (EEPROM). Cellule à grille flottante d’une EPROM S y s t è m e d

Système dinterconnexion

Cellule à grille flottante d’une EPROM S y s t è m e d ’ i

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les technologies à EPROM/FLASH (Actel, AMD

)

Le système à Grille flottante :

Charge de la grille
Charge de la grille

VT1

Non programmé

à Grille flottante : Charge de la grille VT1 Non programmé V T 0 P r
à Grille flottante : Charge de la grille VT1 Non programmé V T 0 P r
à Grille flottante : Charge de la grille VT1 Non programmé V T 0 P r

VT0

Programmé

Etat Etat non non programmé programmé : : il il n'existe n'existe pas pas de de Etat non non programmé programmé : : il il n'existe n'existe pas pas de de charge charge dans dans la la grille grille flottante flottante et et le le

En cours de programmation (effet tunel, passage d'un fort courant entre la

En cours de programmation (effet tunel, passage d'un fort courant entre la

transistor transistor peut peut être être utilisé utilisé normalement. normalement.

être être utilisé utilisé normalement. normalement. source source et et le le drain), drain), une une
être être utilisé utilisé normalement. normalement. source source et et le le drain), drain), une une

source source et et le le drain), drain), une une partie partie de de la la charge charge est est retenue retenue dans dans la la grille grille flottante. flottante. Le Le

seuil seuil du du transistor transistor augmente, augmente,

Le Le transistor transistor est est bloqué bloqué jusqu'à jusqu'à ce ce qu'il qu'il soit soit "effacé". "effacé".

bloqué ju squ'à ju squ'à ce ce qu'il qu'il soit soit "effacé ". "effacé ".

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les technologies à RAM statique -SRAM (XILINX, ALTERA

)

Elle fait appel à une phase de chargement de la configuration depuis l'extérieur

Commande
Commande

Transistor de passage

depuis l'extérieur Commande Transistor de passage Portes de passage Commande Structure + complexe (4 à 6

Portes de passage

Commande Transistor de passage Portes de passage Commande Structure + complexe (4 à 6 Transistors) Portes

Commande

Structure + complexe (4 à 6 Transistors)
Structure + complexe (4 à 6 Transistors)
Structure + complexe (4 à 6 Transistors)

Structure + complexe (4 à 6 Transistors)

Commande Structure + complexe (4 à 6 Transistors) Portes de passage Place Place importante importante

Portes de passage

Place Place importante importante

Mémoire Mémoire volatile volatile (reprogrammation (reprogrammation

obligatoire) obligatoire)

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les technologies à RAM statique -SRAM (XILINX, ALTERA

Exemples de structure SRAM implantées

programmables - FPGA Les technologies à RAM statique -SRAM ( XILINX, ALTERA Exemples de structure SRAM
programmables - FPGA Les technologies à RAM statique -SRAM ( XILINX, ALTERA Exemples de structure SRAM

)

programmables - FPGA Les technologies à RAM statique -SRAM ( XILINX, ALTERA Exemples de structure SRAM

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Récapitulatif :

Les circuits logiques programmables - FPGA Récapitulatif : La technologie EEPROM Les PLD à EPROM se

La technologie EEPROM

Les PLD à EPROM se programment électriquement et s’effacent aux UV, Par contre Les PLD à EEPROM se programment quasi instantanément, et gardent la configuration jusqu’à une nouvelle programmation (même en l’absence de tension)

La technologie EEPROM

Facile et rapide à programmer, la configuration disparaît sans alimentation.

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Technologies utilisées par les différents fabricants

Les circuits logiques programmables - FPGA Technologies utilisées par les différents fabricants

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Rappel des caractéristiques principales

Comme nous venons de le voir, les éléments programmable sont à la base des caractéristiques des FPGA Le choix d’un PLD dépendra dont :

La densité d’intégration

De la rapidité de fonctionnement (paramètre directement lié à l’impédance intrinsèque des éléments programmables

De la facilité de mise en œuvre (programmation, re- programmation…)

de la possibilité de maintien de l’information

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Rappel des caractéristiques principales

Les structures PAL sont à la base des CPLD, FPGA d’aujourd’hui

OMLC Output Logic MacroCell (Combinatoires Séquentielles Versatiles
OMLC
Output Logic MacroCell
(Combinatoires
Séquentielles
Versatiles
Les circuits logiques programmables - FPGA Les CPLD (Complexe Programmable Logic Device) : Ces circuits

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les CPLD (Complexe Programmable Logic Device) : Ces circuits ont

Les CPLD (Complexe Programmable Logic Device) :

Ces circuits ont une capacité de portes et de configuration très largement supérieur aux PAL

Bloc Logiques Zone d ’inter- connexion Bloc Bloc Logiques Logiques
Bloc
Logiques
Zone
d ’inter-
connexion
Bloc
Bloc
Logiques
Logiques

Macro-cellules composées de :

- une zone de portes logiques

- un bascule

équivalent à plusieurs PAL séparées par

16 à 1000 bascules

Les circuits logiques programmables - FPGA Les FPGA (Fields Programmable Gate Array) : Réseau de

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les FPGA (Fields Programmable Gate Array) : Réseau de portes

Les FPGA (Fields Programmable Gate Array) : Réseau de portes programmables à la demande - XILINX et ALTERA.

les FPGA à la différence des CPLD sont assimilables à des A.S.I.C.

programmables par l’utilisateur.

La puissance de ces circuits est telle qu’ils peuvent être composés de plusieurs

milliers voir millions de portes logiques et de bascules. Les dernières générations de FPGA intègrent même de la mémoire vive (RAM). Les deux plus grands

constructeurs de FPGA sont XILINX et ALTERA.

Ils sont composés de blocs logiques élémentaires (plusieurs milliers de portes) qui peuvent être interconnectés.

Critère de choix : vitesse de fonctionnement plus élevées pour les CPLD

Les circuits logiques programmables - FPGA Structure interne d’un FPGA type XILINX • blocs logiques

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Structure interne d’un FPGA type XILINX • blocs logiques configurables

Structure interne d’un FPGA type XILINX

- FPGA Structure interne d’un FPGA type XILINX • blocs logiques configurables • blocs d’I/O

blocs logiques configurables

blocs d’I/O configurables

des interconnexions entre bloc

Les circuits logiques programmables - FPGA Structure interne des FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Structure interne des FPGA

Structure interne des FPGA

Les circuits logiques programmables - FPGA Structure interne des FPGA
Les circuits logiques programmables - FPGA Structure interne des FPGA
Les circuits logiques programmables - FPGA Structure interne des FPGA
Les circuits logiques programmables - FPGA Structure interne des FPGA FPGA « Raw-based » FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Structure interne des FPGA FPGA « Raw-based » FPGA «

Structure interne des FPGA

Les circuits logiques programmables - FPGA Structure interne des FPGA FPGA « Raw-based » FPGA «
Les circuits logiques programmables - FPGA Structure interne des FPGA FPGA « Raw-based » FPGA «
Les circuits logiques programmables - FPGA Structure interne des FPGA FPGA « Raw-based » FPGA «

FPGA « Raw-based »

Les circuits logiques programmables - FPGA Structure interne des FPGA FPGA « Raw-based » FPGA «

FPGA « Sea of gates »

Les circuits logiques programmables - FPGA Structure interne des FPGA FPGA « Raw-based » FPGA «
Les circuits logiques programmables - FPGA Les interconnexions programmables dans les FPGA • des optimisations

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les interconnexions programmables dans les FPGA • des optimisations de

Les interconnexions programmables dans les FPGA

- FPGA Les interconnexions programmables dans les FPGA • des optimisations de routage • •

des optimisations de routage

canaux de routage rapide

Les circuits logiques programmables - FPGA Les interconnexions programmables dans les FPGA Afin Afin de

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les interconnexions programmables dans les FPGA Afin Afin de de

Les interconnexions programmables dans les FPGA

Afin Afin de de diminuer diminuer le le nombre nombre de de canaux canaux de de routage, routage, ils ils sont sont segmentés segmentés ou ou peuvent peuvent

l'être l'être par par programmation. programmation. Cette Cette dernière dernière méthode méthode est est utilisée utilisée dans dans le le cas cas d'une d'une

technologie technologie de de programmation programmation par par anti-fusibles anti-fusibles car car les les éléments éléments programmables programmables sont sont

de de petite petite taille. taille.

On On notera notera les les compromis compromis qu'il qu'il existe existe entre entre nombre nombre de de canaux canaux de de routage, routage, nombre nombre

d'éléments d'éléments de de programmation programmation et et temps temps de de propagation. propagation.

et et temps temps de de propagation. propagation. Les figures illustrent les différents typ es de
et et temps temps de de propagation. propagation. Les figures illustrent les différents typ es de
et et temps temps de de propagation. propagation. Les figures illustrent les différents typ es de
et et temps temps de de propagation. propagation. Les figures illustrent les différents typ es de

Les figures illustrent les différents types de segmentation pour un même exemple de routage

Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA -

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA - -

Les types de blocs logiques dans les FPGA

-

-

Les blocs à multiplexeurs.

-

Les LUT.

-

Les cellules symétriques.

Cellules symétriques :

Ces blocs de petite taille

servent à réaliser des fonctions

logiques simples mais aussi

comme ressources de

connexion

: Ces blocs de petite taille servent à réaliser des fonctions logiques simples mais aussi comme
: Ces blocs de petite taille servent à réaliser des fonctions logiques simples mais aussi comme
: Ces blocs de petite taille servent à réaliser des fonctions logiques simples mais aussi comme
: Ces blocs de petite taille servent à réaliser des fonctions logiques simples mais aussi comme
Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA Les

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA Les Multiplexeurs

Les types de blocs logiques dans les FPGA Les Multiplexeurs :

En venant programmer les entrées du multiplexeur et en pilotant les signaux de sélection, il est possible de réaliser toutes les fonctions logiques (à autant d'entrées que de signaux de sélection). Leur très petite taille est particulièrement adaptée à la technologie anti-fusible.

que de signaux de sélection). Leur très petite taille est particulièrement adaptée à la technologie anti-fusible.
Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA Les

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA Les LUT

Les types de blocs logiques dans les FPGA Les LUT (Look-Up Table) :

Les Look-Up Table sont un cas particulier des cellules à multiplexeur, avec de 2

à 9 entrées et dont la technologie du point mémoire est une technologie SRAM. Une Look Up Table de N entreées est une mémoire qui peut implémenter n'importe quelle fonction booléenne de N variables. Les N entrées sont utilisées comme adresse d'une mémoire de 2 n bits qui code la fonction booléenne à réaliser. On peut donc réaliser 2 n fonctions différentes avec une LUT à N entrées. Les Look-Up Tables sont des blocs logiques de très petite granularité dans un CLP. Comme Les Look-Up Table possèdent une bascule de sortie, les architectures

à base de Look-Up Table sont beaucoup plus riches en bascules que les architectures à macro-cellules.

Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA Les

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA Les LUT

Les types de blocs logiques dans les FPGA Les LUT (Look-Up Table) :

Entrées

programmables - FPGA Les types de blocs logiques dans les FPGA Les LUT (Look-Up Table) :
programmables - FPGA Les types de blocs logiques dans les FPGA Les LUT (Look-Up Table) :
programmables - FPGA Les types de blocs logiques dans les FPGA Les LUT (Look-Up Table) :

Point mémoires

Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA Les

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les types de blocs logiques dans les FPGA Les Macro-cellules

Les types de blocs logiques dans les FPGA Les Macro-cellules :

On retrouve dans certaines macro-cellules toute la complexité d'un PAL. Il y a en général un nombre réduit de macro- cellules dans un EPLD, car ces cellules

occupent une grande surface. la macro-cellule présente plusieurs intérêts :

- grand nombre de variables d'entrées possibles

- grand nombre de termes de produits possibles

intérêts : - grand nombre de variables d'entrées possibles - grand nombre de termes de produits
Les circuits logiques programmables - FPGA - Le système de développement - Le programmeur

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA - Le système de développement - Le programmeur

- Le système de développement

- Le programmeur

Les circuits logiques programmables - FPGA - Le système de développement - Le programmeur
Les circuits logiques programmables - FPGA - Le système de développement - Le programmeur
Les circuits logiques programmables - FPGA Les systèmes de développement - Par un schéma à

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les systèmes de développement - Par un schéma à base

Les systèmes de développement

- Par un schéma à base de fonctions logiques élémentaires (Portes

- En utilisant un langage de description comportementale H.D.L.

Les circuits logiques programmables - FPGA Voir 2ème fichier

Les circuits logiques programmables - FPGA

Voir 2ème fichier

Les circuits logiques programmables - FPGA Les systèmes de développement

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les systèmes de développement

Les systèmes de développement

Les circuits logiques programmables - FPGA Les systèmes de développement
Les circuits logiques programmables - FPGA Les systèmes de développement
Les circuits logiques programmables - FPGA Presentation générale

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Presentation générale

Presentation générale

Les circuits logiques programmables - FPGA Presentation générale
Les circuits logiques programmables - FPGA Presentation générale
Les circuits logiques programmables - FPGA Performances de certains FPGA parmi les MAX7000

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Performances de certains FPGA parmi les MAX7000

Performances de certains FPGA parmi les MAX7000

Les circuits logiques programmables - FPGA Performances de certains FPGA parmi les MAX7000
Les circuits logiques programmables - FPGA Les Macrocells

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les Macrocells

Les Macrocells

Les circuits logiques programmables - FPGA Les Macrocells
Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)

Les contraintes de temps (timing constrains)

Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)
Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)
Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)

Les contraintes de temps (timing constrains)

Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)
Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)

Les contraintes de temps (timing constrains)

Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)
Les circuits logiques programmables - FPGA Les contraintes de temps (timing constrains)
Les circuits logiques programmables - FPGA Le format de test JTAG : IEEE 1149.1 (the

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Le format de test JTAG : IEEE 1149.1 (the boundary

Le format de test JTAG : IEEE 1149.1 (the boundary scan standard)

Les circuits logiques programmables - FPGA Le format de test JTAG : IEEE 1149.1 (the boundary
Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA Informations générales The The logic logic array array contains

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales The The logic logic array array contains contains

Informations générales

logiques programmables - FPGA Informations générales The The logic logic array array contains contains logic
The The logic logic array array contains contains logic logic array array blocks blocks (LABs)
The The logic logic array array contains contains logic logic array array blocks blocks
(LABs) (LABs) composed composed of of 10 10 logic logic elements elements
(LEs) (LEs) that that communicate communicate through through a a fully fully
populated populated local local interconnect interconnect structure structure
communicate through through a a fully fully populated populated local local interconnect interconnect structure structure
Les circuits logiques programmables - FPGA Informations générales LAB LAB Le Le Le Le Interleaved

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales LAB LAB Le Le Le Le Interleaved Interleaved

Informations générales

LAB LAB Le Le Le Le Interleaved Interleaved LABs LABs Chaque Chaque Le Le d’un
LAB
LAB
Le
Le
Le
Le
Interleaved Interleaved LABs LABs
Chaque Chaque Le Le d’un d’un même même LAB LAB peuvent peuvent
être être interconnectés interconnectés ainsi ainsi qu’à qu’à leurs leurs
plus plus proches proches voisins voisins
leurs leurs plus plus proches proches voisins voisins Les Les LAB LAB peuvent peuvent être être
leurs leurs plus plus proches proches voisins voisins Les Les LAB LAB peuvent peuvent être être
Les Les LAB LAB peuvent peuvent être être interconnectés interconnectés grâce grâce à à un
Les Les LAB LAB peuvent peuvent être être interconnectés interconnectés
grâce grâce à à un un réseau réseau d’interconnections d’interconnections
longue longue distance distance
Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?

Informations générales : que sont les LE (logic Element)?

Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?
Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?
Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?

Informations générales : que sont les LE (logic Element)?

Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?
Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?

Informations générales : que sont les LE (logic Element)?

Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?
Les circuits logiques programmables - FPGA Informations générales : que sont les LE (logic Element)?
Les circuits logiques programmables - FPGA Informations générales : performances

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales : performances

Informations générales : performances

Les circuits logiques programmables - FPGA Informations générales : performances
Les circuits logiques programmables - FPGA Informations générales Premier circuit programmable dit: embedded

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales Premier circuit programmable dit: embedded

Informations générales

Premier circuit programmable dit:

embedded programmable logic device (PLD) family, providing System-on-a-Programmable-Chip (SOPC)

De 10000 à 250000 portes

embedded programmable logic device (PLD) family, providing System-on-a-Programmable-Chip (SOPC) De 10000 à 250000 portes
Les circuits logiques programmables - FPGA Informations générales The APEX™ device family ranges from 30,000

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales The APEX™ device family ranges from 30,000 to

Informations générales

The APEX™ device family ranges from 30,000 to over 1.5 million gates (113,000 to over 2.5 million system gates) and ships on 0.22-µm, 0.18-µm, and 0.15-µm processes. Introduced in 1999 with all copper interconnect layers

gates) and ships on 0.22-µm, 0.18-µm, and 0.15-µm processes. Introduced in 1999 with all copper interconnect
gates) and ships on 0.22-µm, 0.18-µm, and 0.15-µm processes. Introduced in 1999 with all copper interconnect
gates) and ships on 0.22-µm, 0.18-µm, and 0.15-µm processes. Introduced in 1999 with all copper interconnect
Les circuits logiques programmables - FPGA Informations générales (1 ESB = 4096bits) Protocole Protocole de

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales (1 ESB = 4096bits) Protocole Protocole de de

Informations générales

logiques programmables - FPGA Informations générales (1 ESB = 4096bits) Protocole Protocole de de communication
logiques programmables - FPGA Informations générales (1 ESB = 4096bits) Protocole Protocole de de communication
(1 ESB = 4096bits) Protocole Protocole de de communication communication 1Gbs 1Gbs
(1 ESB = 4096bits)
Protocole Protocole de de
communication communication
1Gbs 1Gbs
Les circuits logiques programmables - FPGA Informations générales Package informations

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales Package informations

Informations générales

Package informations

Les circuits logiques programmables - FPGA Informations générales Package informations
Les circuits logiques programmables - FPGA Informations générales

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Informations générales

Informations générales

Les circuits logiques programmables - FPGA Informations générales
Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA Structure Système de communication entre les LABs Chaque MegaLAB

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Structure Système de communication entre les LABs Chaque MegaLAB contient

Structure

Système de communication entre les LABs

programmables - FPGA Structure Système de communication entre les LABs Chaque MegaLAB contient un groupe de

Chaque MegaLAB contient un groupe de 16 ou 24 LABs

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA Structure des Le

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Structure des Le

Structure des Le

Les circuits logiques programmables - FPGA Mode de programmation des Le LE mode normal est

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Mode de programmation des Le LE mode normal est utilisé

Mode de programmation des Le

logiques programmables - FPGA Mode de programmation des Le LE mode normal est utilisé pour la
logiques programmables - FPGA Mode de programmation des Le LE mode normal est utilisé pour la

LE mode normal est utilisé pour la synthèse de structures combinatoires ou séquentiel, avec les possibilités de mise en cascade

Les circuits logiques programmables - FPGA Mode de programmation des Le LE mode arithmétique est

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Mode de programmation des Le LE mode arithmétique est utilisé

Mode de programmation des Le

logiques programmables - FPGA Mode de programmation des Le LE mode arithmétique est utilisé pour la

LE mode arithmétique est utilisé pour la synthèse de fonctions addition, comparaison, accumulation…

Les circuits logiques programmables - FPGA Mode de programmation des Le LE mode comptage propose

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Mode de programmation des Le LE mode comptage propose des

Mode de programmation des Le

logiques programmables - FPGA Mode de programmation des Le LE mode comptage propose des clock enable,

LE mode comptage propose des clock enable, counter enable, synchrone, Asynchrones, up, douwn, …

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA Cyclone I Cyclone II

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA Cyclone I Cyclone II
Cyclone I
Cyclone I
Cyclone II
Cyclone II
Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA
Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Evolution des systèmes vers les très grandes complexités

Complexité FPGA CPLD PAL GAL LCA CPLD PAL 1970 1980 1990 2001
Complexité
FPGA
CPLD
PAL
GAL
LCA
CPLD
PAL
1970 1980
1990
2001

Années

- des progrès technologiques

- des progrès logiciel des outils de

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

erformances :

Les circuits logiques programmables - FPGA erformances :

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Evolution vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip

vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip
vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip
vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip
vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip
vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip
vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip
vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip
vers les systèmes de très grande complexité APEX Devices: System-on-a-Programmable-Chip Solutions from ALTERA chip

Les circuits logiques programmables - FPGA

Les circuits logiques programmables - FPGA

Quels sont les problèmes limitant l’évolution et les performances des FPGA’s?

limitant l’évolution et les performances des FPGA’s? Plus les technologies évoluent plus les interconnexion

Plus les technologies évoluent plus les interconnexion deviennent des éléments actifs des circuits

interconnexion deviennent des éléments actifs des circuits La quantité de mémoire nécessaire pour accroître les

La quantité de mémoire nécessaire pour accroître les performances des FPGA devient très importante

les performances des FPGA devient très importante Les logiciel de développement évoluent vers des systèmes

Les logiciel de développement évoluent vers des systèmes types Visual C++. C’est une obligation face à l’augmentation des possibilités de programmation des FPGA