FPGA

Post on 15-Apr-2017

214 views 0 download

Transcript of FPGA

Circuits Circuits Logiques Logiques ProgrammablProgrammableses

PLDPLD

PLAN

Circuits numériques Présentation de la logique programmée Classification des PLDs Opérateurs génériques Technologies Les PALs Les C.P.L.D.s Les F.P.G.A.s Développement des CPLDs et FPGAs

Circuits numériques

3

Nous nous intéresserons surtout aux circuits à architecture programmable à faible temps de développement.

Présentation de la logique programmée

Une fonction logique est définie par les interconnexions entre des opérateurs combinatoires et des bascules, et par les équations des opérateurs combinatoires. Ce qui est programmable dans un circuit concerne donc les interconnexions et les opérateurs combinatoires.

4

Donc un circuit programmable est un assemblage d’opérateurs logiques combinatoires et de bascules, présentes physiquement sur le circuit, dans lequel la fonction réalisée n’est pas fixée lors de la fabrication.

Classification des PLDs

PAL

GAL Effaçable Electriquement

PAL Effaçable

LCA

FPGA

PLD

CPLD

6

P.A.L. signifie Programmable Array Logic, c- à-d réseau logique programmable. La programmation de ces circuits s'effectue par destruction de fusibles. Une fois programmés on ne peut plus les effacer.

Classification des PLDs

On distingue deux sous familles:Les P.A.L. combinatoires ou P.A.L. simples. Ils sont constitués de fonctions de logique combinatoire.

Les P.A.L. à registres ou F.P.L.S. (Field Programmable Logic Sequencer) pour séquenceur logique programmable. Ils sont constitués de logique combinatoire et séquentielle (Registre).

P.A.L. effaçables: E.P.L.D. Les E.P.L.D. (Erasable Programmable Logic Device), c'est à

dire circuit logique programmable et effaçable par UV ou électriquement.

7

Les G.A.L.(Generic Array Logic) ou encore réseau logique générique. Le nom de G.A.L. a été déposé par LATTICE SEMICONDUCTOR. Leur fonctionnement est identique aux EPLD, ils sont programmables et effaçables électriquement.

Classification des PLDs

Les C.P.L.D.(Complex Programmable Logic Device). Ces circuits sont composés de plusieurs P.A.L.s élémentaires reliés entre eux par une zone d’interconnexion.

Grâce à cette architecture, on peut atteindre des vitesses de fonctionnement élevées (plusieurs centaine de Mhz).

8

Les L.C.A. & F.P.G.A. à anti-fusible. Les L.C.A. (Logic Cell Array) ou encore réseau de cellules logiques.

Ces circuits sont composés de blocs logiques élémentaires de 2000 à 10000 portes que l'utilisateur peut interconnecter.

Classification des PLDs

Les F.P.G.A. (Field Programmable Gate Array) à anti fusibles sont identiques aux L.C.A sauf qu'ils permettent une plus grande intégration de portes et ils ne sont pas effaçables électriquement. Le nom anti-fusible vient de la programmation des connexions qui s'effectue par fermeture de circuits, comparé aux fusibles où l'on ouvre les circuits.

Opérateurs génériques

1) Réseaux Logique Programmables:N'importe quelle fonction peut être codée par une somme de

produit, par un produit de somme ou un mélange des deux. On peut immédiatement en déduire une structure de circuits, appelé matrice PLA (Programmable Logic Array).

La figure suivante représente une matrice PLA à 4 entrées et 4 sorties :

9

10

Le principe de réalisation des fonctions de la matrice ET et de OU est le suivant :

11

Chaque croix représentant une connexion programmable (un fusible par exemple).

Opérateurs génériques

a) PAL simple :

La programmation du circuit consiste à supprimer certaines des connexions marquées d’une croix.Le schéma ci-dessus permet de réaliser n’importe quelle fonction booléenne s(e1,e2), de deux variables binaires e1 et e2, pourvu qu’elle ne dépasse pas deux termes.

Structure simplifiée d’un PAL(2 entrées et 1 sortie)

Opérateurs génériques

b) PAL réalisant un XOR: Représentation de la structure interne de l’opérateur XOR d’un P.A.L.

Les croix représentent les fusibles intacts.

Opérateurs génériques

Le plus simple des PLDs, un 16L8 par exemple, utilise des opérateurs ET à 32 entrées et des opérateurs OU à 8 entrées. Un schéma tel que celui des figures précédentes deviendrait illisible.

Pour éviter cet écueil, les notices de circuits utilisent des symboles simplifiés, pour représenter les réseaux logiques programmables:

14

symbole d'un PLA 2×4

Opérateurs génériques

Le schéma de l’opérateur ou exclusif devient:

15

Opérateurs génériques

2) Multiplexeurs:

16

Le multiplexeur permet également de coder une fonction combinatoire,comme le montre la figure suivante :

Multiplexeur élémentaire

Opérateurs génériques

On peut décrire la fonction XOR sous forme algorithmique :

17

ou exclusif réalisé par un multiplexeur

Donc un multiplexeur est un opérateur générique.Exemple: Un multiplexeur à n entrées de sélection, soit 2n entrées de données, permet de réaliser n’importe quelle fonction combinatoire de n + 1 entrées.

Opérateurs génériques

3) Porte XOR:La représentation des fonctions combinatoires : additions et

soustractions, contrôles d’erreurs, cryptages, etc se prêtent mal en somme de produits, car elles ne conduisent à aucune minimisation de leurs équations.

De nombreuses familles de circuits programmables disposent, en plus des PLAs, d’opérateurs ou exclusifs pour faciliter la réalisation de ces fonctions arithmétiques.

18

Opérateurs génériques

4) Bascules:Les circuits programmables actuels offrent tous la possibilité de créer

des fonctions séquentielles, synchrones dans leur immense majorité.

les trois types fondamentaux de bascules:

19

Les optimiseurs déterminent automatiquement le type de bascule le mieux adapté à l’application.

Opérateurs génériques

Technologies

Le premier choix d’un circuit programmable dépond de la technologie utilisée pour matérialiser les interconnexions: maintien (ou non) de la fonction programmée en l’absence d’alimentation, possibilité (ou non) de modifier la fonction programmée, nécessité (ou non) d’utiliser un programmateur.

20

1) Fusibles:On ne la rencontre plus que dans quelques circuits de faible densité,

de conception ancienne.Lors de la programmation le circuit est placé dans un mode, dans

lequel des impulsions de courant sont aiguillées successivement vers les fusibles à détruire.

21

PLD élémentaire à fusibles

Technologies

Pour programmer un circuit, il faut transférer dans le programmateur une table des fusibles qui indique par un chiffre binaire l’état de chaque fusible. Cette table est généralement transférée entre le système de CAO et le programmateur sous forme d’un fichier au format normalisé : le format JEDEC.

L’exemple suivant présente l’implémentation d’un compteur binaire 10 bits dans un circuit de type 22V10 :

22

Technologies

23

Inconvénients:La programmation détruit plus de fusibles qu’elle n’en

conserve. Cela se traduit par une mauvaise utilisation du silicium, un temps de programmation important (quelques secondes) et des contraintes thermiques sévères imposées au circuit lors de l’opération.

Cette technologie n’est donc pas généralisable à des circuits dépassant quelques centaines de portes équivalentes.

24

Technologies

2) MOS à grille flottante:Les fusibles sont remplacés par des transistors à grille isolée (technologie

FLASH).Le transistor MOS à grille flottante a permis de rendre le composant bloqué ou

passant sans application permanente d'une tension de commande. Le principe consiste à piéger ou non (à l'aide d'une tension supérieure à la tension d'alimentation) des électrons dans la grille.

Les Cellules à transistor MOS à grille flottante sont des cellules reprogrammables.

25

Technologies

3) Antifusibles: L’inverse d’un fusible Un point d’interconnexion est réalisé au croisement de deux

pistes conductrices, séparées par un isolant de faible épaisseur.

Une surtension appliquée entre les deux pistes provoque un perçage 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 nombre d’interconnexions programmables. La résistance du contact créé est très faible, de l’ordre d’une cinquantaine d’ohms (dix fois moins que celle d’un transistor MOS), d’où des retards liés aux interconnexions très faibles également.

Ces circuits ne sont programmables qu’une fois.

26

Technologies

Les cellules de connexion sont aujourd'hui réalisées en technologie MOS à grille flottante. La structure de base comprend un circuit PLA dont seule la matrice ET est programmable.

27

Architectures utilisées

Structure d’une PLD

La partie nommée OLMC (Output Logic MacroCell) sur la figure peut être:CombinatoireSéquentielleVersatile

Combinatoire : une simple connexion relie alors la sortie du OU à l'entrée du buffer de sortie, dont la sortie est réinjectée sur le réseau programmable.

Les PALs

Séquentielle: le bloc OLMC étant alors une simple bascule D ; Il existe trois types: R (Register):

Les PALs

Séquentielle: X (Register Or Exclusif):

Les PALs

Séquentielle: RA (Register Asynchron):

Les PALs

32

Les PALsLes quatre configurations possible:

Versatile: il est possible par programmation de choisir entre les deux configurations précédentes.

Les PALs

f1 f0 Configuration des sorties

0 0 Combinatoire, actif bas0 1 Combinatoire, actif

haut1 0 Registre, actif bas1 1 Registre, actif haut

Macrocellule configurable

Désignation: Elle est de la forme : PAL EE T SS où EE représente le nombre d'entrées, SS le nombre de sorties et T le type du PAL

exemple : PAL 22V10.Pour les dernières générations, on trouvera plutôt la référence

de typeGAL EE T SS, (GAL pour Generic Array Logic) pour désigner un

circuit à transistor MOS à grille flottante, donc reprogrammable électriquement.

34

Les PALs

Schéma interne d’un PAL 22V10 de AMD:

Les PALs

Structure générale

Symbolisation normalisée

Les PALsStructure et symbole:

Les CPLDs (Complex Programmable Logic Device)

Structure générale d’un CPLD:Ces circuits ont une capacité en nombre de portes et en possibilités de configuration très supérieure à celle des PALs. Leurs architectures sont basées sur celles des PALS. Un CPLD c’est l’équivalent de plusieurs PALs mis dans le même circuit associé à une zone d’interconnexion. Le nombres de portes peut varier entre 100 et 100 000 portes logiques et entre 16 et 1000 bascules voir plus.

38

Les FPGAs sont assimilables à des ASIC (Application Specific Integrated Circuit) programmables par l’utilisateur. La puissance de ces circuits est telle qu’ils peuvent être composés de plusieurs milliers voire millions de portes logiques et de bascules structurés sous forme de matrices. Les dernières générations de FPGA intègrent même de la mémoire RAM. Les deux plus grands constructeurs de FPGA sont XILINX et ALTERA.

Les FPGAs (Fields Programmable Gate Array)

Structure d’un circuit FPGA :

39

Structure d’un circuit FPGA

Les FPGAs

La structure du FPGA présentée est composée :

De cellules d’E/S modifiables qui servent d’interfaces entre les broches du circuit et le cœur du FPGA pour adapter les signaux suivants :

Alimentation Signaux d’horloge Signaux de configuration du FPGA Signaux de test

40

Les FPGAs

De blocs logiques: contenant les fonctions logiques combinatoires et séquentielles.

41

Les FPGAs

Exemple de blocs logiques de différents fabricants:

De réseaux d’interconnexions. Ces réseaux relient entre eux les blocs logiques et les blocs d’E/S.

42

Les FPGAs

Microprocesseur:La présence d’un processeur est indispensable pour ordonnancer les commandes reçues par le FPGA.

Habituellement, ce processeur se trouve à l’extérieur du FPGA, mais des constructeurs ont intégré ces systèmes directement dans le FPGA. Il s’agit de processeur « soft-core » on parle aussi de système sur puce programmable (SOPC).

Il communique avec le FPGA grâce au langage de description matérielle VHDL. Ce processeur est donc reconfigurable pouvant ainsi d’adapter aux contraintes de chaque utilisation.

43

Les FPGAs

Avantages des FPGAs

Un circuit reprogrammable : modifier le programme générique de base afin de le rendre spécifique au circuit utilisé.

Un investissement rentable dans la durée : une réutilisation à destination d’autres projets.

Une reprogrammation quasi-instantanée du circuit. Rapide à implémenter un programme valider. A titre de comparaison, la fabrication d’un circuit ASIC peut prendre plusieurs semaines.

44

45

Ils sont composés en général de deux outils: Le système de développement. Le programmateur.

Le système de développement:

Ces systèmes produisent une table représentant les fusibles à détruire en fonction des équations logiques, diagramme d'états et tables de vérités écrit dans le langage propre au système, c'est le rôle du compilateur ou synthétiseur.

Les outils de développements

46

La description du fonctionnement des circuits peut se faire de plusieurs façons, soit :

Par un schéma à base de fonctions logique élémentaires (Portes, bascules, compteurs, registres à décalages).En utilisant un langage de description matériel HDL (Hardware

Description Language).

Par l’utilisation de graphes d’états(FSM : Flow States Machines)

Les outils de développements

Développement des CPLDs et FPGAs