1、函数层面的优化
1.1、定义任意精度变量
在C的数据类型通常是以8为边界,而实际中我们会遇到任意精度类型的问题,那么我们一定要定义为任意精度。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5bcb3940d2d6d9a4ee026642d9745bd1.png)
1.2、inline
去除函数的层次化,可以改善资源。不再需要调用函数的相关逻辑,对于小函数HLS会自动Inline,如果我们不希望,可以通过directive中的 -off这个选型来实现
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6f411fc66b9f044a0930b0b4f4eb44d5.png)
关掉inline,资源开销会变大。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a6908496fd23a1d915ec674545e73eb0.png)
1.3、Allocation
定义了函数与相应RTL model之间的关系,ALLOCATION使副本并行运行,从而减少延迟性,配置与结果如下图所示,allocation的影响,它实际上是在Latency和Area上做折中。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/19e32df4742bac180e8d2758a1fdd130.png)