一、HLS简介
- HLS(High Level Synthesis):一款高层次综合工具。
能够将 C/C++ 或 者 system C 等高级语言转化为 RTL (底层硬件描述语言)电路,降低开发时间。 - 提供了常见的库(例如图像处理相关的 OpenCv 库和其
它的数学库)。 - 可以创建IP并通过例化或者使用 BlockDesign 的方式应用到项目中。
转化原理:在前端将 C 语言描述进行分析,然后进行代码层面的优化(code-level transformation),再在后端把这些运算工作进行并行调度(parallelise & schedule),最后生成 RTL 语言。
使用HLS开发流程:
- 第一步C/C++层面的仿真:
首先在源文件中,添加一个顶层函数,这个函数就是我们想要将来映射到 RTL 电路中的函数,之后需要一个 C Testbench 来对这个函数功能进行验证,在算法层面,检验我们的函数是否能够正常工作。(算法层面的仿真,能够很快地就得出结果,有助于提高我们的开发效率。) - 第二步对C 代码进行综合:
综合后会根据我们的功能函数,产生相应的电路。在 C 综合阶段,HLS 会根据我们对功能函数中的一些