Forum Discussion
Altera_Forum
Honored Contributor
10 years agoOne thing I found so far is that in version 15.1 of the compiler (has been out for a while), the loop iterations in producer are launched every 4 cycles, with Load still being major part of critical path. With 15.0, I'm seeing 164 cycles just like you are.
The code has to wait for load to complete to know if write_channel_altera() should be done during the next iteration -- so that's your loop-carried dependency. This delay is <delay of load> + <delay of integer comparison to END_MARKER>. In 15.1, the expected delay of the simple load has changed, hence the drop in number of cycles between iterations from 164 to 4. I'm not sure how to relax this below 2 (as you already found).