FPGA

47
Circuits Circuits Logiques Logiques Programmables Programmables PLD PLD

Transcript of FPGA

Page 1: FPGA

Circuits Circuits Logiques Logiques ProgrammablProgrammableses

PLDPLD

Page 2: FPGA

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

Page 3: FPGA

Circuits numériques

3

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

Page 4: FPGA

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.

Page 5: FPGA

Classification des PLDs

PAL

GAL Effaçable Electriquement

PAL Effaçable

LCA

FPGA

PLD

CPLD

Page 6: FPGA

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.

Page 7: FPGA

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

Page 8: FPGA

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.

Page 9: FPGA

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

Page 10: FPGA

10

Page 11: FPGA

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

Page 12: FPGA

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

Page 13: FPGA

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

Page 14: FPGA

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

Page 15: FPGA

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

15

Opérateurs génériques

Page 16: FPGA

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

Page 17: FPGA

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

Page 18: FPGA

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

Page 19: FPGA

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

Page 20: FPGA

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

Page 21: FPGA

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

Page 22: FPGA

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

Page 23: FPGA

23

Page 24: FPGA

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

Page 25: FPGA

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

Page 26: FPGA

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

Page 27: FPGA

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

Page 28: FPGA

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

Page 29: FPGA

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

Les PALs

Page 30: FPGA

Séquentielle: X (Register Or Exclusif):

Les PALs

Page 31: FPGA

Séquentielle: RA (Register Asynchron):

Les PALs

Page 32: FPGA

32

Les PALsLes quatre configurations possible:

Page 33: FPGA

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

Page 34: FPGA

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

Page 35: FPGA

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

Les PALs

Page 36: FPGA

Structure générale

Symbolisation normalisée

Les PALsStructure et symbole:

Page 37: FPGA

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.

Page 38: FPGA

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)

Page 39: FPGA

Structure d’un circuit FPGA :

39

Structure d’un circuit FPGA

Les FPGAs

Page 40: FPGA

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

Page 41: FPGA

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

41

Les FPGAs

Exemple de blocs logiques de différents fabricants:

Page 42: FPGA

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

42

Les FPGAs

Page 43: FPGA

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

Page 44: FPGA

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

Page 45: FPGA

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

Page 46: FPGA

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

Page 47: FPGA

Développement des CPLDs et FPGAs