Array indexing problem: "Data corruption (ListDelShift) - Bad Index"



Hi,

I'm trying to access a single element of a std_logic_vector, and I am
getting this error from ISE (6.3i):

"FATAL_ERROR:Xst:listutil.c:503:1.19 - Data corruption (ListDelShift) -
Bad Index Process will terminate. To resolve this error, please
consult the Answers Database and other online resources at
http://support.xilinx.com. If you need further assistance, please open
a Webcase by clicking on the "WebCase" link at
http://support.xilinx.com";

The code that generates this is:

process(output_enable)
variable temp_weight :
std_logic_vector(weight_precision - 1 downto 0);
begin
if config_enable='0' then
for i in weight_precision - 1 downto 0 loop
temp_weight(i) := weight_table(0); <== ERROR HERE
end loop;

weight <= SXT(temp_weight, adder_input_width);
end if;
end process;

The error would appear to refer to the "weight_table(0)" statement.
Normally, I don't reference just the 0'th element - I use an expression
to calculate the bit I need - but the error still occurs. The error
occurs with other indices (such as 1,2,3 etc, and also
"weight_table'length - 1") too.

weight_table is defined as:
"signal weight_table : std_logic_vector(weight_table_left downto 0)"
where "weight_table_left" is 63 in this case.

"weight_table" is initialised to all zeros.

I'm sure it is something simple, but I just can't see it. Can anyone
help?

Many thanks,
Robin

.



Relevant Pages

  • Re: Array data being overwritten
    ... grab one single element per file from a large number of csv ... Each time through the WHILE loop, you erase all the data stored in Current ... At the second, you need to allocate a 2-element vector, copy the ...
    (comp.soft-sys.matlab)
  • Newbie vectorization dramas
    ... problem down to a simple example loop that needs vectorized. ... entire matrix y from that single element, and repeat, ... finally producing a single matrix that is the sum total of ... all subtraction matrices. ...
    (comp.soft-sys.matlab)
  • Code vectorization - Detecting target levels and ending loop
    ... I have this current loop which adds up elements along a row vector and which breaks after it hits a certain level. ... In addition, if any single element is less than 0, it will add 0 instead of itself. ...
    (comp.soft-sys.matlab)
  • Re: output matrix elements in matlab to excel
    ... of a char,a single element and then a matrix of 10 ... you can first itself create a cell array of columns, ... range will give you - as a first instance, - A1:A20, ... then you can start filling your column in this, then the for loop ...
    (comp.soft-sys.matlab)