首先要启动软件,界面如下所示:
以最简单的矩阵运算为例吧,来介绍一下HLS的使用。
对于HLS的输入为C++或C代码,当然systemC也可以,主要完成算法的设计。
如下所示为自定义的函数输入文件,实体就是matx_mul,看起来似乎很简单,如果用.V文件实现会比较难的。
黑色圈圈是为了优化用的,也是自定义的。
为了验证功能的正确性,首先进行软件仿真,仿真的文件部分如下:
分析可知,人为定义了两个矩阵in_a,in_b用来测试。
仿真结果如下所示:
查看综合报告之前,看一下硬件仿真结果。可以用宏来进行控制,以便实现硬件仿真。
结果略去。查看综合报告。
很容易发现latency很大,需要进行优化。
书写优化脚本。
set_directive_inline -off "matx_mul/wmy_product_lp"
set_directive_pipeline -II 1 "matx_mul/wmy_product_lp"
set_directive_pipeline -II 1 "matx_mul/wmy_col_lp"
set_directive_inline -off "matx_mul/wmy_col_lp"
set_directive_inline -off "matx_mul/wmy_row_lp"
set_directive_pipeline -II 1 "matx_mul/wmy_row_lp"
两次综合结果进行比对。
转载:https://mp.weixin.qq.com/s?__biz=MzI4NTM4NjgyNg==&mid=100000335&idx=1&sn=5737b18b860a6fa89b0f6ed3e93f6852&chksm=6bedb36a5c9a3a7cbef87772847db93a0008bab2340e707eebd943f505356e97321c71d0556c&mpshare=1&scene=23&srcid=0417vZe9MyoMKdhCfyNQ7ffC#rd