Présentation et classification des circuits

publicité
Présentation et
classification des circuits
logiques programmables.
Références :
Le langage VHDL » – Jacques Weber – Editions Dunod
« ASIC et composants logiques programmables »– Denis Rabasté (IUFM)
«
1 - Introduction
• Début des années 80 Ö Début des circuits logiques
programmables.
• 4 catégories de circuits à cette époque :
– Fonctions standards (T.T.L., M.O.S., usage général).
– Les microprocesseurs (applications industrielles).
– Les
séquenceurs
programmés
(applications
complexes et rapides).
– Les circuits intégrés spécifiques A.S.I.C.
(gros volumes de productions).
1 - Introduction
• 3 grandes phases pour l’évolution de la logique :
– 1975-85 : remplacement des circuits logiques
standards par des circuits programmables.
– 1985-95 : coprocessing (implantation de circuits
logiques complexes autour des microprocesseurs) et
début des circuits logiques à haute densité
d’intégration.
– Depuis 1995 : le circuit logique programmable
devient le niveau supérieur du système. (possibilité
d’implanter un microprocesseur dans un F.P.G.A.).
1 - Introduction
• Progrès des techniques de fabrication :
– Nombre de portes multiplié par 10000 (en 25 ans).
– Fréquence d’horloge multipliée par 50 (en 25 ans).
– Taille d’un transistor : 1,2 µm en 1991 à 0,18 µm en
2000.
– Loi de Moore qui stipule le doublement du nombre de
transistors sur une puce tous les 18 mois.
Nombres de portes
Fréquence d’horloge
1 - Introduction
• Classification et répartition des circuits numériques :
Circuits
numériques
Circuits
standards
Circuits à
fonctionnement
programmable
Circuits à
architecture
programmable et
faible temps de
développement
74HC….
Microprocesseurs,
Microcontrôleurs
PLD, CPLD,
FPGA
Circuits à temps de
développement
important
ASIC
1 - Introduction
• ASIC (Application Specific Integrated Circuit) :
– Réalisé à partir d’un dessin (masque) sur la pastille de
silicium et fourni à un fabricant (fondeur).
– Non re programmable donc !!!!!!!
– Temps de développement très long.
– Densité d’intégration très élevée.
– Destiné à des applications de très grandes séries
(téléphone, automobile,...).
• Un circuit ASIC n’est donc pas un vrai circuit logique
programmable.
2 – Familles de circuits logiques
• Un
circuit
logique
programmable
descend
directement de la technologie des mémoires :
• R.O.M. : Read Only Memory
– Données non modifiables et conservées.
– Programmable une seule fois par un appareil
spécial.
• R.A.M. : Random Access Memory
– Cellules accessibles en lecture et écriture.
– SRAM (static) constituée de bascules.
– DRAM
(dynamic)
constituée
de
capacités
(rafraîchissement).
– Données perdues sans alimentation.
2 – Famille de circuits logiques
• M.R.O.M. : Masked ROM
– Ecriture des données effectuée une fois pour toutes
par le fabricant.
– Interconnexions électriques réalisées à l’aide d’un
masque.
• P.R.O.M. : Programmable ROM
– Programmable par l’utilisateur à l’aide d’un appareil
spécial.
– Une fois programmée, elle ne peut être ni effacée,
ni reprogrammée.
2 – Famille de circuits logiques
• Parmi les PROM on distingue :
• PROM à fusibles :
– Programmée une fois pour toutes.
– La programmation se réalise par destruction de
fusibles.
• E.P.R.O.M. : Erasable PROM
– Programmation réversible.
– La mémoire peut être rendue à nouveau vierge.
• O.T.P.R.O.M. : One Time PROM
– EPROM dont on a inhibé
d’effacement.
– Mémoires non effaçables.
la
possibilité
2 – Famille de circuits logiques
• Parmi les EPROM on distingue :
• UVPROM :
– Programmable électriquement et effaçable aux UV.
– Le boitier est muni d’une fenêtre (quartz)
permettant l’exposition.
• E.E.P.R.O.M. : Electrically Erasable PROM
– Effaçable et reprogrammable électriquement.
– L’effacement dure 10 ms pour environ 20 minutes
pour les UVPROM.
• Mémoires Flash EEPROM
– EEPROM avec de faibles niveaux de tensions.
– Plus rapides que les EEPROM.
– Programmateur intégré dans le circuit (I.S.P. (In Situ
Programming)).
2 – Famille de circuits logiques
• Classification des ROM :
Mémoires mortes.
MROM
programmables par masque.
PROM à
fusibles.
UVPROM ou
PROM effaçables
aux UV.
EPROM ou
PROM effaçables.
EEPROM ou
PROM effaçables
électriquement.
PROM
programmables par l'utilisateur.
OTPROM ou EPROM
programmables une seule fois.
EEPROM Flash
effaçables
électriquement.
2 – Famille de circuits logiques
• Les circuits logiques programmables
également plusieurs abréviations.
présentent
• P.L.D. : Programmable Logic Device
– Terme général regroupant l’ensemble des circuits
logiques programmables mais souvent utilisés pour
désigner le plus simple d’entre eux.
• C.P.L.D. : Complex PLD
– Circuit complexe dont l’architecture dérive des PLD.
– Quelques dizaines de milliers de portes.
• F.P.G.A. : Field Programmable Gate Array
– Complexité très élevée et voisine de celle des ASIC.
– Quelques centaines de milliers de portes.
3 – Opérateurs génériques
• Un circuit logique programmable est un assemblage
d’opérateurs logiques combinatoires et séquentiels.
• Diverses fonctions peuvent être réalisées selon
l’architecture et la programmation consiste à définir
une fonction parmi toutes ces fonctions.
• Programmer
une
fonction
c’est
définir
les
interconnexions entre les divers opérateurs logiques et
définir les équations des opérateurs combinatoires.
• Ce sont les interconnexions et les opérateurs qui sont
programmables !
3 – Opérateurs génériques
3.1 – Codage d’une fonction logique
• La base de toute fonction logique est combinatoire.
• Une fonction séquentielle s’obtient alors en
réinjectant les sorties sur les entrées (asynchrone) en
intercalant éventuellement des bascules triggeables
(synchrone).
• Généralement une fonction logique peut être réalisée
de différentes façons :
– Un réseau logique programmable (base d’un PLD).
– Une mémoire de type ROM.
– Un multiplexeur.
3 – Opérateurs génériques
3.2 – Réseaux logiques programmables
• Une fonction logique combinatoire peut se mettre sous
la forme d’une somme (OU) de produit (ET), un produit
de somme ou un mélange des deux.
• Un réseau logique programmable (Programmable Logic
Array, PLA) utilise des matrices de portes ET et OU que
l’on programme pour obtenir la fonction désirée.
• La programmation consiste alors à établir les
différentes connexions entre les portes ET et OU pour
obtenir la fonction désirée.
3 – Opérateurs génériques
• Exemple simplifié d’un PLA
e2
e1
1
*
*
*
*
*
*
*
S
*
Connexion modifiable
• Les entrées et leurs compléments sont connectées à
plusieurs portes ET.
• Les sorties des portes ET sont connectées aux entrées
de portes OU.
3 – Opérateurs génériques
• Toutes les variables sont connectées et la
programmation consiste à supprimer certaines
connexions.
• Une connexion supprimée Ö état logique 1 sur
l’entrée de la porte ET (transparent).
• Les connexions programmables sont représentées par
une croix et la programmation consiste à « griller » les
connexions de liaisons.
• Ces connexions sont appelées « fusibles » même si
leurs réalisations n’en comportent aucun.
3 – Opérateurs génériques
• Initialement : s(e1,e2) = e1.e1 .e2.e2+ e1.e1 .e2.e2
• Exemple du OU exclusif :
e2
e1
1
*
*
*
*
Connexion supprimée
• s(e1,e2) = e1. e2+ e1.e2
S
3 – Opérateurs génériques
• PAL 16L8 : le plus simple des circuits PAL :
– Opérateurs ET à 32 entrées.
– Opérateurs OU à 8 entrées.
– Nécessité de simplifier la représentation des
connexions.
Connexion permanente
e1
* *
* *
S
* *
* *
e2
Connexion modifiable
3 – Opérateurs génériques
3.3 – Mémoire de type ROM
• Une fonction combinatoire est totalement décrite par
ses combinaisons d’entrée et ses états de sortie.
• Ce principe correspond à celui d’une mémoire où à
chaque adresse on associe des états de sortie.
• Il fait appel à une structure PLA dont la matrice ET est
figée et sert de décodeur d’adresse. La matrice OU
est programmée en fonction de la sortie voulue.
• Cette méthode utilisée pour les mémoires l’est
également pour les CPLD ou les FPGA sous forme de LUT
(Look Up Table).
3 – Opérateurs génériques
• Lorsqu’une adresse est
présente (ex. I3I2I1I0 =
1000), la sortie de la
porte ET concernée
passe à 1.
• Suivant les fusibles
laissés intacts dans la
matrice OU, on a un
mot sur O3O2O1O0 (ex.
0000 si tous les fusibles
sont grillés).
3.4 - Multiplexeurs
3 – Opérateurs génériques
• Un multiplexeur est un circuit d’aiguillage.
• Forme simplifiée :
e1
Mux.
e2
S
• 2 entrées d’info (e1, e2)
• 1 entrée de sélection sel
• 1 sortie s
sel
• Fonctionnement : sel =0 Ö s= e1; sel =1 Ö s= e2
• Le multiplexeur permet donc de créer des chemins de
données à l’intérieur d’un circuit programmable vers
différents blocs.
3 – Opérateurs génériques
• Le multiplexeur peut également synthétiser des
équations logiques (principe utilisé dans les FPGA).
• Expression générale du multiplexeur 2 vers 1 :
s(e1,e2) = e1. sel + e2. sel
• Application au OU exclusif :
e2
e2
e2
Mux.
Sel = e1
S
s(e1,e2) = e2. e1 + e2. e1
3 – Opérateurs génériques
• Possibilité de généraliser à n entrées de sélection,
2n entrées d’informations et une sortie.
• Dans un circuit programmable à base de
multiplexeurs (FPGA), la programmation consiste à
établir des interconnexions entre les cellules de
calcul et les variables.
• Cette interconnexion s’appelle le routage et
l’affectation des cellules à une fonction souhaitée
s’appelle le placement.
3.5 – Ou exclusif
3 – Opérateurs génériques
• L’opérateur OU exclusif est parfois utilisé dans certains
circuits logiques car il permet de réaliser :
– Des fonctions de calcul (addition, soustraction,...).
– Des fonctions de cryptage et de contrôle (parité).
– Des inverseurs commandés.
S
Fonction
F
1
T
Fusible
Sortie à polarité
programmable
F = S. T + S. T
Avec fusible : T=0 Ö F=S
Sans fusible : T=1 Ö F=S
0
• Cette méthode est utilisée lorsqu’il est plus
économique (en nombre de portes) de calculer le
complément d’une fonction.
3.6 – Bascules
3 – Opérateurs génériques
• Les fonctions séquentielles et synchrones peuvent
également être créées dans les circuits logiques
programmables.
• L’élément de base est une cellule mémoire pouvant
changer d’état sur front d’horloge (bascule).
• Les bascules D sont toujours présentes dans ces circuits
(ce qui n’est pas forcément le cas des bascules JK).
• Le changement d’un type de bascules en un autre est
toujours possible mais le choix du type de bascule est
déterminé automatiquement lors de la programmation.
4 – Technologie d’interconnexion
• La technologie utilisée pour matérialiser les connexions
est un facteur primordial dans le choix des circuits
programmables. Ce choix dépend :
– Du maintien ou non de la fonction programmée en
absence d’alimentation.
– De la possibilité ou non de modifier la fonction
programmée.
– De la facilité de mise en oeuvre (utilisation d’un
appareil spécial).
– De la densité d’intégration.
– De la rapidité de fonctionnement.
4 – Technologie d’interconnexion
4.1 – Connexions programmables une
seule fois (OneTime programming).
• 4.1.1 – Cellules à fusibles
• C’est la première technologie utilisée mais a
pratiquement disparu (présente encore dans des circuits
de conception ancienne et de faible densité).
• Le principe consiste à détruire un fusible conducteur par
passage d’un courant fourni par une tension supérieure à
l’alimentation (12-25V).
4 – Technologie d’interconnexion
1
e1
fusible
e2
S
• A l’origine, toutes le connexions sont établies.
• La programmation consiste à diriger les impulsions de
courant vers les fusibles à détruire.
• L’état de chaque fusible est représenté dans une table
(0 Ö fusible intact, 1 Ö programmé) puis transféré
sous forme d’un fichier normalisé (format JEDEC).
4 – Technologie d’interconnexion
• 4.1.2 – Cellules à anti fusibles
• C’est le principe de la soudure électrique par points.
• Un point d’interconnexion est réalisé aux croisements
de 2 pistes conductrices séparées par un isolant.
• Une surtension (16 V /1 ms) entre les 2 pistes provoque
la destruction de l’isolant et établit le contact.
• Cette technologie ne permet pas la reprogrammation
mais offre les avantages suivants :
– Vitesse de programmation élevée.
– Densité d’intégration élevée (1 point de connexion :
1 à 2 µm2; un fusible : 700 µm2).
– Résistance de contact faible (et donc retard faible).
4 – Technologie d’interconnexion
• 4.2 – Cellules reprogrammables
• 4.2.1 – Cellules à transistors MOS à grilles flottantes et
EPROM
• Les transistors MOS sont des interrupteurs commandés
par le potentiel appliqué sur la grille.
• Ces composants peuvent alors être bloqués ou passants
sans l’application permanente de la tension de
commande.
• Si la grille est isolée,
indéfiniment (20 ans).
elle
conserve
sa
charge
4 – Technologie d’interconnexion
• Le principe consiste à piéger ou non des électrons dans
la grille à l’aide d’une tension supérieure à la tension
d’alimentation.
• L’extraction des électrons piégés permet le retour à
l’état initial.
• Ces circuits sont reprogrammables à volonté et les
tensions utilisées suffisamment faibles pour qu’elles
soient générées par les circuits eux mêmes dans certains
cas (programmation in situ sans appareil extérieur).
• Plusieurs technologies EPROM sont en concurrences :
4 – Technologie d’interconnexion
• 4.2.1.1. – UV EPROM
• Les connections sont réinitialisables par une exposition à
un rayonnement UV d’une vingtaine de minutes (une
fenêtre est prévue pour le composant).
• L’effacement est lourd, non sélectif et ne peut se faire
sur site.
• Ce principe n’est pas utilisé dans les circuits logiques
programmables étudiés.
4 – Technologie d’interconnexion
• 4.2.1.2. – EEPROM
• L’effacement et la programmation (quelques ms) se font
électriquement (par une tension de 12 V) et de façon
sélective. La reprogrammation de tout le composant
n’est pas nécessaire.
• Une cellule nécessite cinq transistors (75 à 100 µm2) ce
qui réduit la densité d’intégration.
• Le nombre de cycles de programmation est limité à 100
(CMOS 0,6 µm) ou 10 000 (CMOS 0,8 µm) à cause de la
dégradation des isolants.
4 – Technologie d’interconnexion
• 4.2.1.3. – Flash EPROM
• Chaque cellule utilise uniquement deux transistors (25
µm2) de surface d’où une intégration 4 fois supérieure au
cas de l’EEPROM (mais 10 fois inférieure à la technologie
anti fusible).
• Le nombre de cycles d’écriture est de 104 à 106 car
l’épaisseur de l’isolant est plus importante.
• La reprogrammation n’est pas sélective (cellules
simples). Le temps de programmation est de quelques
µs, celui d’effacement de quelques ms (sous 12 V).
4 – Technologie d’interconnexion
• Les cellules Flash et EEPROM nécessitent une
alimentation supplémentaire pour être programmées ou
effacées. Cette alimentation est obtenue grâce à un
circuit de pompe de charge intégré.
• Le composant peut alors être programmé directement
sur la carte. On parle alors de composants ISP (In Situ
Programmation).
4 – Technologie d’interconnexion
• 4.2.2 – Cellules SRAM
• Pour les technologies à mémoire statique, l’état de
chaque interrupteur est commandé par une cellule
mémoire classique à 4 transistors (+ 2 de
programmation).
Sélection
Etat mémorisé, commande
de l’interrupteur
Valeur
Deux transistors
• La modification de la configuration est une opération
logique (bascule) et non électrique.
• Cette technologie est très utilisée par les FPGA.
4 – Technologie d’interconnexion
• Cette technologie offre de nombreux avantages :
– Reconfiguration partielle ou totale et illimitée.
– Possibilité de modifier la configuration en fonction
des besoins.
– Possibilité de créer des fonctions dont certains
paramètres sont modifiables en cours de
fonctionnement.
– Accès rapide (ns) et sélectif grâce aux cellules SRAM.
– Taille des cellules d’environ 50 µm2.
• Le problème majeur est la recharge à chaque mise sous
tension de la configuration (les données de
configurations sont mémorisées dans une PROM ou par
une pile).
• C’est le haut de gamme de la technologie (avec les anti
fusibles).
5 – Architectures utilisées
5.1 – Le PLD
• Initialement appelé PAL, ce circuit utilise le principe
du PLA à réseau ET programmable.
• Capacité de calcul limitée par le nombre de produits
et le nombre de facteurs de chaque produit.
• Ce genre de circuit est progressivement abandonné au
détriment des CPLD et FPGA.
• Initialement bipolaires les cellules de connexions sont
à présent en technologie MOS à grille flottante et
donc reprogrammables.
5 – Architectures utilisées
• Structure de base :
PLA dont seule la
matrice
ET
est
programmable.
I3
I2
I1
Réseau OU fixe
I0
I0
I0
P0
P15
Réseau ET programmable
F3
F2
F1
F0
5 – Architectures utilisées
d
c
b
P0
• Exemple de contacts :
F0 =
F1 =
F2 =
F3 =
Réseau OU fixe
a
abc + abc + abc
abcd + abcd
abc + abc + abc + abc
ab + ab
P15
Réseau ET programmable
F3
F2
F1
F0
5 – Architectures utilisées
I15
I3
I2
I1
I0
I0
Réseau OU programmable
I0
P0
• La matrice OU
peut
également être
programmable
(FPLA)
Field PLA
P15
Réseau ET programmable
fusible contact
I15
I3
I2
I1
I0
I0
Réseau OU programmable
I0
P0
• Exemple :
F0 = I0I1I2 + I0I1I2
= P0+P1
F1 = I0I1I15 + I0I1I2
= P2+P0
F2 = I1I3 + I1I2 +
I0I15 + I0I1I2
= P3+P4+P5+P1
F3 = F2
P15
Réseau ET programmable
F0
F1
F2
F3
5 – Architectures utilisées
• Cette structure de base est associée à un bloc appelé
O.L.M.C. (Output Logic Macro Cell) pouvant être :
– Combinatoire (simple connexion reliant la sortie de
la porte OU à l’entrée du buffer de sortie dont la
sortie est réinjectée sur le réseau programmable).
– Séquentielle (le bloc OLMC est alors une bascule D).
– Versatile (choix par programmation d’une des deux
configurations précédentes).
5 – Architectures utilisées
• Les PLD de dernière génération utilisent des OLMC
versatiles plus complexes.
• Exemple du circuit de référence 22V10 :
• Le multiplexeur 4 vers 1 met en circuit ou non la
bascule D et permet d’inverser ou pas les signaux.
• Le multiplexeur 2 vers 1 permet de réinjecter soit la
sortie, soit l’entrée du buffer de sortie vers le réseau
programmable.
5 – Architectures utilisées
• Références d’un PAL : PAL EE T SS (PAL 22V10)
– EE : nombre d’entrées
– SS : nombre de sorties
– T : type du PAL
Type
Désignation
Type
Désignation
H
Combinatoire à logique
positive
R
A registre
L
Combinatoire à logique
négative
RA
A registre
asynchrone
P
Combinatoire à logique à
polarité programmée
RP
A registre
programmable
C
Combinatoire à logique
complémentaire
V
Versatile
5 – Architectures utilisées
• Les dernières générations de ces circuits sont appelées
GAL (Generic Array Logic).
• Ce sont des circuits à transistor MOS à grille flottante
et donc reprogrammables électriquement.
• Références d’un GAL : GAL EE T SS.
• GAL est en fait une marque déposée de la société
Lattice et ce genre de circuits devrait être appelé PAL
MOS.
5 – Architectures utilisées
5.2 – Le CPLD (Complex PLD)
• Un CPLD est approximativement une association de
plusieurs PLD (afin d’intégrer un grand nombre de
fonctions dans un même circuit).
• Plusieurs PLD (appelés blocs logiques) sont intégrés sur
une même pastille et reliés entre eux par une matrice
d’interconnexions.
• Une fonction logique est alors décomposée en
opérations simples jusqu’à ce que les opérations
élémentaires rentrent dans un des blocs logiques.
5 – Architectures utilisées
• Chaque bloc LAB (Logic Array Bloc) contient 16
macrocellules et est l’équivalent d’un PLD à 16 OLMC.
• Les blocs sont reliés entre eux par une matrice
d’interconnexion
appelée
PIA
(Programmable
Interconnect Array).
5 – Architectures utilisées
• Les blocs sont reliés par un seul point de connexion :
– Temps de propagation d’un bloc à un autre constant
et prédictible.
– Phase de placement des différentes fonctions au
sein des macro cellules non critique.
• Le temps de propagation étant constant, le routage
n’influe pas sur les performances du circuit.
• La technologie de connexion utilisée est généralement
de l’EEPROM ou de l’EPROM flash.
• La partie concernant le placement et le routage est
appelée « fitter ».
5.3 Le FPGA
5 – Architectures utilisées
• Pour ces circuits, les blocs logiques sont plus nombreux
mais plus simples que pour les CPLD.
• Les interconnexions entre les blocs ne sont pas
centralisées ce qui nécessitent d’importantes
ressources de placement et de routage.
5 – Architectures utilisées
• Les broches externes ne sont pas affectées aux blocs
logiques et c’est l’utilisateur qui décide de cette
affectation.
• Les structures des blocs dépendent des familles de
circuits et peuvent être :
– Simples avec des ressources de routage importantes
(FPGA à anti fusibles).
– Compliquées avec moins de ressources de routage
(FPGA SRAM).
• Dans tous les cas, ces blocs restent moins compliqués
que pour les CPLD.
5 – Architectures utilisées
Actel (AC3)
Xilinx (XC4000)
• Le passage d’un bloc à un autre se fait par un nombre
de connexion dépendant de la position relative de ces
deux blocs et de l’état d’encombrement de la matrice
d’interconnexion.
• Contrairement aux CPLD, le temps de propagation est
imprédictible avant placement et routage.
5 – Architectures utilisées
• Un autre exemple de bloc logique simple est basé sur
l’utilisation de LUT (Look Up Table).
• Ce sont des structures permettant de synthétiser une
fonction à partir d’un multiplexeur.
• Les sorties de la table de vérité sont présentes dans
des cellules SRAM connectées directement à un
multiplexeur.
• La sortie du multiplexeur correspond alors à la
fonction logique recherchée.
5 – Architectures utilisées
• Exemple :
y = a b c D0 + a bc D1+ a bc D2 +a bc D3 +a b c D4 +a bc D5 +abc D6 +abc D7
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
y
0
1
1
1
1
0
0
1
5 – Architectures utilisées
• Les performances du circuit (vitesse) dépendent donc
de la phase de placement des blocs et de routage des
connexions.
• Exemple :
– Liaison BA vers BL : 2 blocs éloignés mais peu de
connexions donc un faible retard introduit (lié à la
résistance de connexion et à la capacité parasite).
– Liaison BD vers BH : 2 blocs voisins mais beaucoup
de connexions et donc un retard important.
BA
BD
BH
BL
5 – Architectures utilisées
• Les technologies de connexions sont généralement de
types SRAM, antifusibles ou encore Flash.
• Actel est le leader mondial des FPGA à technologie
Flash. Cette technologie est très utilisée dans
l’aéronautique car elle présente une grande immunité
aux rayonnements cosmiques (comme les anti fusibles).
1 bit faux
5 – Architectures utilisées
• Résumé des trois types de connexions :
SRAM
Reprogrammable
Flash
Reprogrammable
Non volatile
anti fusible
Non volatile
5 – Architectures utilisées
• Il est possible d’implanter dans des FPGA des fonctions
aussi complexes qu’un microcontrôleur.
• Ces fonctions sont fournies par le constructeur et
portent le nom de « megafunction » ou « megacore ». Le
terme générique utilisé est « propriété intellectuelle »
(IP).
• La RAM réservée pour les connexions peut également
être utilisée comme RAM « classique ».
6 – Les outils de développement
• Initialement la programmation consistait à
transformer la description structurelle du circuit en
table des fusibles (fichier JEDEC).
• Le programmateur délivrait alors des surtensions
aux endroits précis du circuit où devaient être
grillés les fusibles.
• Deux nouvelles techniques sont à présent utilisées.
6 – Les outils de développement
6.1 – Fonctionnement normal,
programmation et test
• Le principe consiste à imposer dans l’architecture du
circuit les trois modes suivant : fonctionnement
normal, programmation et test.
• Il est quasi impossible de tester de l’extérieur les
cartes d’ou la mise en place pour les tests de la norme
J.T.A.G. (Join Test Action Group).
• Lorsque le mode test est activé, il y a :
– Inhibition du fonctionnement normal.
– Connexion des broches du circuit à des cellules
dédiées aux tests (ces cellules sont connectées en un
registre parcourant l’ensemble des broches).
6 – Les outils de développement
6.2 – Programmation in situ
• Ce type de programmation consiste à programmer une
carte directement à partir d’un PC (port parallèle, USB).
• Les FPGA à SRAM offrent plusieurs possibilités de
chargement de la mémoire de configuration :
– Chargement automatique : à chaque mise sous
tension les données d’une mémoire PROM sont
rechargées (chargement série (peu de broches) ou
parallèle (rapide)).
– Chargement série ou parallèle : réalisé à partir d’un
processeur maître autorisant les modifications
rapides des configurations y compris pendant le
fonctionnement.
6 – Les outils de développement
6.3 – Principe
• Plusieurs étapes apparaissent dans l’outil de
développement :
– 1. La description de la fonction à réaliser
(graphique ou textuelle).
– 2. La compilation afin de vérifier la cohérence de
la description, la syntaxe et d’effectuer une
simulation.
– 3. Le placement et le routage pour un circuit
donné (étape fondamentale pour l’optimisation du
système).
– 4. Programmation du circuit et vérification du
fonctionnement.
• Résumé des étapes :
6 – Les outils de développement
Description
(textuelle ou graphique)
Compilation
et vérification
Simulation
fonctionnelle
Placement, routage,
simulation temporelle
Programmation
Vérification
7 – Choix du circuit
• 3 grandes familles à distinguer :
– Les PLD et CPLD en technologie Flash.
Généralisation à la programmation in situ, circuits
réservés à des fonctions moyennement complexes
mais rapides (200 MHz).
– Les FPGA à SRAM et Flash. Large gamme de
produits (en densité et en vitesse), circuits
reprogrammables à volonté et configurables
rapidement (200 ns).
– Les FPGA à anti fusibles. Programmables une seule
fois, ils tendent à remplacer les ASIC.
• D’autres critères doivent être pris en compte !
7 – Choix du circuit
7.1 La puissance de calcul
• Différents paramètres la définissent :
– Le nombre de portes : (>250 000 portes en 2000).
– Le nombre de cellules : dépend du constructeur
(10 bascules pour un 22V10, une centaine à
quelques milliers pour un FPGA).
– Le nombre d’entrées-sorties : de quelques
dizaines à quelques centaines.
– Capacité mémoire : les FPGA à SRAM contiennent
de la mémoire pour stocker leurs configurations
mais qui peut également être utilisée en tant que
telle.
– Routabilité : elle doit être le plus automatique
possible pour l’utilisateur.
7 – Choix du circuit
7.2 Vitesse de fonctionnement :
• Pour un PLD :
– Comportement dynamique prévisible et indépendant
de la fonction programmée.
– Les notices fournissent directement les valeurs des
fréquences maximum et du temps de retard entre
les signaux appliqués et les fronts d’horloge.
• Pour un FPGA :
– Performances dépendante de la fonction, du
placement et du routage.
– Le routeur analyse le schéma généré et en déduit
les différents temps de propagation.
7 – Choix du circuit
7.3 Consommation :
• Pour aller vite, il faut de la puissance !
• Consommation réduite depuis l’utilisation de faibles
tensions d’alimentation (3,3 V; 1,2 V...).
• Les cellules de certains circuits sont programmables
en deux modes :
– Faible consommation.
– Vitesse maximum (pour une consommation
élevée).
7 – Choix du circuit
• Expression du courant moyen consommé :
ICC = ICC0 + k nL F + nS CS ∆V F/2
ICC0 : courant statique consommé au repos.
nL : nombre moyen de cellules qui commutent sur le front
d’horloge.
nS : nombre moyen de sorties qui commutent sur le front
d’horloge.
CS : capacité de charge moyenne des sorties.
∆V : excursion de la tension de sortie.
F
: fréquence d’horloge.
K
: coefficient de consommation par cellule par hertz.
• A ne pas négliger : k = 150 µA/MHz/cellule, 50 MHz, 100
cellules Ö 750 mA !
7 – Choix du circuit
7.4 - Récapitulatif
Nombre de
portes
Vitesse
PLD
CPLD
FPGA
150
40 000
4 000 000
A technologie égale, le FPGA possède la
fréquence de travail la plus basse.
Technologie de
connexion
MOS à grille
flottante
MOS à grille
flottante
SRAM, Flash
et anti fusible
Codage des
fonctions
PLA
PLA / LUT
LUT / MUX
8 – Les évolutions
• Exemple de la famille Spartan (Xilinx) :
- 1998 : Spartan XCS40
$27 à $50
9 0.65µ, 1800 cellules logiques.
9 25 kbits max de ram distribuée.
- 2000 : Spartan-2 XC2S100 $13 à $18
9 0.25µ, 2700 cellules logiques.
9 40 kbits de ram dédiée, 38 kbits de ram distribuée.
- 2004 : Spartan-3E XC3S250E < $12
9 0.09µ, 5000 cellules logiques.
9 216 kbits de ram dédiée, 38 kbits de ram distribuée.
8 – Les évolutions
• Exemple de la famille Virtex (Xilinx) :
- 2000 : Virtex XCV400 $200 à $350
9 0.25µ, 10.000 cellules logiques.
9 84 kbits de ram dédiée, 154 kbits de ram distribuée.
- 2004 : Virtex-4 XC4VLX15 < $120
9 0.09µ, 14.000 cellules logiques, 400-500 MHz.
9 864 kbits de ram dédiée, 96 kbits de ram distribuée.
- 2008 : Virtex-5 XC5VSX240-T
9 0.065µ, 330.000 cellules logiques, 550 MHZ.
9 4200 kbits de ram distribuée.
8 – Les évolutions
• Vers le tout FPGA ?
$14.3B
$11.6B
$10.4B
84%
PLD
16%
ASIC
PLD
PLD
74%
26%
69%
ASIC
ASIC
1996
2003
31%
2006
• Les circuits ASIC s’imposent pour les fonctions
standards à très gros volumes mais le prix et la
souplesse des FPGA les imposent partout ailleurs.
8 – Les évolutions
• La fonction SOPC : Actuellement, la tendance est la
migration du microprocesseur dans le FPGA : On parle
alors de SOPC (System On Programmable Chip).
Flash
µproc
Port
Zone reconfigurable
dynamiquement
Disque
dur
• D’ici 2010, 50% des FPGA
intégreront un µprocesseur
dans leurs structures.
Réseau
• Le cœur de processeur peut être de type « Hard » ou de
type « Soft » c’est à dire que la fonction processeur est
développée puis chargée dans le FPGA (blocs IP en
VHDL). C’est ce qu’on appelle le Softcore (≠Hardcore).
8 – Les évolutions
• Deux principales familles :
Altera
Xilinx
Type
ARM9
PowerPC405
Hard
RISC 32 bits
RISC 32 bits
Excalibur
Virtex 2, 4, 5
Nios II
Microblaze
Soft
• Le processeur peut également emporter un système
d’exploitation (OS) ( Linux, µClinux,…).
• Exemple de la famille Altera (Excalibur) :
- Un FPGA de type APEX (EP20K200E).
- Un CPLD (Max 7064).
- Possibilité d’implanter un processeur NIOS (Netware
Input Output System).
8 – Les évolutions
8 – Les évolutions
• Exemple de la famille Xilinx :
- Processeurs « Hard » : PowerPC 350/450 MHz.
- Processeurs « Soft » : PicoBlaze 8 bits (jusqu’à 44
Mips (Spartan3) (< 200 cellules logiques) et gestion du
séquentiel : PWM I2C / UART / SPI, claviers, afficheurs.
- Processeurs « Soft » :
MicroBlaze 32 bits
(jusqu’à
68
DMips
(Spartan3), mémoires,
communication…).
8 – Les évolutions
• EDK (Embedded Development Kit) : Environnement de
développement (construction du système virtuel :
périphériques, bus, ..., codage, debug,…).
• Plusieurs architectures possibles : Le processeur au
centre des périphériques dans le FPGA ou le
processeur en tant que bloc parmi d’autres.
• Un processeur « soft » doit être petit : Plutôt un
processeur sans RTOS par tâche qu’un processeur
unique et un logiciel critique.
Structure du PAL 22V10 : 10 OLMC reliées par un PLA à matrice
OU programmable. Le délai de propagation des signaux est de 4
ns d’où une fréquence de fonctionnement jusqu’ à 230 MHz.
Structure de la famille MAX7000 (CPLD) : elle comprend des
circuits de 600 à 20 000 portes (600 à 5000 portes utilisables) et
utilise une technologie EEPROM. Les circuits les plus rapides ont
des temps de propagation broche à broche de 5 ns d’où une
fréquence de fonctionnement pouvant aller jusqu’ à 175 MHz.
Chaque bloc logique (LAB) comprend 16 macrocellules. Chaque
macrocellule est constituée d’une matrice ET programmable,
d’une matrice OU fixe et d’une bascule configurable en sortie.
Structure de la famille FLEX10K (hybride CPLD/FPGA) : ces
circuits intègrent de 10 000 à 250 000 portes et jusqu’à 40
kbits de RAM.
La structure ressemble à celle d’un CPLD classique avec une
seule matrice d’interconnexion qui relie les blocs logiques
entre eux. Les retards dus aux connexions sont donc
prévisibles.
Par contre, comme pour un FPGA, les connexions sont réalisées
en technologie SRAM.
Chaque bloc logique (LAB) contient 8 éléments logiques (LE).
La partie combinatoire d’un élément logique est réalisée par
une mémoire à 4 bits d’adresse et 1 bit de donnée (LUT), celle
ci attaquant une bascule.
Structure de la famille cyclone II 2C20 (FPGA) : Technologie 90
nm avec 20 000 éléments logiques (structure ci-dessous).
Fréquence de travail : 320 MHz.
Téléchargement