TP5 ENA Regitre Dec
TP5 ENA Regitre Dec
TP5 ENA Regitre Dec
Faculté de Technologie
Département Electronique
Le schéma de la figure 4.45 montre un exemple d’un registre à décalage avec mode de
décalage formé de quatre bascules type D qui s’activent sur front montant.
Dans la figure 4.45, l’entrée DATA_R représente la donnée à décaler à droite, et l’entrée
DATA_L représente la donnée à décaler à gauche.
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;
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(SIG_REG'length-1 downto 1);
else
SIG_REG <= SIG_REG;
end if;
end process;
DATA_out <= SIG_REG(0);
end Behavioral;
La donnée DATA est transmise à la première bascule (FF0) après quatre impulsions
d’horloge (CLK).
entity REGISTRE_GAUCHE_STRUCT is
Port ( CLK : in STD_LOGIC;
DATA : in STD_LOGIC;
Q : out STD_LOGIC_VECTOR (3 downto 0));
end REGISTRE_GAUCHE_STRUCT;
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, Q2, Q3 : std_logic;
Begin
B1 : BASCULE_D port map (CLK, Q1, Q0) ;
B2 : BASCULE_D port map (CLK, Q2, Q1) ;
B3 : BASCULE_D port map (CLK, Q3, Q2) ;
B4 : BASCULE_D port map (CLK, DATA, Q3) ;
Q(0) <= Q0 ;
Q(1) <= Q1 ;
Q(2) <= Q2 ;
Q(3) <= Q3 ;
End Behavioral;
entity REGISTRE_GAUCHE_COMP is
Port ( CLK : in STD_LOGIC;
DATA : in STD_LOGIC;
Q : out STD_LOGIC_VECTOR (3 downto 0));
end REGISTRE_GAUCHE_COMP;
end Behavioral;
Nous allons déduire le VHDL du registre à décalage avec mode de décalage avec les
deux styles de descriptions, structurelle et comportementale à partir de la figure 4.
Distinguons d’abord les composants à modéliser pour le style de description structurelle
Figure 4. Les composants utilisés dans la description VHDL avec le style structurel du
registre à décalage de la figure 4.
Figure 4 : Les composants utilisés dans la description VHDL avec le style structurel du
registre à décalage
Le bloc en rouge de la figure 4 représente les bascules type D qu’on a déjà modélisées.
On remarque que le bloc en vert de la figure 4 possède quatre entrées, et une sortie.
Les opérations effectuées au niveau de ce bloc sont basiques (and, or) ; modélisons-le en
VHDL avec le style de description : flot de données.
entity BLOC_MODE is
Port ( E1 : in STD_LOGIC;
E2 : in STD_LOGIC;
E3 : in STD_LOGIC;
E4 : in STD_LOGIC;
SORTIE : out STD_LOGIC);
end BLOC_MODE;
end Behavioral;
entity REGISTRE_MODE_0_1 is
Port ( CLK : in STD_LOGIC;
DATA_R : in STD_LOGIC;
DATA_L : in STD_LOGIC;
MODE : in STD_LOGIC;
Q : out STD_LOGIC_VECTOR (3 downto 0));
end REGISTRE_MODE_0_1;