Travaux dirigés corriger
Exercice 1)
Ecrire l’ensemble d’un fichier VHDL (Library, Entity, Architecture) qui décrit un
additionneur ADD à 2 entrées de 1 bits A et B signées et une sortie S de 1 bits en
utilisant une description
1) par flot de donnée
2) comportementale
3) Structurelle
1
Exercice 2)
Ecrire l’ensemble d’un fichier VHDL (Library, Entity, Architecture) qui décrit un
additionneur ADD 4 en utilisant une description Structurelle
2
Exercice 3)
1) Ecrire l’ensemble d’un fichier VHDL (Library, Entity, Architecture) qui décrit un
additionneur MUX 4 vers 1 en utilisant une description Structurelle
3
4
Exercice 4)
Ecrire l’ensemble d’un fichier VHDL (Library, Entity, Architecture) qui décrit un compteur
modulo 6 en utilisant une description Structurelle
5
6
Exercice 5)
2) Ecrire l’ensemble d’un fichier VHDL (Library, Entity, Architecture) qui décrit un
Registre à 4 bits en utilisant une description Structurelle
a. Description VHDL d’une BASCULE D niveau haut :
7
Exercice 6)
1) Ecrire l’ensemble d’un fichier VHDL (Library, Entity, Architecture) qui décrit
un Registre à décalage en utilisant une description Structurelle
a. Description VHDL d’une BASCULE D active sur front montant :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity BASCULE_D is
Port ( CLK_D : in STD_LOGIC;
DATA_D : in STD_LOGIC;
Q_D : out STD_LOGIC);
end BASCULE_D;
Architecture RTL_D of BASCULE_D is
Signal SIG_D : std_logic := '0';
Begin
Process (CLK_D)
Begin
If rising_edge (CLK_D) then
SIG_D <= DATA_D;
Else
SIG_D <= SIG_D;
End if;
End process;
Q_D <= SIG_D;
End RTL_D;
8
b. Description structurelle en VHDL d’un registre à décalage à droite :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity REGISTRE is
Port ( CLK : in STD_LOGIC;
DATA : in STD_LOGIC;
Q : out STD_LOGIC_VECTOR (2 downto 0));
end REGISTRE;
Architecture RTL_REGISTRE of REGISTRE is
Component BASCULE_D is
Port (CLK_D : in std_logic;
DATA_D : in std_logic;
Q_D : out std_logic);
End component;
Signal Q0, Q1: std_logic;
Begin
FF0 : BASCULE_D port map (CLK, DATA, Q0) ;
FF1 : BASCULE_D port map (CLK, Q0, Q1) ;
FF2 : BASCULE_D port map (CLK, Q1, Q(2)) ;
Q(0) <= Q0 ;
Q(1) <= Q1 ;
End RTL_REGISTRE ;
a. Description comportementale en VHDL d’un registre à décalage à droite :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity REGISTRE_COMP is
Port ( CLK : in STD_LOGIC;
DATA_in : in STD_LOGIC;
DATA_out : out STD_LOGIC);
end REGISTRE_COMP;
architecture Behavioral of REGISTRE_COMP is
signal SIG_REG : std_logic_vector (2 downto 0) := "000";
begin
process (CLK)
begin
if rising_edge(CLK) then
SIG_REG <= DATA_in & SIG_REG(2 downto 1) ;
else
SIG_REG <= SIG_REG;
end if;
end process;
DATA_out <= SIG_REG(0);
end Behavioral;
9
Exercice 7)
Ecrire l’ensemble d’un fichier VHDL (Library, Entity, Architecture) qui décrit un UAL en
utilisant une description Structurelle
1
0
Correction exercice 7
1
0
1
0
1
0
1
0