Re: 'EVENT (or rising_edge) static prefix requirement....
In simulation, the compiler has the OPTION to unroll a loop if it
thinks it would be more efficient to execute that way. But it does not
have to (it may be too large, or the loop may not be statically
bound). Therefore the loop index is absolutely not static.
Synthesis tools always unroll loops (that's why they have to be
statically bound for synthesis), and the index is then "treated as if
static". In other words, the value of the index for each iteration is
known at synthesis time and need not be calculated in hardware. Ditto
for any otherwise static expressions of the index (i.e. "i+1" is
treated as static, etc.). But from the language compilation/LRM point
of view, it is not static.
Andy
|