Bonjour j'ai quelque soucis à tester un simple multiplicateur. Je le simule avec cadence, j'ai créé mon vode en VHDL et son test banch mais je ne comprend pas pourquoi j'ai rien en sortie:
mon code VHDL
mon test banch:
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 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity MultAcc is port ( clk : in std_logic; reset : in std_logic; X1: in signed(7 downto 0); X2: in signed(7 downto 0); Y : out signed (18 downto 0)); end MultAcc; architecture behav of MultAcc is signal SumPrec : signed (18 downto 0); signal Result: signed (18 downto 0); signal MultOut: signed (15 downto 0); begin compte : process(clk,reset) begin if clk ='1' and clk'event then if reset = '1' then Y <= "0"; else Y <= X1*X2; end if; end if; end process; end behav;
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
46
47
48
49
50
51
52
53
54
55
56
57
58 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity tb_MultAcc is end tb_MultAcc; architecture test_MultAcc of tb_MultAcc is component MultAcc port( clk : in std_logic; reset : in std_logic; X1: in signed(7 downto 0); X2: in signed(7 downto 0); Y : out signed (18 downto 0)); end component; signal clk : std_logic := '0'; signal reset: std_logic; signal X1 : signed(7 downto 0); signal X2 : signed(7 downto 0); signal Y : signed(18 downto 0); signal MultOut : signed(15 downto 0); begin the_MultAcc: MultAcc port map (clk,reset,X1, X2,Y); selp: process begin clk <= '0'; wait for 200 ns; clk <= '1'; wait for 200 ns; end process; donnees: process begin reset <= '1'; wait for 1250 ns; reset <= '0'; wait for 2000 ns; X1 <= "00000010"; X2 <= "00000100"; wait; end process; end test_MultAcc; configuration cfg_test_MultAcc of tb_MultAcc is for test_MultAcc for the_MultAcc : MultAcc end for; end for; end cfg_test_MultAcc;
je ne comprend pas trop mon soucis, j'essaye juste de faire Y=X1*X2, voyez vous des erreurs dans mon code?
Merci de votre aide
Partager