please help me with this pc of code

Guest
hello,
please go through the following code and tell me where i am wrong.
this is a FOR loop to do some arithmetic operations on a matrix.
instead of the outermost loop(j), if i assign, 0, 1, 2...etc manually,
i am able to get the desired result, but when i run this loop, only
1st row gets the right values. remaining rows, get some very high
values

for j in 0 to 2 loop
temp := 1;
row1 := hm1(j); -- here if i put 0, 1, w/o j loop, correct result
for count in 0 to 2 loop
col := 0;
tempc := 0;
while ( col < (temp * 2)) loop
row2(col) := row1(tempc) + row1(tempc + temp);
row2(col + 1) := row1(tempc) - row1(tempc + temp);
tempc := tempc + 1;
col := col + 2;
end loop;
row1 := row2;
temp := temp * 2;
end loop;
hm2(j):= row2;-- here if i put 0, 1, w/o j loop, correct result
end loop;
 
On Jul 31, 7:15 am, mk.supr...@gmail.com wrote:
hello,
please go through the following code and tell me where i am wrong.
this is a FOR loop to do some arithmetic operations on a matrix.
instead of the outermost loop(j), if i assign, 0, 1, 2...etc manually,
i am able to get the desired result, but when i run this loop, only
1st row gets the right values. remaining rows, get some very high
values

for j in 0 to 2 loop
temp := 1;
row1 := hm1(j); -- here if i put 0, 1, w/o j loop, correct result
for count in 0 to 2 loop
col := 0;
tempc := 0;
while ( col < (temp * 2)) loop
row2(col) := row1(tempc) + row1(tempc + temp);
row2(col + 1) := row1(tempc) - row1(tempc + temp);
tempc := tempc + 1;
col := col + 2;
end loop;
row1 := row2;
temp := temp * 2;
end loop;
hm2(j):= row2;-- here if i put 0, 1, w/o j loop, correct result
end loop;
Please read the documentation for your simulator and learn how to use
break points, monitors, etc. in your simulation.

Otherwise, instrument your code with assert and/or report statements
to tell you what's going on as the code executes.

These are basic code debugging skills that will serve you well in the
future.

Andy
 
On Jul 31, 6:10 pm, Andy <jonesa...@comcast.net> wrote:
On Jul 31, 7:15 am, mk.supr...@gmail.com wrote:





hello,
please go through the following code and tell me where i am wrong.
this is a FOR loop to do some arithmetic operations on a matrix.
instead of the outermost loop(j), if i assign, 0, 1, 2...etc manually,
i am able to get the desired result, but when i run this loop, only
1st row gets the right values. remaining rows, get some very high
values

for j in 0 to 2 loop
temp := 1;
row1 := hm1(j); -- here if i put 0, 1, w/o j loop, correct result
for count in 0 to 2 loop
col := 0;
tempc := 0;
while ( col < (temp * 2)) loop
row2(col) := row1(tempc) + row1(tempc + temp);
row2(col + 1) := row1(tempc) - row1(tempc + temp);
tempc := tempc + 1;
col := col + 2;
end loop;
row1 := row2;
temp := temp * 2;
end loop;
hm2(j):= row2;-- here if i put 0, 1, w/o j loop, correct result
end loop;

Please read the documentation for your simulator and learn how to use
break points, monitors, etc. in your simulation.
thanks. i was applying breakpoints and stepping through the code, but
now i realised that unless i give a wait statement i am not able to
view the output on my simulation window.
now i am getting the right output
 

Welcome to EDABoard.com

Sponsor

Back
Top