Hello guys,
I've modified my vhdl code as you suggested. Hope it works and that all is finally ok !
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY my_poly_test IS
PORT( in1 : IN SIGNED (15 DOWNTO 0);
clk,clr : IN std_logic;
result : OUT SIGNED (15 DOWNTO 0));
END ENTITY my_poly_test;
ARCHITECTURE logic OF my_poly_test IS
SIGNAL x2 : SIGNED (15 DOWNTO 0);
SIGNAL x3 : SIGNED (15 DOWNTO 0);
SIGNAL x4 : SIGNED (15 DOWNTO 0);
SIGNAL x5 : SIGNED (15 DOWNTO 0);
SIGNAL x6 : SIGNED (15 DOWNTO 0);
SIGNAL x7 : SIGNED (15 DOWNTO 0);
SIGNAL in1_1d : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL in1_2d : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL in1_3d : STD_LOGIC_VECTOR (15 DOWNTO 0);
SIGNAL in1_4d : STD_LOGIC_VECTOR (15 DOWNTO 0);
SIGNAL in1_5d : STD_LOGIC_VECTOR (15 DOWNTO 0);
SIGNAL x_6d : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL x2_5d : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL x3_4d : STD_LOGIC_VECTOR (15 DOWNTO 0);
SIGNAL x4_3d : STD_LOGIC_VECTOR (15 DOWNTO 0);
SIGNAL x5_2d : STD_LOGIC_VECTOR (15 DOWNTO 0);
SIGNAL x6_1d : STD_LOGIC_VECTOR (15 DOWNTO 0);
SIGNAL x7_d : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL sum : SIGNED(31 DOWNTO 0);
BEGIN
M1 : work.my_signed_multiplier PORT MAP (in1=>in1,in2=>in1,clk=>clk,clr=>clr,result=>x2);
DFF1: work.my_generic_dff_aclr GENERIC MAP(delay =>1) PORT MAP (d => std_logic_vector(in1), clk => clk, clr=> clr, q => in1_1d);
M2 : work.my_signed_multiplier PORT MAP (in1=> signed(in1_1d),in2=> x2,clk=>clk,clr=>clr,result => x3);
DFF2: work.my_generic_dff_aclr GENERIC MAP(delay =>1) PORT MAP (d => in1_1d,clk => clk,clr=> clr,q =>in1_2d);
M3 : work.my_signed_multiplier PORT MAP (in1=> signed(in1_2d),in2=>x3,clk=>clk,clr=>clr,result => x4);
DFF3: work.my_generic_dff_aclr GENERIC MAP(delay =>1) PORT MAP (d =>in1_2d,clk => clk,clr=> clr,q =>in1_3d);
M4 : work.my_signed_multiplier PORT MAP (in1=> signed(in1_3d),in2=>x4,clk=>clk,clr=>clr,result => x5);
DFF4: work.my_generic_dff_aclr GENERIC MAP(delay =>1) PORT MAP (d => in1_3d,clk =>clk,clr=> clr,q =>in1_4d);
M5 : work.my_signed_multiplier PORT MAP (in1=> signed(in1_4d),in2=>x5,clk=>clk,clr=>clr,result => x6);
DFF5: work.my_generic_dff_aclr GENERIC MAP(delay =>1) PORT MAP (d => in1_4d,clk =>clk,clr=> clr,q =>in1_5d);
M6 : work.my_signed_multiplier PORT MAP (in1=> signed(in1_5d),in2=>x6,clk=>clk,clr=>clr,result => x7);
DFF6: work.my_generic_dff_aclr GENERIC MAP(delay =>1) PORT MAP (d => std_logic_vector(x6), clk => clk, clr=> clr, q =>x6_1d);
DFF7: work.my_generic_dff_aclr GENERIC MAP(delay =>2) PORT MAP (d => std_logic_vector(x5), clk => clk, clr=> clr, q =>x5_2d);
DFF8: work.my_generic_dff_aclr GENERIC MAP(delay =>3) PORT MAP (d => std_logic_vector(x4), clk => clk, clr=> clr, q =>x4_3d);
DFF9: work.my_generic_dff_aclr GENERIC MAP(delay =>4) PORT MAP (d => std_logic_vector(x3), clk => clk, clr=> clr, q =>x3_4d);
DFF10: work.my_generic_dff_aclr GENERIC MAP(delay =>5) PORT MAP (d => std_logic_vector(x2), clk => clk, clr=> clr, q =>x2_5d);
DFF11: work.my_generic_dff_aclr GENERIC MAP(delay =>6) PORT MAP (d => std_logic_vector(in1), clk => clk, clr=> clr,q =>x_6d);
PROCESS(clk,clr)
BEGIN
IF clr ='1' THEN
result<=(OTHERS => '0');
ELSIF rising_edge(clk) THEN
sum<=1+signed(("0000000000000000")&x_6d)+signed(x2_5d&("0000000000000000"))+signed(x3_4d&("0000000000000000"))+signed(x4_3d&("0000000000000000"))+signed(x5_2d&("0000000000000000"))+signed(x6_1d&("0000000000000000"))+signed(x7_d&("0000000000000000"));
result<=sum(31 DOWNTO 16);
END IF;
END PROCESS;
END ARCHITECTURE logic;
Thank you for your help !