69 / 167 ATC / 2e STE Lycée technique Acharif Al Idrissi - Safi J.
Temouden
PARTIE
2
1
70 / 167 ATC / 2e STE Lycée technique Acharif Al Idrissi - Safi [Link]
CIRCUITS LOGIQUES PROGRAMMABLES
Un circuit logique programmable PLD (Programmable Logic Device) est un composant logique disposant
d'entrées et de sorties dont on peut programmer le schéma selon la fonction souhaitée, combinatoire et/ou
séquentielle
Il apporte un gain dans la mesure où :
Un seul circuit peut remplacer plusieurs
La taille et le coût de la fonction implantée sont moindres
Architecture d'un PLD
Toute fonction logique peut être réalisée par seules les portes logiques fondamentales ET, OU et NON
Un PLD est bâti autour de ce concept
La plupart des PLD adoptent la structure suivante :
Une matrice d’opérateurs ET sur lesquels viennent se connecter les variables d’entrée
Une matrice d’opérateurs OU sur lesquels les sorties des opérateurs ET sont connectées.
Une éventuelle structure de sortie (Portes inverseuses, bascules...).
Cas d'un PLD à 2 entrées et 2 sorties combinatoires (structure très simplifiée, avant la programmation)
Représentation simplifiée
71 / 167 ATC / 2e STE Lycée technique Acharif Al Idrissi - Safi [Link]
Les fonctions programmées ci-contre sont :
Q0 = ab + ab
Q1 = ab + ab
Exercice
Générateur de parité à 3 entrées
S = 1 si le nombre de 1 à l’entrée est impair;
S = 0 sinon
Table de vérité
a b c S
0 0 0 …… Equation
0 0 1 ……
S = ……………………………….
0 1 0 ……
0 1 1 ……
1 0 0 ……
1 0 1 ……
1 1 0 ……
1 1 1 ……
Programmation du PLD
72 / 167 ATC / 2e STE Lycée technique Acharif Al Idrissi - Safi [Link]
Le GAL 22V10
Avec les évolutions techniques actuelles, les PLD sont de plus en plus rapides, à plus grand nombre d'E/S,
effaçables et reprogrammables; on trouve alors différents types de PLD : PAL, GAL, CPLD, FPGA…
24 23 22 21 20 19 18 17 16 15 14 13
1 2 3 4 5 6 7 8 9 10 11 12
La désignation 22V10 signifie que le composant dispose de 22 entrées possibles et 10 sorties possibles
Chaque broche output émane d’une cellule OLMC (Output Logic MacroCell) qui définit par programme la
configuration de la sortie : combinatoire ou séquentielle, normale ou complémentaire
Programmation des PLD: langage Abel
La programmation des PLD nécessite un programmateur, un microordinateur et un logiciel adapté
Souvent le logiciel offre la possibilité de décrire la fonction à réaliser :
Soit par schéma
Soit syntaxiquement moyennant un langage de programmation HDL : ABEL, VHDL ou VERILOG
Lorsqu'il est terminé, le fichier de description (schéma ou programme) doit être compilé pour être traduit en
format JEDEC, c'est un fichier contenant des 0 et des 1 signifiant les croisements de fils qui seront détruits et les
autres qui seront maintenus. C’est ce fichier JEDEC qui est transféré au PLD via le programmateur
Schéma Fichier Programmateur
Compilation JEDEC
ou langage HDL de PLD
Voici un exemple de programme Abel et le Jedec correspondant
module test QP24* QF5828* QV0* F0*
Declarations X0*
test device 'P22V10'; NOTE Table of pin names and numbers*
a,b pin 2,3; NOTE PINS a:2 b:3 s1:14 s2:15*
s1,s2 pin 14,15 istype 'com'; L4884 11111111111111111111111111111111111111111111*
Equations L4928 11110111011111111111111111111111111111111111*
s1 = a # b; L4972 11111011101111111111111111111111111111111111*
s2 = !a; L5368 11111111111111111111111111111111111111111111*
end test L5412 11111011011111111111111111111111111111111111*
L5456 11110111101111111111111111111111111111111111*
L5808 00000000000000001111*
C2097*
73 / 167 ATC / 2e STE Lycée technique Acharif Al Idrissi - Safi [Link]
Structure d'un programme ABEL
On y trouve :
La section d'entête MODULE, TITLE
La section des déclarations DECLARATIONS (DEVICE, E/S, bus…)
La section de description EQUATIONS, TRUTH_TABLE, STATE_DIAGRAM
La déclaration de fin du fichier END
Les déclarations
Pin : permet d’affecter une broche d’E/S à une variable
Exemples
e1, e2, A1 pin 2, 3, 4; : entrées affectées aux broches 2 ,3 et 4
d4 pin ; : entrée sans désignation de numéro de broche
s1 pin 12 istype 'com'; : sortie combinatoire associée à la broche 12
S0..S6 pin istype 'com'; : sorties combinatoires
S1 pin istype 'reg'; : sortie séquentielle
On peut déclarer des ensembles (bus) de variables
Exemples N = [D2, D1, D0] ; A = [b7..b0] ;
L’affectation N=5 entraîne D2=1 , D1 = 0 et D0 = 1
Les opérateurs
Opérateurs logiques Opérateurs relationnels Opérateurs arithmétiques
! : NON == Egal - négation ou soustraction
& : ET != Différent + Addition
# : OU < Inférieur * Multiplication
$ : OU exclusif <= Inférieur ou égal / Division
!$ : NON OU exclusif > Supérieur % Reste de la division
>= Supérieur ou égal
Instructions d’affectation et de test
S = a & !b # !a & b; affectation pour une sortie combinatoire (symbole = )
A0 := !D1 & A0 & !D7; affectation pour une sortie séquentielle (symbole := )
X = a<b X reçoit 1 si a<b et X reçoit 0 sinon
La structure conditionnelle WHEN (condition) THEN équation1 ; ELSE équation2 ;
Exemple when (E1 == 0) then S = a $ b ; else S = a !$ b ;
Les extensions
Les pins peuvent être suivis d’une extension leur associant une fonction particulière
.CLK : Entrée horloge .D : Entrée D d’une bascule D
.AR : Reset asynchrone .J : Entrée J d’une bascule JK
.OE : Output Enable .K : Entrée K d’une bascule JK
74 / 167 ATC / 2e STE Lycée technique Acharif Al Idrissi - Safi [Link]
r ..
h Declarations
Circuit
h, r pin ;
a, b, c, d pin istype ‘reg’;
S =[a, b, c, d];
a b c d Equations
Dans cet exemple, on déclare que [Link] = h ;
L'entrée h est l'horloge des bascules de sortie [Link] = r ;
L'entrée r effectue une mise à 0 asynchrone des sorties ..
Exercices
Additionneur 2 bits a b S R
0 0 …… ……
S = ………..…..…..
a S (Somme) 0 1 …… ……
Additionneur R = ………..…..…..
2 bits R (Retenue) 1 0 …… ……
b 1 1 …… ……
Description par la table de vérité Description par les équations logiques
MODULE additionneur MODULE additionneur
DECLARATIONS DECLARATIONS
additionneur DEVICE ‘P22V10’ ; additionneur DEVICE ‘P22V10’ ;
a, b PIN ; a, b PIN 4, 5 ;
S, R PIN ISTYPE 'COM' ; S, R PIN 15, 16 ISTYPE 'COM' ;
TRUTH_TABLE ( [ ……..….] ->[…….........] ) EQUATIONS
S = ………………………………
………………………………
……………………………… R = ………………………………
……………………………… END additionneur
………………………………
END additionneur
Comparateur 4 bits
S (entrée d’activation)
Sup = 1 si A>B
Inf = 1 si A<B A Sup
Egal = 1 si A=B Comparateur
Egal
B Inf
75 / 167 ATC / 2e STE Lycée technique Acharif Al Idrissi - Safi [Link]
module comparateur
Declarations
………………………………………….
………………………………………….
………………………………………….
………………………………………….
………………………………………….
Equations
………………………………………….
………………………………………….
………………………………………….
………………………………………….
End …………………
Chauffage électrique
Le système de chauffage est équipé d’un radiateur électrique à deux allures de chauffe, comportant deux
résistances R1 et R2 et un ventilateur V. Il est commandé par deux interrupteurs a et b.
Par action sur a seul, la résistance R1 seule est mise sous-tension.
Par action sur b seul ou sur a et b à la fois, les deux résistances et le ventilateur sont mis sous-tension.
module ………………
Declarations
V ………………………………………….
………………………………………….
R1 R2
………………………………………….
a b Truth_Table (………………………………)
…………………………………………
…………………………………………
…………………………………………
…………………………………………
End ……………….
76 / 167 ATC / 2e STE Lycée technique Acharif Al Idrissi - Safi [Link]
Compteur 4 bits avec mise à 0 asynchrone
module …………….
r (entrée de RAZ) Declarations
………………………………………….
H Compteur ………………………………………….
………………………………………….
………………………………………….
Q3 Q2 Q1 Q0
equations
………………………………………….
………………………………………….
………………………………………….
End ………………..
Chenillard à 4 LED
H
Au départ la Led d est allumé. L’appui sur le bouton m lance une séquences de
m
défilements vers la droite
d c b a
Le diagramme d'état est une Module chenillard
représentation symbolique de DECLARATIONS
l'enchaînement séquentiel des états de sortie chenillard device ‘P22V10’ ;
d'un système. …………………..
………………….
Le diagramme d’état suivant illustre le cycle
d’allumage désiré ………………….
EQUATIONS
………………….
m=0 STATE_DIAGRAM …………
m=1
State [1,0,0,0] : IF (m==1) THEN goto [0,1,0,0] ; else goto [1,0,0,0] ;
dcba= dcba=
1000 0100 ………………….
………………….
………………….
dcba=
dcba= 0010
0001 END chenillard