Professional Documents
Culture Documents
Dpartement dlectronique
Index .......................................................................................................................26
Les circuits programmables 3
Lhistoire des circuits programmables commence, peu de chose prs, avec la dcennie quatre-
vingt. A la fin des annes soixante-dix le monde des circuits numriques se rpartit
schmatiquement en quatre grands groupes :
Les fonctions standard sont utilises pour les applications ralises en logique cble. Les
catalogues TTL et CMOS prsentent plusieurs centaines de fonctions dusage gnral, sous
forme de circuits intgrs grande chelle.
Les microprocesseurs, dsormais dusage courant, et sont omniprsents dans les applications
industrielles.
Dans des applications trop complexes pour tre raisonnablement traites en logique cble
traditionnelle, et trop rapides pour avoir une solution base de microprocesseurs, on utilise
des squenceurs micro programms.
Quand les volumes de production importants le justifient, les circuits intgrs spcifiques
(ASICS) offrent une alternative aux cartes cbles classiques.
Le dveloppement des microprocesseurs stimule une volution rapide des technologies de
ralisation des mmoires semi-conducteurs ; les circuits logiques programmables ont hrit
directement des mmoires pour ce qui concerne les aspects technologiques. Leurs architectures
internes sont, en revanche, trs diffrentes. Il nest donc pas surprenant que le premier fabriquant de
circuits programmables ait t un fabriquant de mmoires (MMI, monolithic memories inc.).
Notons, pour la petite histoire, que cette socit a fusionn1 avec lun des leaders des
fabriquants de processeurs rapides, processeurs micro programms, processeurs spcialiss dans le
traitement de signal, processeurs RISCs, AMD (advanced micro devices).
Ce chapitre est consacre un tour dhorizon gnral au cours duquel nous tenterons de donner
au lecteur une vision densemble de ce que sont les membres de la famille (nombreuse) des circuits
programmables.
Les aspects structurels internes ne seront abords que dans la mesure o ils clairent la
comprhension du fonctionnement. Lutilisateur dun circuit a principalement besoin de bien
dominer son architecture, les technologies de fabrication appartiennent au domaine du fondeur.
1
Fusion entre un gant et un nain.
2
Quelle que soit la technologie, la programmation dun circuit consiste lui faire subir des niveaux de tension et de
courant qui sortent du cadre de son utilisation normale. Typiquement, les tensions mises en jeu vont de 10 (CMOS)
20 volts (bipolaires), les courants correspondants de quelques dizaines quelques centaines de milliampres, pour des
circuits aliments sous 5 volts en fonctionnement ordinaire.
4
Leur botier doit tre quip dune fentre transparente, ce qui en augmente le cot. La
modification de leur contenu est une opration longue qui ncessite des manipulations :
plusieurs minutes pour leffacement des donnes anciennes, sur un premier appareil, et
transfert de nouvelles informations sur un second appareil.
Les mmoires de type EEPROM (electricaly erasable programmable memory), ou FLASH,
sont effaables et reprogrammables lectriquement. Non alimentes, elles conservent les
informations mmorises.
La diminution des tensions appliquer pour programmer les mmoires FLASH permet mme
de saffranchir du programmateur : il est intgr dans le circuit. On parle alors de mmoires
programmables in situ (ISP, pour in situ programming), cest dire sans dmonter la mmoire
de la carte sur laquelle elle est implante.
Mme programmable in situ, une mmoire FLASH fonctionne dans un mode tout fait
diffrent du mode utilisation quand elle est en cours de programmation. Les technologies
FLASH sont de loin les plus sduisantes pour les circuits programmables pas trop complexes.
Les mmoires RAM (random access memory) statiques3, ou SRAM, sont constitues de
cellules accessibles, en mode normal, en lecture et en criture. Elles sont utilises dans
certains circuits programmables complexes pour conserver la configuration (qui dfinit la
fonction ralise) du circuit.
Ces mmoires perdent leur information quand lalimentation est supprime. Les circuits qui
les utilisent doivent donc suivre un cycle dinitialisation chaque mise sous tension. Ces
circuits peuvent tre reconfigurs dynamiquement, changeant ainsi de fonction la demande,
en cours dutilisation.
Comme tout domaine spcialis, le monde des circuits programmables comporte une
terminologie, dorigine anglo-saxonne le plus souvent, difficile viter. Pour compliquer les
choses, de nombreux termes sont lorigine des noms propres, proprits des socits qui sont la
source des produits concerns. Qui se souvient encore que frigidaire est un nom dpos par la
socit General Motors ?
Les sigles utiliss dans la suite semblent communment admis par la majorit des fabricants :
PLD (programmable logic device) est un terme gnrique qui recouvre lensemble des
circuits logiques programmables. Il est le plus souvent employ pour dsigner les plus
simples dentre eux (quivalent de quelques centaines de portes logiques).
CPLD (complex programmable logic device) dsigne videmment un circuit relativement
complexe (jusqu une ou deux dizaines de milliers de portes), mais dont larchitecture drive
directement de celle des PLDs simples.
FPGA (field programmable gate array) marque un saut dans larchitecture et la technologie,
il dsigne un circuit qui peut tre trs complexe (jusqu cent mille portes quivalentes) ; la
complexit des FPGAs rejoint celle des ASICs (application specific integrated circuits).
Notons que la complexit dun circuit nest pas mesurable simplement : il ne suffit pas quun
circuit contienne un grand nombre de portes pour tre puissant ; encore faut-il que ces portes soient
utilisables dans une grande proportion. Ce dernier point est la fois un problme darchitecture et
de logiciels daide la conception.
possibilit de raliser toute une classe de fonctions, plus ou moins large suivant son architecture. La
programmation du circuit consiste dfinir une fonction parmi toutes celles qui sont
potentiellement ralisables.
Comme dans toute ralisation en logique cble, une fonction logique est dfinie par les
interconnexions entre des oprateurs combinatoires et des bascules (synchrones, cela va presque
sans dire), et par les quations des oprateurs combinatoires. Ce qui est programmable dans un
circuit concerne donc les interconnexions et les oprateurs combinatoires. Les bascules sont le plus
souvent de simples bascules D, ou des bascules configurables en bascules D ou T.
La ralisation doprateurs combinatoires utilise des oprateurs gnriques, cest eux que
nous allons nous intresser dans la suite.
e1 e2
'1'
connexion
modifiable
4
Que lon ne confondra pas avec PAL (programmable array logic), qui dsigne les PLDs historiques de MMI...Ni avec
GAL (gate array logic) nom dpos par la socit Lattice, etc.
6
Un tel schma permet de raliser nimporte quelle fonction boolenne s(e1,e2), de deux
variables binaires e1 et e25, pourvu quelle ne dpasse pas deux termes.
En effet, si toutes les connexions sont prsentes, en notant par + et les oprateurs OU et ET,
respectivement, s scrit :
s(e1,e2) = e1 e1 e2 e2 + e1 e1 e2 e2
qui vaut trivialement 0.
Un oprateur ou exclusif, par exemple, obit lquation :
e1 e2 = e1 e2 + e1 e2
do la programmation du PLA de la figure III-2.
e1 e2
'1'
e1 e2
connexion
supprime
Le plus simple des PLDs, un 16L8 par exemple, utilise des oprateurs ET 32 entres et des
oprateurs OU 8 entres. Un schma tel que celui des figures prcdentes deviendrait, dans de
telles conditions, illisible. Pour viter cet cueil, les notices de circuits utilisent des symboles
simplifis, pour reprsenter les rseaux logiques programmables.
La figure III-3 reprsente le PLA prcdent avec ces symboles.
connexions programmables
e1
s
e2
connexions permanentes
5
Dans tout cet ouvrage, sauf prcision contraire, nous utiliserons les valeurs 0 et 1 pour reprsenter les tats possibles
dune variable binaire. Les oprateurs ET et OU sont dfinis avec la convention 0FAUX et 1VRAI. Les circuits
associent bien sr les valeurs logiques des niveaux lectriques ; sauf prcision contraire, nous prendrons une
convention logique positive qui associe 1 un niveau haut (H pour high) et 0 un niveau bas (L pour low).
6
Le nombre 24 indique la dimension de la matrice de fusibles : deux lignes et quatre colonnes.
Les circuits programmables 7
Dans un tel schma, toutes les entres (et leurs complments) peuvent tre connectes tous les
oprateurs ET par programmation. Par rfrence la premire technologie utilise, ces connexions
programmables portent le nom de fusibles, mme quand leur ralisation nen comporte aucun.
Quand il sagit uniquement dillustrer la structure dun circuit programmable, et non la ralisation
dune fonction particulire, les croix qui symbolisent les fusibles ne sont mme pas reprsentes.
Dans cette vocation simplifie, le schma de loprateur ou exclusif devient celui de la figure
III-4, dans laquelle une croix reprsente une connexion programmable maintenue, labsence de
croix une connexion supprime.
connexions maintenues
e1
e1 e2
e2
connexions permanentes
Multiplexeurs
Un multiplexeur est un aiguillage dinformations. Dans sa forme la plus simple, il comporte
deux entres de donnes, une sortie et une entre de slection, conformment au symbole de la
figure III-5.
in1 1
s
in0 0
sel
Le fonctionnement de cet oprateur se dcrit trs simplement sous une forme algorithmique :
si sel = 0 s in0 ;
si non (sel = 1) s in1 ;
Certains constructeurs notent sur le symbole, comme nous lavons fait, la valeur de lentre de
slection en regard de lentre correspondante.
La premire utilisation des multiplexeurs dans les circuits programmables est, videmment, de
crer des chemins de donnes. La programmation consiste alors fixer des valeurs aux entres de
slection.
Une autre utilisation de la mme fonction consiste remarquer quun multiplexeur est, en soi,
un oprateur gnrique. Reprenant lexemple prcdent du ou exclusif, on peut le dcrire sous
forme algorithmique :
8
si e1= 0 e1 e2 e2 ;
si non (e1 = 1) e1 e2 e2 ;
Do une ralisation possible de loprateur ou exclusif au moyen dun multiplexeur dans le
schma de la figure III-6.
1
e2 e1 e2
0
e1
Lexemple prcdent peut tre gnralis sans peine : un multiplexeur n entres de slection,
soit 2n entres de donnes, permet de raliser nimporte quelle fonction combinatoire de n + 1
entres, pourvu que lune, au moins, de ces entres existe sous forme directe et sous forme
complmente.
Dans un circuit programmable dont les briques de base sont des multiplexeurs (cest le cas
de beaucoup de FPGAs) la programmation consiste fixer des chemins de donnes, cest dire
tablir des interconnexions entre des cellules de calcul et des signaux dentre et de sortie. Cette
opration de cration dinterconnexions entre des cellules gnriques sappelle le routage dun
circuit ; laffectation des cellules des fonctions souhaites par lutilisateur sappelle le placement.
Ou exclusif
Loprateur lmentaire ou exclusif, ou somme modulo 2, dont nous avons rappel lexpression
algbrique prcdemment, est disponible en tant que tel dans certains circuits.
Cet oprateur intervient naturellement dans de nombreuses fonctions combinatoires relies de
prs ou de loin larithmtique : additions et soustractions, contrles derreurs, cryptages en tout
genre, etc. Or ces fonctions se prtent mal une reprsentation en somme de produits, car elles ne
conduisent aucune minimisation de leurs quations7. Un simple gnrateur de parit sur 8 bits, qui
rajoute un bit de parit un octet de donnes, ne ncessite pas moins de 128 (28-1) produits, quand il
est mis plat , pour tre ralis au moyen dune couche de ETs et dune couche de OUs. De
nombreuses familles de circuits programmables disposent, en plus des PLAs, doprateurs ou
exclusifs pour faciliter la ralisation de ces fonctions arithmtiques.
Une autre application de loprateur ou exclusif est la programmation de la polarit dune
expression. Quand on calcule une fonction combinatoire quelconque sous forme disjonctive, il peut
arriver quil soit plus conomique, en nombre de produits ncessaires, de calculer le complment de
la fonction et de complmenter le rsultat obtenu.
Par exemple, si (cba)2 reprsente lcriture en base 2 dun nombre N, compris entre 0 et 7, on
peut exprimer par une quation logique que N est premier avec 3 :
prem3 = c b + b a + c a + c b a
7
Au moyen de tableaux de Karnaugh, ou, de faon plus raliste, par des programmes de minimisation qui utilisent des
algorithmes comme celui de Queene et Mc Cluskey ou ESPRESSO.
Les circuits programmables 9
On peut galement remarquer que si N est premier avec 3 cest quil nest pas multiple de 3,
soit :
prem3 = mul3 = c b a + c b a + c b a
La deuxime forme, apparemment plus complexe, ncessite un produit de moins que la
premire pour sa ralisation. Dans des circuits o le nombre de produits disponibles est limit, cela
peut prsenter un avantage.
Un oprateur ou exclusif permet de passer, par programmation, dune expression son
complment, comme lindique la figure III-7. Comme cet oprateur peut tre ralis avec un
multiplexeur, lune ou lautre de ces formes peut se trouver dans les notices !
fusible '0'
Bascules
Qui dit logique dit logique squentielle. Les circuits programmables actuels offrent tous la
possibilit de crer des fonctions squentielles, synchrones dans leur immense majorit. La brique
de base de toute fonction squentielle est la bascule, cellule mmoire lmentaire susceptible de
changer dtat quand survient un front actif de son signal dhorloge.
Bascule D, T ou J-K ? La premire est toujours prsente. Comme certaines fonctions se
ralisent plus simplement avec la seconde, les compteurs par exemple, de nombreux circuits
permettent, toujours par programmation, de choisir entre bascule D et bascule T8, voire entre lun
des trois types de base. La figure III-8 rappelle, par un diagramme de transitions, le fonctionnement
de ces trois types de bascules.
8
Cest un (bon) exercice de logique squentielle lmentaire que de trouver le schma de nimporte quel type de
bascule en utilisant nimporte quel autre type.
10
Ck Q Ck Q Ck Q
D T J
K
Fusibles
Premire mthode employe, la connexion par fusibles, est en voie de disparition. On ne la
rencontre plus que dans quelques circuits de faible densit, de conception ancienne.
+5
fusible
e1
e2
La figure III-9 en illustre le principe ; toutes les connexions sont tablies la fabrication. Lors
de la programmation le circuit est plac dans un mode particulier par le programmateur9, mode dans
lequel des impulsions de courant sont aiguilles successivement vers les fusibles dtruire.
9
Ce mode est activ par une tension suprieure la normale, applique sur une broche particulire du circuit. Dans ce
mode, les autres broches servent fournir au circuit le numro du fusible dtruire et appliquer une impulsion qui
Les circuits programmables 11
Pour programmer un circuit, il faut transfrer dans le programmateur une table qui indique par
un chiffre binaire ltat de chaque fusible : la table des fusibles. Cette table est gnralement
transfre entre le systme de CAO et le programmateur sous forme dun fichier au format
normalis : le format JEDEC.
Lexemple ci-dessous est un extrait du fichier JEDEC, gnr par un compilateur VHDL, qui
implmente un compteur binaire 10 bits dans un circuit de type 22V10 :
C22V10*
QP24* Number of Pins*
QF5828* Number of Fuses*
F0* Note: Default fuse setting 0*
G0* Note: Security bit Unprogrammed*
NOTE DEVICE C22V10*
NOTE PACKAGE PAL22V10G-5PC*
NOTE PINS hor:1 oe:2 en:3 raz:4 compte_6:14 compte_8:15 compte_9:16
compte_3:17 *
NOTE PINS compte_1:18 compte_0:19 compte_2:20 compte_4:21 compte_7:22 *
NOTE PINS compte_5:23 *
NOTE NODES *
L00000
00000000000000000000000000000000000000000000
* Node hor[1] => BANK : 1 *
L00044
11110111111111111111111111111111111111111111
11011111011010101110111011101111111111111111
11101111110110111111111111111111111111111111
11101111111110111111111111011111111111111111
11101111111110011111111111111111111111111111
11101111111110111111110111111111111111111111
11101111111110111101111111111111111111111111
11101111101110111111111111111111111111111111
00000000000000000000000000000000000000000000
* Node compte_5[23] => OE : 1 ,LOGIC : 8 *
L00440
11110111111111111111111111111111111111111111
...
C72EB* Note: Fuse Checksum*
9604
Pour chacun des 5828 fusibles de ce circuit, un '0' indique un fusible intact, un '1' un fusible
programm.
Lexamen du dbut de la table prcdente met en vidence un dfaut majeur de cette
technologie : la programmation dtruit plus de fusibles quelle nen conserve, et de loin. Cela se
traduit par une mauvaise utilisation du silicium, un temps de programmation important (quelques
secondes) et des contraintes thermiques svres imposes au circuit lors de lopration. Cette
technologie nest donc pas gnralisable des circuits dpassant quelques centaines de portes
quivalentes.
provoque une surintensit dans ce fusible. Les caractristiques dtailles des signaux appliquer lors de la
programmation sont consignes, pour chaque circuit et pour chaque fabricant, dans une base de donnes dalgorithmes
du programmateur.
12
Le lecteur averti aura peut-tre remarqu, la lecture de len-tte du fichier JEDEC, quen
ralit le circuit prcdent ne contient aucun fusible. Il sagit en vrit dun circuit CMOS grille
flottante, mais lancienne terminologie est reste.
+5
1 6 Vgs
e2
Les transistors disposent de deux grilles, dont lune est isole. Une charge ngative (des
lectrons) dpose sur cette dernire, modifie la tension de seuil du transistor command par la
grille non isole. Quand cette tension de seuil dpasse la tension dalimentation, le transistor est
toujours bloqu (interrupteur ouvert). Une variante (plus ancienne) de cette structure consiste
mettre deux transistor en srie, lun grille isole, lautre normal. Le transistor grille isole est
programm pour tre toujours conducteur ou toujours bloqu ; on retrouve exactement la fonction
du fusible, la rversibilit en plus.
Le contrle des dimensions gomtriques des transistors permet actuellement dobtenir des
circuits fiables, programmables sous une dizaine de volts, reprogrammables volont (plusieurs
centaines de fois), le tout lectriquement.
Les puissances mises en jeu lors de la programmation sont suffisamment faibles pour que les
surtensions ncessaires puissent tre gnres par les circuits eux-mmes. Vu par lutilisateur, le
circuit devient alors programmable in situ, cest dire sans appareillage accessoire. Dans ces
10
Quand on les utilise en tout ou rien, le rgime source de courant contrle relve du monde des fonctions analogiques.
11
Lternit en question est garantie durer plus de 20 ans.
Les circuits programmables 13
Mmoires statiques
Dans les circuits prcdents, la programmation de ltat des interrupteurs, conserve en
labsence de tension dalimentation, fait appel un mode de fonctionnement lectrique particulier.
Dans les technologies mmoire statique, ltat de chaque interrupteur est command par une
cellule mmoire classique quatre transistors (plus un transistor de programmation), dont le schma
de principe est celui de la figure III-11.
tat mmoris
slection commande de
programmation :
l'interrupteur
valeur
deux transistors
La modification de la configuration dun circuit devient alors une opration logique quasi
ordinaire, qui ne ncessite pas dopration lectrique spciale. Ces circuits permettent des
reconfigurations, partielles ou totales, en nombre illimit. Il est mme envisageable de crer des
fonctions dont certains paramtres sont modifiables en cours de fonctionnement, des filtres
adaptatifs par exemple.
Le prix payer pour cette souplesse est que les cellules SRAM doivent tre recharges
chaque mise sous tension et que chaque interrupteur occupe plusieurs transistors : linterrupteur lui-
mme et les transistors de la cellule mmoire.
Antifusibles
Linverse dun fusible est un anti-fusible. Le principe est, lchelle microscopique, celui de la
soudure lectrique par points. Un point dinterconnexion est ralis au croisement de deux pistes
conductrices (mtal ou semi-conducteur selon les procds de fabrication), spares par un isolant
de faible paisseur. Une surtension applique entre les deux pistes provoque un perage dfinitif du
dilectrique, ce qui tablit la connexion.
Les points dinterconnexions ont un diamtre de lordre de la largeur dune piste, cest dire de
lordre du micron ; il est donc possible de prvoir un trs grand nombre dinterconnexions
programmables. La rsistance du contact cr est trs faible, de lordre dune cinquantaine dohms
(dix fois moins que celle dun transistor MOS), do des retards lis aux interconnexions trs
faibles galement.
Les circuits anti-fusibles partagent, avec ceux SRAM, le sommet de la gamme des circuits
programmables en vitesse et en densit dintgration.
Il est clair que ces circuits ne sont programmables quune fois.
14
Somme de produits
Toute fonction logique combinatoire peut tre crite comme somme de produits, nous avons
voqu ce point propos des PLAs. La partie combinatoire dun circuit programmable peut donc
tre construite en suivant cette dmarche : chaque sortie est une fonction de toutes les entres. Si la
sortie se rapporte un oprateur squentiel, les quations programmables calculent la valeur de la
commande dune bascule en fonction des entres et des tats de toutes les bascules du circuit : nous
retrouvons larchitecture matrielle dune machine dtats gnrique. Les PLDs de premire
gnration suivaient ce principe.
La capacit de calcul de cette architecture est limite par le nombre maximum de produits
runis dans la somme logique, et, dans une moindre mesure, par le nombre de facteurs de chaque
produit. Les valeurs typiques sont respectivement de 16 et 44 pour un 22V10.
Trs efficace pour la ralisation doprateurs relativement simples, cette architecture nest pas
directement gnralisable des circuits complexes : pour augmenter la capacit potentielle de
calcul du circuit, il faut augmenter les dimensions des produits et des sommes logiques. Or mme
dans une fonction complexe, de nombreux sous-ensembles sont simples ; ces sous-ensembles
monopoliseront inutilement une grande partie des potentialits du circuit12.
12
Larchitecture du 22V10 contourne cette difficult en utilisant des sommes de dimensions diffrentes (de 8 16).
Mais cette solution impose des contraintes sur laffectation des broches aux sorties dune fonction : les broches
centrales sont plus puissantes que les broches situes aux extrmits dun boitier DIL. Cela peut, par exemple,
interdire la modification dune fonction en conservant le cblage extrieur.
Les circuits programmables 15
cellules
logiques
interconnexions
programmables
Les diffrences darchitectures entre les circuits concernent le compromis fait entre capacit de
calcul de chaque cellule et possibilits dinterconnexions :
Cellules de grande taille, la limite lquivalent dun PLD classique, et interconnexions
limites. Cest schmatiquement le choix fait pour les circuits CPLDs, en technologie
FLASH.
A lautre extrme, cellules trs petites (une bascule et un multiplexeur de commande), avec
des ressources de routage importantes. Cest typiquement le choix fait dans les FPGAs anti-
fusibles, dont la figure III-12 est un exemple.
La solution intermdiaire est, sans doute, la plus rpandue : les cellules comportent une ou
deux bascules et des blocs de calcul combinatoires qui traitent de 6 10 entres. Ces cellules
sont optimises pour accrotre lefficacit de traitement doprations courantes, comme le
comptage ou larithmtique. Les circuits FPGAs SRAM sont gnralement associs de
telles cellules de taille moyenne.
Cellules dentre-sortie
Dans les circuits programmables de premire gnration, les sorties taient associes de faon
rigide des noeuds internes du circuit : rsultat combinatoire, tat dune bascule.
Trs vite est apparu lintrt de crer des macrocellules dentre-sortie pourvues dune certaine
capacit de reconfiguration. La figure III-13 reprend le schma de principe des cellules dun PLD
22V10.
16
commande tri-state
0
1 entre sortie
quation issue
des PLAs D Q 2
3
horloge Ck Q
set reset
vers les 0
rtrocouplage interne
PLAs
1
entre externe
f1
f0
Placement et routage
Le placement consiste attacher des blocs de calcul aux oprateurs logiques dune fonction et
choisir les broches dentre-sorties. Le routage consiste crer les interconnexions ncessaires.
Pour les PLDs simples, le placement est relativement trivial et le routage inexistant. Les
compilateurs gnriques (i.e. indpendants du fondeur) effectuent trs bien ces deux oprations.
Ds les CPLDs, et plus encore pour les FPGAs, ces deux oprations deviennent plus complexes
et ncessitent un outil spcifique du fondeur, qui seul a les comptences ncessaires14. Le
compilateur VHDL sert, dans ces cas, de frontal homogne qui traduit, aprs une premire
optimisation, la description VHDL dans un langage structurel adapt au logiciel spcifique15. Nous
avons vu, propos de la rtroannotation, que les outils des fondeurs fournissent en retour un
modle, VHDL ou VERILOG, du circuit gnr qui prend en compte les temps de propagation
internes.
13
Complmenter une sortie permet, dans certains cas, de simplifier les quations logiques.
14
Pour la simple raison quil est seul connatre ses circuits dans leurs moindres dtails.
15
Une certaine portabilit demeure, mme ce niveau. Il existe des formats de fichiers communs plusieurs fondeurs :
les fichiers PLA ou, plus souvent, des fichiers dans un langage symbolique, EDIF pour electronic data interchange
format for net-lists. Il sagit dun langage de description structurelle, qui ressemble un peu LISP, compris par la
majorit des systmes de CAO.
Les circuits programmables 17
circuit 1 circuit 2
logique logique
zone
fonction fonction
teste
normale normale
automate automate
testeur
Programmables in-situ
Les circuits programmables in situ se dveloppent dans le monde des PLDs et CPLDs en
technologie FLASH. Du simple 22V10, des composants de plus de 10000 portes quivalentes et
400 bascules (LATTICE, par exemple), il est possible de programmer (et de modifier) lensemble
dune carte, sans dmontage, partir dun port parallle de PC.
Les technologies FLASH conservent leur configuration en labsence dalimentation.
16
Typiquement, une broche dentre-sortie bidirectionnelle est pilote par 6 bascules : un couple en entre, un couple en
sortie et un couple en commande de trois tats. Les bascules par paires permettent de dcaler les donnes tout en
mmorisant la configuration prcdente de chaque broche.
17
Les pionniers en la matire furent les socits XILINX pour les technologies SRAM et LATTICE pour les
technologies FLASH.
Les circuits programmables 19
Reconfigurables dynamiquement
Les FPGAs cellules SRAM offrent des possibilits multiples de chargement de la mmoire de
configuration :
Chargement automatique, chaque mise sous tension, des donnes stockes dans une
mmoire PROM. Les donnes peuvent tre transmises en srie, en utilisant peu de broches du
circuit, ou en parallle octet par octet, ce qui acclre la phase de configuration mais utilise,
temporairement du moins, plus de broches du circuit. Plusieurs circuits dune mme carte
peuvent tre configurs en coopration, leurs automates de chargement assurent un passage en
mode normal coordonn, ce qui est videmment souhaitable.
Chargement, en srie ou en parallle, partir dun processeur matre. Ce type de structure
autorise la modification rapide des configurations en cours de fonctionnement. Cette
possibilit est intressante, par exemple, en traitement de signal.
Puissance de calcul
Les premiers chiffres accessibles concernent les nombres doprateurs utilisables.
20
Nombre de cellules
Le nombre de cellules est un chiffre plus facilement interprtable : le constructeur du circuit a
optimis son architecture, pour rendre chaque cellule capable de traiter peu prs tout calcul dont la
complexit est en relation avec le nombre de bascules quelle contient (une ou deux suivant les
architectures). Trois repres chiffrs : un 22V10 contient 10 bascules, la famille des CPLDs va de
32 bascules quelques centaines et celle des FPGAs stend dune centaine quelques milliers.
Dans les circuits architectures cellulaires, il est souvent trs rentable daugmenter le nombre
de bascules si cela permet dallger les blocs combinatoires (pipe line, codages one hot, etc.).
Nombre dentre-sorties
Le nombre de ports de communication entre lintrieur et lextrieur dun circuit peut varier
dans un rapport deux, pour la mme architecture interne, en fonction du botier choisi. Les chiffres
vont de quelques dizaines quelques centaines de broches dentre-sorties..
Capacit mmoire
Les FPGAs SRAM contiennent des mmoires pour stocker leur configuration. La plupart des
familles rcentes offrent lutilisateur la possibilit dutiliser certaines de ces mmoires en tant que
telles. Par exemple, la famille 4000 de XILINX permet dutiliser les mmoires de configuration
dune cellule pour stocker 32 bits de donnes ; la cellule correspondante nest videmment plus
disponible comme oprateur logique. Les capacits de mmorisation atteignent quelques dizaines
de kilobits.
Routabilit
Placement et routage sont intimement lis, et le souhait vident de lutilisateur est que ces
oprations soient aussi automatiques que possible. Le critre premier de routabilit est
lindpendance entre la fonction et le brochage. Certains circuits (mais pas tous) garantissent une
routabilit complte : toute fonction intgrable dans le circuit pourra tre modifie sans
modification du cblage externe.
Le routage influe sur les performances dynamiques de la fonction finale. La politique
gnralement adopte est de prvoir des interconnexions hirarchises : les cellules sont regroupes
en grappes (dune ou quelques dizaines) fortement interconnectes, des pistes de communication
reliant les grappes entre elles. Les interconnexions locales nont que peu dinfluence sur les temps
de calcul, contrairement aux interconnexions distantes dont leffet est notable.
A priori cest au placeur-routeur que revient la gestion de ces interconnexions ; condition que
le programmeur ne lui complique pas inutilement la tche. Un optimiseur a toujours du mal
dcouper des blocs de grandes tailles, il lui est beaucoup plus simple de placer des objets de petites
dimensions. En VHDL cela sappelle construction hirarchique ; un ensemble complexe doit tre
conu comme lassemblage dunits de conceptions aussi simples que possibles.
Vitesse de fonctionnement
Nous avons vu, propos de la rtroannotation, que les comportements dynamiques des FPGAs et
des PLDs simples prsentent des diffrences marquantes. Les premiers ont un comportement
Les circuits programmables 21
Horloge
Entres
synchrones
tPe tP2
p tP1
p sorties
Entres tSU
asynchrones tP1 tP3
n
Registre de
synchronisation
(p bascules D) n
Subdiviser les blocs de calcul combinatoires en tranches spares par des registres ; autrement
dit, penser aux architectures pipe line. Ces architectures gnrent un retard global de plusieurs
priodes dhorloge, mais permettent dobtenir des flots de donnes rapides18.
Savoir que les bibliothques des fondeurs sont riches en modules structurels optimiss en
fonction du circuit cible : les modules LPM (Library of Parameterized Modules).
Les synthtiseurs infrent automatiquement des modules LPM, partir de descriptions
comportementales de haut niveau, sous rserve que le programmeur respecte certaines rgles
dcriture ou indique explicitement quil souhaite utiliser les librairies correspondantes. La
notice de tous les compilateurs explique la dmarche suivre.
Consommation
Les premiers circuits programmables avaient plutt mauvaise rputation sur ce point. Tous les
circuits actuels ont fait dimportants progrs en direction de consommations plus faibles.
Quelques chiffres
Un ordre de grandeur du paramtre k prcdent est, pour un FPGA de la famille FLEX 8000
dALTERA, de 150 A par MHz et par cellule.
Un circuit cadenc 50 MHz, dans lequel 100 cellules commutent, en moyenne, chaque front
dhorloge, consomme, sans charge extrieure, un courant moyen de lordre de 750 mA. Ce qui est
loin dtre ngligeable.
A titre de confrontation, la valeur prcdente doit tre compare la consommation de 50
compteurs binaires19. Un compteur binaire de la famille TTL-AS (il faut prendre des circuits de
vitesses comparables) consomme 35 mA. Les chiffres parlent deux-mmes.
18
Limage classique est le principe de la fabrication des voitures la chane : mme si une voiture sort toutes les dix
minutes, il faut plus de dix minutes pour fabriquer une voiture prise isolment. Le dbit est trs suprieur linverse du
temps de fabrication dune seule voiture.
19
Dans un compteur binaire deux cellules commutent, en moyenne, chaque priode dhorloge. Nous laissons au
lecteur le soin de le dmontrer.
Les circuits programmables 23
Toujours dans le mme ordre, un PLD 22V10 rapide, 10 cellules, consomme un courant de
lordre de 100 mA. Dans ce dernier cas, la fonction programme et la frquence dhorloge nont
quune incidence faible sur le courant consomm.
Lorganisation PREP
Nombre de portes, de cellules, de bascules, frquence maximum, dans quelle condition ? Avec
quel logiciel ? Les comparaisons ne sont pas simples.
Le consortium PREP (programmable electronics performance corporation) regroupait jusquen
1996 la plupart des fabricants de circuits programmables. Cet organisme a dfini un ensemble de
neuf applications, typiques de lusage courant des circuits programmables, qui servent de test la
fois pour les circuits et le systme de dveloppement associ. Les fruits de la confrontation ce
benchmark sont fournis pour la plupart des CPLDs et FPGAs. Ces rsultats contiennent des
informations de vitesse, frquences maximums interne et externe pour chaque test, et de capacit,
nombre moyen dexemplaire de chaque test que lon peut instancier dans un circuit.
100
CPLDs
FPGAs
0 10 20 30 40
moyenne du nombre d'instances
20
Il nest pas difficile de trouver dans un data book un exemple particulier de montage avec lequel un FPGA dpasse
trs largement les 200 MHz.
Les circuits programmables 25
Surface ou vitesse
Les options de rglage standard dun fitter permettent de privilgier la surface (de silicium) ou
la vitesse. Les deux choix sont, en effet, souvent contradictoires : pour diminuer la surface il faut
augmenter le nombre de couches, ce qui pnalise la vitesse21.
21
La situation relle est un peu plus complexe : quand on diminue le nombre de couches logiques, la sortance impose
aux oprateurs augmente. Dans les technologies MOS les temps de propagation de ces oprateurs dpendent beaucoup
de leurs capacits de charge, donc du nombre dentres quils doivent commander. Les fitter contrlent galement ce
type de contraintes.
26
Index