I still run into this problem from time to time. For whatever reason this is still not an intuitive matter for me. I guess I don\'t have a clear understanding of globally and locally static to recognize the issue before I get the error message.This is the code,
Bias <= (Bias(Bias\'high-1) => \'1\', others => \'0\');
This is the error,
\"Non-static aggregate with multiple choices has non-static others choice.\"
When I looked this up on the web they talk about things like using a
loop index to select the bit in the word. Another page mentions that
the items in an aggregate must be non-overlapping. If they need to be
non-overlapping what is the point of the others? I could have sworn
that I was told using others to fill in the remainder of a vector was ok
as long as it was last in the aggregate.
A post from 2003 used a fixed index into the vector, so it seems the
problem is not from the use of Bias\'high in the index.
This kind of thing is what drives people nuts about VHDL. For some of
us it is a short trip.