Files
CITISE1/IUT/Auto1/TP/chiffre/chiffre.vhd
2026-04-08 20:11:20 +02:00

86 lines
1.9 KiB
VHDL

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY chiffre IS
PORT (
clk : IN STD_LOGIC;
rst_n : IN STD_LOGIC;
nb_fronts : IN STD_LOGIC_VECTOR(28 DOWNTO 0);
n_max : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
a : OUT STD_LOGIC;
b : OUT STD_LOGIC;
c : OUT STD_LOGIC;
d : OUT STD_LOGIC;
e : OUT STD_LOGIC;
f : OUT STD_LOGIC;
g : OUT STD_LOGIC
);
END chiffre;
ARCHITECTURE archi OF chiffre IS
COMPONENT gen_impuls
PORT (
clk : IN STD_LOGIC;
rst_n : IN STD_LOGIC;
max : IN STD_LOGIC_VECTOR(28 DOWNTO 0);
impuls : OUT STD_LOGIC
);
END COMPONENT;
COMPONENT compteur_max_ena
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 COMPONENT;
COMPONENT BCD7seg
PORT (
n : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
a : OUT STD_LOGIC;
b : OUT STD_LOGIC;
c : OUT STD_LOGIC;
d : OUT STD_LOGIC;
e : OUT STD_LOGIC;
f : OUT STD_LOGIC;
g : OUT STD_LOGIC
);
END COMPONENT;
SIGNAL impulsion : STD_LOGIC;
SIGNAL nombre : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
gen_impuls_1 : gen_impuls
PORT MAP(
clk => clk,
rst_n => rst_n,
max => nb_fronts,
impuls => impulsion
);
compteur_max_ena_1 : compteur_max_ena
PORT MAP(
clk => clk,
rst_n => rst_n,
max => n_max,
ena => impulsion,
valeur => nombre
);
BCD7seg_1 : BCD7seg
PORT MAP(
n => nombre,
a => a,
b => b,
c => c,
d => d,
e => e,
f => f,
g => g
);
END archi;