Vous êtes sur la page 1sur 38

Circuit logique programmable

INTRODUCTION L'lectronique moderne se tourne de plus en plus vers le numrique qui prsente de nombreux avantages sur l'analogique : grande insensibilit aux parasites et aux drives diverses, modularit et (re) configurabilit, facilit de stockage de l'information etc... Les circuits numriques ncessitent par contre une architecture plus lourde et leur mode de traitement de l'information met en uvre plus de fonctions lmentaires que l'analogique d'o dcoule des temps de traitement plus long

D'abord ralises avec des circuits :

o SSI (Small Scale Integration)


PLD FPGA Introduction 1

Les fonctions logiques intgres se sont dveloppes avec la mise au point du transistor MOS dont la facilit d'intgration a permis la ralisation de circuits

o MSI (Medium Scale Integration) puis o LSI (Large Scale Integration) puis o VLSI (Very Large Scale Integration).

microprocesseurs et micro-contrleurs
ne rpondant pas toujours aux exigences de rapidit.
Un circuit logique programmable, ou rseau logique programmable, est un circuit intgr logique qui peut tre reprogramm aprs sa fabrication. Il est compos de nombreuses cellules logiques lmentaires librement assemblables. Ce type de composant lectronique est communment dsign par les sigles anglais :

FPGA (field-programmable gate array, rseau de portes programmables in situ ),


2

PLD FPGA Introduction

PLD (programmable logic device, circuit logique programmable), EPLD (erasable programmable logic device, circuit logique programmable et effaable), CPLD (complex programmable logic device, circuit logique programmable complexe), PAL (programmable array logic, rseau logique programmable), PLA (programmable logic array, rseau logique programmable), etc.

Bien que fondamentalement synonymes, ces termes ne sont gnralement pas interchangeables dans le vocabulaire commercial des fabricants : FPGA dsigne plutt des composants technologie RAM, EPLD des composants technologie FLASH, PAL des composants technologie fusible.

Parmi les fabricants de tels circuits programmables, il y a les plus importantes Xilinx, Altera et autres : Abound Logic, Achronix, Actel, , Atmel, Cypress, Lattice Semiconductor, Nallatech, QuickLogic, SiliconBlue, Tabula Inc., Tier Logic.

PLD FPGA Introduction

FPGA de Xilinx (modle Spartan XC3S400) avec 400 000 portes et une frquence de 50 MHz

Remarque Le terme mme de circuit programmable est ambigu, la programmation d'une FPGA ne faisant pas appel aux mmes oprations que celle d'un microprocesseur. Il serait plus juste de parler pour les PLD, CPLD et FPGA de circuits architecture programmable ou encore de circuits rseaux logiques programmables.
PLD FPGA Introduction 4

Procds technologique Les procds technologiques de base pour les composants programmables sont les suivants :
SRAM - (Static Random Access Memory). Programmables volont et in situ. Habituellement en technologie CMOS. EPROM (UVPROM) - (Erasable Programmable Read-Only Memory). Peuvent tre effacs (et reprogramms) par exposition aux rayons ultra-violets. Technologie CMOS, en cours de disparition au profit de l'EEPROM.

Principe de lEPROM

EEPROM - (Electrically Erasable Programmable Read-Only Memory). Peuvent tre effacs et reprogramms volont. Quelques-uns peuvent tre programms in situ (souvent par une connexion JTAG). Technologie CMOS. Flash - (Flash-erase EPROM). Mmes proprits que EEPROM mais avec une densit suprieure (donc avec un cot infrieur pour une complexit donne). Technologie CMOS.
PLD FPGA Introduction 5

Fusible - Programmables une seule fois. Technologie bipolaire.

Anti-fusible - Ne sont programmables qu'une seule fois. Technologie CMOS. Dans le cas des technologies mmoires (SRAM, EEPROM, flash), la mmoire est situe ct du circuit logique proprement dit et chacun de ses bits pilote un interrupteur (en fait, un transistor) de configuration du rseau logique. Dans le cas des technologies (anti-)fusibles, ceux-ci sont directement dans le rseau logique et ont la fois la fonction de mmoire non-volatile et d'interrupteur.

Le tableau ci-aprs tente une classification possible des circuits numrique :

PLD FPGA Introduction

Cellules SRAM transistors MOS classique Paralllement ces circuits, on trouvera les ASIC (Application Specific Integrated Circuits) qui sont des composants o le concepteur intervient au niveau du dessin de la pastille de silicium en fournissant des masques un fondeur. On ne peut plus franchement parler de circuits programmables. Les temps de dveloppement long ne justifient l'utilisation que pour des grandes sries. Les circuits pr-diffuss peuvent tre dvelopps aussi rapidement qu'une FPGA.
PLD FPGA Introduction 7

Le temps de fabrication est plus long (3 semaines pour le MD100) pour un temps de dveloppement de 8 semaines (selon le circuit et sans la fabrication). Ils sont surtout utiliss pour la faible consommation (quelques uA voire mme nA) et pour les circuits analogiques/numriques (oscillateurs, sources de courants, comparateurs, etc...).

Comparaison entre les diffrents types de circuits logiques


PLD FPGA Introduction 8

Classification des circuits logiques programmables


PLD FPGA Introduction 9

NOTATIONS

PLD FPGA Introduction

10

Sommes de produits, produits (Programmable Logic Array)

de

somme

et

matrice

PLA

N'importe quelle fonction peut tre code par une somme de produit, par un produit de somme ou un mlange des deux. On peut immdiatement en dduire une structure de circuits, appel matrice PLA (Programmable Logic Array). La figure suivante reprsente une matrice PLA 4 entres et 4 sorties :

PLD FPGA Introduction

11

Chacune des 4 entres et son complmentaire arrive sur une des 16 portes ET 2x4=8 entres. Afin de simplifier la reprsentation, les 8 lignes ont t reprsentes par une seule, chaque croix reprsentant une connexion programmable (un fusible par exemple). La figure suivante propose un principe de ralisation des fonctions de la matrice ET; la mise au niveau logique 0 (NL0) d'une des entres IX impose un NL0 en sortie :

et de la matrice OU, sur laquelle une entre au NL1 impose un NL1 en sortie :

Ce type de structure est utilis dans certains circuits ASIC (Application Specific Integrated Circuit) et demande une densit d'intgration importante : en effet pour n variables en entres, il faut 2n fonctions ET 2n entres et au moins un OU 2n entres (il y a en effet 2n combinaisons possibles, chaque combinaison dpendant de l'entre et de son complmentaire).
PLD FPGA Introduction 12

La plupart des applications n'exigent pas une telle complexit et on peut se contenter d'une matrice ET programmable et d'une matrice OU fige. De mme, il est peu probable d'utiliser tous les termes produits et on peut alors limiter le nombre d'entres de la fonction OU. C'est le principe utilis par les circuits programmable, appels au dbut PAL (Programmable Array Logic), mais plus communment dsign aujourd'hui sous le terme PLD (Programmable Logic Device). Les technologies

Premier critre de choix d'un circuit programmable, la technologie utilise pour matrialiser les interconnexions dtermine les aspects lectriques de la programmation : maintien (ou non) de la fonction programme en l'absence d'alimentation, possibilit (ou non) de modifier la fonction programme, ncessite (ou non) d'utiliser un appareil spcial (un programmateur).
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.
PLD FPGA Introduction 13

PLD lmentaire fusibles MOS a grille flottante

Les transistors MOS sont des interrupteurs (quand on les utilise en tout ou rien, le
rgime source de courant control & relve du monde des fonctions analogiques),

commandos par une charge lectrique stocke sur les lectrodes de grille. Si, en fonctionnement normal, cette grille est isole, elle conserve sa charge ventuelle. Il reste au fondeur de trouver un moyen de modifier cette charge, pour programmer ltat du transistor. Le dpt d'une charge lectrique sur la grille isole d'un transistor fait appel un phnomne connu sous le nom d'effet tunnel :
PLD FPGA Introduction 14

Un isolant trs mince (une cinquantaine d'amstrms, 1 A = 10' m) soumis a 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 d'effacer une mmoire.

PLD simple MOS Cest la

structure du PLD lmentaire prcdent, dans lequel les fusibles sont remplaces par des transistors grille isole (technologie FLASH).
15

PLD FPGA Introduction

Les transistors disposent de deux grilles, dont l'une 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 d'alimentation, le transistor est toujours bloqu (interrupteur ouvert). Une variante (plus ancienne) de cette structure consiste mettre deux transistors en srie, un grille isole, l'autre 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 d'obtenir des circuits fiables, programmables sous une dizaine de Volts, reprogrammables a 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 l'utilisateur, le circuit devient alors programmable in situ, c'est-a-dire sans appareillage accessoire. Dans ces circuits, un automate auxiliaire gore les algorithmes de programmation et le dialogue avec le systme de dveloppement, via une liaison srie.

PLD FPGA Introduction

16

Mmoires statiques (SRAM) Dans les circuits prcdents, la programmation de l'tat des interrupteurs, conserve en l'absence de tension d'alimentation, fait appel un mode de fonctionnement lectrique particulier. Dans les technologies mmoire statique, ltat de chaque interrupteur est command par une cellule mmoire classique 4 transistors (plus 1 transistor de programmation), dont le schma de principe est celui de la figure suivante.

Cellule SRAM

La modification de la configuration d'un circuit devient alors une opration logique quasi ordinaire, qui ne ncessite pas d'opration lectrique spciale. Ces circuits permettent des reconfigurations, partielles ou totales, en nombre illimite. Il est mme envisageable de crer des fonctions dont certains paramtres sont modifiables en cours de fonctionnement, comme des filtres adaptatifs par exemple.

PLD FPGA Introduction

17

Le prix a payer pour cette souplesse est que les cellules SRAM doivent titre recharges a chaque mise sous tension et que chaque interrupteur occupe plusieurs transistors : l'interrupteur lui-mme et les transistors de la cellule mmoire. Anti-fusibles L'inverse d'un fusible est un anti fusible. Le principe est, a l'chelle microscopique, celui de la soudure lectrique par points. Un point d'interconnexion est ralis au croisement de 2 pistes conductrices (mtal ou semi-conducteur selon les procds de fabrication), spares par un isolant de faible paisseur. Une surtension applique entre les 2 pistes provoque un pet cage dfinitif du dilectrique, ce qui tablit la connexion. Les points d'interconnexions ont un diamtre de l'ordre de la largeur d'une piste, c'est dire de l'ordre du micron; il est donc possible de prvoir un trs grand nombre d'interconnexions programmables. La rsistance du contact cre est trs faible, de l'ordre d'une cinquantaine d'Ohms (10 fois moins que celle d'un transistor MOS), d'ou des retards lies aux interconnexions trs faibles galement.

PLD FPGA Introduction

18

Les circuits anti fusibles partagent, avec ceux SRAM, le sommet de la gamme des circuits programmables en vitesse et en densit d'intgration. Il est clair que ces circuits ne sont programmables qu'une fois.

PLD FPGA Introduction

19

PLD FPGA Introduction

20

Les outils de dveloppement des CPLD et FPGA Ces outils vont permettre au concepteur de programmer le circuit partir de la description de la fonction raliser. Cette description peut tre textuelle (VHDL, Verilog) ou graphique (symboles de fonction, graphe d'tat, chronogrammes).
Description textuelle du comportement du circuit Outil permettant la traduction de la description VHDL en logique : le SYNTHETISEUR Le synthtiseur nous fournit une liste d'interconnexion de primitives. Celles-ci seront dfinies pour la technologie choisie. Le placeur-routeur permet de raliser le placement routage de la liste l'interconnexion pour une technologie donne. Cet outil est fourni par le fabricant des circuits utiliss. Le programmateur permet de programmer le circuit, FPGA ou CPLD, avec le fichier de programmation cr par l'outil prcdent. Le fabricant propose un programmateur, mais il existe des solutions gnrales.

PLD FPGA Introduction

21

Exercice
La table de vrit suivante dcrit un circuit combinatoire quatre entres (A, B, C, D) et trois sorties (X, Y, Z). En utilisant les tables de Karnaugh donnes, exprimer les sorties X, Y et Z sous la forme dune somme de produits minimale. Implmentez les quations avec le PAL ci-dessous. Montrez les connexions ncessaires sur le diagramme. Le tiret indique que la valeur peut tre 1 ou 0.

PLD FPGA Introduction

22

PLD FPGA Introduction

23

PLD FPGA Introduction

24

Electronic Design Automation

Cycle de prototypage/dveloppement dun FPGA

PLD FPGA Introduction

25

PLD FPGA Introduction

26

Outils (Xilinx) Spartan-3 Starter Board

PLD FPGA Introduction

27

10 entres ddies, 2 sorties ddies, 6 entres / sorties, 64 p-termes


S

PLD FPGA Introduction

28

Les FPGAs font leur apparition en 1984 sous la forme des LCA (Logic Cell Array) de Xilinx. Dfinition Un FPGA est constitu d'une matrice de blocs logiques configurables dans un ocan" de ressources d'interconnexion.

Caractristiques des FPGAs


Les blocs logiques configurables contiennent de la logique squentielle et de la logique combinatoire. 2 Les ressources d'interconnexion sont abondantes et diversifies. 3 Il y a des ressources locales (connections entre blocs adjacents), distribues (connections longues) et globales (e.g. horloge). 4 La complexit d'un bloc (i.e. la granularit) peut varier d'une famille l'autre 5 Les entres / sorties ont souvent des caractristiques programmables, e.g. niveaux logiques, inversion, latch, etc. Les FPGAs s'apparentent plutt aux rseaux de portes semi-ddies (GA) tandis que les CPLDs sont drivs des PALs. 2 La versatilit d'un FPGA et son adquation une application donne dpend de l'architecture interne des cellules (e.g. la granularit) ainsi que de la nature et de la densit des ressources d'interconnexion disponibles.

PLD FPGA Introduction

29

3 Les FPGAs sont particulirement dous en logique squentielles puisqu'ils contiennent normalement beaucoup plus de bascules que les CPLDs. 4 Technologie de programmabilit : SRAM, EEPROM, anti-fusible, etc.
S

Exemple simplifi d'architecture (Xilinx)


L'architecture, retenue par Xilinx, se prsente sous forme de deux couches :
PLD FPGA Introduction 30

une couche appele circuit configurable, une couche rseau mmoire SRAM.

La couche dite 'circuit configurable' est constitue d'une matrice de blocs logiques configurables CLB permettant de raliser des fonctions combinatoires et des fonctions squentielles .

Tout autour de ces blocs logiques configurables, nous trouvons des blocs entres/sorties IOB dont le rle est de grer les entres-sorties ralisant l'interface avec les modules extrieurs (cf. figure).
PLD FPGA Introduction 31

La programmation du circuit FPGA appel aussi LCA (logic cells arrays) consistera par le biais de l'application d'un potentiel adquat sur la grille de certains transistors effet de champ interconnecter les lments des CLB et des IOB afin de raliser les fonctions souhaites et d'assurer la propagation des signaux. Ces potentiels sont tout simplement mmoriss dans le rseau mmoire SRAM.

PLD FPGA Introduction

32

Architecture interne d'un FPGA


PLD FPGA Introduction 33

PLD FPGA Introduction

34

Programmables in situ (ISP) 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 1 million de portes quivalentes, il est possible de programmer (et de modifier) l'ensemble d'une carte, sans dmontage, partir d'un port parallle de PC. Les technologies FLASH (CPLD) conservent leur configuration en l'absence d'alimentation.

PLD FPGA Introduction

35

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 d'une 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 d'un processeur matre. Ce type de structure autorise la modification rapide des configurations en cours de fonctionnement.
PLD FPGA Introduction 36

Cette possibilit est intressante, par exemple, en traitement de signal.


CPLDs versus FPGAs

PLD FPGA Introduction

37

Conclusion
Avantages des FPGAs

Dlai de conception. Reconfiguration chaud. Prototypage rapide. Dlai de fabrication. Facilit de test.

Inconvnients des FPGAs


Prix unitaire trop lev pour les trs grandes sries. Performance lectriques infrieures aux puces spcialises (notamment en frquence). Faible taux d'utilisation du circuit.

PLD FPGA Introduction

38