一、优化指令总结
1.vivado hls的所有优化指令都应用于其包含的对象范围:
其中,指令应用于顶层函数,也就是作用域;并在指令中
标识接口的端口,也就是优化对象。
二、hls优化内容
1.处理函数的参数以及接口合成
2.函数参数传递的处理
3.指针操作
4.不同接口模式的使用,ap_ctrl_none,ap_ctrl_hs,ap_ctrl_chain
5.axi4-full,axi4-lite,axi4-stream接口使用
6.数据流优化
7.精度类库
8.指针多次访问处理
9.内存优化
三、dataflow优化
1.在DATAFLOW优化时,HLS不优化条件执行的tasks。所以在编程中要注意一些问题,典型的就是 if-else 必须放在loop里面,而不是放在loop外面
2.使用纯C时,有一个典型的坑,就是数学运算时 一定要注意边界位宽。注意操作数的强制转换。
四、循环
能用一个loop循环搞定的,就不要弄成多个循环嵌套设计了;
能用一个loop循环搞定的,就要拆成两个循环来进行串行设计了;