LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; ENTITY compteur is PORT ( clk : IN STD_LOGIC; rst_n : IN STD_LOGIC; max : IN STD_LOGIC_VECTOR(3 DOWNTO 0); enable : IN STD_LOGIC; valeur : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END compteur; ARCHITECTURE archi OF compteur 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 enable = '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;