vivado HLS入门
简介
针对最常见循环和数组的优化;
15th-24th
15 for循环的优化
基本指标术语
c循环边界的处理与rtl边界的处理是不同的!参考计数器原理
1 流水操作
2 循环展开(完全展开或部分展开)
16 循环合并
3 循环合并 利用rtl的并行性将多个循环进行合并
分以下情形
循环边界相同
循环边界不同
一个循环边界为变量 无法合并
都为变量 通过修改代码合并
17 数据流
Task之间存在依赖关系 不适合循环合并 但适合dataflow(乒乓操作)
使相邻for循环并行(流水)
18 嵌套循环
unroll 与flat意义不通
矩阵的优化
19 rewind与变量边界
默认情况,HLS对多个循环任务做顺序执行
20 数组的分割
21 map and reshape
中间可以添加offset, 调整结构
22 ROM
数组的初始化
23 函数层面优化
数据类型
inline
allocation
dataflow
总结