Vous êtes sur la page 1sur 26

05/10/2023

III.2. Présentation de la Logique Programmée.

a. Introduction

l’utilisation d’un nombre important


Architecture des circuits quelques années de circuits intégrés logiques.

programmables la réalisation d’un montage en


électronique numérique

un circuit imprimé de taille


un prix de revient élevé importante.
une mise en oeuvre complexe

05/10/2023 Pr. Z. ALAOUI ISMAILI 1 05/10/2023 Pr. Z. ALAOUI ISMAILI 2

But Développement
Diminuer les coûts Maintenance
Actuellement de fabrication
la logique programmée (µP, Mémoires, µC, ...). +
Le développement
les Objets Techniques utilisent de besoin des mémoires
(O.T.) plus en plus utilisées en
s'interfacer entre elles informatique

ces interfaces des fonctions à base


naissance

de fonctions logiques élémentaires, compteurs, registres , .... Fabricants de


circuits intégrés

Le nombre de circuits
nécessaires pour remplir ces fonctions peut
Circuits Logique Programmable
devenir très vite important.
P.L.D
(Programmable Logic Device Device).

05/10/2023 Pr. Z. ALAOUI ISMAILI 3 05/10/2023 Pr. Z. ALAOUI ISMAILI 4

1
05/10/2023

Ces circuits sont capables pour un O.T. de réaliser plusieurs fonctions logiques III.3. Structure de base d’un PLD
dans un seul circuit.
Si ces fonctions étaient réalisées à base circuits de logique classique, il en faudrait La plupart des PLDs
plusieurs circuits.

suivent la structure suivante :


Un ensemble
Ce type de produit peut intégrer dans un seul circuit plusieurs fonctions logiques d’opérateurs « ET » sur Une éventuelle structure de sortie
programmables par l’utilisateur. lesquels viennent se (Portes inverseuses, logique 3
Sa mise en oeuvre se fait très facilement à l’aide d’un programmateur, d’un connecter les variables Un ensemble d’opérateurs « OU » états, registres...).
micro-ordinateur et d’un logiciel adapté. d’entrée et leurs sur lesquels les sorties des
compléments. opérateurs « ET » sont connectées.

« grillés » lors de la
Un autre avantage, l'évolution des fonctions d'un l'O.T. s'effectue par forment chacun ce qu’on appelle
programmation
programmation comparée à une solution classique où il faut refaire un circuit
imprimé si on veut modifier le fonctionnement. matrice assurées par
des fusibles

Les interconnexions de ces matrices doivent N.B. Lorsqu’un PLD est vierge
être programmables toutes les connexions sont assurées.
05/10/2023 Pr. Z. ALAOUI ISMAILI 5 05/10/2023 Pr. Z. ALAOUI ISMAILI 6

Un exemple de ce type de structure est présenté par la figure 2.

05/10/2023 Pr. Z. ALAOUI ISMAILI 7 05/10/2023 Pr. Z. ALAOUI ISMAILI 8

2
05/10/2023

Si on veut obtenir les fonctions

on « grillera » des fusibles de façon à obtenir le schéma suivant :

La figure 3 représente la structure interne d’un PLD ayant ses fusibles intacts

Les équations logiques de Q0 et Q1 sont :

05/10/2023 Pr. Z. ALAOUI ISMAILI 9 05/10/2023 Pr. Z. ALAOUI ISMAILI 10

LES DIFFERENTES FAMILLES DE PLD Dans la suite de ce document nous nous intéresserons seulement aux PLDs de type « PALs »
et
Plusieurs familles différenciées par leur structure « GALs ».
de PLD interne P.A.L Les ingénieurs
de chez M.M.I qui ont eu l'idée d'utiliser la
Le tableau suivant présente certaines de ces familles technologie des fusibles

L'invention des P.A.L. date


d'une vingtaine d'années Le constructeur AMD a développé ce type de
circuit il y a près de 20 ans.
Ils possèdent des matrices
« ET » programmables et des matrices « OU »
REMARQUES : fixes.
· Certaines de ces familles possèdent en plus des matrices « ET » et « OU », de la
logique séquentielle (Bascules « D », « JK »...) placée après les entrées ou avant les La fusion des fusibles est obtenue en appliquant
sorties du PLD. à leurs bornes une tension de 11,5 V pendant 10 à 50 µS (leur tension de
· Les « PROMs » sont des circuits utilisés en informatique pour mémoriser de façon fonctionnement est environ
définitive des données : ce sont des « Mémoires mortes ». Il existe des versions de 5V).
effaçables comme lesUVPROM (aux U-V) et les EEPROM (électriquement).

05/10/2023 Pr. Z. ALAOUI ISMAILI 11 05/10/2023 Pr. Z. ALAOUI ISMAILI 12

3
05/10/2023

La programmation s’effectue par destruction de fusible (un fusible détruit Certaines broches de ces circuits peuvent être utilisées aussi bien en entrée qu’en sortie
équivaut à un circuit ouvert). grâce à un système de logique 3 états.

La commande de cette dernière est


configurée au moment de la
programmation

I1 et I2 représentent des entrées (I:Input).


O représente une sortie (O:Output).
Réaliser de nombreuses fonctions logiques

A partir de cette structure de base La programmation va constituer à détruire les


fusibles pour obtenir les fonctions désirées La structure de sortie permet aussi de réinjecter les sorties en entrée (Feed-back).

N.B. Lors de l'achat d'un P.A.L. tous les fusibles sont vierges ou pas détruits
05/10/2023 Pr. Z. ALAOUI ISMAILI 13 05/10/2023 Pr. Z. ALAOUI ISMAILI 14

La symbolisation et la représentation.
Exemple: Représentation d'un Ou Exclusif.
La représentation schématique de la précédente structure demande beaucoup
d'espace pour représenter un P.A.L. en entier. Les industriels ont adopté une autre
représentation voir ci-dessous.

Cette équation se représente de la façon suivante:

a: Porte ET à 3 entrées.
b: Porte ET à 3 entrées représentation P.A.L. les croix représentent les fusibles intacts.
c: Représentation de la structure interne d’un P.A.L. L..

05/10/2023 Pr. Z. ALAOUI ISMAILI 15 05/10/2023 Pr. Z. ALAOUI ISMAILI 16

4
05/10/2023

Les différentes structures:


Structure générale
D'un point de vue fonctionnel un P.A.L. est constitué d'une zone d'entrée de
Tout P.A.L. est constitué : fusibles ou matrice de programmation et une structure de sortie non
programmable déterminant le type de circuit voir schéma ci-dessous.

De sorties (Output) Ou d’entrées / sorties (I/O)


D'entrées (Input): I1 à In avec 8<n<20. de type Totem Pôle ou Trois États:
O1 à On ou IO1 à IOn (2<n<15).

On peut trouver aussi:

Une entrée d'horloge Une entrée de remise à zéro


(Clock): Clk ou Clock des registres: RESET.
Une entrée de validation des sorties trois états:
OE (Output Enable) ou Enable.

05/10/2023 Pr. Z. ALAOUI ISMAILI 17 05/10/2023 Pr. Z. ALAOUI ISMAILI 18

C'est pourquoi il existe un grand nombre de P.A.L. utilisant des structures


de sorties différentes.

Combinatoire.
Symbolisation normalisée :
On peut distinguer trois Séquentielle.
types de structures de base:
Versatile.

H -> (High) Porte ET suivit d'une


Remarque: Sur un schéma comportant un P.A.L. L., on doit écrire les équations
Porte OU. Sortie active à l'état haut.
qui relient les entrées aux sorties ou le nom du document contenant les équations
du P.A.L.
L -> (Low) Porte ET suivit d'une
Combinatoire Porte NON OU. Sortie active à
Dans l'exemple précèdent , la programmation du Ou Exclusif était facilement trois types
réalisable, ce n'est pas toujours le cas. l'état bas.

C -> (Combinée) programmable


en type H ou L.
05/10/2023 Pr. Z. ALAOUI ISMAILI 19 05/10/2023 Pr. Z. ALAOUI ISMAILI 20

5
05/10/2023

trois types
contrôlées par un signal de
validation Enable ou OE
Les sorties des
R -> (Register): Registre. Ces bascules
circuits sont composés de Horloge est commune à
bascule D. toutes les bascules
(clock).

Séquentielle

05/10/2023 Pr. Z. ALAOUI ISMAILI 21 05/10/2023 Pr. Z. ALAOUI ISMAILI 22

Les structures de sorties sont beaucoup plus évoluées par rapport aux autres
Séquentielle X -> (Register Or Exclusif): Ou Exclusif et Registre. P.A.L. L., elles se rapprochent des P.A.L. de type versatile.
Elles peuvent prendre.

Séquentielle RA -> (Register Asynchron): Registre asynchrone. Quatre configurations


suivant les valeurs de
AP et AR

05/10/2023 Pr. Z. ALAOUI ISMAILI 23 05/10/2023 Pr. Z. ALAOUI ISMAILI 24

6
05/10/2023

Ce type de structure représente les P.A.L. les plus évoluées, car les Ce qui donne:
Les versatiles.
structures de sorties dite versatile proposent quatre configurations
possibles. suivant les valeurs de S0 et S1.

05/10/2023 Pr. Z. ALAOUI ISMAILI 25 05/10/2023 Pr. Z. ALAOUI ISMAILI 26

Le plus célèbre des circuits versatile est certainement le P.A.L. 22V10 de chez AMD. Il
permet d'émuler pratiquement tout les autres types de P.A.L. et dispose
d'un circuit de remise à zéro des registres à la mise sous tension du circuit.

Schéma interne d’un PAL 22V10 : ( GAL22V10 Lattice Semiconductor).

05/10/2023 Pr. Z. ALAOUI ISMAILI 27 05/10/2023 Pr. Z. ALAOUI ISMAILI 28

7
05/10/2023

Les références des P.A.L.


Chez TEXAS INSTRUMENTS:
Les constructeurs de P.A.L. ont standardisé le marquage des P.A.L.

Chez AMD:

05/10/2023 Pr. Z. ALAOUI ISMAILI 29 05/10/2023 Pr. Z. ALAOUI ISMAILI 30

Exemples:
Un PAL 16L8 : 16 entrées maximum, 8 sorties maximum et il dispose d’une structure de sortie EXEMPLES DE PAL.
active sur niveau bas. Nous n’étudierons pas toutes les sortes de PAL car leur nombre est assez conséquent, mais
nous intéresserons à ceux qui sont couramment utilisé.
Le PAL 16L8.
Ce type de circuit est uniquement constitué de logique combinatoire. Il possède 20 broches
agencées de la façon suivante :

• 10 broches configurables uniquement en entrée


• 2 broches configurables uniquement en sortie
• 6 broches configurables en entrée et en sortie
• 2 broches d’alimentation.

L’ensemble des sorties provient de portes 3 états inverseuses. L’état haute impédance
peut être commandée par l’ensemble des entrées.
Chaque porte de la matrice « OU » possède 7 entrées. Ceci signifie que chaque sortie peut
résulter,au maximum, d’une fonction « OU » entre 7 termes produits. Chaque porte de la
matrice « ET »possède 32 entrées. Ceci signifie que chaque terme produit peut résulter, au
maximum, d’une fonction « ET » entre 16 variables et leurs compléments.

05/10/2023 Pr. Z. ALAOUI ISMAILI 31 05/10/2023 Pr. Z. ALAOUI ISMAILI 32

8
05/10/2023

Le PAL 16R8.
Ce type de circuit est constitué de logique combinatoire et séquentielle. Il possède 20
broches agencées de la façon suivante :

• 8 broches (n° 2 à 9) configurables uniquement en entrée


• 1 broche (n° 1) d’entrée d’horloge de l’ensemble des 8 bascules D
• 1 broche (n° 11) de validation des 8 sorties (output enable)
• 8 broches (n° 12 à 19) configurables en sortie et pouvant être réinjecter en entrée
• 2 broches d’alimentation (n° 10 et 20).

L’ensemble des sorties provient de portes 3 états inverseuses provenant elles-mêmes de


bascules D (figure ). L’état haute impédance est commandée par l’entrée OE (broche
n°11).Chaque porte de la matrice « OU » possède 7 entrées. Ceci signifie que chaque
sortie peut résulter, au maximum, d’une fonction « OU » entre 7 termes produits.
Chaque porte de la matrice « ET » possède 32 entrées. Ceci signifie que chaque terme
produit peut résulter, au maximum, d’une fonction « ET » entre 16 variables et leurs
compléments.
En résumé on peut dire que les huit sorties de ce circuit proviennent d’un registre trois
états. La mise en haute impédance de ce dernier est commandée par la broche OE et la
mémorisation est activée par les fronts montants de l’horloge CLK.

05/10/2023 Pr. Z. ALAOUI ISMAILI 33 05/10/2023 Pr. Z. ALAOUI ISMAILI 34

Remarque: La duplication de P.A.L. et le bit de sécurité.


Un circuit P.A.L. peut être dupliqué comme une EPROM, pour le protéger les
constructeurs ont ajouté un bit dit de sécurité. Si ce bit est programmé alors le circuit ne
peut plus être relu.

LES GALS (GENERIC ARRAY LOGIC).


PRESENTATION

L’inconvénient majeur des PALs Ils ne sont programmables


qu’une seule fois

un gaspillage important de ces circuits


lorsqu’on veut développer un nouveau produit. GALs
Selon le type de PAL la structure de sortie peut être constituée d’une porte « NON»,
Remplacer les
d’une porte « OU » Exclusive , d’une bascule « D » ou d’une combinaison des trois. Le
fusibles irréversibles
nombre d’entrées et de sorties est lui aussi lié à la référence du PAL. Transistors MOS
LATTICE FET pouvant être
PAL
Plus de régénérés
10 ans
05/10/2023 Pr. Z. ALAOUI ISMAILI 35 05/10/2023 Pr. Z. ALAOUI ISMAILI 36

9
05/10/2023

« Réseau logique Générique »

Toujours rien? Sans pour autant avoir une durée


Reprogrammés à volonté
de vie restreinte
Structure interne les GALs
PALs classiques sont
constitués de transistors
bipolaires
Transistor CMOS

« PALCMOS »
Consommation
plus faible.

Autres constructeurs
fabriquent
05/10/2023 Pr. Z. ALAOUI ISMAILI 37 05/10/2023 Pr. Z. ALAOUI ISMAILI 38

Par soucis de remplacer les PALs, LATTICE a équipé la plupart de ses GALs de REFERENCE DES GAL.
macro-cellules programmables permettant d’émuler n’importe quel PAL. Ces
structures de sortie sont donc du type « Versatile » (V). Ils possèdent une structure de sortie soit du
type « Versatile »
PROTECTION CONTRE LA DUPLICATION. soit du type « Registre asynchrone ».
Un bit de sécurité
dotés
Activé lors de la programmation
remis
GAL empêche à zéro

Toute lecture du contenu du Effaçant complètement le GAL


circuit

Ensemble de appelé
huit octets Signature électronique contenir
Informations diverses
sur le produit

05/10/2023 Pr. Z. ALAOUI ISMAILI 39 05/10/2023 Pr. Z. ALAOUI ISMAILI 40

10
05/10/2023

05/10/2023 Pr. Z. ALAOUI ISMAILI 41 05/10/2023 Pr. Z. ALAOUI ISMAILI 42

MACRO CELLULE DE SORTIE (OLMC).


Ces structures de sortie sont programmables et permettent
d’émuler n’importe quelle autre structure de sortie.

Figure : Structure d ’un OLMC


Elles possèdent en tout 2 bits de programmation communs à toutes les cellules (CG1
et CG0) et 2 bits spécifiques à chaque cellule (CL0x et CL1x).
05/10/2023 Pr. Z. ALAOUI ISMAILI 43 05/10/2023 Pr. Z. ALAOUI ISMAILI 44

11
05/10/2023

Configurations possibles de la macro-cellule pour le GAL 16V8 :

Remarque : En configuration « Registre » et en n’utilisant pas l’état haute


impédance des portes 3 états, il faut relier la broche OE (n°11) à VCC.

Figure : Différentes configurations de l ’OLMC

05/10/2023 Pr. Z. ALAOUI ISMAILI 45 05/10/2023 Pr. Z. ALAOUI ISMAILI 46

05/10/2023 Pr. Z. ALAOUI ISMAILI 47 05/10/2023 Pr. Z. ALAOUI ISMAILI 48

12
05/10/2023

Schéma fonctionnel du GAL22V10

05/10/2023 Pr. Z. ALAOUI ISMAILI 49 05/10/2023 Pr. Z. ALAOUI ISMAILI 50

Remarques : La programmation des cellules de sortie est transparente pour l’opérateur.


C’est le logiciel de développement qui, en fonction de certaines indications (sortie / entrée
registre ou combinatoire), effectue la configuration des structures de sortie.
Pour le GAL 16V8, Les broches 15 et 16 ne peuvent pas être configurées en entrées
combinatoires

EXEMPLE DE BROCHAGE DE CIRCUIT.

05/10/2023 Pr. Z. ALAOUI ISMAILI 51 05/10/2023 Pr. Z. ALAOUI ISMAILI 52

13
05/10/2023

LES C.P.L.D.s ( Complex Programmable Logic Device).


Conclusion

– PAL équivalent à une dizaine de circuits standard Capacité en nombre de portes Possibilités de configuration très supérieure à
– une trentaine d ’E/S maximum celle des PALs.
– 2 technologies
• bipolaires : plus rapides Architectures basées sur celles des PALS.
• CMOS effaçables Plusieurs PALs mis
– faible coût des circuits dans le même circuit
– version masquée HAL
– coût du logiciel de développement et du programmateur CPLD
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.

05/10/2023 Pr. Z. ALAOUI ISMAILI 53 05/10/2023 Pr. Z. ALAOUI ISMAILI 54

 Architecture Structure générale d’un CPLD

Ensemble de fonctions de type PAL pouvant être interconnectées à l ’aide d ’une


matrice
 Macro cellules de base regroupées en blocs logiques
 2 niveaux d ’interconnexion :
o matrice globale
o distribution de signaux dans chaque bloc logique

05/10/2023 Pr. Z. ALAOUI ISMAILI 55 05/10/2023 Pr. Z. ALAOUI ISMAILI 56

14
05/10/2023

 Ressources d ’interconnexions
Exemple de CPLD le circuit Isp1016 de LATTICE
– routage systématisé
– modèle électrique
– délais prédictibles
– placement non critique
– temps de compilation faible
 Famille AMD Mach 5
– architecture modulaire : blocs de type PAL
– EPLD programmables et effaçables électriquement (techno EECMOS)
– options : synchronisation des bascules sur les deux fronts d ’une
horloge,
programmation du slew rate, choix du compromis puissance/vitesse
– circuits isp, compatibles JTAG, 3,3 V.

05/10/2023 Pr. Z. ALAOUI ISMAILI 57 05/10/2023 Pr. Z. ALAOUI ISMAILI 58

Figure : Architecture des Mach 5

• blocs appelés segments


• Chaque segment contient 4 blocs de type PAL
• 4 entrées d ’horloge peuvent être utilisées comme entrées normales
• Un bloc PAL contient 16 macrocellules

Figure : Bloc PAL

05/10/2023 Pr. Z. ALAOUI ISMAILI 59 05/10/2023 Pr. Z. ALAOUI ISMAILI 60

15
05/10/2023

• Xilinx XC 9500
– architecture très simple
– composants isp, norme JTAG
– tensions : 3,3 V, 2,5 V ou 1,8 V
– vitesse de fonctionnement élevée
– mode programmable de réduction de la
consommation pour chaque macro cellule
– slew rate programmable indépendamment pour chaque sortie
Figure 18 : Macrocellule – option de mise à la masse des entrées/sorties afin de réduire les perturbations

Figure 19 : Module de sortie


05/10/2023 Pr. Z. ALAOUI ISMAILI 61 05/10/2023 Pr. Z. ALAOUI ISMAILI 62

Ils sont composés de blocs logiques élémentaires (plusieurs milliers de portes) qui
LES F.P.G.A.s (Fields Programmable Gate Array).
peuvent être interconnectés.
les FPGAs à la différence des CPLDs sont assimilables à des
A.S.I.C. (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.

Les dernières générations de FPGA intègrent même de la mémoire vive (RAM).

Les deux plus grands constructeurs de FPGA sont XILINX et ALTERA.

05/10/2023 Pr. Z. ALAOUI ISMAILI 63 05/10/2023 Pr. Z. ALAOUI ISMAILI 64

16
05/10/2023

Architecture FPGA-Xilinx:
De plus en plus les capacités des CPLDs et des FPGAs se rapprochent.

Le principal critère de choix entre les deux familles est la vitesse de fonctionnement. Tous les FPGA Xilinx contiennent les mêmes ressources de base
(Figure 2.13):
En effet, les CPLDs acceptent des fréquences de fonctionnement beaucoup plus élevées Blocs logiques configurables (CLB), contenant une logique combinatoire et des
que les FPGAs. ressources de registre,

Blocs d'entrée / sortie (IOB), interface entre le FPGA et le monde extérieur,

Interconnexions programmables (PI), (General Routing Matrix )

Blocs de RAM,

Autres ressources: tampons à trois états, tampons d'horloge globaux, logique


d'analyse des limites, etc.

05/10/2023 Pr. Z. ALAOUI ISMAILI 65 05/10/2023 Pr. Z. ALAOUI ISMAILI 66

LUT in FPGA
N.B.
LookUp Table in FPGA

05/10/2023 Pr. Z. ALAOUI ISMAILI 67 05/10/2023 Pr. Z. ALAOUI ISMAILI 68

17
05/10/2023

LUT in FPGA LUT in FPGA

F=F0./X1+F1.X1

F3
F0=F3./X2+F4.X2
F4
F0
F1=F5./X2+F6.X2
F3=I0./X3+I1.X3 F5
F1
F=(F3./X2+F4.X2)./X1+
F4=I2./X3+I3.X3 F6
(F5./X2+F6.X2).X1
F5=I4./X3+I5.X3
F=F3./X2./X1+F4.X2./X1+F5./X2.X1
F6=I6./X3+I7.X3 +F6.X2.X1

F=/X1./X2.(I0./X3+I1.X3)+X2./X1. (I2./X3+I3.X3)+
/X2.X1.(I4./X3+I5.X3)+X2.X1.(I6./X3+I7.X3)
F=I0. /X1./X2./X3+I1. /X1./X2.X3+ I2. X2./X1./X3+
I3. X2./X1.X3+ I4./X2.X1./X3+ I5./X2.X1.X3+
I6.X2.X1./X3+ I7.X2.X1.3X3

Sortie=/a/bc+a/bc+ab/c+abc
05/10/2023 Pr. Z. ALAOUI ISMAILI 69 05/10/2023 Pr. Z. ALAOUI ISMAILI 70

Générateurs de fonctions
– Les deux générateurs de fonctions F et G peuvent réaliser chacun
n’importe quelle fonction combinatoire de 4 variables.
– En combinant les LUT des différents slices du CLB, il est aussi
possible de réaliser des multiplexeurs à grand nombre d’entrées: par
exemple, un mux 4:1 dans un slice, un mux 16:1 dans un CLB ou
encore un mux 32:1 dans deux CLB.
– La polyvalence du CLB est la meilleure manière d’améliorer la vitesse
de fonctionnement du système à réaliser.

05/10/2023 Pr. Z. ALAOUI ISMAILI 71 05/10/2023 Pr. Z. ALAOUI ISMAILI 72

18
05/10/2023

Bascules Configuration en ROM, RAM et registre à décalage


– Ces générateurs de fonctions peuvent être connectés – Tous les générateurs de fonctions F et G du CLB peuvent être utilisés
directement vers les sorties du slice (sorties X et Y), ou comme des ROM. En effet, chaque LUT est une ROM 16 bits et on peut
bien être mis en mémoire par deux bascules D (sorties XQ donc former au maximum une ROM 128x1 dans un CLB. Chaque LUT
des 2 Slices de gauche du CLB peut aussi être programmée en RAM
et YQ). (simple et double port) ainsi qu’en registre à décalage.
– Ces deux bascules ont la même horloge (CLK), le même
signal de validation (CE) et la même logique de mise à 0 ou
de mise à 1 asynchrone (SR).
– L’état de sortie de la bascule à la mise sous tension est
programmable. Les deux bascules peuvent être utilisées
indépendamment (entrée sur BX et BY) ou à la suite des
générateurs de fonctions.

05/10/2023 Pr. Z. ALAOUI ISMAILI 73 05/10/2023 Pr. Z. ALAOUI ISMAILI 74

– Ainsi, on peut trouver au maximum dans un CLB :


4 mémoires 16x1 bits synchrones simple port,
2 mémoires 32x1 bits synchrones simple port, Logique de retenue rapide
1 mémoire 64x1 bits synchrone simple port, – Chaque slice contient une logique arithmétique dédiée pour
2 mémoires 16x1 bits synchrones double port, générer rapidement une retenue (carry). Cette logique dédiée
1 registre à décalage 64 bits. accélère grandement toutes les opérations arithmétiques telles
que l’addition, la soustraction, l’accumulation, la comparaison...
– Ces mémoires sont très rapides et elles ont l’avantage d’être situées au cœur de
la fonction à réaliser. Il n’y a donc pas de délais de routage. – Elle accélère aussi la vitesse de fonctionnement des compteurs.
– La mémoire synchrone est avantageuse car elle est plus rapide et plus facilement – Chaque slice peut être configuré comme un additionneur 2 bits
exploitable que la mémoire asynchrone. avec retenue qui peut être étendu à n’importe quelle taille avec
d’autres CLB.
– La mémoire double port possède deux ports (adresse, donnée, contrôle)
indépendants. Elle peut être utilisée pour réaliser des FIFO. – La sortie retenue (COUT) est passée au CLB se trouvant au-
dessus. La retenue se propage en utilisant une interconnexion
– Le contenu de ces RAM ou de ces ROM peut être initialisé à la mise sous
directe.
tension.

05/10/2023 Pr. Z. ALAOUI ISMAILI 75 05/10/2023 Pr. Z. ALAOUI ISMAILI 76

19
05/10/2023

Multiplieurs dédiés
Block RAM (SelectRAM)
– Associé à chaque BlockRAM, on trouve un multiplieur 18x18 = 36
– Tous les FPGA de la famille Spartan-3 incorporent des blocs de bits signé en complément à 2 (ou 17x17 = 34 non signé). On les
mémoire RAM 18kbits synchrones simple ou double ports (de 4 utilise surtout pour effectuer des opérations de traitement du
à 104 suivant la taille du circuit). signal, mais ils peuvent aussi être utilisés avec profit pour réaliser
– Les 4 modes suivants sont possibles des opérations logiques (comme un décalage en un coup
d’horloge par exemple).
Gestionnaire d’horloges
– Le FPGA possède un gestionnaire d’horloge (Digital Clock
Manager : DCM) particulièrement élaboré.
– Il permet par exemple de créer des horloges décalées en phase
(pour piloter des DDR SDRAM par exemple), ou encore il élimine
le skew (décalage des arrivées d’horloge sur les bascules D) des
horloges dans le FPGA ou bien encore il permet de synthétiser
des horloges avec des rapports (M x Fin) / D (avec M entier
compris entre 2 et 32 et D entier compris entre 1 et 32).
– Vous pouvez par exemple créer une horloge sur CLKFX dont la
fréquence est égale à 11/7 de CLKIN.
05/10/2023 Pr. Z. ALAOUI ISMAILI 77 05/10/2023 Pr. Z. ALAOUI ISMAILI 78

Ressources de routage et connectivité


– Les FPGA de la série Spartan-3 disposent d'un nombre important
de ressources de routage et de connectivité, ce qui leur confère une
très grande souplesse d'utilisation.
– Toutes les connexions sont constituées de segments métalliques
reliés par des matrices de contacts programmables (Programmable
Switch Matrix ou PSM). Chaque élément vu précédemment est relié
à une ou plusieurs PSM.

N.B. D’autre part, le FPGA possède 8 buffers spéciaux


(BUFG) pour distribuer les horloges dans le circuit.
05/10/2023 Pr. Z. ALAOUI ISMAILI 79 05/10/2023 Pr. Z. ALAOUI ISMAILI 80

20
05/10/2023

Chaque PSM est constituée de transistors permettant


d’établir une connexion entre lignes horizontales et verticales
comme le montre le schéma suivant:

05/10/2023 Pr. Z. ALAOUI ISMAILI 81 05/10/2023 Pr. Z. ALAOUI ISMAILI 82

Après programmation, la PSM permet par exemple la Configuration


configuration suivante : Il y a trois types de broches sur un FPGA :
– Les broches dédiées en permanence. Ce sont les broches
d’alimentation et de masse (un couple (VCC, GND) par côté), les
buffers d’horloge...
– Les broches utilisables exclusivement par l’utilisateur pour
réaliser son système.
– Les broches utilisables par l’utilisateur mais qui ont un rôle
L’objectif final est de durant la configuration du circuit.
relier les différents
éléments logiques (LE)
entre eux comme sur la
figure suivante :

05/10/2023 Pr. Z. ALAOUI ISMAILI 83 05/10/2023 Pr. Z. ALAOUI ISMAILI 84

21
05/10/2023

On voit, sur la figure, qu’il y a sous la logique dédiée à


l’application une mémoire de configuration qui contient Les principaux modes de configuration sont les suivants:
– En mode série maître (il faut utiliser une mémoire Flash série
toutes les informations concernant la programmation des
« XCF02S » dans notre maquette.
CLB et des IOB ainsi que l’état des connexions.
– En mode parallèle esclave, c’est un microcontrôleur externe qui
charge la configuration octet par octet. L’horloge est fournie par
le microcontrôleur.
– En mode JTAG: le JTAG est utilisé chez tous les fabricants de
FPGA et d’EPLD pour la programmation In Situ (ISP) de leurs
circuits y compris les PROM Flash série.

Cette configuration est réalisée, à la mise sous tension,


par le chargement d’un fichier binaire dont la taille varie
en fonction du nombre de portes du circuit :
05/10/2023 Pr. Z. ALAOUI ISMAILI 85 05/10/2023 Pr. Z. ALAOUI ISMAILI 86

Domaine des circuits logiques programmables  EPLD-CPLD: Erasable PLD ou Complex PLD
 Les PLD Les EPLD sont programmables électriquement et
– densité de quelques centaines de portes effaçables aux UV ; les
– architecture ET/OU programmable EEPLD sont effaçables électriquement Principe similaire aux PAL mais avec
– limites : nombre de bascules, nombre de signaux d ’E/S, rigidité du plan interconnexions réalisées en techno UVPROM
logique ET/OU et de ses interconnexions
– conception sous forme de langages d ’équations, d ’automates…
 FPGA Field Programmable Gate Array ou réseau de portes programmable par
• PAL : Programmable Array Logic
l ’utilisateur
PAL bipolaires programmables une seule fois C ’est un ensemble de blocs logiques élémentaires que l ’utilisateur peut
– PAL combinatoires ou PAL simples (portes) interconnecter pour réaliser les fonctions logiques de son choix. La densité des portes
– PAL à registres (Field Programmable Logic Sequencer) est importante et sans cesse en évolution

PAL CMOS ≈ GAL • FPGA à SRAM ou LCA Logic Cell Array introduit en 1985 par Xilinx à base de
GAL : Generic Array Logic ; programmables et effaçables électriquement ou SRAM pour configurer les connexions logique non dédiée avec des solutions
PALCMOS ou EEPAL ou PALEECMOS d’interconnexionssouples et efficaces
• FPGA à antifusibles nés en 1990 Actel programmables électriquement par
l’utilisateur non effaçables

05/10/2023 Pr. Z. ALAOUI ISMAILI 87 05/10/2023 Pr. Z. ALAOUI ISMAILI 88

22
05/10/2023

• Complexité (nombre de portes)/volume de Environnement de développement


production
JEDEC : Format de fichier de programmation des circuits
logiques (image des
fusibles à griller).

 Programmateurs standard JEDEC


génère les chronogrammes nécessaires à la programmation du circuit en
fonction des spécifications de son fabricant
– autonomes de production
• phase de production : plusieurs circuits simultanément
• 1 seul type de produit
– autonomes de laboratoire
• Fréquence utile/nombre de portes • une seule pièce à la fois
• divers circuits logiques
– cartes de programmation
• avec micrordinateur PC + logiciel de pilotage

05/10/2023 Pr. Z. ALAOUI ISMAILI 89 05/10/2023 Pr. Z. ALAOUI ISMAILI 90

La programmation des PLDs nécessite un logiciel adapté pour le développement du


programme et un programmateur permettant de « griller » le circuit.
VI. PROGRAMMATION DES PL PLDS. En outre il est conseillé de suivre la démarche décrite par l’organigramme suivant :

Les outils de développements sont composés en général de deux outils:


- Le système de développement.
- Le programmateur.

05/10/2023 Pr. Z. ALAOUI ISMAILI 91 05/10/2023 Pr. Z. ALAOUI ISMAILI 92

23
05/10/2023

Méthodologie:
 Le logiciel de développement permet de simplifier les équations et de générer un
fichier JEDEC à partir des données rentrées par l’opérateur. Il simule aussi le
fonctionnement du PLD avec le programme obtenu. Le logiciel « PALASM »
développé par « AMD » permet d’effectuer ces opérations pour la programmation de
PAL ou de GAL.
 Le fichier JEDEC est un ensemble de données binaires indiquant au programmateur
les fusibles à « griller ».
 Le programmateur permet de « griller » les fusibles du PLD en fonctions des
données du fichier JEDEC. Il est en général associé à un logiciel de pilotage. Les
programmateurs utilisés sont les mêmes que ceux permettant la programmation des
EPROM.

05/10/2023 Pr. Z. ALAOUI ISMAILI 93 05/10/2023 Pr. Z. ALAOUI ISMAILI 94

Le système de développement. Schéma à base de fonctions logique élémentaires (Portes ET,OU,NON, … bascules,
compteurs, registres à décalages).
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.

Par un schéma à base de fonctions logique


élémentaires (Portes ET,OU,NON, … bascules,
compteurs, registres à décalages).

La description du fonctionnement ORCAD/PLD


des circuits peut se faire de langage de description
ABEL
plusieurs façons, soit : comportementale H.D.L.
(Hardware Description Language). VHDL
VERILOG
Schéma et des descriptions en langage de haut
niveau de type VHDL.
Par l’utilisation de graphes d’états.
(FSM : Flow States Machines)

05/10/2023 Pr. Z. ALAOUI ISMAILI 95 05/10/2023 Pr. Z. ALAOUI ISMAILI 96

24
05/10/2023

Langage de description

05/10/2023 Pr. Z. ALAOUI ISMAILI 97 05/10/2023 Pr. Z. ALAOUI ISMAILI 98

Schéma et des descriptions en langage de haut niveau de type VHDL.


Utilisation de graphes d’états. (FSM : Flow States Machines)

05/10/2023 Pr. Z. ALAOUI ISMAILI 99 05/10/2023 Pr. Z. ALAOUI ISMAILI 100

25
05/10/2023

Liste des abréviations


• ASIC Application Specific Integrated Circuit - Circuit intégré conçu à la demande
 Systèmes de développement • BLMC Buried Logic Macrocell - Macro cellule logique enterrée
• CC Chip Carrier - Boîtier "porteur de puce"
– entrées : • CPLD Complex Programmable Logic Device - Réseau logique programmable complexe
• équations logiques • DRAM Dynamic Random Access Memory - Mémoire dynamique à accès aléatoire
• DSP Digital Signal Processor - Processeur orienté vers le traitement du signal
• tables de vérité
• EDIF Electronic Design Interchange Format
• schémas logiques • EEPLD Electrically Erasable Programmable Logic Device - PLD effaçable électriquement
• VHDL • EEPROM Electrically Erasable PROM - Mémoire à lecture seule, électriquement effaçable
• Abel ... • EPLD Erasable Programmable Logic Device - Réseau logique programmable effaçable
• EPROM Erasable Programmable Read Only Memory - Mémoire à lecture seule effaçable
– systèmes sur PC • FPGA Field Programmable Gate Array - Réseau de portes programmables
– production d ’un fichier JEDEC transmissible à n ’importe quel • FPROM Field Programmable Read Only Memory
programmateur normalisé • GAL Generic Array Logic - PAL générique
• ISP In-System (In Situ) Programmable - Composant programmable sur carte
– association système de développement / carte de programmation PC courante
• JEDEC Joint Electronic Device Engineering Council - Organisme de normalisation
• JTAG Joint Test Action Group - Bus de test des composants
• LCA Logic Cell Array (Xilinx) - Réseau de cellules logiques
• LUT Look-Up Table
• MAX Multiple Array Matrix - Megapals d'Altera
• NOVRAM ou NVRAM Non Volatile Random Access Memory - RAM non volatile
• OTP One Time Programmable - Programmable une seule fois
• PAL Programmable Array Logic - Réseau logique programmable
• PGA Programmable Gate Array - Réseau de portes programmable

05/10/2023 Pr. Z. ALAOUI ISMAILI 101 05/10/2023 Pr. Z. ALAOUI ISMAILI 102

• PLA Programmable Logic Array - Réseau logique programmable


• PLD Programmable Logic Device - Dispositif logique programmable
• POF Programmer Object File - Fichier objet pour programmateur
• PROM Programmable Read Only Memory - Mémoire à lecture seule programmable
• RAM Random Access Memory - Mémoire à accès aléatoire
• ROM Read Only Memory - Mémoire à lecture seule
• SDF Standard Delay File
• SOG Sea-of-Gates - Mer de portes : réseau actif logique prédiffusé
• SRAM Static Random Access Memory - Mémoire statique à accès aléatoire
• TTL Transistor Transistor Logic - Logique transistor-transistor
• VHDL VHSIC Hardware Description Language - Langage de description matérielle VHSIC
• VHSIC Very High Speed Integrated Circuit - Circuit intégré à très grande vitesse
• XNF Xilinx Netlist Format - Format de fichier Xilinx

05/10/2023 Pr. Z. ALAOUI ISMAILI 103

26

Vous aimerez peut-être aussi