Bonjour a tous
Je sais pas s'il y a des connaisseurs du langage VHDL, mais bon, comme on dit, qui ne tente rien n'a rien
Voila mon code :
Fichier mux.vhd
Et son testbench (pour tester le fonctionnement du multiplexeur):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 library IEEE; use IEEE.std_logic_1164.all; entity MUX is port (TIME_DATA : in std_logic_vector(3 downto 0); ALARM_DATA : in std_logic_vector(3 downto 0); SHOW_A : in std_logic; DISPLAY : out std_logic_vector(3 downto 0)); end MUX; architecture RTL of MUX is begin DISP_MUX: process (TIME_DATA, ALARM_DATA) begin if SHOW_A = '1' then DISPLAY <= ALARM_DATA; else DISPLAY <= TIME_DATA; end if; end process DISP_MUX; end RTL;
Si vous suivez le fonctionnement du multiplexeur, normalement à la deuxieme initialisation de SHOW_A ( SHOW_A <= '1'), la sortie DISPLAY devrai passé à la valeur de ALARM_DATA, le probleme c'est que n'est pas le cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 library IEEE; use IEEE.std_logic_1164.all; entity TB_MUX is end TB_MUX; architecture BENCH of TB_MUX is -- component declaration for MUX component MUX port (TIME_DATA : in std_logic_vector(3 downto 0):="0000"; ALARM_DATA : in std_logic_vector(3 downto 0); SHOW_A : in std_logic:='0'; DISPLAY : out std_logic_vector(3 downto 0)); end component; -- local signal declarations signal TIME_DATA, ALARM_DATA, DISPLAY : std_logic_vector(3 downto 0); signal SHOW_A : std_logic; begin -- component instantiation of MUX --SHOW_A <= '0' after 20 ns; DUT : MUX port map ( TIME_DATA => TIME_DATA, ALARM_DATA => ALARM_DATA, SHOW_A => SHOW_A, DISPLAY => DISPLAY ); -- stimulus process STIMULUS: process begin TIME_DATA <= "0000"; ALARM_DATA <= "1111"; SHOW_A <= '0'; wait for 10 ns; SHOW_A <= '1'; wait for 10 ns; wait; -- suspend process end process STIMULUS; end BENCH;
Pourriez vous m'eclairer? Peut etre un probleme de mapping des ports? ou autre chose ?
je debute en VHDL.
Merci pour votre Aide
Zehle
EDIT : un grand merci au moderateur pour l'edit
Partager