仅对英特尔可见 — GUID: xfy1508937381235
Ixiasoft
7.3.2. 实例:从宽度范畴合并存储器
使用hls_merge("<mem_name>","width")属性强制 Intel® HLS Compiler Pro Edition在同一存储系统中实现变量,从深度合并存储器。
将hls_merge属性中设置了同一<mem_name>标签的所有变量进行合并。
请参考如下组件代码:
component short width_manual (int raddr, int waddr, short wdata) { short a[256]; short b[256]; short rdata = 0; // Lock step write a[waddr] = wdata; b[waddr] = wdata; // Lock step read rdata += a[raddr]; rdata += b[raddr]; return rdata; }
图 39. 实现组件width_manual的局部存储器
该情况下, Intel® HLS Compiler Pro Edition可将加载和存储指令结合到存储器a和b,因为他们的访问的地址相同,如下所示。
component short width_manual (int raddr, int waddr, short wdata) { short a[256] hls_merge("mem","width"); short b[256] hls_merge("mem","width"); short rdata = 0; // Lock step write a[waddr] = wdata; b[waddr] = wdata; // Lock step read rdata += a[raddr]; rdata += b[raddr]; return rdata; }
图 40. 从宽度方向合并组件width_manual的局部存储器