Vous êtes sur la page 1sur 19

avril 2000

CACHAN
Dpartement dlectronique

Circuits logiques programmables

Jacques Weber cirprogiut

Circuits logiques programmables


1. Les grandes familles 2. Quest-ce quun circuit programmable ?
2.1 Des oprateurs gnriques
Rseaux logiques programmables Multiplexeurs Ou exlusif Bascules

1 2
2
3 5 6 6

2.2 Des technologies


Fusibles MOS grille flottante Mmoires statiques Antifusibles

7
7 9 9 10

2.3 Des architectures


Somme de produits Cellules universelles interconnectes Cellules dentre-sortie Placement et routage

10
10 11 11 12

2.4 Des techniques de programmation


Trois modes : fonctionnement normal, programmation et test Programmables in-situ Reconfigurables dynamiquement

12
13 14 14

3. PLDs, CPLDs, FPGAs : Quel circuit choisir ?


Critres de performances
Puissance de calcul Vitesse de fonctionnement Consommation

14
15
15 15 17

Jacques Weber cirprogiut

Les circuits programmables


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 texte 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.

Les grandes familles

Indpendamment de sa structure interne et des dtails de la technologie concerne, une mmoire est caractrise par son mode de programmation et sa facult de retenir linformation quand lalimentation est interrompue. Les catgories de mmoires qui ont donn naissance aux circuits programmables sont : Les mmoires de type PROM (programmable memory) sont programmables une seule fois au moyen dun appareil spcial, le programmateur2. Les donnes qui y sont inscrites ne sont pas modifiables. Elles conservent les informations quand lalimentation est interrompue. Leur inconvnient majeur est limpossibilit de modifier les informations quelles contiennent. Les mmoires de type EPROM (erasable programmable memory) sont programmables par lutilisateur au moyen dun programmateur, effaables par une exposition aux rayons ultraviolets et reprogrammables aprs avoir t effaces. Elles aussi conservent les informations quand lalimentation est interrompue. 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.

1 2

Fusion entre un gant et un nain. 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.

Jacquesweber

cirprogiut.DOC

15/04/00

Les circuits programmables

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.

2.

Quest-ce quun circuit programmable ?

Un circuit programmable est un assemblage doprateurs logiques combinatoires et de bascules dans lequel la fonction ralise nest pas fixe lors de la fabrication. Il contient potentiellement la 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.

2.1

Des oprateurs gnriques

Les oprateurs combinatoires gnriques qui interviennent dans les circuits programmables proviennent soit des mmoires (rseaux logiques) soit des fonctions standard (multiplexeurs et ou exclusif).

Ladjectif statique soppose dynamique. Les mmoires dynamiques stockent les informations dans des capacits intrinsquement lies aux structures MOS - qui ncessitent un processus dynamique de rafrachissement. Les cellules des mmoires statiques sont des bistables, qui conservent leur tat tant que lalimentation est prsente.

Jacquesweber

cirprogiut.DOC

15/04/00

Les grandes familles

Rseaux logiques programmables Un rseau logique programmable (PLA, pour programmable logic array4) utilise le fait que toute fonction logique combinatoire peut se mettre sous forme dune somme (OU logique) de produits (ET logique), cest ce que lon appelle classiquement la premire forme normale, ou forme disjonctive.

e1

e2

'1'

s
connexion modifiable

Figure 1 : Un PLA simple

Le schma de la figure 1 reprsente une structure de PLA simple. La programmation du circuit consiste supprimer certaines des connexions marques dune croix. Si une connexion est supprime, une valeur constante 1 est applique lentre correspondante de la porte ET, cest ce que symbolise le rseau de rsistances reli cette valeur constante. 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 2.

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. 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).

Jacquesweber

cirprogiut.DOC

15/04/00

4
e1 e2

Les circuits programmables

'1'

e1 e2 connexion supprime

Figure 2 : PLA ralisant un ou exclusif

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 3 reprsente le PLA prcdent avec ces symboles.

e1 e2

connexions programmables

s
connexions permanentes
Figure 3 : symbole d'un PLA 246

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 4, dans laquelle une croix reprsente une connexion programmable maintenue, labsence de croix une connexion supprime.

e1 e2

connexions maintenues e1 e2 connexions permanentes


Figure 4 : PLA 24 ralisant un ou exclusif

Le nombre 24 indique la dimension de la matrice de fusibles : deux lignes et quatre colonnes.

Jacquesweber

cirprogiut.DOC

15/04/00

Les grandes familles

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 5.

in1 in0 sel

1 s 0

Figure 5 : un multiplexeur lmentaire

Le fonctionnement de cet oprateur se dcrit trs simplement sous une forme algorithmique : si sel = 0 si non (sel = 1) s in0 ; 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 : si e1= 0 si non (e1 = 1) e1 e2 e2 ; e1 e2 e2 ;

Do une ralisation possible de loprateur ou exclusif au moyen dun multiplexeur dans le schma de la figure 6.

1 e2 0 e1

e1 e2

Figure 6 : ou exclusif ralis par un multiplexeur

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.

Jacquesweber

cirprogiut.DOC

15/04/00

Les circuits programmables

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
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 7. Comme cet oprateur peut tre ralis avec un multiplexeur, lune ou lautre de ces formes peut se trouver dans les notices !

'1' fonction fusible '0'

sortie polarit programmable

Figure 7 : polarit programme par un ou exclusif

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
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.

Jacquesweber

cirprogiut.DOC

15/04/00

Les grandes familles

programmation, de choisir entre bascule D et bascule T8, voire entre lun des trois types de base. La figure 8 rappelle, par un diagramme de transitions, le fonctionnement de ces trois types de bascules.

Ck D

Ck T

Ck
J K

D=1
Q=0 Q=1 Q=0

T=1
Q=1 Q=0

J=1
Q =1

D=0

D=0

D=1

T=0

T=1

T=0

J=0

K=1

K=0

Figure 8 : les trois types fondamentaux de bascules

Le programmeur na, en ralit, que rarement se proccuper de ce genre de choix, les optimiseurs dterminent automatiquement le type de bascule le mieux adapt lapplication.

2.2

Des technologies

Premier critre de choix dun circuit programmable, la technologie utilise pour matrialiser les interconnexions dtermine les aspects lectriques de la programmation : maintien (ou non) de la fonction programme en labsence dalimentation, possibilit (ou non) de modifier la fonction programme, ncessit (ou non) dutiliser un appareil spcial (un programmateur, bien sr). 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 s

Figure 9 : Pld lmentaire fusibles

La figure 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.

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.

Jacquesweber

cirprogiut.DOC

15/04/00

Les circuits programmables

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. 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.

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 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.

Jacquesweber

cirprogiut.DOC

15/04/00

Les grandes familles

MOS grille flottante Les transistors MOS sont des interrupteurs10, commands par une charge lectrique stocke sur leur lectrode de grille. Si, en fonctionnement normal, cette grille est isole, elle conserve sa charge ventuelle ternellement11. Il reste au fondeur trouver un moyen de modifier cette charge, pour programmer ltat du transistor. Le dpt dune charge lectrique sur la grille isole dun transistor fait appel un phnomne connu sous le nom deffet tunnel : un isolant trs mince (une cinquantaine dangstrms, 1 = 10-10 m) soumis une diffrence de potentiel suffisamment grande (une dizaine de volts, suprieure aux 3,3 ou 5 volts des alimentations classiques) est parcouru par un courant de faible valeur, qui permet de dposer une charge lectrique sur une lectrode normalement isole. Ce phnomne, rversible, permet de programmer et deffacer une mmoire. La figure 10 montre la structure du PLD lmentaire prcdent, dans lequel les fusibles sont remplacs par des transistors grille isole (technologie FLASH).

+5 EEMOS e1

Id

effa programm

1
e2 s

Vgs

Figure 10 : Pld simple MOS

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 circuits, un automate auxiliaire gre les algorithmes de programmation et le dialogue avec le systme de dveloppement, via une liaison srie. 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 11.

10 11

Quand on les utilise en tout ou rien, le rgime source de courant contrle relve du monde des fonctions analogiques. Lternit en question est garantie durer plus de 20 ans.

Jacquesweber

cirprogiut.DOC

15/04/00

10

Les circuits programmables tat mmoris commande de l'interrupteur deux transistors

programmation :

slection valeur

Figure 11 : Cellule SRAM

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.

2.3

Des architectures

Les diffrences de technologies se doublent de diffrences darchitectures. Nous tenterons ici de mettre en lumire des grands points de repre, sachant que toute classification a un ct un peu rducteur. La plupart des circuits complexes panachent les architectures. 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

Jacquesweber

cirprogiut.DOC

15/04/00

Les grandes familles

11

Cellules universelles interconnectes Lautre approche, radicalement oppose, est de renoncer la rduction en premire forme normale des quations logiques. On divise le circuit en blocs logiques indpendants, interconnects par des chemins de routage. Une fonction logique est rcursivement dcompose en oprations plus simples, jusqu ce que les oprations lmentaires rentrent dans une cellule. La figure 12 en fournit un exemple.

cellules logiques

interconnexions programmables

Figure 12 : Cellules logiques interconnectes

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 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 13 reprend le schma de principe des cellules dun PLD 22V10.

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.

Jacquesweber

cirprogiut.DOC

15/04/00

12
commande tri-state quation issue des PLAs horloge 0 1 2 3

Les circuits programmables

entre sortie

D Ck

Q Q

vers les PLAs

0 1

set reset rtrocouplage interne entre externe

f1 f0

Figure 13 : Macrocellule configurable

Les deux fusibles f1 et f0 permettent de configurer la macrocellule en entre-sortie combinatoire bidirectionnelle, complmente ou non13, ou en sortie registre trois tats. Chaque sortie du circuit peut disposer de son propre mode, grce aux vingt fusibles de configuration. Les volutions ultrieures rendent indpendantes les macrocellules et les broches du circuit, autorisant ainsi la cration de bascules enterres (burried flip flops) et dentres-sorties bidirectionnelles, quel que soit le mode, registre ou non, attach la sortie. Dans les architectures cellules universelles interconnectes des FPGAs, les cellules dentre-sortie sont entirement configurables et routables, au mme titre que les cellules de calcul. Elles disposent de leurs propres bascules de synchronisation, en entre et en sortie, indpendantes de celles des blocs logiques qui interviennent dans la fonction programme. 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.

2.4

Des techniques de programmation

Le placeur-routeur transforme la description structurelle du circuit en une table des fusibles consigne dans un fichier (JEDEC dans les cas simples, LOF, POF, etc. autrement). Pour la petite histoire, signalons que cette table peut contenir plusieurs centaines de milliers de bits, un par fusible . Traditionnellement, la programmation du circuit, opration qui consiste traduire la table des fusibles en une configuration matrielle, se faisait au moyen dun programmateur, appareil capable de gnrer les squences et les surtensions ncessaires. La tendance actuelle est de supprimer cette tape de manipulation intermdiaire, manipulation dautant plus malaise que laugmentation de la complexit des botiers va de pair
13 14

Complmenter une sortie permet, dans certains cas, de simplifier les quations logiques. 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.

Jacquesweber

cirprogiut.DOC

15/04/00

Les grandes familles

13

avec celle des circuits. Autant il tait simple de concevoir des supports force dinsertion nulle pour des botiers DIL (dual in line) de 20 40 broches espaces de 2,54 mm, autant il est difficile et coteux de raliser lquivalent pour des PGA (pin grid array) et autres BGA (ball grid array), de 200 plus de 300 broches rparties sur toute la surface du botier, sans parler des botiers miniaturiss, au pas de 0,65 mm, destins au montage en surface. Une difficult du mme ordre se rencontre pour le test : il est devenu quasi impossible daccder, par des moyens traditionnels tels que les pointes de contact dune planche clous , aux quipotentielles dune carte. De toute faon, les quipotentielles du circuit imprim ne reprsentent plus quune faible proportion des noeuds du schma global : un circuit de 250 broches peut contenir 2500 bascules. Trois modes : fonctionnement normal, programmation et test Fonctionnement normal, programmation et test : lide sest impose dincorporer ces trois modes de fonctionnement dans les circuits eux-mmes, comme partie intgrante de leur architecture. Pour le test de cartes, une norme existe : le standard IEEE 1149.1, plus connu sous le nom de boundary scan du consortium JTAG (join test action group). Face la quasi impossibilit de tester de lextrieur les cartes multicouches avec des composants monts en surface, un mode de test a t dfini, pour les VLSI numriques. Ce mode de test fait appel une machine dtats, intgre dans tous les circuits compatibles JTAG, qui utilise cinq broches ddies : Tck, une entre dhorloge ddie au test, diffrente de lhorloge du reste du circuit. Tms, une entre de mode qui pilote lautomate de test. Tdi, une entre srie. Tdo, une sortie srie. Trst (optionnelle), une entre de rinitialisation asynchrone de lautomate.

circuit 1

circuit 2

logique fonction normale

zone teste

logique fonction normale

automate Tdi testeur Tck Tms Tdo Tdi

automate Tck Tms Tdo

Figure 14 : Boudary scan

Lutilisation premire de ce sous-ensemble de test est la vrification des connexions dune carte. Quand le mode de test est activ, via des commandes ad-hoc sur les entres Tms et Trst, le fonctionnement normal du circuit est inhib. Les broches du circuit sont connectes des cellules dentre-sortie ddies au test16, chaque

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.

Jacquesweber

cirprogiut.DOC

15/04/00

14

Les circuits programmables

cellule est capable de piloter une broche en sortie et de capturer les donnes dentre, conformment au schma de principe de la figure 14. Toutes les cellules de test sont connectes en un registre dcalage, tant lintrieur dun circuit quentre les circuits, constituant ainsi une chane de donnes, accessible en srie, qui parcourt lensemble des broches de tous les circuits compatibles JTAG dune carte. Les oprations de test sont programmes via des commandes passes aux automates et des donnes entres en srie. Les rsultats des tests sont rcuprables par la dernire sortie srie. Les automates de test permettent dautres vrifications que celles des connexions : il est possible de les utiliser pour appliquer des vecteurs de test internes aux circuits, par exemple. Cest souvent de cette faon que sont effectus certains des tests la fabrication. Lide tait sduisante dutiliser la mme structure pour configurer les circuits programmables. Cest ce qui est en train de se faire : la plupart des fabricants proposent, ou annoncent (en 1997), des solutions plus ou moins drives de JTAG pour viter lutilisateur davoir recours un appareillage extrieur17. 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. 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.

3.

PLDs, CPLDs, FPGAs : Quel circuit choisir ?

Dans le monde des circuits numriques les chiffres voluent trs vite, beaucoup plus vite que les concepts. Cette impression de mouvement permanent est accentue par les effets dannonce des fabricants et par lusage systmatique de la publicit comparative, trs en vogue dans ce domaine. Il semble que doivent se maintenir trois grandes familles : Les PLDs et CPLDs en technologie FLASH, utilisant une architecture somme de produits. La tendance est la gnralisation de la programmation in-situ, rendant inutiles les programmateurs sophistiqus. Rservs des fonctions simples ou moyennement complexes, ces circuits sont rapides (jusqu environ 200 MHz) et leurs caractristiques temporelles sont pratiquement indpendantes de la fonction ralise. Les valeurs de frquence maximum de fonctionnement de la notice sont directement applicables. Les FPGAs SRAM, utilisant une architecture cellulaire. Proposs pratiquement par tous les fabricants, ils couvrent une gamme extrmement large de produits, tant en densits quen vitesses. Reprogrammables indfiniment, ils sont devenus reconfigurables rapidement (200 ns par cellule), en totalit ou partiellement. Les FPGAs antifusibles, utilisant une architecture cellulaire granularit fine. Ces circuits tendent remplacer une bonne partie des ASICs prdiffuss. Programmables une fois, ils prsentent lavantage dune trs grande routabilit, do une bonne occupation de la surface du circuit. Leur configuration est absolument immuable et disponible sans aucun dlai aprs la mise sous tension ; cest un avantage parfois incontournable.
17

Les pionniers en la matire furent les socits XILINX pour les technologies SRAM et LATTICE pour les technologies FLASH.

Jacquesweber

cirprogiut.DOC

15/04/00

Les grandes familles

15

3.1

Critres de performances

Outre la technologie de programmation, capacit et vitesse sont les matres mots pour comparer deux circuits. Mais quelle capacit, et quelle vitesse ? Puissance de calcul Les premiers chiffres accessibles concernent les nombres doprateurs utilisables. Nombre de portes quivalentes Le nombre de portes est sans doute largument le plus utilis dans les effets dannonce. En 1997 la barrire des 100000 portes est largement franchie. Plus dlicate est lestimation du nombre de portes qui seront inutilises dans une application, donc le nombre rellement utile de portes. 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 prvisible, indpendamment de la fonction programme ; les limites des seconds dpendent de la fonction, du placement et du routage. Une difficult de jeunesse des FPGAs a t la non reproductibilit des performances dynamiques en cas de modification, mme mineure, du contenu dun circuit. Les logiciels doptimisation et les progrs des architectures internes ont pratiquement supprim ce dfaut ; mais il reste que seule une analyse et une

Jacquesweber

cirprogiut.DOC

15/04/00

16

Les circuits programmables

simulation post synthse, qui prend en compte les paramtres dynamiques des cellules, permet rellement de prvoir les limites de fonctionnement dun circuit. Modle gnral de dtermination de fmax Le modle gnral de dtermination de la frquence maximum dun oprateur squentiel prend en compte les retards dans les circuits et les rgles concernant les instants de changement des entres vis vis des fronts actifs de lhorloge. La figure 15 dfinit les temps les plus importants : tPi pour des temps de propagation et tSU pour le temps de prpositionnement dune bascule.

Horloge Entres synchrones


p tP1 tP1 tSU n tP3

tPe p Entres asynchrones

tP2 sorties

Registre de synchronisation (p bascules D)

Figure 15 : Modle de calcul de la frquence maximum

La frquence maximum de fonctionnement interne est donne par : Fint = 1/(tP2 + tP1 + tSU) Pour le calcul de la frquence maximum externe, il convient de rajouter, dans la formule prcdente, le temps de propagation des cellules de sortie : Fext = 1/( tP3 + tP2 + tP1 + tSU) Dans un FPGA le routeur analyse le schma gnr et en dduit les diffrents temps de propagation, partir dun modle des cellules lmentaires du circuit. Dans le cas des PLDs simples et de beaucoup (pas tous) des CPLDs, les notices fournissent directement les valeurs des frquences maximum et/ou des temps de retard et de prpositionnement entre les signaux appliqus aux broches du circuit et les fronts de lhorloge. Style de programmation et performances Pour lauteur dun programme VHDL, quelques guides de programmation sont utiles : Rflchir au codage des tats, dans la conception des machines dtats. Les sorties directes du registre dtat sont prfrables ; les codes one hot sont trs efficaces dans les FPGAs. Nous avons voqu ces points prcdemment. 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
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.

Jacquesweber

cirprogiut.DOC

15/04/00

Les grandes familles

17

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. Le compromis vitesse consommation Rgle gnrale des circuits numriques, encore plus vraie dans le monde des technologies MOS que dans celui des technologies bipolaires : pour aller vite il faut de la puissance. Les notices fournissent communment des courbes de consommation pour des lments classiques, comme un compteur synchrone 16 bits, en fonction de la frquence dhorloge. Le passage 3,3 V des tensions dalimentation permet une conomie non ngligeable de puissance, pour les mmes valeurs de courant. Les cellules de certains circuits sont programmables en deux modes : faible consommation ou vitesse maximum (bit turbo). Le gain de vitesse se paye par une consommation nettement plus leve (pratiquement un facteur 2 pour un EPM7032 cadenc 60Mhz, par exemple). De faon gnrale, le courant moyen consomm par un circuit est de la forme : ICC = ICC0 + knLF + nSCSVF/2 O ICC0 reprsente le courant statique consomm au repos, nL le nombre moyen de cellules logiques qui commutent simultanment chaque front dhorloge, nS le nombre moyen de sorties qui commutent chaque front dhorloge, CS la capacit de charge moyenne des sorties, V lexcursion de la tension de sortie, F la frquence dhorloge et k un coefficient de consommation par cellule par hertz. 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. 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.

19

Dans un compteur binaire deux cellules commutent, en moyenne, chaque priode dhorloge. Nous laissons au lecteur le soin de le dmontrer.

Jacquesweber

cirprogiut.DOC

15/04/00

Vous aimerez peut-être aussi