Forum Discussion
Altera_Forum
Honored Contributor
8 years agoDouble-pumping just reduces the Block RAM usage, it will not help eliminating load/store dependencies. You have two loops here, both of which are pipelined. You should pay attention to this fact that your pipeline might be long enough that not only all iterations of the inner loop, but also some iterations of the outer loop might be in flight in the pipeline at the same time. This can potentially lead to iteration "i" in the outer loop and some "x" in the inner loop writing to the same location in the mem buffer as iteration "i+1" in the outer loop and "y" in the inner loop is trying to read from; unless the compiler can ensure this will not happen, it will assume it does, and adjusts the II accordingly.