Introduction Circuits Logiques Programmables _presentation 2010

38
PLD FPGA Introduction 1 Circuit logique programmable INTRODUCTION L'électronique moderne se tourne de plus en plus vers le numérique qui présente de nombreux avantages sur l'analogique : grande insensibilité aux parasites et aux dérives diverses, modularité et (re) configurabilité, facilité de stockage de l'information etc... Les circuits numériques nécessitent par contre une architecture plus lourde et leur mode de traitement de l'information met en œuvre plus de fonctions élémentaires que l'analogique d'où découle des temps de traitement plus long D'abord réalisées avec des circuits : o SSI (Small Scale Integration)

Transcript of Introduction Circuits Logiques Programmables _presentation 2010

PLD FPGA Introduction 1

Circuit logique programmableINTRODUCTION

L'électronique moderne se tourne de plus en plus vers le numérique qui présentede nombreux avantages sur l'analogique :

grande insensibilité aux parasites et aux dérives diverses, modularité et (re) configurabilité, facilité de stockage de l'information etc...

Les circuits numériques nécessitent par contre une architecture plus lourde et leurmode de traitement de l'information met en œuvre plus de fonctions élémentairesque l'analogique d'où découle des temps de traitement plus long

D'abord réalisées avec des circuits :

o SSI (Small Scale Integration)

PLD FPGA Introduction

Les fonctions logiques intégrées se sont développées avec la mise au point du transistor MOS dont

la facilité d'intégration a permis la réalisation de circuits

oMSI (Medium Scale Integration) puis

oLSI (Large Scale Integration) puis

oVLSI (Very Large Scale Integration).

ne répondant pasde

Un circuit logique programmable, ou rés

logique qui peut être reprogrammé après sa

Il est composé de nombreuses cellules logi

Ce type de composant électronique est com

FPGA (field-programmable gate array,

2

toujours aux exigencesrapidité.

eau logique programmable, est un circuit intégré

fabrication.

ques élémentaires librement assemblables.

munément désigné par les sigles anglais :

réseau de portes programmables in situ ),

microprocesseurs et micro-contrôleurs

PLD FPGA Introduction 3

PLD (programmable logic device, circuit logique programmable),

EPLD (erasable programmable logic device, circuit logique programmable et effaçable),

CPLD (complex programmable logic device, circuit logique programmable complexe),

PAL (programmable array logic, réseau logique programmable),

PLA (programmable logic array, réseau logique programmable),

etc.

Bien que fondamentalement synonymes, ces termes ne sont généralement pas interchangeables dans

le vocabulaire commercial des fabricants : FPGA désigne plutôt 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 4

FPGA de Xilinx (modèle Spartan XC3S400) avec 400 000 portes et une fréquence de 50 MHz

Remarque

Le terme même de circuit programmable est ambigu, la programmation d'une FPGA nefaisant pas appel aux mêmes opérations que celle d'un microprocesseur. Il serait plus justede parler pour les PLD, CPLD et FPGA de circuits à architecture programmable ou encorede circuits à réseaux logiques programmables.

PLD FPGA Introduction 5

Procédés technologique

Les procédés 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 effacés (et

reprogrammés) par exposition aux rayons ultra-violets. Technologie CMOS, en cours de disparition au

profit de l'EEPROM.

Principe de l’EPROM

EEPROM - (Electrically Erasable Programmable Read-Only Memory). Peuvent être effacés et

reprogrammés à volonté. Quelques-uns peuvent être programmés in situ (souvent par une connexion

JTAG). Technologie CMOS.

Flash - (Flash-erase EPROM). Mêmes propriétés que EEPROM mais avec une densité supérieure (donc

avec un coût inférieur pour une complexité donnée). Technologie CMOS.

PLD FPGA Introduction 6

Fusible - Programmables une seule fois. Technologie bipolaire.

Anti-fusible - Ne sont programmables qu'une seule fois. Technologie CMOS.

Dans le cas des technologies à mémoires (SRAM, EEPROM, flash), la mémoire est située à côté ducircuit logique proprement dit et chacun de ses bits pilote un interrupteur (en fait, un transistor) deconfiguration du réseau logique. Dans le cas des technologies à (anti-)fusibles, ceux-ci sontdirectement dans le réseau logique et ont à la fois la fonction de mémoire non-volatile etd'interrupteur.

Le tableau ci-après tente une classification possible des circuits numérique :

PLD FPGA Introduction 7

Cellules SRAM à transistors MOS classique

Parallèlement à ces circuits, on trouvera les ASIC (Application Specific IntegratedCircuits) qui sont des composants où le concepteur intervient au niveau du dessin de lapastille de silicium en fournissant des masques à un fondeur.

On ne peut plus franchement parler de circuits programmables.

Les temps de développement long ne justifient l'utilisation que pour des grandesséries.

Les circuits pré-diffusés peuvent être développés aussi rapidement qu'une FPGA.

PLD FPGA Introduction 8

Le temps de fabrication est plus long (3 semaines pour le MD100) pour un temps dedéveloppement de 8 semaines (selon le circuit et sans la fabrication).

Ils sont surtout utilisés pour la faible consommation (quelques uA voire même nA) etpour les circuits analogiques/numériques (oscillateurs, sources de courants,comparateurs, etc...).

Comparaison entre les différents types de circuits logiques

PLD FPGA Introduction 9

Classification des circuits logiques programmables

PLD FPGA Introduction 10

NOTATIONS

PLD FPGA Introduction 11

Sommes de produits, produits de somme et matrice PLA(Programmable Logic Array)

N'importe quelle fonction peut être codée par une somme de produit, par unproduit de somme ou un mélange des deux. On peut immédiatement en déduireune structure de circuits, appelé matrice PLA (Programmable Logic Array). Lafigure suivante représente une matrice PLA à 4 entrées et 4 sorties :

PLD FPGA Introduction 12

Chacune des 4 entrées et son complémentaire arrive sur une des 16 portes ET à 2x4=8entrées. Afin de simplifier la représentation, les 8 lignes ont été représentées par une seule,chaque croix représentant une connexion programmable (un fusible par exemple). Lafigure suivante propose un principe de réalisation des fonctions de la matrice ET; la miseau niveau logique 0 (NL0) d'une des entrées IX impose un NL0 en sortie :

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

Ce type de structure est utilisé dans certains circuits ASIC (Application Specific IntegratedCircuit) et demande une densité d'intégration importante : en effet pour n variables enentrées, il faut 2n fonctions ET à 2n entrées et au moins un OU à 2n entrées (il y a en effet2n combinaisons possibles,chaque combinaison dépendant de l'entrée et de son complémentaire).

PLD FPGA Introduction 13

La plupart des applications n'exigent pas une telle complexité et on peut se contenter d'unematrice ET programmable et d'une matrice OU figée. De même, il est peu probabled'utiliser tous les termes produits et on peut alors limiter le nombre d'entrées de la fonctionOU. C'est le principe utilisé parles circuits programmable, appelés au début PAL (Programmable Array Logic), mais pluscommunément désigné aujourd'hui sous le terme PLD (Programmable Logic Device).

Les technologies

Premier critère de choix d'un circuit programmable, la technologie utilisée pourmatérialiser les interconnexions détermine les aspects électriques de laprogrammation : maintien (ou non) de la fonction programmée en l'absenced'alimentation, possibilité (ou non) de modifier la fonction programmée, nécessite (ounon) d'utiliser un appareil spécial (un programmateur).

Fusibles

Première méthode employée, la connexion par fusibles, est en voie de disparition. Onne la rencontre plus que dans quelques circuits de faible densité, de conceptionancienne.

PLD FPGA Introduction 14

PLD élémentaire à fusibles

MOS a grille flottante

Les transistors MOS sont des interrupteurs (quand on les utilise en tout ou rien, lerégime source de courant control & relève du monde des fonctions analogiques),commandos par une charge électrique stockée sur les électrodes de grille.

Si, en fonctionnement normal, cette grille est isolée, elle conserve sa chargeéventuelle. Il reste au fondeur de trouver un moyen de modifier cette charge,pour programmer l’état du transistor. Le dépôt d'une charge électrique sur lagrille isolée d'un transistor fait appel à un phénomène connu sous le nomd'effet tunnel :

PLD FPGA Introduction 15

Un isolant très mince (une cinquantaine d'amströms, 1 A = 10' m) soumis aune différence de potentiel suffisamment grande (une dizaine de Volts, supérieure

aux 3. 3 ou 5 Volts des alimentations classiques) est parcouru par un courant de faiblevaleur, qui permet de déposer une charge électrique sur une électrodenormalement isolée. Ce phénomène, réversible, permet de programmer etd'effacer une mémoire.

PLD simple à MOS C’est la structure du PLD élémentaire précédent, dans lequel les fusibles sontremplaces par des transistors à grille isolée (technologie FLASH).

PLD FPGA Introduction 16

Les transistors disposent de deux grilles, dont l'une est isolée. Une charge négative (desélectrons) déposée sur cette dernière, modifie la tension de seuil du transistor commandé parla grille non isolée.

Quand cette tension de seuil dépasse la tension d'alimentation, le transistor est toujours bloqué(interrupteur ouvert). Une variante (plus ancienne) de cette structure consiste à mettre deuxtransistors en série, un à grille isolée, l'autre normal.

Le transistor à grille isolée est programmé pour être toujours conducteur ou toujours bloqué, onretrouve exactement la fonction du fusible, la réversibilité en plus.

Le contrôle des dimensions géométriques des transistors permet d'obtenir des circuits fiables,programmables sous une dizaine de Volts, reprogrammables a volonté (plusieurs centaines defois), le tout électriquement.

Les puissances mises en jeu lors de la programmation sont suffisamment faibles pour que lessurtensions nécessaires puissent être générées par les circuits eux-mêmes. 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 ledialogue avec le système de développement, via une liaison série.

PLD FPGA Introduction 17

Mémoires statiques (SRAM)

Dans les circuits précédents, la programmation de l'état des interrupteurs, conservéeen l'absence de tension d'alimentation, fait appel à un mode de fonctionnementélectrique particulier.

Dans les technologies à mémoire statique, l’état de chaque interrupteur est commandépar une cellule mémoire classique à 4 transistors (plus 1 transistor deprogrammation), dont le schéma de principe est celui de la figure suivante.

Cellule SRAM

La modification de la configuration d'un circuit devient alors une opération logiquequasi ordinaire, qui ne nécessite pas d'opération électrique spéciale. Ces circuitspermettent des reconfigurations, partielles ou totales, en nombre illimite. Il est mêmeenvisageable de créer des fonctions dont certains paramètres sont modifiables encours de fonctionnement, comme des filtres adaptatifs par exemple.

PLD FPGA Introduction 18

Le prix a payer pour cette souplesse est que les cellules SRAM doivent titre recharges achaque mise sous tension et que chaque interrupteur occupe plusieurs transistors :l'interrupteur lui-même et les transistors de la cellule mémoire.

Anti-fusibles

L'inverse d'un fusible est un anti fusible. Le principe est, a l'échelle microscopique, celuide la soudure électrique par points. Un point d'interconnexion est réalisé au croisement de2 pistes conductrices (métal ou semi-conducteur selon les procédés de fabrication),séparées par un isolant de faible épaisseur.Une surtension appliquée entre les 2 pistes provoque un pet cage définitif du diélectrique,ce qui établit la connexion.

Les points d'interconnexions ont un diamètre de l'ordre de la largeur d'une piste, c'est àdire de l'ordre du micron; il est donc possible de prévoir un très grand nombred'interconnexions programmables. La résistance du contact crée est très faible, de l'ordred'une cinquantaine d'Ohms (10 fois moins que celle d'un transistor MOS), d'ou desretards lies aux interconnexions très faibles également.

PLD FPGA Introduction 19

Les circuits à anti fusibles partagent, avec ceux à SRAM, le sommet de la gamme descircuits programmables en vitesse et en densité d'intégration. Il est clair que ces circuitsne sont programmables qu'une fois.

PLD FPGA Introduction 20

PLD FPGA Introduction 21

Les outils de développement des CPLD et FPGACes outils vont permettre au concepteur de programmer le circuit à partir de la descriptionde la fonction à réaliser. Cette description peut être textuelle (VHDL, Verilog) ougraphique (symboles de fonction, graphe d'état, chronogrammes).

Description textuelle du comportement du circuit Outilpermettant la traduction de la description VHDL enlogique :

le SYNTHETISEURLe synthétiseur nous fournit une liste d'interconnexion deprimitives. Celles-ci seront définies pour la technologiechoisie.

Le placeur-routeur permet de réaliser le placement routagede la liste l'interconnexion pour une technologie donnée.Cet outil est fourni par le fabricant des circuits utilisés.

Le programmateur permet de programmer le circuit,FPGA ou CPLD, avec le fichier de programmation créépar l'outil précédent. Le fabricant propose unprogrammateur, mais il existe des solutions générales.

PLD FPGA Introduction 22

Exercice

La table de vérité suivante décrit un circuit combinatoire à quatre entrées (A, B, C,D) et trois sorties (X, Y, Z). En utilisant les tables de Karnaugh données, exprimerles sorties X, Y et Z sous la forme d’une somme de produits minimale.Implémentez les équations avec le PAL ci-dessous. Montrez les connexionsnécessaires sur le diagramme.

Le tiret – indique que la valeur peut être 1 ou 0.

PLD FPGA Introduction 23

PLD FPGA Introduction 24

PLD FPGA Introduction 25

Cycle de prototypage/développement d’un FPGA

Electronic Design Automation

PLD FPGA Introduction 26

PLD FPGA Introduction 27

Outils (Xilinx)

• Spartan-3 Starter Board

PLD FPGA Introduction 28

10 entrées dédiées, 2 sorties dédiées, 6 entrées / sorties, 64 p-termesS

PLD FPGA Introduction 29

Les FPGAs font leur apparition en 1984 sous la forme des LCA (Logic Cell Array) de Xilinx.DéfinitionUn FPGA est constitué d'une matrice de blocs logiques configurables dans un océan" de ressourcesd'interconnexion.

Caractéristiques des FPGAs

Les blocs logiques configurables contiennent de la logique séquentielle et de la logiquecombinatoire.

2 Les ressources d'interconnexion sont abondantes et diversifiées. 3 Il y a des ressources locales (connections entre blocs adjacents), distribuées (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 entrées / sorties ont souvent des caractéristiques programmables, e.g. niveaux logiques,

inversion, latch, etc. Les FPGAs s'apparentent plutôt aux réseaux de portes semi-dédiées (GA) tandis que les CPLDs

sont dérivés des PALs. 2 La versatilité d'un FPGA et son adéquation à une application donnée dépend de l'architecture

interne des cellules (e.g. la granularité) ainsi que de la nature et de la densité des ressourcesd'interconnexion disponibles.

PLD FPGA Introduction 30

3 Les FPGAs sont particulièrement doués en logique séquentielles puisqu'ils contiennentnormalement 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 présente sous forme de deux couches :

PLD FPGA Introduction 31

une couche appelée circuit configurable, une couche réseau mémoire SRAM.

La couche dite 'circuit configurable' est constituée d'une matrice de blocs logiques configurablesCLB permettant de réaliser des fonctions combinatoires et des fonctions séquentielles .

Tout autour de ces blocs logiques configurables, nous trouvons des blocs entrées/sortiesIOB dont le rôle est de gérer les entrées-sorties réalisant l'interface avec les modulesextérieurs (cf. figure).

PLD FPGA Introduction 32

La programmation du circuit FPGA appelé aussi LCA (logic cells arrays) consistera par lebiais de l'application d'un potentiel adéquat sur la grille de certains transistors à effet dechamp à interconnecter les éléments des CLB et des IOB afin de réaliser les fonctionssouhaitées et d'assurer la propagation des signaux.

Ces potentiels sont tout simplement mémorisés dans le réseau mémoire SRAM.

PLD FPGA Introduction 33

Architecture interne d'un FPGA

PLD FPGA Introduction 34

PLD FPGA Introduction 35

Programmables in situ (ISP)

Les circuits programmables in situ se développent dans le monde des PLDset CPLDs en technologie FLASH. Du simple 22V10, à des composants deplus de 1 million de portes équivalentes, il est possible de programmer (etde modifier) l'ensemble d'une carte, sans démontage, à partir d'un portparallèle de PC.

Les technologies FLASH (CPLD) conservent leur configuration enl'absence d'alimentation.

PLD FPGA Introduction 36

Reconfigurables dynamiquement, les FPGAs à cellules SRAM offrent despossibilités multiples de chargement de la mémoire de configuration:

Chargement automatique, à chaque mise sous tension, des donnéesstockées dans une mémoire PROM. Les données peuvent êtretransmises en série, en utilisant peu de broches du circuit, ou enparallèle octet par octet, ce qui accélère la phase de configuration maisutilise, temporairement du moins, plus de broches du circuit.

Plusieurs circuits d'une même carte peuvent être configurés encoopération, leurs automates de chargement assurent un passage enmode normal coordonné, ce qui est évidemment souhaitable.

Chargement, en série ou en parallèle, à partir d'un processeur maître. Cetype de structure autorise la modification rapide des configurations encours de fonctionnement.

PLD FPGA Introduction 37

Cette possibilité est intéressante, par exemple, en traitement de signal.

CPLDs versus FPGAs

PLD FPGA Introduction 38

Conclusion

Avantages des FPGAs

Délai de conception. Reconfiguration à chaud. Prototypage rapide. Délai de fabrication. Facilité de test.

Inconvénients des FPGAs

Prix unitaire trop élevé pour les très grandes séries. Performance électriques inférieures aux puces spécialisées (notamment en fréquence). Faible taux d'utilisation du circuit.