Forum Discussion
You should look at the line where the buffer is declared to see its area usage, not where it is referenced. The resource usage for the lines you are highlighting show the area usage of the operation in those lines, not the buffers involved. The 15 Block RAMs used in the second case is very likely because the compiler is creating a Cached Load-Store Unit for that line which uses Block RAMs, while it is not being generated for the first case.
Thanks for your reply!
Yes in the second case, it create cached LSU use RAMs, it parallel load from the GM(global memory). But i want load it in serial (first case), that is 1....256 to the first local buffer(use RAMs), 257...512 to the second buffer(use RAMs)..............., my first case seems failed! how can i do that ?????
- HRZ6 years ago
Frequent Contributor
You do not need to concern yourself whether the compiler uses Block RAMs or not. The compiler might optimize your memory accesses in a way that they use registers instead of Block RAMs, which is better since it will use less resources. As long as the global memory accesses look the way you expect them to in the report, it will be fine.