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
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;
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
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