the program is for a simple multiplier using addition of the partial
products. i find problem only with final addition part pls help me out
architecture Behavioral of new_twin1 is
type arr is array (3 downto 0) of std_logic_vector(3 downto 0);
type arr2 is array(4 downto 0) of std_logic_vector(7 downto 0);
signal and_1:arr:=("0000","0000","0000","0000");
signal t6:arr2:=("00000000","00000000","00000000","00000000","00000000");
signal temp:std_logic_vector(3 downto 0);
signal sum:std_logic_vector(7 downto 0):="00000000";
begin
process(clk)
variable z,t,k:integer;
variable t2:std_logic_vector(3 downto 0):="0000";
variable t7:std_logic_vector(7 downto 0);:="00000000";
begin
for i in 0 to 3 loop
t6(i)(7 downto 0)<=("00000000");
end loop;
for i in 0 to 3 loop
for j in 0 to 3 loop
and_1(i)(j)<=(x(i) and y(j));
end loop;
end loop;
t6(3)<= "0000" & and_1(0);
k:=0;
for i in 2 downto 0 loop
t6(i)<=t2( i downto 0) & and_1(k+1) & t2(k downto 0);
k:=k+1;
end loop;
for i in 0 to 3 loop
t6(4)<=t6(4)+t6(i);
end loop
just tried this alternative which too dint work
 t6(4)<=t6(0);
 t6(4)<=t6(4)+t6(1);
 t6(4)<=t6(4)+t6(2);
 t6(4)<=t6(4)+t6(3);
end process;
end Behavioral;

the final for loop for addition is giving me a gigup.when i try to
access one variable inside the array am able to retrieve it but while
adding to the same, the total value tends to undefined(XXXXXXXX).
please suggest any modification
thanks in advance