TD Composantsl Logiques Programmables
TD Composantsl Logiques Programmables
TD Composantsl Logiques Programmables
: 2021/2022
Travaux dirigés
Composants logiques programmables –langage de description de matériel
VHDL
Hanane
Abd Hamid
Partie 1 : description comportementale et structurelle des circuits logiques combinatoires
1. Table de vérité
ENTRE SORTIES
ES
A B C S R
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
2. Fonction
3. Schéma
4. Code VHDL
Library ieee ;
Use ieee.std-logic-
is begin
Enteés Sortie
Ci=1
Ci=0
B1 B0 A1 A0 CY S1 S0 CY S1 S0
0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 0 1 0
0 0 1 0 0 1 0 0 1 1
0 0 1 1 0 1 1 1 0 0
0 1 0 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 1
0 1 1 0 0 1 1 1 0 0
0 1 1 1 1 0 0 1 0 1
1 0 0 0 0 1 0 0 1 1
1 0 0 1 0 1 1 1 0 0
1 0 1 0 1 0 0 1 1 0
1 0 1 1 1 0 1 1 1 0
1 1 0 0 0 1 1 1 0 0
1 1 0 1 1 0 0 1 0 1
1 1 1 0 1 0 1 1 1 0
1 1 1 1 1 1 0 1 1 1
2. Function
3. Schema
4.Code VHDL
Library ieee;
Use ieee.std_logique_1164.all
Use ieee.std_logic_arith.all
Use ieee.std_logic_unsigned.all
Entity full_add is
Port(a:instd_logic_vector(1down to 0);
COMPONENT add2
b:in std_logic;
ci:instd_logic;
s:out std_logic;
co:outstd_logic);
End COMPONANT ;
signal c_sig:std_logic;
begin
a=>a(0),
b=>b(0),
s=>s(0),
ci=>’0’,
co=>c_sig
);
a=>a(1),
b=>b(1),
s=>s(1),
ci=>c_sig,
co=>cy
);
end Behavioral
1.Table de vérité
ENTREES : SORTIES :
A B S I E
0 0 0 0 1
0 1 0 1 0
1 0 1 0 0
1 1 0 0 1
2. Fonction
3. Schéma
4.Code VHDL
Library ieee ;
E <= A xnor B ;
end COMPARATEURRR ;
1. Table de vérité
A1 A0 S v
0 0 E0 0
0 1 E1 0
1 0 E2 0
1 1 E3 0
X X 0 1
2. Fonction
3. Schéma
4.Code VHDL
Library ieee ;
ieee.std-logic-osith.all ; Use
ieee.std-logic-Ansigned.all ;
Entity MULTIPLEXEUR is
S : out .std-logic ) ;
end MULTIPLIXEUR ;
begin
begin
VN <= Not V
E1 When A« 01 » else ;
E2When A « 10 » Else;
end MULTIPLEXEURRR;
Multiplexeur 4 vers 2 bit chacun
1. Table de vérité
Entrées Sorties
Adresse Vali Donneespoidsfaible Vali Donneespoidsfort MS LS
d d B B
A1 AO V0 E30 E20 E10 E00 V1 E31 E21 E11 E01 S1 so
X X 1 X X X X X X X X X 0 0
X X X X X X X 1 X X X X 0 0
0 0 0 X X X 0 0 X X X 0 0 0
0 0 0 X X X 1 0 X X X 1 1 1
0 1 0 X X 0 X 0 X X 0 X 0 0
0 1 0 X X 1 X 0 X X 1 X 1 1
1 0 0 X 0 X X 0 X 0 X X 0 0
1 0 0 X 1 X X 0 X 1 X X 1 1
1 1 0 0 X X X 0 0 X X 0 0 0
1 1 0 1 X X X 0 1 X X 1 1 1
2. Fonction
S0=V 0(E00* A 1* A 0+E10* A 1*A0+E20*A1* A 0+E30*A1*A0)
Use ieee.std_logic_1164.all;
entity mux4to1_2bits is
port (E00, E01, E10, E11, E20, E21, E30, E31, V0, V1:in std_logic;
endmux4to1;
begin
end arch_mux4to1_2bits;
Démultiplexeur 1 vers 4
1. Table de vérité
A1 A2 S0 S1 S2 S3 V
0 0 E 0 0 0 0
0 1 0 E 0 0 0
1 0 0 0 E 0 0
1 1 0 0 0 E 0
X X 0 0 0 0 1
2 .Fonction
3.Shéma
4. Code VHDL
Library ieee ;
Entity DEMULTIPLEXEUR is
end DEMULTIPLEXEUR ;
begin
begin
= E ; else S3 <= E ;
end if ;
end process ;
Encodeur 1 vers 2
1. Table vérité
ENTREES SORTIES
A0 A1 A2 A3 S0 S1
0 0 0 0 0 0
1 X X X 0 0
0 1 X X 0 1
0 0 1 X 1 0
0 0 0 1 1 1
2. Fonction
3.shé
ma
4. Code VHDL
Library ieee ;
entity ENCODEUR is
end ENCODEUR ;
begin
process (A) is
begin
case A is
when
“1000”=>S<=”00”;
when
“0100”=>S<=”01”;
when
“0010”=>S<=”10”;
when
“0001”=>S<=”11”;
when others”=>S<=”XX”;
Décodeur 2 vers 4
1. Table vérite
ENTREES SORTIES
E1 E0 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
2. Fonction
3. Schema
4. Code VHDL
Library ieee ;
Use ieee.std-logic-1164.all ;
Entity DECODEUR is
(3 down to 0)) ;
end DECODEUR ;
begin
end DECODEEURRR ;
Bascule D
1. Table de vérité
D Q
0 0
1 1
2. Fonction
Q=D
3. Schéma
4. Code VHDL
Library ieee ;
D;
; end BASCULE D ;
D is begin
process
(CLK) begin
then Q <= D
; end if ;
end process ;
Bascule D avec SET et RESET
1. Schéma
2.Code VHDL
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
Use ieee.std_logic_unsigned.all;
entity BASCULEDSRA is
port (
D,CLK,SET,RESET : in std_logic;
S : out std_logic);
end BASCULEDSRA;
begin
Begin
S <= ‘1’;
S <= D;
end if;
end DESCRIPTION;
Remarque
L’entrée RESET est prioritaire sur l’entrée SET qui est à son tour prioritaire sur le front
montant de l’horloge CLK. Cette description est asynchrone car les signaux d’entrée SET et
1. Schéma
2. Code VHL
Library ieee ;
logic-arith.all ;
is ;
0) ; end compt ;
0); begin
process
(CLK,raz) begin
end if ;
end process
; q<=sig;
end Behavioral ;
Partie simulation
Etape 6 : Création de schéma électrique
a. Code VHDL
b. Circuit électrique
c. Chronogramme
3. Multiplexeur
a. Code VHDL
b. Circuit électrique
c. Chronogramme
4. Démultiplexeur
a. Code VHDL
b. Schéma électrique
c. Chronogramme
5. Encodeur 4 vers 2
a. Code VHDL
b. Schéma électrique
c. Chronogramme
6. Décodeur
a. Code VHDL
b. Schéma électrique
c. Chronogramme
7. Bascule D
a. Code VHDL
b. Schéma électrique
c. Chronogramme
8. Bascule D avec SET et RESET
a. Code VHDL
b. Chronogramme
9 .Compteur
c. Code VHDL
d. Schéma électrique
b. Chronogramme