10 Exercices – Programmation des PLDs
Sciences d’Ingénieur – 2ème BAC STE
Exercice 1 : Porte logique de base
Programmer une GAL16V8 pour réaliser une fonction OU (OR) entre 2 entrées A et B.
1. Écrire le fichier CUPL complet
2. Donner la table de vérité correspondante
Solution :
Name PorteOU ;
PartNo 01 ;
Device g16v8 ;
/* Déclaration des broches */
Pin 1 = A ; /* Entrée A */
Pin 2 = B ; /* Entrée B */
Pin 12 = S ; /* Sortie */
/* Équation logique */
S = A # B ; /* OU logique */
A |
B |
S |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Exercice 2 : Fonction combinatoire
Implémenter dans une GAL la fonction S = (A ET B) OU (nonA ET C)
1. Écrire les équations CUPL
2. Donner le schéma logique équivalent
Solution :
/* Équations CUPL */
S = (A & B) # (!A & C) ;
Exercice 3 : Décodeur 2 vers 4
Réaliser un décodeur 2 vers 4 avec sorties actives à 1.
1. Donner les équations CUPL pour les 4 sorties
2. Compléter la table de vérité
Solution :
/* Équations CUPL */
S0 = !A & !B; /* 00 */
S1 = !A & B; /* 01 */
S2 = A & !B; /* 10 */
S3 = A & B; /* 11 */
A |
B |
S0 |
S1 |
S2 |
S3 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
Exercice 4 : Multiplexeur 4 vers 1
Implémenter un multiplexeur 4 vers 1 avec 2 bits de sélection (S1,S0).
1. Donner les équations CUPL pour la sortie Y
2. Expliquer le principe de fonctionnement
Solution :
/* Équation CUPL */
Y = (!S1 & !S0 & D0) #
(!S1 & S0 & D1) #
(S1 & !S0 & D2) #
(S1 & S0 & D3) ;
Principe : Les signaux S1 et S0 sélectionnent laquelle des 4 entrées (D0 à D3) est routée vers la sortie Y.
Exercice 5 : Bascules D
Programmer une GAL pour implémenter 2 bascules D avec reset asynchrone.
1. Écrire les équations CUPL
2. Dessiner le schéma logique
Solution :
/* Déclaration */
Pin 1 = CLK ;
Pin 2 = RST ;
Pin 3 = D1 ;
Pin 4 = D2 ;
Pin 12 = Q1 ;
Pin 13 = Q2 ;
/* Équations */
Q1.d = D1 & !RST ;
Q2.d = D2 & !RST ;
Q1.ck = CLK ;
Q2.ck = CLK ;
Exercice 6 : Compteur synchrone
Implémenter un compteur modulo 4 synchrone (0→1→2→3→0) dans une GAL.
1. Donner la table de transition
2. Écrire les équations CUPL
Solution :
1. Table de transition :
État |
Q1 |
Q0 |
État suivant |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
2 |
2 |
1 |
0 |
3 |
3 |
1 |
1 |
0 |
2. Équations CUPL :
Q1.d = (!Q1 & Q0) # (Q1 & !Q0);
Q0.d = !Q0;
Q1.ck = CLK;
Q0.ck = CLK;
Exercice 7 : Machine à états
Implémenter une machine à états avec 2 états (A/B) basculant sur front montant d’entrée X.
1. Dessiner le diagramme d’états
2. Donner les équations CUPL
Solution :
1. Diagramme d’états :
2. Équations CUPL :
/* Machine à 2 états */
S.d = (S & X) # (!S & X);
S.ck = CLK;
/* S=0 → état A, S=1 → état B */
Exercice 8 : Encodeur prioritaire
Réaliser un encodeur prioritaire 4 vers 2 (D3 priorité max).
1. Donner la table de vérité
2. Écrire les équations CUPL
Solution :
1. Table de vérité :
D3 |
D2 |
D1 |
D0 |
S1 |
S0 |
1 |
X |
X |
X |
1 |
1 |
0 |
1 |
X |
X |
1 |
0 |
0 |
0 |
1 |
X |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
2. Équations CUPL :
S1 = D3 # D2;
S0 = D3 # (!D2 & D1);
Exercice 9 : Comparateur 2 bits
Réaliser un comparateur 2 bits (A1A0 et B1B0) avec 3 sorties (A>B, A=B, A
1. Donner les équations logiques
2. Écrire le programme CUPL
Solution :
/* Équations */
A_gt_B = (A1 & !B1) #
(A1 & A0 & !B0) #
(A0 & !B1 & !B0);
A_eq_B = (!A1 & !A0 & !B1 & !B0) #
(!A1 & A0 & !B1 & B0) #
(A1 & !A0 & B1 & !B0) #
(A1 & A0 & B1 & B0);
A_lt_B = (!A1 & B1) #
(A0 & B1 & B0) #
(A1 & A0 & B0);
Exercice 10 : Système complet
Concevoir un système de feux tricolores avec :
– Entrées : Capteur véhicule (V), Horloge (CLK)
– Sorties : Rouge (R), Jaune (J), Vert (G)
1. Dessiner le diagramme d’états
2. Écrire le programme CUPL
Solution :
1. Diagramme d’états :
2. Programme CUPL :
/* Déclaration */
Pin 1 = CLK ;
Pin 2 = V ;
Pin 12 = R ;
Pin 13 = J ;
Pin 14 = G ;
/* Machine à états */
S0.d = (S0 & !V) # (S1 & !V) # (S2 & !V);
S1.d = (S0 & V) # (S2 & V);
S2.d = S1;
S0.ck = CLK;
S1.ck = CLK;
S2.ck = CLK;
/* Sorties */
R = S0;
G = S1;
J = S2;