0% ont trouvé ce document utile (0 vote)
52 vues14 pages

Travaux Dirigés Corriger: Exercice 1)

Le document présente une série d'exercices pour écrire des fichiers VHDL, incluant des additionneurs, un compteur modulo 6, un registre à 4 bits, et un registre à décalage. Chaque exercice demande une description en utilisant différentes approches telles que structurelle, comportementale, et par flot de données. Des exemples de code VHDL sont fournis pour illustrer les concepts demandés.

Transféré par

helmi hamdi
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)
52 vues14 pages

Travaux Dirigés Corriger: Exercice 1)

Le document présente une série d'exercices pour écrire des fichiers VHDL, incluant des additionneurs, un compteur modulo 6, un registre à 4 bits, et un registre à décalage. Chaque exercice demande une description en utilisant différentes approches telles que structurelle, comportementale, et par flot de données. Des exemples de code VHDL sont fournis pour illustrer les concepts demandés.

Transféré par

helmi hamdi
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

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

Vous aimerez peut-être aussi