Bonsoir à tous,
je suis débutante en VHDL, je veux écrire un simple programme qui fait la synchronisation entre 2 process, lorsque l'un fonctionne l'autre non. Pour cela j'ai utilisé une variable im qui va prendre la valeur 1 pour que le 2ème process puisse fonctionner, et puis pour que le 1er re-fonctionne elle doit changer de valeur à 0. Le programme n'accepte pas cette 2ème attribution de valeur à la méme variable, il m'affiche "im has multiple source".
Voilà le code
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 LIBRARY ieee ; use ieee.std_logic_unsigned.all; USE ieee.std_logic_1164.all ; USE ieee.std_logic_arith.all ; use ieee.numeric_std.all; entity t is port( clk : in std_logic; d_in : in std_logic; d_out :out std_logic; im_out : out std_logic ); end entity; ARCHITECTURE corp of t is signal im:integer:=0; begin process(clk) --process 1 begin if (clk'event and clk='1') then d_out <= d_in; im <= 1; end if; end process; process (clk) begin if (clk'event and clk='1' and im=1) then im_out <= d_in; im <= 0; end if; end process; end corp;
Partager