0% ont trouvé ce document utile (0 vote)
34 vues7 pages

0 Youness PLD Activites Cor

Le document présente des modules de programmation pour des circuits logiques programmables (PLD), incluant un comparateur binaire 4 bits, un multiplexeur 4 bits, et un démultiplexeur 4 bits, avec des équations et des vecteurs de test. Il décrit également un décodeur BCD pour un affichage 7 segments, en utilisant des tables de vérité. Chaque module est défini par des déclarations, des équations et des tests pour valider leur fonctionnement.

Transféré par

faroukech01
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
34 vues7 pages

0 Youness PLD Activites Cor

Le document présente des modules de programmation pour des circuits logiques programmables (PLD), incluant un comparateur binaire 4 bits, un multiplexeur 4 bits, et un démultiplexeur 4 bits, avec des équations et des vecteurs de test. Il décrit également un décodeur BCD pour un affichage 7 segments, en utilisant des tables de vérité. Chaque module est défini par des déclarations, des équations et des tests pour valider leur fonctionnement.

Transféré par

faroukech01
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 7

‫الصفحة‬ Préparation BAC : Juin 2025 Fonction : Traiter l'information YOUNESS

1
7 Sciences de l'ingénieur : ATC PLD : Circuits Logiques Programmables 06.78.26.25.20

PROGRAMMATION DES PLD

1- Comparateur binaire 4 bits :

Description par équations :

MODULE comparateur
TITLE 'comparateur logique 4 bits'
DECLARATIONS
Comparateur device ‘P16V8’; // PLD à programmer
B3, B2, B1, B0 pin 9, 8, 7, 6 ; // Variables d'entrée
A3, A2, A1, A0 pin 5, 4, 3, 2 ; // Variables d'entrée
A = [A3, A2, A1, A0] ; // Définition du bus A
B = [B3, B2, B1, B0] ; // Définition du bus B
S, I, E pin 15, 16, 17 istype 'com, buffer '; // Variables de sortie
EQUATIONS
S=A>B ; Utilisation de When …. Then ….
E=A==B ;
I=A<B ; EQUATIONS
TEST_VECTORS ([A, B] -> [S, E, I]); When A > B then S = 1 ;
[5, 5] -> [0, 1, 0]; When A = = Bthen E = 1 ;
[9, 12] -> [0, 0, 1]; When A < B then I =1 ;
[7, 6] -> [1, 0, 0];
END

2- Multiplexeur 4 bits :

Description par équations :

A- Solution 1 :

MODULE Multiplexeur
TITLE ‘Multiplexeur 4 bits'
DECLARATIONS
Multiplexeur device ‘P16V8’; // PLD à programmer
E3, E2, E1, E0 pin 9, 8, 7, 6 ; // Variables d'entrée
A1, A0 pin 5, 4; // Variables d'entrée
S pin 16 istype 'com, buffer '; // Variables de sortie
EQUATIONS
S = E3 & A1 & A0 # E2 & A1 &! A0 # E1 &! A1 & A0 # E0 &! A1 &! A0 ;
TEST_VECTORS ([E3, E2, E1, E0, A1, A0] -> [S]);
[0, 0, 0, 0, 0, 0] -> [0];
[0, 0, 0, 1, 0, 0] -> [1];
[0, 0, 0, 0, 0, 1] -> [0];
[0, 0, 1, 0, 0, 1] -> [1];
[0, 0, 0, 0, 1, 0] -> [0];
[0, 1, 0, 0, 1, 0] -> [1];
[0, 0, 0, 0, 1, 1] -> [0];
[1, 0, 0, 0, 1, 1] -> [1];
END
‫الصفحة‬ Préparation BAC : Juin 2025 Fonction : Traiter l'information YOUNESS
2
7 Sciences de l'ingénieur : ATC PLD : Circuits Logiques Programmables 06.78.26.25.20

B- Solution 2 :

MODULE Multiplexeur
TITLE ‘Multiplexeur 4 bits'
DECLARATIONS
Multiplexeur device ‘P16V8’; // PLD à programmer
E3, E2, E1, E0, A1, A0 pin 9, 8, 7, 6, 5, 4 ; // Variables d'entrée
A = [A1, A0] ; // Définition du bus A
E = [E3, E2, E1, E0] ; // Définition du bus E
S pin 16 istype 'com, buffer '; // Variables de sortie
EQUATIONS
When A = [0, 0] then S = E0; // ou When A = 0 then S= E0;
When A = [0, 1] then S = E1; // ou When A = 1 then S= E1;
When A = [1, 0] then S = E2; // ou When A = 2 then S= E2;
When A = [1, 1] then S = E3; // ou When A = 3 then S= E3;
TEST_VECTORS ([E3, E2, E1, E0, A1, A0] -> [S]); // ou ([E, A] -> [S]);
[0, 0, 0, 0, 0, 0] -> [0]; // ou [0, 0] -> [0];
[0, 0, 0, 1, 0, 0] -> [1]; // ou [1, 0] -> [1];
[0, 0, 0, 0, 0, 1] -> [0]; // ou [0, 1] -> [0];
[0, 0, 1, 0, 0, 1] -> [1]; // ou [2, 1] -> [1];
[0, 0, 0, 0, 1, 0] -> [0]; // ou [0, 2] -> [0];
[0, 1, 0, 0, 1, 0] -> [1]; // ou [4, 2] -> [1];
[0, 0, 0, 0, 1, 1] -> [0]; // ou [0, 3] -> [0];
[1, 0, 0, 0, 1, 1] -> [1]; // ou [8, 3] -> [1];
END
3- Démultiplexeur 4 bits :
3.1- Description par équations :
A- Solution 1 :
MODULE Demultiplexeur
TITLE ‘Démultiplexeur 4 bits'
DECLARATIONS
Demultiplexeur device ‘P16V8’; // PLD à programmer
E, G, A1, A0 pin 7, 6, 5, 4; // Variables d'entrée
S3, S2, S1, S0 pin 12, 13, 14, 15 istype 'com, buffer '; // Variables de sortie
EQUATIONS
S3 = E & A1 & A0 &! G;
S2 = E & A1 &! A0 &! G;
S1 = E &! A1 & A0 &! G;
S0 = E &! A1 &! A0 &! G;
TEST_VECTORS ([G, E, A1, A0] -> [S3, S2, S1, S0]);
[1,.X.,.X.,.X.] -> [0, 0, 0, 0];
[0, 0, 0, 0] -> [0, 0, 0, 0];
[0, 1, 0, 0] -> [0, 0, 0, 1];
[0, 0, 0, 1] -> [0, 0, 0, 0];
[0, 1, 0, 1] -> [0, 0, 1, 0];
[0, 0, 1, 0] -> [0, 0, 0, 0];
[0, 1, 1, 0] -> [0, 1, 0, 0];
[0, 0, 1, 1] -> [0, 0, 0, 0];
[0, 1, 1, 1] -> [1, 0, 0, 0];
END
‫الصفحة‬ Préparation BAC : Juin 2025 Fonction : Traiter l'information YOUNESS
3 Sciences de l'ingénieur : ATC PLD : Circuits Logiques Programmables 06.78.26.25.20
7
B- Solution 2 :
MODULE Demultiplexeur
TITLE ‘Demultiplexeur 4 bits'
DECLARATIONS
Demultiplexeur device ‘P16V8’; // PLD à programmer
E, G, A1, A0 pin 7, 6, 5, 4; // Variables d'entrée
S3, S2, S1, S0 pin 12, 13, 14, 15 istype 'com, buffer '; // Variables de sortie
A = [A1, A0] ; // Définition du bus A
S = [S3, S2, S1, S0] ; // Définition du bus S
EQUATIONS
When (G == 0) & (A == 0) then S0 = E;
When (G == 0) & (A == 1) then S1 = E;
When (G == 0) & (A == 2) then S2 = E;
When (G == 0) & (A == 3) then S3 = E;
TEST_VECTORS ([G, E, A] -> [S]);
[1,.X.,.X.] -> [0];
[0, 0, 0] -> [0];
[0, 1, 0] -> [1];
[0, 0, 1] -> [0];
[0, 1, 1] -> [2];
[0, 0, 2] -> [0];
[0, 1, 2] -> [4];
[0, 0, 3] -> [0];
[0, 1, 3] -> [8];
END
3.2- Description par table de vérité :
MODULE Demultiplexeur
TITLE ‘Demultiplexeur 4 bits'
DECLARATIONS
Demultiplexeur device ‘P16V8’; // PLD à programmer
E, G, A1, A0 pin 7, 6, 5, 4; // Variables d'entrée
S3, S2, S1, S0 pin 12, 13, 14, 15 istype 'com, buffer '; // Variables de sortie
TRUTH_TABLE ([G, E, A1, A0] -> [S3, S2, S1, S0]);
[1,.X.,.X.,.X.] -> [0, 0, 0, 0];
[0, 0, 0, 0] -> [0, 0, 0, 0]; Autre solution
[0, 0, 0, 1] -> [0, 0, 0, 0]; ([G, A1, A0] -> [S3, S2, S1, S0]);
[0, 0, 1, 0] -> [0, 0, 0, 0]; [1,.X.,.X.] -> [0, 0, 0, 0];
[0, 0, 1, 1] -> [0, 0, 0, 0]; [0, 0, 0] -> [0, 0, 0, E];
[0, 1, 0, 0] -> [0, 0, 0, 1]; [0, 0, 1] -> [0, 0, E, 0];
[0, 1, 0, 1] -> [0, 0, 1, 0]; [0, 1, 0] -> [0, E, 0, 0];
[0, 1, 1, 0] -> [0, 1, 0, 0]; [0, 1, 1] -> [E, 0, 0, 0];
[0, 1, 1, 1] -> [1, 0, 0, 0];
TEST_VECTORS ([G, E, A1, A0] -> [S3, S2, S1, S0]);
[1,.X.,.X.,.X.] -> [0, 0, 0, 0];
[0, 0, 0, 0] -> [0, 0, 0, 0];
[0, 0, 0, 1] -> [0, 0, 0, 0];
[0, 0, 1, 0] -> [0, 0, 0, 0];
[0, 0, 1, 1] -> [0, 0, 0, 0];
[0, 1, 0, 0] -> [0, 0, 0, 1];
[0, 1, 0, 1] -> [0, 0, 1, 0];
[0, 1, 1, 0] -> [0, 1, 0, 0];
[0, 1, 1, 1] -> [1, 0, 0, 0];
END
‫الصفحة‬ Préparation BAC : Juin 2025 Fonction : Traiter l'information YOUNESS
4 Sciences de l'ingénieur : ATC PLD : Circuits Logiques Programmables 06.78.26.25.20
7
4- Décodeur BCD 7 segments :

Description par table de vérité :

MODULE BCD
TITLE ‘Décodeur BCD 7 segments '
DECLARATIONS
BCD device ‘P16V8; // PLD à programmer
A, B, C, D pin 2, 3, 4, 5 ; // Variables d'entrée
a, b, c, d, e, f, g pin 18, 17, 16, 15, 14, 13, 12; // Variables sortie
N = [D, C, B, A] ; // Définition du bus N
TRUTH_TABLE (N -> [a, b, c, d, e, f, g])
0 -> [1, 1, 1, 1, 1, 1, 0] ; // affichage du 0 dans le cas
1 -> [0, 1, 1, 0, 0, 0, 0] ; // d’un afficheur cathode commune
2 -> [1, 1, 0, 1, 1, 0, 1] ;
3 -> [1, 1, 1, 1, 0, 0, 1] ;
4 -> [0, 1, 1, 0, 0, 1, 1] ;
5 -> [1, 0, 1, 1, 0, 1, 1] ;
6 -> [1, 0, 1, 1, 1, 1, 1] ;
7 -> [1, 1, 1, 0, 0, 0, 0] ;
8 -> [1, 1, 1, 1, 1, 1, 1] ;
9 -> [1, 1, 1, 1, 0, 1, 1] ;
TEST_VECTORS (N -> [a, b, c, d, e, f, g])
0 -> [1, 1, 1, 1, 1, 1, 0] ;
1 -> [0, 1, 1, 0, 0, 0, 0] ;
2 -> [1, 1, 0, 1, 1, 0, 1] ;
3 -> [1, 1, 1, 1, 0, 0, 1] ;
4 -> [0, 1, 1, 0, 0, 1, 1] ;
5 -> [1, 0, 1, 1, 0, 1, 1] ;
6 -> [1, 0, 1, 1, 1, 1, 1] ;
7 -> [1, 1, 1, 0, 0, 0, 0] ;
8 -> [1, 1, 1, 1, 1, 1, 1] ;
9 -> [1, 1, 1, 1, 0, 1, 1] ;
END

5- Compteur modulo 4 :
5.1- Description par diagramme d’état :

MODULE Compteur
TITLE ‘Compteur modulo 4'
DECLARATIONS
Compteur device ‘P16V8’ ; // PLD à programmer
H, R pin 1, 2 ; // Variables d'entrée
Q0, Q1 pin 15, 14 Istype 'reg, buffer '; // Variables de sortie
EQUATIONS
[Q1, Q0].clk = H ;
[Q1, Q0].AR = ! R;
QSTATE = [Q1, Q0] ;
A = [0, 0] ;
B = [0, 1] ;
C = [1, 0];
D = [1, 1];
‫الصفحة‬ Préparation BAC : Juin 2025 Fonction : Traiter l'information YOUNESS
5 Sciences de l'ingénieur : ATC PLD : Circuits Logiques Programmables 06.78.26.25.20
7

STATE_DIAGRAM QSTATE
State A: GOTO B;
State B: GOTO C;
State C: GOTO D;
State D: GOTO A;
TEST_VECTORS ([R, H,] -> [Q1, Q0])
[0, .X.] -> [0, 0] ;
[1, . C.] -> [0, 1] ;
[1, . C.] -> [1, 0] ;
[1, . C.] -> [1, 1] ;
[1, . C.] -> [0, 0] ;
END

5.2- Description par équation :

MODULE Compteur
TITLE ‘Compteur modulo 4'
DECLARATIONS
Compteur device ‘P16V8’ ; // PLD à programmer
H, R pin 1, 2 ; // Variables d'entrée
Q0, Q1 pin 15, 14 Istype 'reg, buffer '; // Variables de sortie
Q = [Q1,Q0] ; // Définition du bus Q
EQUATIONS
Q.clk = H ;
Q.AR = ! R;
When R == 0 then Q := 0 ELSE Q := Q + 1 ;

TEST_VECTORS ([R, H,] -> [Q1, Q0])


[0, .X.] -> [0, 0] ;
[1, . C.] -> [0, 1] ;
[1, . C.] -> [1, 0] ;
[1, . C.] -> [1, 1] ;
[1, . C.] -> [0, 0] ;
END

5.3- Description par Table de vérité :


MODULE Compteur
TITLE ‘Compteur modulo 4'
Compteur device ‘P16V8’
DECLARATIONS
Compteur device ‘P16V8’ ; // PLD à programmer
H, R pin 1, 2 ; // Variables d'entrée
Q0, Q1 pin 15, 14 Istype 'reg, buffer '; // Variables de sortie
EQUATIONS
[Q1, Q0].clk = H ;
[Q1, Q0].AR = ! R;
TEST_VECTORS ([R, H,] :> [Q1, Q0])
[0, .X.] :> [0, 0] ;
[1, . C.] :> [0, 1] ;
[1, . C.] :> [1, 0] ;
[1, . C.] :> [1, 1] ;
[1, . C.] :> [0, 0] ;
‫الصفحة‬ Préparation BAC : Juin 2025 Fonction : Traiter l'information YOUNESS
6 Sciences de l'ingénieur : ATC PLD : Circuits Logiques Programmables 06.78.26.25.20
7

Méthode 2 :
TEST_VECTORS ([R, H,] -> [Q1, Q0])
[0, .X.] -> [0, 0] ;
[1, . C.] -> [0, 1] ;
[1, . C.] -> [1, 0] ;
[1, . C.] -> [1, 1] ;
[1, . C.] -> [0, 0] ;
END

6- Compteur modulo 5 réversible :

6.1- Description par diagramme d’état :

MODULE Compteur_reversible
TITLE ‘Compteur modulo 5'
DECLARATIONS
Compteur device ‘P16V8’ ; // PLD à programmer
H, R, Y pin 1, 2, 3 ; // Variables d'entrée
Q0, Q1, Q2 pin 14, 15, 16 Istype 'reg, buffer '; // Variables sortie
EQUATIONS
[Q2, Q1, Q0].clk = H ;
[Q2, Q1, Q0].AR = ! R;
QSTATE = [Q2, Q1, Q0];
A = [0, 0, 0];
B = [0, 0, 1];
C = [0, 1, 0];
D = [0, 1, 1];
E = [0, 1, 1];
STATE_DIAGRAM QSTATE
State A: When Y = = 1 Then B Else E;
State B: When Y = = 1 Then C Else A;
State C: When Y = = 1 Then D Else B;
State D: When Y = = 1 Then E Else C;
State E: When Y = = 1 Then A Else D;
TEST_VECTORS ([R, H, Y] -> [Q2, Q1, Q0])
[0, .X., .X.] -> [0, 0, 0] ;
[1, .C., 1] -> [0, 0, 1] ;
[1, .C., 1] -> [0, 1, 0] ;
[1, .C., 1] -> [0, 1, 1] ;
[1, .C., 1] -> [1, 0, 0] ;
[1, .C., 1] -> [0, 0, 0] ;
[1, .C., 0] -> [1, 0, 0] ;
[1, .C., 0] -> [0, 1, 1] ;
[1, .C., 0] -> [0, 1, 0] ;
[1, .C., 0] -> [0, 0, 1] ;
[1, .C., 0] -> [0, 0, 0] ;
END
‫الصفحة‬ Préparation BAC : Juin 2025 Fonction : Traiter l'information YOUNESS
7 Sciences de l'ingénieur : ATC PLD : Circuits Logiques Programmables 06.78.26.25.20
7

6.2- Description par table de vérité :

MODULE Compteur_reversible
TITLE ‘Compteur modulo 5'
DECLARATIONS
Compteur device ‘P16V8’ ; // PLD à programmer
H, R, Y pin 1, 2, 3 ; // Variables d'entrée
Q0, Q1, Q2 pin 14, 15, 16 Istype 'reg, buffer '; // Variables sortie
EQUATIONS
[Q2, Q1, Q0].clk = H ;
[Q2, Q1, Q0].AR = ! R;
TRUTH_TABLE ([R, Y, Q2, Q1, Q0] :> [Q2, Q1, Q0])
[0, .X., .X., .X., .X.] :> [0, 0, 0] ;
[1, 1, 0, 0, 0] :> [0, 0, 1] ;
[1, 1, 0, 0, 1] :> [0, 1, 0] ;
[1, 1, 0, 1, 0] :> [0, 1, 1] ;
[1, 1, 0, 1, 1] :> [1, 0, 0] ;
[1, 1, 1, 0, 0] :> [0, 0, 0] ;
[1, 0, 0, 0, 0] :> [1, 0, 0] ;
[1, 0, 1, 0, 0] :> [0, 1, 1] ;
[1, 0, 0, 1, 1] :> [0, 1, 0] ;
[1, 0, 0, 1, 0] :> [0, 0, 1] ;
[1, 0, 0, 0, 1] :> [0, 0, 0] ;
TEST_VECTORS ([R, H, Y] -> [Q2, Q1, Q0])
[0, .X., .X.] -> [0, 0, 0] ;
[1, . C., 1] -> [0, 0, 1] ;
[1, . C., 1] -> [0, 1, 0] ;
[1, . C., 1] -> [0, 1, 1] ;
[1, . C., 1] -> [1, 0, 0] ;
[1, . C., 1] -> [0, 0, 0] ;
[1, . C., 0] -> [1, 0, 0] ;
[1, . C., 0] -> [0, 1, 1] ;
[1, . C., 0] -> [0, 1, 0] ;
[1, . C., 0] -> [0, 0, 1] ;
[1, . C., 0] -> [0, 0, 0] ;
END

6.3- Description par équation :

MODULE Compteur_reversible
TITLE ‘Compteur modulo 5'
DECLARATIONS
Compteur device ‘P16V8’ ; // PLD à programmer
H, R, Y pin 1, 2, 3 ; // Variables d'entrée
Q0, Q1, Q2 pin 14, 15, 16 Istype 'reg, buffer '; // Variables sortie
Q = [Q2, Q1, Q0] ; // Définition du bus Q
EQUATIONS
Q.clk = H ;
Q.AR = ! R;
When R == 0 then Q := 0 Else When H == 1 then Q := Q + 1
Else Q := Q – 1 ;
When Q > 4 then Q := 0 ;
END

Vous aimerez peut-être aussi