vivado-HLS入门
本文主要描述了如何使用vivado HLS的基本功能。文章内容主要来自于Xilinx官方文档:ug871-vivado-high-level-synthesis-tutorial,所用代码来自于Xilinx官方例程:ug871-design-files\2016.1\Introduction\lab1
添加链接描述
vivado-HLS可以实现直接使用 C,C++ 以及 System C 语言对Xilinx的FPGA器件进行编程。用户无需手动创建 RTL,通过高层次综合生成HDL级的IP核,从而加速IP创建。例如:神经网络的卷积层,用HDL语言实现是较复杂的,而用C代码描述是相对较简单的。用户用高层次语言将卷积层描述后,HLS工具再完成从高层次语言到HDL语言的转化。用户不用直面HDL级设计,提高了开发效率。同时,工具里的一些优化工具可以优化RTL的资源消耗和数据吞吐速率。
高层次综合工具的使用
本文包含3个内容:
1.如何新建HLS工程,并说明在HLS设计流程中需要执行所有主要步骤:
a)验证C代码。
b)创建和综合解决方案。
c)验证RTL并打包IP。
2.如何使用Tcl指令。
3.如何优化设计。
Lab01 HLS设计流程
Step 1: 新建一个工程
本步骤演示了在图形界面下新建一个工程(源代码来自于ug871-design-files.zip)。详细步骤见Fig.1~Fig.5。
Step 2: C源代码验证
本步骤是对功能代码的逻辑验证,相当于功能前仿。
在source中编写好功能代码,在Test Bench中编写好测试代码,准备好标准输出数据。在测试代码中调用功能代码的函数,自己生成或者导入输入数据,保存输出数据并与标准输出数据作对比,验证功能的正确性。
Fig.6:点击红框中的按钮,开始C源代码验证
Step 3: 高层次综合
本步骤是把功能代码的综合成RTL逻辑。