Vous êtes sur la page 1sur 8

Chapitre N°1

Circuits logiques programmables


Introduction :

Après la naissance des circuits intégrés, 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 Device) dans les années 1970. Ce type
de produit peut intégrer dans un seul circuit plusieurs fonctions logiques programmables par
l’utilisateur. Sa mise en œuvre se fait très facilement à l’aide d’un programmateur, d’un
micro-ordinateur et d’un logiciel adapté.

Structure de base d’un PLD :


Les PLD simples comportent les blocs suivants :
 Bloc d’entrée,
 Une partie combinatoire constituée d’une ET et d’une matrice OU,
 Un bloc de sortie,
 Un bloc d’entrée-sortie.
Les PLD simples peuvent être représentés par le schéma suivant :

 Un ensemble d’opérateurs « ET » sur lesquels viennent se connecter les variables


d’entrée et leurs compléments.


 
 Un ensemble d’opérateurs « OU » sur lesquels les sorties des opérateurs « ET » sont
connectées.
 Une éventuelle structure de sortie (Portes inverseuses, logique 3 états, registres...).

Les deux premiers ensembles forment chacun ce qu’on appelle une matrice. Les
interconnexions de ces matrices doivent être programmables. C’est la raison pour laquelle
elles sont assurées par des fusibles qui sont « grillés » lors de la programmation. Lorsqu’un
PLD est vierge toutes les connexions sont assurées.

Avantages des PLD :

 un seul circuit peut remplacer à lui seul l’équivalent de plusieurs circuits logiques de
bases (fonctions logiques, multiplexeurs, décodeurs) ;
 le câblage est simplifié, l’encombrement et le risque de pannes est réduit ;
 les composants sont de faible coût car produits en grand nombre ;
 la fonction logique réalisée peut être modifiée par programmation sans qu’il soit
nécessaire de redessiner un nouveau circuit imprimé ;
 certains PLD ne permettent pas la relecture de la fonction logique programmée, c’est
pratique lorsque le programme doit rester confidentiel.

Inconvénients :

 la phase de programmation exige des logiciels et du matériel compatibles avec le


composant à programmer ;
 la phase de programmation exige des compétences supplémentaires ;
 certains PLD ne sont programmables qu’une seule fois, ce qui peut être gênant en
phase de développement.


 
Les différentes familles de PLD :
Il existe plusieurs familles de PLD qui sont différenciées par leur structure interne. Le tableau
suivant présente certaines de ces familles.
Type Nombre de portes Matrice ET Matrice Ou Effaçable
intégrés
PROM 2000 à 500 000 Fixe Programmable Non
PAL 10 à 100 Programmable Fixe Non
GAL 10 à 100 Programmable Fixe Electriquement
EPLD 100 à 300 Programmable Fixe Aux U-V
FPLA 2000 à 3000 Programmable Programmable Electriquement

Exemple :

Figure 3 : Structure de base avec les normes Figure 4 : PLD programmé


des constructeurs

La figure 3 représente la structure interne d’un PLD ayant ses fusibles intacts. Les équations
logiques de 𝑄 et 𝑄 sont 𝑄 𝑄 𝑎. 𝑏. 𝑎. 𝑏 𝑎. 𝑏. 𝑎. 𝑏 𝑎. 𝑏. 𝑎. 𝑏 𝑎. 𝑏. 𝑎. 𝑏
Si on veut obtenir les fonctions 𝑄 𝑎. 𝑏 𝑎. 𝑏 et 𝑄 𝑎. 𝑏 𝑎. 𝑏 , on « grillera » des
fusibles de façon à obtenir le schéma de la figure 4.
Les « PALs » (Programmable Array Logic) :

Présentation :

Ce sont les premiers circuits programmables à être utilisés pour réaliser des fonctions
logiques. Le constructeur AMD a développé ce type de circuit à la fin des années 1970. Ils


 
possèdent des matrices « ET » programmables et des matrices « OU » fixes. La fusion des
fusibles est obtenue en appliquant à leurs bornes une tension de 11,5 V pendant 10 à 50 μS
(leur tension de fonctionnement est environ de 5V). Cette opération est bien sûr effectuée en
utilisant un programmateur adapté.
Les PAL

Ce sont les circuits logiques programmables les plus anciens. Les PAL sont programmés par
destruction de fusibles. Ils ne sont donc programmables qu’une fois, ce qui peut être gênant
en phase de développement. Un PAL permet de remplacer jusqu’à 10 boîtiers SSI ou 2 à 3
boîtiers MSI.

Principe d’un PAL :

Ce PAL simplifié comporte 2 entrées I1 et I2 et une sortie O. Huit fusibles (F1 à F8) permettent
de réaliser diverses fonctions logiques. La programmation va consister à faire sauter les
fusibles nécessaires afin de réaliser la fonction voulue.

Convention de représentation : La représentation simplifiée ne montre pas tous les fusibles,


les entrées de la porte ET sont regroupées sur une seule ligne. Une croix représente un
fusible intact.

Les GALs (Generic Array Logic) :


 
Présentation :
L’inconvénient majeur des PALs est qu’ils ne sont programmables qu’une seule fois. Ceci
impose un gaspillage important de ces circuits lorsqu’on veut développer un nouveau produit.
La firme LATTICE a donc pensé, à remplacer les fusibles irréversibles des PALs par des
transistors MOS FET pouvant être régénérés.
Ceci a donc donné naissance aux GALs que l’on pourrait traduire par « Réseau logique
Générique ». Ces circuits peuvent être reprogrammés à volonté sans pour autant avoir une
durée de vie restreinte. On peut aussi noter que dans leur structure interne les GALs sont
constitués de transistor CMOS alors que les PALs classiques sont constitués de transistors
bipolaires. La consommation des GALs est par conséquent beaucoup plus faible.
Depuis d’autres constructeurs fabriquent ce type de produit en les appelant « PAL CMOS ».
Par soucis de remplacer les PALs, LATTICE a équipé la plupart de ses GALs de macro-
cellules programmables permettant d’émuler n’importe quel PAL. Ces structures de sortie
sont donc du type « Versatile » (V).
Protection contre la duplication :
Les GAL sont dotés d’un bit de sécurité qui peut être activé lors de la programmation
empêchant ainsi toute lecture du contenu du circuit. Ce bit est remis à zéro seulement en
effaçant complètement le GAL.
Il est aussi constitué d’un ensemble de huit octets, appelé signature électronique, pouvant
contenir des informations diverses sur le produit.
Référence des GAL :

Tableau résumant les différents types de GAL :

Référence Nombre de Vitesse (ns) Consommation


Broches (mA)
GAL 16V8 20 10,15 ou 20 55 ou 115
GAL 18V10 20 15 ou 20 115


 
GAL 20V8 24 10, 15 ou 25 55 ou 115
GAL 20RA10 24 15 ou 20 115
GAL 22V10 24 15, 20 ou 25 130
GAL 26V12 28 15 ou 20 130
GAL 6001 24 30 ou 35 150
ispGAL 16Z8 24 20 ou 25 90

Les circuits logiques programmables (également appelés PLD) 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 fonction
logique programmée, c’est pratique lorsque le programme doit rester confidentiel.

Les outils de développements.


Ils sont composés en général de deux outils:
1. Le système de développement.
2. 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.
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 ET, OU, NON, …
bascules, compteurs, registres à décalages).
 En utilisant un langage de description comportementale H.D.L. (Hardware
Description Language). Les plus anciens sont PALASM, ORCAD/PLD et le plus
connu et utilisé est sans conteste ABEL (utilisé par la plus part des systèmes de
développements). Enfin les langages dit de haut niveau, VHDL (Very high speed
Hardware Description Language) et VERILOG sont en général utilisés pour des
circuits complexes. Le langage VHDL est très utilisé en Europe


 
Le programmateur :
Il permet de:
 Vérifier la virginité du circuit.
 Lire le fichier au format JEDEC.
 Programmer le circuit.
 Vérifier la programmation.
Il se présente souvent par une carte à insérer dans le PC reliée à un support de programmation
et d'un logiciel permettant le dialogue entre lui et l'utilisateur.
Programmation des PLDs :
La programmation des PLDs nécessite un logiciel adapté pour le développement du
programme et un programmateur permettant de « griller » le circuit. En outre il est conseillé
de suivre la démarche décrite par l’organigramme suivant :
Outils.
En raison de la complexité des circuits, il est très rapidement devenu impossible de définir
manuellement les matrices des fusibles. Des outils se sont donc développés. En premier lieu,
il est possible de réaliser des logigrammes, mais cette solution est assez limitante et il est
généralement préférable d’utiliser un langage de programmation de type « HDL » (Hardware
Description Language) qui permet notamment de saisir des équations logiques ou des tables
de vérités. Pour les systèmes séquentiels, des « machines d’états » peuvent être réalisées. Le
plus connu est le langage ABEL. Dans le cas de systèmes et circuits plus complexe, il est
préférable d’utiliser le VHDL (Very high speed Hardware Description Language), qui permet
de plus de traiter des fonctions analogiques.


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


 

Vous aimerez peut-être aussi