vivado的HLS设计流程

vivado的HLS设计流程

简单介绍一下vivado的HLS的设计流程,从建工程开始到生成IP核的整个过程

在这里插入图片描述
一般需要先准备建立工程的文件,c/c++(cpp)函数文件,c/c++(cpp)testbench测试文件,h头文件以及一些需要用到的其他如.dat等文件。
在这里插入图片描述
从左到右依次是:VectorAdd.h头文件、VectorAdd_tb.cpp测试文件、VectorAdd.cpp函数文件
1、 新建工程—和上面三个文件放一个文件夹中,命名(不一定和函数名字一定)
在这里插入图片描述
2、 指定用于综合的顶层函数

3、 再加testbench
在这里插入图片描述
4、 创建solution和选择板的型号,Uncertainty暂时不用管
在这里插入图片描述
这就创建了一个vivado_HLS的工程,可以看看这些文件在工程里面的哪里,基本布局
在这里插入图片描述
在这里插入图片描述
5、 先不添加directives,让他直接运行,先执行C的仿真,会给出仿真结果,会生成一个csim的文件夹
在这里插入图片描述
6、 再执行综合,综合结束之后,会自动打开综合报告,可以切换到右边的outline中可以看相应的报告内容,也可以在相应的syn文件夹中找到报告,还有一些HDL代码,但是这个可读性不是很好,所以一般优化还是在C里面做的
在这里插入图片描述
在这里插入图片描述
7、 然后再做C/RTL的co-simulation即联合仿真,需要观察一下RTL的仿真结果
在这里插入图片描述
在这里插入图片描述

结果像上面这样显示
8、 然后我们就可以点击波形查看窗口,看一下仿真结果是什么样子
在这里插入图片描述
会自动打开vivado,并显示出波形
在这里插入图片描述

这样我们就可以看到这样的结果,很直观
9、新加一个solution,查看directive的效果
在这里插入图片描述
10、其实这个位置有个tcl文件,就是
在这里插入图片描述
其实这个文件就是用于存放directive的
11、我们对这个循环做了一个myloop的标签,有利于很快找到这个循环,并进行directive的优化
在这里插入图片描述
上面的%HLS PIPELINE中的%号,说明这个directive是存在于单独的tcl文件中,如果是#号就是存在在C源文件中的,具体区别看下图,当然有不足也有优点,就是代码移植性的问题
在这里插入图片描述
12、执行综合,得到第二个solution的综合报告,还可以进行对比,可以看到directive的影响
改善吞吐率等directives,通过改善并行度来改变吞吐量
在这里插入图片描述
和综合相关的图标,其中红色框出的是选择多个solution进行对比
13、优化,仿真,联合仿真,这些完毕后就可以进行Export RTL,即可以输出为IP核了,但是如果需要使输出的IP核实符合AXI协议传输的,则要进行设置
(1):直接用指令进行设置:
#pragma HLS INTERFACE s_axilite port=return bundle=BUS_A
#pragma HLS INTERFACE s_axilite port=x bundle=BUS_A
#pragma HLS INTERFACE s_axilite port=operator bundle=BUS_A
加入上面的这些指令就可以把数据设置为AXI协议的IP,在directive窗口中可以看到下图所示的出现
在这里插入图片描述
(2):也可以通过图形化界面配置,在directive窗口中配置:
在这里插入图片描述
效果是一样的,优缺点和前面第11点提到的一样,代码可移植性的问题
在这里插入图片描述
14、然后就可以输出为IP核了
在这里插入图片描述
15、点击Export RTL后,会在HLS工程文件夹里出现.zip的压缩文件,vivado如果要调用这个IP核可以直接将IP核的库添加到solution>impl>ip这个路径上,也可以直接解压这个压缩包到任何路径,直接添加即可用。在这里插入图片描述
16、在vivado中引用用HLS生成的IP核在这里插入图片描述
17、其实就和平常的IP核使用也没有什么区别了
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值