Circuits logiques
programmable PLD
1
2
Introduction générale
Les circuits logiques programmables (PLD, pour "Programmable Logic Devises"
en anglais) sont des composants électroniques essentiels dans de nombreux
engins et systèmes électroniques. Ils offrent une flexibilité inestimable en
permettant aux ingénieurs de concevoir et de mettre en œuvre des fonctions
logiques personnalisées pour répondre aux besoins spécifiques de leurs
applications. Cette introduction se penche sur la manière dont les PLD sont
utilisés dans divers engins.
En résumé, les circuits logiques programmables sont des composants clés dans
de nombreux engins, car ils offrent la flexibilité nécessaire pour personnaliser
les fonctions électroniques en fonction des exigences spécifiques de chaque
application. Leur programmable les rend essentiels pour l'automatisation, le
contrôle et l'amélioration des performances des engins modernes.
1. Présentation de la logique programmée
Il y a quelques années la réalisation d’un montage en électronique numérique
impliquait l’utilisation d’un nombre important de circuits intégrés logiques.
Ceci avait pour conséquences un prix de revient élevé, une mise en œuvre
complexe et un circuit imprimé de taille importante. Le développement des
mémoires utilisées en informatique fut à l’origine des premiers circuits
logiques programmables (PLD : Programmable Logic Devise).
Les circuits logiques programmables sont utilisés pour remplacer l’association
de plusieurs boîtiers logiques. Le câblage est simplifié, l’encombrement et le
risque de pannes est réduit. Certains PLD ne permettent pas la relecture de la
3
fonction logique programmée, c’est pratique lorsque le programme doit rester
confidentiel.
Ces circuits disposent d’un certain nombre de broches d’entrées et de sorties.
L’utilisateur associe ces broches aux équations logiques (plus ou moins
complexes) qu’il programme dans le circuit.
Sa mise en œuvre se fait très facilement à l’aide d’un programmateur, d’un
micro-ordinateur et d’un logiciel adapté.
Pour des moyennes séries, les composants programmables sont en général
préférés aux ASIC. Les PLD peuvent être programmés par l’utilisateur (bureau
d’étude, chaîne d’assemblage) alors que les ASIC qui sont configurés lors de
leur fabrication (ils ne peuvent être que simulés par le bureau d’étude) sont
réservés à des productions de très grande série en raison de leur coût de
développement élevé.
2. Principe des premiers PLD : les PAL
Etant donné que toute fonction logique peut être exprimée comme une
somme de produits logiques (min termes), la structure de base des premiers
circuits programmables est formée par une matrice ET suivie d'une matrice
OU. L'une des deux matrices, ou les deux, est programmable
4
Une matrice programmable est un ensemble de portes logiques dont les
entrées sont connectées aux variables du systèmes, vraies et inversées, au
moyen d'un réseau de fusibles.
Lorsqu'un fusible est brûlé, la connexion respective entre la variable et la porte
logique disparaît. La programmation du système se fait en choisissant les
fusibles que l'on laisse et que l'on brûle.
Exemple de matrice OU
Non programmée Programmée
5
Exemple de matrice ET
Non programmée Programmée
Selon le caractère programmable des matrices ET et OU, il existe trois types de
circuits logiques programmables :
• PROM (Programmable Read-Only Memory) : la matrice ET est fixe
et la matrice OU est programmable. C'est une mémoire
• PAL (Programmable Array Logic) : matrice ET programmable suivie d'une
matrice OU fixe.
• PLA (Programmable Logic Array) : les deux matrices sont
programmables.
Les circuits PAL sont les PLDs les plus courants : les PROM sont utilisées en
tant que mémoires et les PLA sont très peu utilisés à cause de leur nombre
élevé de fusibles, ce qui amène une grande consommation de puissance et de
long délai.
6
3. Représentation et symbolisation
La figure ci-dessous représente la structure simplifiée d'un PAL (2 entrées et 1
sortie).
Cette représentation schématique demande beaucoup d'espace pour
représenter un PAL en entier. Les industriels ont adopté la représentation
symbolique suivante :
Circuit normal Circuit équivalent
7
D'où les représentations symboliques du PAL 2 entrées 1 sortie :
PAL 2 entrées 1 sortie non programmée.
8
PAL 2 entrées 1 sortie programmée
4. Classification des circuits logiques programmables
La diversité de constructeurs de circuits logiques programmables est à
l'origine de plusieurs produits équivalent mais d'appellation différente. En
effet, il est difficile d'établir une classification générale de ces circuits. La
figure ci-dessous présente l'une des classifications adoptées.
9
PAL : signifie Programmable Array Logic, c’est-à-dire réseau logique
programmable. La programmation de ces circuits s'effectue par
destruction de fusibles. Une fois programmés on ne peut pas les effacer.
On distingue deux sous familles :
• Les PAL combinatoires ou PAL simples qui sont constitués de
fonctions de logique combinatoire.
• Les PAL à registres ou F.P.L.S. Field Programmable Logic Séquencer
pour séquenceur logique programmable qui sont constitués de logique
combinatoire et séquentielle (Registres).
Les GAL : signifie Generic Array Logic ou encore réseau logique générique.
L’appellation GAL est une marque déposée de LATTICE SEMICONDUCTOR
qui a été la première société à proposer sur le marché ce type de produits.
D’autres marques proposent des équivalents (compatibles)
commercialisés sous le nom de PAL CMOS, E2PAL ou encore PAL EECMOS.
10
Les GAL sont des PAL effaçables électriquement, qui utilisent la
technologie CMOS.
Les EPLD : (Erasable Programmable Logic Device), PAL effaçables. Ce sont
des circuits programmables et effaçables électriquement ou par ultraviolet
(UV). Ils sont encore appelés PAL CMOS. Ces circuits ont une capacité en
nombre de portes et en possibilités de configuration supérieure à celle
des GAL.
Les CPLD : signifie Complexe Programmable Logic Device. Ces circuits sont
composés de plusieurs Pals élémentaires reliés entre-deux par une zone
d'interconnexion. Grace à cette architecture ils permettent d'atteindre des
vitesses élevées (plusieurs centaines de Mhz).
Les LCA et FPGA à anti-fusible
• Les LCA ce qui signifie Logic Cella ray ou encore réseau de cellules
logiques sont composés de blocs logiques élémentaires de 2000 à
10000 portes que l'utilisateur peut interconnecter.
• Les FPGA à anti-fusibles sont identiques aux LCA 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.
11
D'où un tableau récapitulatif :
Nombre
de
Type Matrice ET Matrice OU Effaçable
Portes
intégrés
PAL 10 à 100 Programmable Fixe Non
GAL 10 à 100 Programmable Fixe Electriquement
EPLD 100 à 3000 Programmable Fixe Aux U-V
FPGA 2000 à Programmable Programmabl Electriquement
3000 e
5. Structure générale d'un PAL
Tout PAL est constitué :
• D'entrées (Input) : I1 à In (8<n<20).
• De sorties (Output) ou d'entrées / Sorties (I/O) de type trois états :
O1 à On ou IO1 à Ion (8<n<15).
On peut trouver aussi :
• Une entrée d'horloge : (clock ou clk).
• Une entrée de validation des sorties trois états : OE (Output
Enable) ou Enable.
• Une entrée de remise à zéro des registres : RESET.
D'un point de vue fonctionnel un PAL est constitué d'une zone d'entrée de
fusibles ou matrice de programmation et une structure de sortie non
programmable déterminant le type du circuit.
12
Symbole
5.1 Différents types d'entrées / sorties :
On distingue 3 principes utilisés pour les sorties. Selon le modèle, un ou
plusieurs types de sorties peuvent être utilisés sur un même PAL.
5.1. 1 Entrées / Sorties combinatoires :
Ces sorties 3 états sont rebouclées vers la matrice de fusibles. Une sortie
peut donc servir de variable intermédiaire. En mode haute impédance (la
sortie étant inhibée), on peut utiliser une broche de sortie comme étant
une entrée. On parle alors d’entrée / sortie (I/O). Il existe trois types :
• H : (High) porte ET suivit d'une porte OU. Sortie active à l'état haut.
• L : (Low) porte ET suivit d'une porte NON OU. Sortie active à l'état
Bas.
• C : (Combinée) programmable en type H ou L.
13
5.1.2 Sorties à registres :
Ces sorties utilisent une bascule D qui permet la logique séquentielle mais elles
ne peuvent pas être utilisées comme entrées. Il existe trois types :
• R : Registre
• X : Ou exclusif et registre
14
• RA : Registre Asynchrone
5.1.3 Entrées / Sorties des PAL versatiles (VPAL) :
Le bloc de sortie des PAL versatiles permet de configurer (par programmation)
le mode d'utilisation de la broche de sortie.
15
5.2 Techniques de codage
C'est la manière utilisée pour établir ou détruire la connexion entre les
variables d'entrée et la matrice de programmation. Diverses techniques sont
utilisées :
• Fuse
• Anti-fuse.
• EPROM
• SRAM.
• E2PROM / FLASH
. Pour réaliser les fonctions logiques les PLD utilisent d'autres principes tel
que :
• Look Up Table (LUT) : la LUT permet de stoker la table de vérité de
la fonction combinatoire à implémenter dans la cellule.
• Multiplexeur.
16
6. Caractéristiques d'un PLD
Un circuit logique programmable est caractérisé par :
• Le nombre d'entrées
• Le nombre de sorties
• Le nombre de termes produits par sortie.
• Le retard de propagation (vitesse).
• La consommation de puissance.
• La technologie.
7. Programmation des PLD
Plusieurs solutions sont possibles pour programmer les PLD. Elles dépendent
essentiellement de l’outil de développement utilisé. Les phases de
programmation sont :
Saisie sur un logiciel de CAO (Abel, Warp, Palasm, …
• Représentation schématique,
• Equations logiques.
• Logigrammes.
• Programme VHDL.
Compilation pour la génération du fichier JEDEC (Joint Electron Device
Engineering Coucil). Le format international JEDEC est un standard de
programmation très répandu qui est accepté par la plupart des
programmateurs de PLD.
17
Insertion du circuit à programmer dans le programmateur.
Des outils de développement et de simulation tels que VIEWLOGIC (au
hasard !) disposent d’une bibliothèque de composants très étendue et
permettent de concevoir graphiquement des fonctions logiques qui peuvent
être exportés en fichiers JEDEC en fonction du PLD utilisé.
Les ispLSI de LATTICE peuvent se programmer directement sur la carte
électronique de l’application. On peut très bien imaginer qu’ils soient
reprogrammés par téléchargement alors qu’ils sont embarqués sur un satellite
18