Visible to Intel only — GUID: xie1573417873520
Ixiasoft
1. Intel® HLS Compiler Standard Edition Best Practices Guide
2. Best Practices for Coding and Compiling Your Component
3. Interface Best Practices
4. Loop Best Practices
5. Memory Architecture Best Practices
6. Datatype Best Practices
7. Advanced Troubleshooting
A. Intel® HLS Compiler Standard Edition Best Practices Guide Archives
B. Document Revision History for Intel® HLS Compiler Standard Edition Best Practices Guide
Visible to Intel only — GUID: xie1573417873520
Ixiasoft
5. Memory Architecture Best Practices
The Intel® High Level Synthesis Compiler infers efficient memory architectures (like memory width, number of banks and ports) in a component by adapting the architecture to the memory access patterns of your component. Review the memory architecture best practices to learn how you can get the best memory architecture for your component from the compiler.
In most cases, you can optimize the memory architecture by modifying the access pattern. However, the Intel® HLS Compiler Standard Edition gives you some control over the memory architecture.
Tutorials Demonstrating Memory Architecture Best Practices
The Intel® HLS Compiler comes with a number of tutorials that give you working examples to review and run so that you can see good coding practices as well as demonstrating important concepts.
Review the following tutorials to learn about memory architecture best practices that might apply to your design:
Tutorial | Description |
---|---|
You can find these tutorials in the following location on your Intel® Quartus® Prime system: |
|
component_memories/bank_bits | Demonstrates how to control component internal memory architecture for parallel memory access by enforcing which address bits are used for banking. |
component_memories/depth_wise_merge | Demonstrates how to improve resource utilization by implementing two logical memories as a single physical memory with a depth equal to the sum of the depths of the two original memories. |
component_memories/width_wise_merge | Demonstrates how to improve resource utilization by implementing two logical memories as a single physical memory with a width equal to the sum of the widths of the two original memories. |