0% ont trouvé ce document utile (0 vote)
47 vues3 pages

Compteur

cour sur compteur

Transféré par

Mohamed Belghali
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)
47 vues3 pages

Compteur

cour sur compteur

Transféré par

Mohamed Belghali
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

Compteur

Circuit logique qui fait le comptage de 0 à 9 pour les unaire, les dizaines, les centaines
et ainsi de suite. Les bascules sont les éléments de base pour fabriquer les compteurs. Plusieurs
application sont basé sur les compteurs telle que, les microcontrôleurs, les circuits
temporisateur. Les figures suivantes présentent les schémas de base des compteurs.

Q0 Q1 Q2 Q3

D0 Q0 D1 Q1 D2 Q2 D3 Q3

clk clk Q2 clk


clk clk Q0 Q1 Q3
R R R R

Figure 1 : Décompteur 4 bits à base de bascule D.

Q0 Q1 Q2 Q3

D0 Q0 D1 Q1 D2 Q2 D3 Q3

clk clk Q2 clk


clk clk Q0 Q1 Q3
R R R R

Figure 1 : Compteur 4 bits à base de bascule D.

+ D Q
1

Clk
R

Figure 2 : Compteur 4 bits à base d’un additionneur.

Afin d’examiner les fonctionnalités du circuit, nous donnons le chronogramme suivant :


1. Programmation VHDL

[Link]
-- Counter
Library ieee ;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;
ENTITY counter IS
PORT (CLOCK_50 : IN STD_LOGIC;
KEY : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
q : OUT STD_LOGIC_VECTOR(0 TO 7));
END ;
ARCHITECTURE Behavior OF counter IS
SIGNAL M : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
Process(CLOCK_50) is
begin
if( KEY = '0') then
M <= "00000000" ;
elsif (CLOCK_50'event and CLOCK_50 = '1') then
M <= M + 1 ;
end if;
End process;
q <= M ;
END Behavior;

Circuit logique : RTL Viewer

Chronogramme : Simulation Waveform Editor


Compteur asynchrone.

process (RESET,CLOCK)
begin
if RESET ='1' then CMP <= "000";
elsif (CLOCK ='1' and CLOCK'event) then
CMP <= CMP + 1;
end if;
end process;
Compteur synchrone.

process (CLOCK)
begin
if (CLOCK ='1' and CLOCK'event) then
if RESET ='1' then
CMP <= "000";
else CMP <= CMP + 1;
end if;
end if;
end process;

Quelle différence entre les deux descriptions ?

Dans la deuxième le signal RESET n’est plus dans la liste de sensibilité, par conséquence le process ne
sera déclenché que par le signal CLOCK. La remise à zéro ne se fera que si un front montant sur
CLOCK a lieu.

Vous aimerez peut-être aussi