Sie sind auf Seite 1von 190

Les composants logiques

programmables
PLAN

I. Introduction
II. Les mémoires vives
III. Les mémoires mortes
IV. Évolution des composants programmables
V. Les FPGA
I INTRODUCTION

Il existe deux grandes familles de


circuits
logiques programmables :

• Les mémoires programmables


• Les PLD (programmable logic
device)
Quelques rappels : Les mémoires

• Une mémoire est un élément de stockage d’information


• Les bits stockés sont organisés sous forme de matrice: la
dimension
de la mémoire est donnée par le nombre de lignes fois la
largeur de
la ligne
• Chaque ligne de la mémoire est appelée un mot. Elle est
identifiée
par une adresse (numéro de la ligne)
• Le nombre de lignes est toujours une puissance de deux
• Deux opérations sont possibles, sur un mot complet:
La lecture (read) et l’écriture (write)
Classification des mémoires
II Les Mémoires Vives : RAM

Random Acces Memory, mémoires vives


• Des mémoires contenant des programmes et des
données
• Information disponible tant que le courant est présent
• 2 types de RAM: StaticRAM ET DynamicRAM
Statique Ram: Un bit = une bascule D
(4 transistors)
Dynamique Ram : Un bit = une capacité (1 transistor)
RAM Statique
d a ta \d a ta

1 2

m em

2 1

s e le c t
RAM Statique : simulation
un CI Ram
de 4 mots de 4 bits NB: Les signaux cs et wr
sont actifs à 0
(niveau bas)

Addition horizontale de CI pour augmenter le nombre de bits d ’un mot

Une mémoire de 4 mots de 8 bits chacun


Addition verticale de CI pour augmenter le nombre de mots

SRAM de 8 mots de 4 bits


LES RAM DYNAMIQUE (DRAM)

• Info stockée dans un condensateur sous forme de charge


électrique
• Plus grande intégration mais nécessite des opérations de
rafraîchissement.
• Rafraîchissement= lire le bit et le réécrire environ toutes
les 10nsec
Tension en volts
Avec rafraîchissement
5
‘1’
3

2
‘0’
0
temps
RAM dynamique

• Un seul transistor : gain de place


• Cycle complexe de lecture
• Lecture puis ré-écriture
• Cycle de rafraîchissement
s e le c t

d a ta
Présentation des DRAM SIMM
Single In line Memory Module
III Les Mémoires mortes: Read Only Mémory

• Les données ne peuvent être que lues


• L’écriture se fait soit lors de la fabrication
ou nécessite un matériel spécialisé.
• La donnée est retenue même en absence du
courant (donnée non volatile)
1 Les différentes familles de PROM
2) PROM: Programmable ROM
• ROM programmable par l'utilisateur une
seule fois:
1 point mémoire = fusible
• EPROM: PROM effaçable plusieurs fois
Effacement = soumettre l ’Eprom à un
rayonnement ultraviolet (UVPROM) ou un
courant électrique EEPROM
• L’écriture nécessite un temps 1000 + grand
que dans une Ram
a) PRINCIPE DES PROM A FUSIBLE

A
Structure à : 00
D
• ET fixes (les circuits de R
01
décodage d'adresse) E
S
• OU programmables (les S 10
données placées dans la E
S 11
mémoire).

Zone mémoire
ROM (suite)
PRINCIPE DES PROM A FUSIBLE

• Lorsque la mémoire est livrée tous les fusibles


sont intacts. Elle ne contient alors que des l.
• La programmation va consister à faire sauter les
fusibles aux emplacements où on souhaite
mémoriser des 0 en utilisant une haute tension
(généralement 12 volts), pour faire sauter le ou les
fusibles.
• Les PROM à fusibles sont en voie de disparition
Fusibles métalliques ou Si
Lignes métalliques : interconnexions

Intact «Programmé»
Rem : Antifusibles
UV-PROM
b) PRINCIPE DES UVPROM

• chaque cellule mémoire élémentaire est Grille isolée


constituée d'un transistor MOS dont la
grille de commande est totalement isolée
dans une couche d'oxyde.
• Par application d'une tension
suffisamment élevée, qui est appelée
tension de programmation, on créé des
électrons chauds ou électrons ayant une
énergie suffisante pour passer au travers
de cet isolant.
• Ces charges s'accumulent alors sur cette
grille isolée où elles se trouvent piégées.
La cellule mémoire est programmée.

Grille de contrôle Isolant


UV-EPROM / EEPROM

Non-volatile

SAMOS : Stacked MOS


Durée de rétention
• La qualité de l'isolant étant excellente, la
durée de rétention des charges atteint au
minimum 10 ans à 70 °C, c'est-à-dire
jusqu'à 100 fois plus à 25 °C
Effacement
• On expose la puce à un rayonnement ultraviolet.
Les photons, communiquent leur énergie aux
électrons et leur font franchir la barrière en sens
inverse
c) Principe des EEPROM

• Ce sont des PROM effaçables électriquement


octet par octet si nécessaire.
• Les EPROM FLASH sont effaçables
globalement, sont plus rapides et plus simples
(1 CMOS par bit) que les EEPROM.
• Toutes deux sont programmables en circuit.
d) Les Mémoires FLASH

• Mémoires non volatiles, réécriture possible (500 000


fois), capacité 8 Gigabytes.
• Même structure qu’une Ram équipée d ’une
alimentation de faible consommation.
• Contrairement au Ram, effacement par bloc de
données et non par octet.
• Grande tolérance au chocs, extrêmes températures,
environnement avec beaucoup de perturbation.
• Utilisation: Caméras digitaux, téléphones mobiles,
Imprimantes, Pc portables, Applications militaires…
Comparaison
IV Évolution du marché des composants programmables

• De plus en plus présent


dans le quotidien
– Ordinateurs, PDA
– GSM,GPRS,UMTS, GPS
– TV numérique
– Electronique embarquée
– Baladeurs CD/MP3 DVD
– Traitement du signal
Les atouts des CLP :
les standards

• Les standards facilitent l’intégration de


services :
– PDA + GSM
– GSM + MP3
– UMTS + MPEG4 + MP3 + Hiperlan2 + ...
Plus de performance

• GSM =>GPRS =>EDGE =>UMTS


• Bluetooth 11 Mbits/s =>Hiperlan2 à 54
Mbits/s
Réduire le « time to market »

• Les produits ont une durée de vie de plus en


plus faible
– Réduire le «time to market»
– Réutilisation pour concevoir d’autres produits
(rentabiliser)
REUTILISATION

• Approche retenue pour limiter les coûts


• Conception d’un « Système On Chip » à
partir de blocs prédéfinis : Intellectual
Properties
Notion d’IP (Intellectual Property)

• Blocs fonctionnels complexes réutilisables


– Hard: déjà implanté, dépendant de la technologies, fortement optimisé
– Soft: dans un langage de haut niveau (VHDL, Verilog, C++…),
paramétrables
• Normalisation des interfaces
• Environnement de développement (co-design, co-specif, co-
verif)
• Performances moyennes (peu optimisé)
Contraintes liées à l’utilisation d’IP

- connaître les fonctionnalités


– estimer les performances dans un système
– être sûr du bon fonctionnement de l’IP
– intégrer cet IP dans le système
– valider le système
MERCI ...
ARCHITECTURES

CONCEPTION
UTILISATION

DES
FPGA
PLAN
I. Introduction, historique
II. FPGA vs ASIC
III. Architecture et conception des FPGA
IV. Famille de FPGA Altera
V. Famille de FPGA Xilinx
VI. Autres Exemples de FPGA
VII. Utilisation des FPGA, CAO
VIII. CoDesign, SORC et nouvelles
Conclusion
I. INTRODUCTION
Définition

FPGA : Field Programmable Gate Array

En français :
Composant, constitué d’un ensemble de ressources
logiques élémentaires configurables pouvant être
mises en relation par un réseau d’interconnexions
également configurable
Historique
IXème av JC Les chinois comptent avec un boulier !
1640 Blaise Pascal, invente une machine mécanique à additionner et soustraire : la
Pascaline
1875 Sir J.W. Swan invente le tube à incandescence
1940 Utilisation des premières PLL (principe étudié en 1932 par Bellescize)
1946 ENIAC 1er calculateur électronique (18 000 tubes, tient dans un hall de 10*17m)
Von Neumann présente le concept de programme enregistré
1948 Bardeen, Brattain et Shockley (Bells Labs) inventent le transistor bipolaire
1er ordinateur le SSEC d’IBM
1950 1er circuit reconfigurable « the fuse configurable diode matrix » Harris
Semiconductor
1958 Jack Kibly invente le circuit intégrée, brevet Texas
Fairchild dépose un brevet sur la fabrication des CI par procédé Planar
1962 Famille TTL
Historique
1968 Famille MOS
Robert Noyce et Gordon Moore créer une startup : intel
1er PLA « read only associative memory ROAM » IBM
1969 Neil Amstrong marche sur la Lune
1970 Introduction du terme PAL Texas Instrument
1ère ROM, Harris Semiconductor
1971 intel, 1er UV-PROM (effaçable par UV)
1972 Intel, 1er processeur : 4004
1973 André Truong et Francis Grenelle mettent au point et commercialisent le 1er
micro-ordinateur du monde, le Micral, made in France !
1975 Un certain Bill Gates fonde une petite société d’informatique : Microsoft
1978 1ère famille PAL commerciale, MMI
1980 Premiers microprocesseurs 32 bits chez intel et Motorola
1981 IBM lance le PC
Historique
1983 1er GAL effaçable électriquement, Lattice
1984 Apple lance le Macintosh
1984 Introduction du FPGA par XILINX : le XC2000
(de 600 à 1500 portes)
création de la société ALTERA
Technologie CMOS UV-EPROM
1985 mise sur le marché du 1er FPGA XILINX
1992 1er FPGA Altera : le Flex 8000 (15 000 portes max)
1993 Technologie EEPROM
2001 Lancement du Virtex II Xilinx (jusqu’à 10 millions de portes)
2005 FPGA avec des capacités supérieures à 50 millions de portes fonctionnant à
des fréquences surpassant les 500 MHz
Marché des FPGA
REVENUS NETS DE XILINX ET ALTERA

1200000

1000000
REVENUS NETS EN $

800000

600000

400000

200000

0
1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
ANNEE

XILINX ALTERA
Marché des FPGA

PARTS DE MARCHE DES FABRICANTS DE FPGA

40

35

30

25
Xilinx
Altera
% 20
Lattice
Other
15 Actel

10

0
1998 1999 2000
ANNEE
Marché des FPGA

PARTS DE MARCHE DES FABRICANTS DE FPGA POUR 2000

Actel
Other 6%
8%

Xilinx
Lattice 38%
14%

Altera
34%
Évolution de la technologie

Évolution
Évolution de
de la
la technologie
technologie

0.6 µ 0.5 µ 0.35 µ 0.25 µ 0.18 µ


Technologie : trois couches trois couches quatre couches cinq couches six couches
de métal de métal de métal de métal de métal
Taille relative : 100% 78% 32% 19% 12%

Année : 1994 1995 1996 1998 1999

2002 : techno cuivre 0.13 µm à 8 couches de métal


2004 : techno cuivre 0.09 µm à 12 couches de métal (200 000 portes/mm²)
Évolution de la technologie

La technologie cuivre
(aujourd’hui maîtrisée) permet
d’augmenter la rapidité des
circuits donc d’augmenter les
fréquences de fonctionnement
Problèmes techniques

Pourcentage de perte
à la fabrication du à
l’augmentation de la
taille des wafers (de
200 à 300 mm) =>

300 mm

200 mm

Ressources surnuméraires déconnectables


permettent de prévoir le % de perte à la
fabrication
Évolution des prix
1,2
INDICE PRIX PAR ELEMENT LOGIQUE

0,8 Le prix par élément logique


(Source : Altera)

diminue de 40 % par an
0,6

0,4

0,2

0
1995 1996 1997 1998 1999 2000
Évolutions

Prix (de l’élément logique) - 46% par an

Densité (logique) + 55% par an

Vitesse (fréquence système) + 35% par an


Évolutions

D’après Xilinx, en 2005 les plus gros FPGA auront


• des capacités de 50 millions de portes
• des complexités de 2 billions de transistors
• utilisant des technologies à 70 nm avec 12 couches
de métallisations (cuivre)
• avec des cœurs de microprocesseurs câblés
cadencés à 1GHz
FPGA ? ASIC
Taxonomie des CI (HARD)

ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standard Sea of Gate


Custom ASIC cell
gate array
FPGA CPLD PAL

SRAM Antifuse
ASIC : Application Specific Integrated Circuit
FPGA : Field Programmable Gate Array
PLD
CPLD : Complex Programmable Logic Device
PAL : Programmable Array Logic
GAL : Generic Array Logic = PAL
SRAM : Static Random Access Memory
ASIC Full Custom

ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standard Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

ASIC : Application Specific Integrated Circuit


ASIC Full Custom

Au départ

Au final

SPECIFICATIONS

+
ASIC Standard Cell

ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standard Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

ASIC : Application Specific Integrated Circuit


ASIC Standard Cell

Au départ

BIBLIHOTEQUE Au final
D’ELEMENTS
PRE-CARACTERISES
SPECIFICATIONS

+
ASIC Gate Array

ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standart Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

ASIC : Application Specific Integrated Circuit


ASIC Gate Array

Au départ

Au final

SPECIFICATIONS

Il est possible aussi d’utiliser des bibliothèques de composants pré-caractérisés


PAL

ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standart Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

PAL : Programmable Array Logic


PAL

Matrice de ET réalisant
tous les produits
possibles (maxtermes)
connectée aux sorties
par des OU

Grande surface de Si
utilisée. Ces circuits ne
sont plus utilisés
aujourd’hui
CPLD

ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standart Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

CPLD : Complex Programmable Logic Device


CPLD

Les CPLDs regroupent


plusieurs PALs
PAL PAL
interconnectés par un
réseau de connexions
programmables.

Les CPLDs sont les E/S MATRICE D’INTERCONNECTIONS E/S


prémisses des premiers
FPGAs.

Ces circuits ne sont plus PAL PAL


utilisés aujourd’hui car
remplacés par les FPGAs.
FPGA

ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standart Sea of Gate


FPGA CPLD PAL
Custom gate array
cell

SRAM Antifuse

FPGA : Field Programmable Gate Array


A SUIVRE !!!
Comparaison

ASIC
CARACTERISTIQUES FPGA
GATE ARRAY STANDARD CELL FULL CUSTOM

DENSITE FAIBLE MOYENNE MOYENNE GRANDE

FLEXIBILITE GRANDE PETITE MOYENNE GRANDE

ANALOGIQUE NON NON OUI OUI

PERFORMANCE FAIBLE MOYENNE BONNE TRES BONNE


TEMPS DE
TRES PETIT MOYEN MOYEN GRAND
CONCEPTION
COUT DE
TRES PETIT MOYEN MOYEN TRES GRAND
CONCEPTION
UTILISATION DES
SIMPLE COMPLEXE COMPLEXE TRES COMPLEXE
OUTILS
VOLUME DE
PETIT MOYEN GRAND GRAND
PRODUCTION
Capacités comparées
Nombre de portes (log)
100
M
SIC
x A
m a
10M
ci té
apa
C
1M

sa t i on
’ ut i li
100
en n ed
Moy
k
P GA
x F 80% des design fonctionnent
10k m a
t é
a ci aujourd’hui à moins de 200MHZ
a p
1k C
1989 année1997 2001
Les FPGA sont au cœurs des systèmes
Temps de mise en œuvre

TEMPS DE MISE EN OEUVRE COMPARES

FPGA

ASIC

0 1 2 3 4 5 6 7 8 9 10

APPRENTISSAGE SAISIE COMPILATION SIMULATION FABRICATION


Point de "cross-over" des FPGA et des ASIC

Cross-over de 200 000 de


pièces environ en 2000

Cross-over de 1 000 000 de


pièces environ en 2004

Un jeu de masques
correspond à 1M$ à
amortir en techno 0,13µm

Nick Tredennick, Brion Shimamoto. The Rise of Reconfigurable Systems. In proceeding of Engineering of Reconfigurable Systems
and Algorithms, ERSA’2003. June 23-26,Las Vegas, Nevada, USA.
Contextes d’utilisations en grandes séries
Volume
ASIC
FPGA
À-coup de production

Conception Pré-série Production Fin de vie Temps


prototypage
Les ASIC

AVANTAGES
• hautes intégrations
• hautes performances (vitesse, low-power)
• coûts faibles pour de gros volumes de production
• personnalisation
• sécurité industrielle

INCONVENIENTS
• prix du 1er exemplaire
• pas d’erreur possible
• non-flexible
• time-to-market élevé
• fabrication réservée aux spécialistes (fondeur)
Les FPGA

AVANTAGES
• possibilité de prototypage
• time-to-market faible
• adaptabilité aux futurs évolutions grâce à la reconfiguration
• flexibilité
INCONVENIENTS
• intégration limité par les ressources de routage
• performances
• prix à l’unité élevé pour de grosses productions
Conclusion

Le choix entre FPGA ou ASIC, se fait en fonction du cahier des


charges de l’application :

• temps de mise sur le marché et durée de vie courte FPGA


• très petit nombre de circuits FPGA

• optimisation des performances ASIC


• grande série ASIC
FPGA et conjoncture économique mondiale

D’après une interview du directeur de Xilinx dans la revue électronique


internationale

Les FPGA sont les rares produits d’électronique qui profite de la crise
économique actuelle dans le domaine des technologies de pointes
ceci pour plusieurs raisons :
• diminution des volumes de production
• diminution de la durée de vies des produits
• possibilités techniques des FPGAs largement suffisantes pour la plus
part des applications

« en 2006, il y aura un circuit logique programmable dans chaque


appareil numérique …. »
FPGA et conjoncture économique mondiale
III. ARCHITECTURE
&
CONCEPTION
Les différentes familles de circuits logiques programmables
1) Quelques définitions

• EEPROM ou E2PROM (Electrical Erasable Programmable Read-Only


Memory) :Mémoire programmable à lecture seule, effaçable électriquement.
• EPLD (Erasable Programmable Logic Device):Circuits logiques
reprogrammables.
• FPGA (Field Programmable Gate Array):Réseau de portes programmables
• GAL (Generic Array Logic):Circuits logiques PAL reprogrammables à
technologie CMOS.
• ISP (In System Programmable):Circuit que l’on peut programmer (et donc
effacer) même lorsqu’il est en place sur l’application.
• PAL (Programmable Array Logic):Circuits logiques programmables dans
• lesquels seules les fonctions ET sont programmables, les fonctions OU ne le
sont pas.
• PLD (Programmable Logic Device):Famille des circuits programmables qui
comprend les PAL,GAL,EPLD et FPGA.
2)Les différentes familles de PLD
ASIC

CUSTOM SEMI-CUSTOM

Circuits Circuits Circuits Circuits


sur mesure précaractérisés prédiffusés configurables

Full Standard Sea of Gate


Custom ASIC cell
gate array
FPGA CPLD PAL

SRAM Antifuse
ASIC : Application Specific Integrated Circuit
FPGA : Field Programmable Gate Array
PLD
CPLD : Complex Programmable Logic Device
PAL : Programmable Array Logic
GAL : Generic Array Logic = PAL
SRAM : Static Random Access Memory
Les différentes familles de
PLD (suite)
TYPE Nombre de portes Matrice ET Matrice OU Effaçable
intégrées

PROM 2 000 à 500 000 Fixe Programmable Non

PAL 10 à 100 Programmable Fixe Non

GAL 10 à 100 Programmable Fixe Electriquement

EPLD 100 à 3000 Programmable Fixe Aux U-V


Electriquement

FPGA 3000 à 6.000.000 Programmable Programmable Electriquement


Non
a) Les PAL

• L’invention des PAL date d’une vingtaine


d’année, ce sont les ingénieurs de la société
MMI rachetée par AMD qui ont eut l’idée
d’utiliser la technologie des fusibles.
• Ce sont des composants programmables une
seule fois.
Structure de base d’un PLD

•Ils possèdent des matrices


« ET » programmables et des
b a

1 1 1 1

matrices « OU » fixes.
&

•La fusion des fusibles est


obtenue en appliquant à leurs &

bornes une tension de 11,5 V


pendant 10 à 50 µS (leur &

tension de fonctionnement
est environ de 5V). &

•Cette opération est bien sûr


effectuée en utilisant un >1 >1

programmateur adapté. Q0 Q1
Structure de base avec les normes des constructeurs
.

b a b a

: Fusible intact : Fusible intact

Q0 Q1 Q0 = a . b + a. b Q0 Q1 Q1 = a.b + a.b
Q0 = Q1 = a.b.a.b + a.b.a.b + a.b.a.b + a.b.a.b = 0

PLD ayant ses fusibles intacts PLD programmé


Configuration des entrées/sorties

•Certaines broches de ces


circuits peuvent être
utilisées aussi bien en Porte trois états permettant
entrée qu’en sortie grâce à de déconnecter la broche
de la matrice "ET"
un système de logique 3
états. I/O

•La commande de cette


dernière est configurée au
moment de la
programmation.

•La structure de sortie


permet aussi de réinjecter
les sorties en entrée (Feed-
REFERENCE DES PAL

Les diverses possibilités de ces circuits et leur standardisation ont conduit les constructeurs à
définir une nomenclature permettant de décoder assez facilement la référence des PALs.
PAL : PAL
(CE) : CE pour version CMOS
Lettre(s) Code(s) Structure de sortie
XX : Nombre d’entrées
AB : Structure de sortie
YY : Nombre de sorties L Combinatoire active bas

C : Consommation
H Combinatoire active haut
ZZ : Vitesse
DEF : Type de boîtier C Combinatoire complémentaire

R Registre synchrone (D)

RA Registre asynchrone

X Registre OU exclusif

V Versatile
emarques :

Le nombre d’entrées varie entre 10 et 22.

Le nombre de sorties varie entre 1 et 10.

La puissance est indiquée par une lettre code.

La vitesse indique le temps de propagation en nS.

Les versions versatiles ont une cellule de sortie programmable permettant d’obtenir n’importe quel
autre type de structure de sortie (L, H, R ...).

Les versions CMOS (CE) sont effaçables électriquement. Les fusibles sont remplacés par des
transistors de type MOS FET. Ce ne sont ni plus ni moins que des « GALs ».

xemple : PAL 16 L 8 H 15 PC

AL : PAL

Nombre d’entrées :

Structure de sortie :
Structures de base des PAL
Brochage du PAL 16R6 Brochage du PAL 16L6
- -
PAL22V10 : Sortie (VERSATILE)
PAL22V10

ZOOM Complet
b) Les GAL

• Les GAL sont des PAL à technologie CMOS, c’est à dire


programmables et surtout effaçables électriquement.
• On retrouve les mêmes références qu’en PAL.
• Protection contre la duplication.
• Les GAL sont dotés d’un bit de sécurité qui peut être activé lors
de la programmation empêchant ainsi toute lecture du contenu du
circuit. Ce bit est remis à zéro seulement en effaçant
complètement le GAL.
• Il est constitué d’un ensemble de huit octets, appelé signature
électronique, pouvant contenir des informations diverses sur le
produit.
c) Les EPLD

Généralités
• L’introduction des EPLD telle que l’a
voulue ALTERA visait deux buts :

• Densité d’intégration supérieure aux PAL

• Fonctionner à une vitesse au moins égale


aux PAL bipolaires
EPLD : Description Fonctionnelle

Les EPLD de la famille MAX possèdent une architecture


comportant les éléments suivants :
• Logic array blocks (LABs)
• Macrocellules
• Réseau d’interconnections Programmables (PIA)
• I/O control blocks

Les séries MAX incluent des entrées dédiées telles que des
(horloges,clear,..) pour chaque macrocellule.
Exemple de EPLD : le MACH 4

Le MACH 4 est un EPLD


programmable in situ (ISP)
par l'intermédiaire d'un bus
J-TAG.
Il dispose de 32 entrées /
sortie, de matrices « ET »
programmables, de matrices
"OU" fixes, d'une matrice
centrale d'interconnexion,
d'une circuiterie d'horloge et
de 32 ou 64 macrocellules.
L'architecture interne du
MACH 4-32/32 est
équivalente à 4 PALCE 22V10
interconnectés.
d) LES FPGA (field programmable
gate arrays)

L'architecture, retenue par Xilinx, se présente


sous forme de deux couches :

• une couche appelée circuit configurable,


• une couche réseau mémoire SRAM.
LES FPGA

• La couche dite 'circuit configurable' est constituée d'une matrice de blocs


logiques configurables CLB permettant de réaliser des fonctions
combinatoires et des fonctions séquentielles.
• Tout autour de ces blocs logiques configurables, nous trouvons des blocs
entrées/sorties IOB dont le rôle est de gérer les entrées-sorties réalisant
l'interface avec les modules extérieurs . La programmation du circuit
FPGA appelé aussi LCA (logic cells arrays) consistera par le biais de
l'application d'un potentiel adéquat sur la grille de certains transistors à
effet de champ à interconnecter les éléments des CLB et des IOB afin de
réaliser les fonctions souhaitées et d'assurer la propagation des signaux.
• Ces potentiels sont mémorisés dans le réseau mémoire SRAM.
La SRAM
• La configuration du circuit est mémorisée sur la couche réseau SRAM et stockée
dans une ROM externe. Un dispositif interne permet à chaque mise sous tension de
charger la SRAM interne à partir de la ROM. Ainsi, un même circuit peut être
exploité successivement avec des ROM différentes puisque sa programmation
interne n'est jamais définitive.
• On voit tout le parti que l'on peut tirer de cette souplesse en particulier lors d'une
phase de mise au point. La mise au point d'une configuration s'effectue en deux
temps: une première étape purement logicielle va consister à dessiner puis simuler
logiquement le circuit fini, puis lorsque cette étape sera terminée on effectuera une
simulation matérielle en configurant un circuit réel et l'on pourra alors vérifier si le
fonctionnement réel correspond bien à l'attente du concepteur, et si besoin est
identifier les anomalies liées généralement à des temps de transit réels légèrement
différents de ceux supposés lors de la simulation logicielle ce qui peut conduire à
des états instables voire même erronés..
Architecture interne du FPGA
Les architectures

L’architecture reflète la topologie du réseau de


routage

Trois grands styles architecturaux s’affrontent


• îlots de calcul, majoritaire chez Xilinx
• hiérarchique, majoritaire chez Altera
• logarithmique, un peu exotique...
Architecture îlots de calculs

Les éléments fonctionnels (logique, mémoire, IO)


sont regroupés sous forme de matrice

Ce type d’architecture est très répandu, en


particulier chez Xilinx, mais aussi chez ATMEL
Les composants logiques programmables :

Architectures globales

Figure 1 : Structure of a CPLD


Les MACROCELL = P-TERM
(PAL-Like)
Architecture îlots de calculs

Élément configurable :
• élément logique
• élément de mémorisation
EC • élément arithmétique
• entrée/sortie

Réseau de routage :
• lignes horizontales
• lignes verticales

Matrice de connexions

BC MC
Bloc de connexions
Les blocs de connexions

EC

BC
EC
Architecture hiérarchique

Les réseaux de routage d’une architecture


hiérarchique dépendent du niveau de hiérarchie dans
lequel on se trouve.
Ceci permet une optimisation du routage par niveau

Très répandu chez Altera et Lattice


Architecture hiérarchique
Architecture hiérarchique

Réseau de routage de
niveau 2

Élément Hiérarchique de
niveau 2

Réseau de routage de Réseau de routage de


niveau 1 niveau 3

Élément Hiérarchique de Élément Hiérarchique de


niveau 1 niveau 3
• éléments logiques
• éléments de mémorisation
• ...
Architecture logarithmique

Architecture hiérarchique dans laquelle chaque


niveau i correspond à une matrice de 42i cellules de
bases.
Chacun de ces niveaux possède des ressources de
longueur 42i-1 .

Exemple typique: le circuit Xc6200 de Xilinx


Architecture logarithmique

Cellule logique
Cell Cell Cell Cell de base Cell Cell Cell Cell

Cell Cell Cell Cell Cell Cell Cell Cell


Matrice de 16
cellules
Cell Cell Cell Cell Cell Cell Cell Cell

Lignes de
Cell Cell Cell Cell longueur Cell Cell Cell Cell
4 cellules

4*4 4*4 4*4 4*4 16*16 16*16 16*16 16*16


Lignes de
longueur
4*4 4*4 4*4 4*4 16 cellules 16*16 16*16 16*16 16*16

4*4 4*4 4*4 4*4 16*16 16*16 16*16 16*16

Lignes de
4*4 4*4 4*4 4*4 longueur 16*16 16*16 16*16 16*16
64 cellules
Les éléments logiques

Les éléments logiques configurables sont les


briques de bases de tous les FPGA, ils sont
majoritairement réalisés autour de LUT, Look Up
Table, de chaîne de propagation rapide de la retenue
et de bascule D.

On rencontre toutefois des cellules logiques


rudimentaires à base de multiplexeurs
Les Look Up Tables

Ce sont de petits éléments de mémorisation, qui


reflètent la table de vérité d’une fonction logique.
In 0 In 1 In 2 In 3

LUT = Table de scrutation


LUT 4 entrées = RAM 2octets
SRAM

SRAM

In 0
SRAM
In 1
LUT 4 Out
In 2 SRAM
In 3
SRAM

SRAM
Out
Les Look Up Tables

In 0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out
Les Look Up Tables

In 0 = 0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out
Les Look Up Tables

In 0 =0 In 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out
Les Look Up Tables

In 0 =0 In 1 = 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out
Les Look Up Tables

In 0 =0 In 1 = 1 In 2 In 3

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1
Out
Les Look Up Tables

In 0 =0 In 1 = 1 In 2 =1 In 3 = 1

1111 0

1110 1

1101 1

1100 0

1011 0

1010 1 Out= 1 = In3 • In2 • In1 • Ino


Les Look Up Tables

Généralement le nombre d’entrées des LUT est de


quatre car c’est un bon compromis entre vitesse et
surface
Le nombre de LUT dans les éléments logiques varie
de 2 à 4 généralement
Résultats d’une étude de l’Université de Toronto :

Critère Taille des LUT Nombre de LUT


Surface 3–4 6 – 10
Délais 7 4 – 10
Surface et délais 4–6 4 – 10
Les Look Up Tables

Élément logique de base avec LUT


Carry-In

ENTREES

LUT D SORTIES

FAST
CARRY
CHAIN
HORLOGE

Carry-Out
Les réseaux d’horloges

Les circuits sont de


plus en plus grands =>
augmentation de la
longueur des
connexions =>
les chemins d’horloges
sont plus longs =>
plus de retard =>
ASYNCHRONISME
MALSAINT !!!
Les réseaux d’horloges

Le problème 1 : JITTER : bruit de phase

Le problème 2 : CLOCK SKEW : Décalage entre


les transitions de la même horloge à différents
points d’un circuit.
Le problème 3 : on peut avoir besoin de
plusieurs horloges dans un même circuit
Solutions d’asservissement des horloges

Les PLL (analogique)


Phase-Locked Loop
( ALTERA )

Les DLL (numérique)


Delay-Locked Loop
( XILINX )
Caractéristiques des PLL et DLL
Comparaison PLL vs DLL

Comparaison "objective"
faite par ALTERA

Bien que plus performantes


les PLL sont aussi beaucoup
plus complexes à intégrer
(mixage analogique et
numérique)

Avons nous besoin d’une


telle précision ???
Les cœurs de processeurs

Aujourd’hui les systèmes numériques font de plus


en plus appel conjointement à des ressources
logicielles micro-programmées (µP, µC, DSP) et des
ressources matérielles re-configurables (FPGA)
D’où l’idée de mettre sur un même puce un cœur de
microprocesseur et un cœur de logique configurable,
les deux étant optimisés technologiquement

Le cœur de processeur peut prendre environ 10% de


la surface totale de la puce
Les cœurs de processeurs

RAM double port RAM simple port Cœur


Altera propose le circuit Excalibur ARM 922T
contenant :

• une partie configurable :


type APEX 20K1000

• un cœur de processeur :
ARM9 (32 Bits) à 200MHz
8 K octets de cache
Instructions
8 K octets de cache
Données
Matrice FPGA
Les cœurs de processeurs

PLL UART External Trace


Processor & Memory
Interfaces Module SRAM SRAM SRAM
Interfaces
Coeur de
JTAG Timer processeur
I-CACHE Interrupt
D-CACHE
Watchdog ARM922T DPRAM DPRAM DPRAM
ARM 8K Bytes Controller
8K Byte
Timer

XA1

LEs 4160 32 Kbytes SRAM


ESB Bytes 6.5K 16 Kbytes DPRAM

FPGA
XA4
LEs 16400
128 Kbytes SRAM
ESB Bytes 26K 64 Kbytes DPRAM

LEs 38400 XA10


256 Kbytes SRAM
ESB Bytes 40K 128 Kbytes DPRAM
Les cœurs de processeurs

Xilinx propose aussi une version de son circuit


Virtex II avec un cœur de processeur

le Virtex II-Pro comprenant :

• de 1 à 4 cœurs Power-PC (RISC 32 bits) 125MHz

• matrice VIRTEX avec capacité de 900 mille portes


Les alimentations en énergie

Le cœur est alimenté


généralement en 1.8 V (voir
1.5 V) car avec la technologie à
0.18 µm les oxydes ne sont pas
assez épais pour supporter
plus de tension

Les entrées sorties sont


alimentées sous 3.3V, 2.5V,
1.8V ou 1.5 V suivant le
standard choisi

Dans la plupart des cas il faut deux alimentations


Attention à la consommation des E/S => minimiser leur nombre !!!
Les alimentations en énergie

Technologiquement pour permettre aux


entrées sorties de supporter des tensions
d’alimentations jusqu’à 3.3V on effectue
plusieurs oxydations avec des masques
spéciaux

De cette façon la technologie utilisée pour


les entrées-sorties n’est pas la même que
pour le cœur
Répartition de la consommation de puissance

RESEAU D’HORLOGE
21%

ENTREES SORTIES
9% RESSOURCES DE ROUTAGE
65%

RESSOURCES LOGIQUES
5%
Modélisation de la consommation de puissance
La consommation globale du circuit peut être donnée par le modèle
suivant :
P = Pstat + α*[Cwire + Cswitches ]*Vdd ²*f
De ce fait la répartition vue précédemment est vraie dans certaines
conditions:
• Technologie (Pstat , C, Vdd )
• Fréquence (action linéaire)
• Taux d’activité (action linéaire)
• Taux d’occupation (C)
• Algorithmes de placement routage (fmax , C)
• Nombre d’entrées sorties utilisées
=> du fait de ces nombreux paramètres il est très compliqué de trouver
un moyen d’estimer la consommation de puissance du circuit pour une
application
Les architectures de FPGA sont donc très
variées, tant aux niveau du routage que du
grain des ressources qui les composent.
Savoir quels types d’architecture et de
ressources sont les plus en adéquation avec
l’application que l’on développe reste un
challenge aujourd’hui.
IV. LA FAMILLE
ALTERA
La famille ALTERA
1984 Débuts d’Altera qui vend des EPLD
1988 Lancement des CPLD MAX (Multiple Array matriX) qui sont des fétus de FPGA
1992 1er FPGA Altera : le FLEX 8000 (15 000 portes) (Flexible Logic Element matriX)
technologie 0.5 µm
1995 Lancement de la famille FLEX 10K (250 000 portes)
1997 Famille FLEX 6K bas coûts (24 000 portes)
1999 Famille APEX 20K (1 500 000 portes)
2000 Famille APEX 20K C utilisant la technologie cuivre
2000 Famille APEX 20K E avec plus de ressources mémoires technologie 0.18 µm
2001 Circuit Excalibur couplant une matrice FPGA APEX 20K 1000 et un cœur de
processeur ARM 9
2001 Famille APEX II (dont le but est de concurrencer le Virtex de Xilinx) (3 000 000 de
portes) technologie 0.15 µm
Février 2002 : Lancement du STRATIX concurrent direct du Virtex II Xilinx, technologie
cuivre 0.13 µm
Septembre 2002 : Lancement du Cyclone un petit FPGA (architecture STRATIX) pour
application grand public bas-coûts
La famille ALTERA

STRATIX
APEX II - Caractéristiques

Le plus gros composant disponible est l’APEX II EP2A70


Caractéristiques MAX:
• 3 000 000 de portes utilisables
• 1 146 880 bits de mémoires RAM soit 140 Kilo octets
• 4 PLL
• cœur alimenté en 1.5 V
• 1 060 entrées sorties (tension 1.5 V, 1.8 V, 2.5 V ou 3.3 V)
• 380 Mbps de débit en entrées sorties
• technologie cuivre 0.15 µm 8 niveaux de métallisation
• taille de la puce 40*40 mm soit 1600 mm²
APEX II - Architecture

L’architecture est de type hiérarchique, au premier niveau de hiérarchie


apparaisse les MegaLAB : Mega Logic Array Block

4 rangées de MegaLAB
soit au total 280 MegaLAB

70 colonnes de MegaLAB
APEX II - MegaLAB

Un MegaLAB contient de 16 à 24 LAB


(Logic Array Block)
et 1 ESB (Embedded System Block)
APEX II - LAB

Les LAB sont constitués de 10 LE : Logic Element


APEX II - LE

Le nombre max de LE pour


un APEX II est de 67 200
APEX II - Carry Chain
APEX II - ESB

Bloc de mémoire de 4096 bits


configurable en simple ou
double port
Peut être utilisé en CAM
(Content Access Memory)
et en matrice PAL
APEX II - Entrées Sorties
APEX II - PLL
Stratix

Toujours plus gros, toujours plus performant, Stratix, le dernier née d’Altera !
Stratix - Architecture
Stratix - Architecture
Stratix - Blocs mémoires
Stratix - DSP élémentaires

Des blocs multiplieurs sont insérés


Stratix - Réseau d’horloges
Évolutions futures

Progression de la famille STRATIX:

Version Excalibur avec un cœur ARM10

Version bas coûts, plus petite, pour les grandes


séries (=> CYCLONE)
VI. FAMILLE

XILINX
La Famille XILINX
1985 Lancement de la 1er famille de FPGA Xilinx le XC2000 (1500 portes - obsolète)
1987 Famille XC3000 (6000 portes - obsolète)
1991 Famille XC 4000 (500 000 portes)
1995 Famille XC 5200 spéciale petit design (18 000 portes) 0.6 µm 6 couches
1996 Innovations avec la famille XC 6200 (100 000) visant le coprocessing et le
reconfigurable dynamiquement, echec commercial
1998 Famille SPARTRAN vise la souplesse d’utilisation et les petits design
1999 Famille VIRTEX vise les fortes capacités ( 4 millions de portes)
techno 0,22 µm 5 niveaux de métallisation
1999 VIRTEX-E amélioration du VIRTEX avec plus de mémoires,
techno 0.18 µm 6 niveaux de métallisation
2000 Famille SPARTRAN II, FPGA moyennes capacités (100 000 portes) bas coûts,
ce sont de petits VIRTEX, techno 0.18 µm 6 niveaux de métallisation
2001 Famille VIRTEX II, toujours plus fort (10 millions de portes)
techno 0.15 µm 8 niveaux de métallisation, avec des transistors rapide 0.12 µm
2002 Famille VIRTEX II-Pro qui contient 4 cœurs de µP RISC Power-PC

Xilinx propose aussi une gamme complète de CPLD


La Famille XILINX
Virtex II - Caractéristiques

Le plus gros composant disponible est le VIRTEX II XC2V 10000


Caractéristiques MAX:
• 10 millions de portes utilisables (122 880 LUT et 10 *+ de bascule D)
• 5 376 K bits de mémoires RAM soit 656 Kilo octets
• 192 Multiplieurs (18*18 bits à 200MHz)
• 12 DLL
• cœur alimenté en 1.5 V
• 1 108 entrées sorties (tension 1.5 V, 1.8 V, 2.5 V ou 3.3 V)
• Fréquence interne 420 MHz
• 840 Mbps de débit en entrées sorties
• technologie allu 0.15µm 8 niveaux de métallisation
• taille de la puce 40*40 mm soit 1600 mm²
Virtex II - Architecture
CLB : Configurable Logic Block
CLB
Slice
Virtex II - Réseau de routage
Virtex II - Réseau d’horloges

DCM : Digital Clock Manager


Virtex II - DCM

Digital Clock Manager


Virtex II - Entrées sorties
Virtex II - Configuration
Virtex II - Évolution
Virtex II Pro- Architecture
VII. AUTRES
EXEMPLES
DE FPGA
Autres exemples de FPGA

Il n’est pas nécessaire de détailler d’autres


architectures de FPGA, elles n’apportent rien de
plus que ce que l’on a vue chez Xilinx ou Altera

Mais il est toutefois intéressant de connaître l’offre


d’autres fabricants
Autres exemples de FPGA

ACTEL ProASIC technologie flash, ASIC


reprogrammable, non volatile et à
granularité fine, ISP. Utilise les outils
ASIC ou FPGA
AXELERATOR technologie antifusibles
=> OTP (One Time Programmable),
FPGA les plus rapide à 500MHz interne
et 300MHz de fonctionnement système
HiRel, RT, RH, technologie antifusibles
série militaire, tolérance aux radiations
Autres exemples de FPGA

ATMEL AT40K, technologie SRAM, architecture


îlots de calcul, faible densité (5K à 50K
portes), reconfigurable dynamiquement,
des cœurs FPGA dérivés de cette
famille peuvent s’intégrer dans les
circuits prédiffusés ATMEL.

Lattice ispXPGA, technologie SRAM, archi


îlots de calcul, densité de 125K à 1,2M
portes. EEPROM de configuration
intégré => configuration à la mise sous
tension en moins de 200 µs
Autres exemples de FPGA

Quick
Logic pASIC (1,2 et 3), série Quick (Ram, PCI),
technologie antifusible (One Time
Programmable), faible densité
de 1K à 90K portes

Cypress CY39K, architecture mixte CPLD-FPGA


VIII. UTILISATIONS
&
CAO
Programmation des PLDs.
Cahier des charges
La programmation des
PLDs nécessite un Mise en « équation » du problème
logiciel adapté pour le
développement du Résolution du problème sous forme d’équation
logique, de logigramme ou d’algorithme
programme et un
programmateur Choix du PLD en fonction du nombre d’entrées et de
sorties
permettant de
« griller » le circuit.
Saisie des équations logiques, de la table de vérité, du
logigramme ou de l’algorithme avec le logiciel
Le fichier JEDEC est
un ensemble de Simplification logique
données binaires
indiquant au Génération d’un fichier au format JEDEC
Ces
Cesétapes
étapessont
sont
effectuées
effectuées parlele
par
programmateur les logiciel
logiciel
fusibles à « griller ». Simulation

Programmation du PLD à l’aide du fichier JEDEC et


du programmateur

PLD programmé
Outils de CAO

Les outils de CAO sont les points faibles de ces circuits. Si un


circuit est très performant il ne se vendra pas si les outils qui
lui sont associés ne sont pas performants !

Chez Xilinx 50% des ingénieurs de R&D se consacrent à ces


outils !
Outils de CAO

Tous les fabricants de FPGA proposent des


outils de CAO, passage obligé pour
configurer leurs circuits

pour Xilinx c’est ISE - Foundation

pour Altera c’est Quartus ou MAX + II

Avec ces outils on peut réaliser tout le flot


de conception de la synthèse à la
configuration. Pour certaines phases du flot
ces outils font en fait appel à d’autres outils
Autres outils de CAO

Flot FPGA

Synthèse

Simulation
IP : Intellectual Property
Digital Signal Processor,
Communications Bus Interface Processing Peripheral
ADPCM (u-law, PCI Target Color Space Converter NiosTM Processor
a-law)
PCI Master-Target Correlator Tensilica X-tensa
ATM Controller Processor
PCI-X Digital Modulator
CRC PalmChip Bus
CAN Bus Discrete Cosine Transform
Ethernet MAC SDRAM Controller
(10/100/Gigabit) IIC Master & Slave Fast Fourier Transform
DDR-SDRAM
HDLC Protocol Core IEEE 1394 FIR Compiler Controller
IMA Controller PowerPC Bus IIR Filter QDR-SDRAM
Arbiter Controller
SONET/SDH Framer Image Processing Library
PowerPC Bus 8237 DMA Controller
T3/E3 Framer Master NCO
Reed Solomon 8255 Peripheral
Packet Over SONET PowerPC Bus Slave Interface
Processor Encoder/Decoder
USB Function 8259 Interrupt
Telephony Tone Generator Controller Interleaver/Deinterleaver
Controller
Utopia Master & Slave USB Host Viterbi Decoder
8254 Timer/Counter
Controller Turbo Decoder
POS-PHY Interface 8051, 6502, Z80
Et plus encore !
Exemple d’IP : NIOS

NIOS : cœur de processeur SRAM

PBM

IRQ
RISC générique optimisé CPU
FLASH
Caractéristiques :
• données sur 16 ou 32 bits
Timer
• 128, 256 ou 512 registres
Serial
• registres à décalage rapide ( 1, Port UART
3, 7, 15 ou 31 bits/clock)
• possibilités de lui adjoindre
des périphériques (UART, RAM,
ROM)
12% d’un Ici le reste de
EP20K200E votre système

APEX EP20K200E
IX. EVOLUTIONS

CODESIGN, SORC
Les nouvelles utilisations des FPGA

Longtemps réduit au prototypage, aujourd’hui les FPGA sont utilisés,


pour leur capacité de reconfiguration, dans des systèmes
électroniques complexes, même pour de la grande série.

• le CoDesign pour le Run Time Reconfigurable

• les SORC : System-On-a-Reconfigurable-Chip


Le CoDesign

Définition : Les méthodes de CoDesign sont des méthodes de


développement simultané (de manière concurrente) des parties HW et
SW (spécification, design, vérification)

SW = microprocesseur HW = FPGA ou ASIC

Buts :
• Gérer au mieux l’hétérogénéité de la nature des fonctions qui
composent le système (du logiciel à l’architecture reconfigurable)
• Comparer les différents choix de partitionnement
• Définir les interfaces entre le SW et le HW
• Valider le système complet (co-vérification et co-simulation)
Flot de CoDesign

SPECIFICATION HAUT NIVEAU DE L’APPLICATION

ordonnancement de l’application
proposition de candidats HW et SW
ESTIMATION SYSTEME

ESTIMATION LOGICIELLE ESTIMATION MATERIELLE

PARTITIONNEMENT Choix des réalisation HW ou SW

SYNTHESE LOGICIELLE SYNTHESE INTERFACE SYNTHESE MATERIELLE

COSIMULATION

Retour d’expérience IMPLEMENTATION


HW et SW

TESTS
Les SORC

Technique héritière direct des SOC : System On Chip

Différentes notations :

• SORC (Xilinx) : System On a Reconfigurable Chip


• SOPC (Altera) : System On a Programmable Chip
• CSOC : Configurable System On Chip

L’utilisation des techniques de CoDesign est inévitable !

L’engouement pour les SORC est certain vue le nombre de cœur de


processeurs (IP ou câblés) présents sur le marché
CONCLUSIONS
Le futur
Le futur
Processeurs re-programmant
leur environnement
en temps réel :
« Hardware intelligent
programmé à haut niveau »
Le futur
Circuit programmable Analogiques
et Mixtes : (www.anadigm.com)

Intégration de MEMS : Plus tard


REFERENCES
BIBLIOGRAPHIQUES
Références bibliographiques
Livres :
Laurent Dutrieux, Didier Demigny, LOGIQUE PROGRAMMABLE,
Architecture des FPGA et CPLD, Méthodes de conception, Le langage
VHDL. Eyrolles, 1997
Vaughn Betz, Jonathan Rose, Alexander Marquardt, Architecture and
CAD for Deep-Submicron FPGAs. Kluwer Academic Publisher, 1999

Revues :
Électronique - Le mensuel des ingénieurs de conception
Électronique International Hebdo
Xcell Journal (Xilinx press)
Revues IEEE
Références bibliographiques
Sites Internet :
LES SITES DES CONSTRUCTEURS
(Xilinx, Altera, Atmel, Actel, QuickLogic …)
AUTRES :
http://www.mrc.uidaho.edu/fpga/fpga.html page de liens vers FPGA
http://optimagic.com/ the Programmable Logic Jump Station
http://eet.com/embedsub site de l’embedded developers journal
http://www.mvd-fpga.com/fr/default.htm site d’une entreprise française de service
spécialisée dans les FPGA
http://www.design-reuse.com/ site sur les IP
http://www.supelec-rennes.fr/ren/perso/jweiss/fpga/poly/fam99-fin.htm cours de SUPELEC
J. Weiss
http://www.enseirb.fr/~kadionik/formation/altera/index.htm cours de l’ENSEIRB L. Dulau
http://micdigital.web.cern.ch/micdigital/VLSI_Trieste/design_styles/index.htm autre cours
en PPT
conférences

Conférences spécialisées :
FPGA ACM International Symposium on Field-Programmable Gate Arrays
FPL International Workshop on Field-Programmable Logic and Applications
FCCM IEEE Symposium on Field-Programmable Custom Computing Machines
FTP IEEE International Conference on Field-Programmable Technology
RSP IEEE International Workshop on Rapid System Prototyping
ERSA Engineering of Reconfiguraable Systems and Algorithms
RAW Reconfigure Architectures Workshop (part of IPDPS)
FPGA/PLD Design Conference (part of ASP-DAC)

Conférences généralistes
DAC : Design Automation Conference
ASP-DAC Asian and South Pacific Design Automation Conference
DATE Design Automation & Test Exhibition
ISCAS IEEE International Symposium on Circuits and Systems
MERCI ...