First commit
This commit is contained in:
36
IUT/Auto1/TP/compteur_max_ena/compteur_max_ena.vhd
Normal file
36
IUT/Auto1/TP/compteur_max_ena/compteur_max_ena.vhd
Normal file
@@ -0,0 +1,36 @@
|
||||
LIBRARY ieee;
|
||||
USE ieee.std_logic_1164.ALL;
|
||||
USE ieee.numeric_std.ALL;
|
||||
|
||||
ENTITY compteur_max_ena is
|
||||
PORT (
|
||||
clk : IN STD_LOGIC;
|
||||
rst_n : IN STD_LOGIC;
|
||||
max : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
|
||||
ena : IN STD_LOGIC;
|
||||
valeur : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
|
||||
);
|
||||
END compteur_max_ena;
|
||||
|
||||
ARCHITECTURE archi OF compteur_max_ena is
|
||||
SIGNAL valeur_interne : STD_LOGIC_VECTOR(3 DOWNTO 0);
|
||||
|
||||
BEGIN
|
||||
PROCESS (clk, rst_n)
|
||||
begin
|
||||
IF rst_n = '0' THEN
|
||||
valeur_interne <= (OTHERS => '0');
|
||||
else
|
||||
IF rising_edge(clk) AND ena = '1' THEN
|
||||
IF valeur_interne = max THEN
|
||||
valeur_interne <= (OTHERS => '0');
|
||||
else
|
||||
valeur_interne <= STD_LOGIC_VECTOR(UNSIGNED(valeur_interne) + 1);
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
END PROCESS;
|
||||
|
||||
valeur <= valeur_interne;
|
||||
|
||||
END archi;
|
||||
Reference in New Issue
Block a user