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
1 | architecture Behavioral of new_twin1 is
|
2 | type arr is array (3 downto 0) of std_logic_vector(3 downto 0);
|
3 | type arr2 is array(4 downto 0) of std_logic_vector(7 downto 0);
|
4 | signal and_1:arr:=("0000","0000","0000","0000");
|
5 | signal t6:arr2:=("00000000","00000000","00000000","00000000","00000000");
|
6 | signal temp:std_logic_vector(3 downto 0);
|
7 | signal sum:std_logic_vector(7 downto 0):="00000000";
|
8 | begin
|
9 | process(clk)
|
10 | variable z,t,k:integer;
|
11 | variable t2:std_logic_vector(3 downto 0):="0000";
|
12 | variable t7:std_logic_vector(7 downto 0);--:="00000000";
|
13 | begin
|
14 | for i in 0 to 3 loop
|
15 | t6(i)(7 downto 0)<=("00000000");
|
16 | end loop;
|
17 | for i in 0 to 3 loop
|
18 | for j in 0 to 3 loop
|
19 | and_1(i)(j)<=(x(i) and y(j));
|
20 | end loop;
|
21 | end loop;
|
22 | t6(3)<= "0000" & and_1(0);
|
23 | k:=0;
|
24 | for i in 2 downto 0 loop
|
25 | t6(i)<=t2( i downto 0) & and_1(k+1) & t2(k downto 0);
|
26 | k:=k+1;
|
27 | end loop;
|
28 | for i in 0 to 3 loop
|
29 | t6(4)<=t6(4)+t6(i);
|
30 | end loop
|
31 | ----just tried this alternative which too dint work---
|
32 | -- t6(4)<=t6(0);
|
33 | -- t6(4)<=t6(4)+t6(1);
|
34 | -- t6(4)<=t6(4)+t6(2);
|
35 | -- t6(4)<=t6(4)+t6(3);
|
36 | end process;
|
37 | end Behavioral;
|
the final for loop for addition is giving me a gig-up.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