HLS入门实践

一、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 会根据我们对功能函数中的一些约束(Directive),来生成不同的接口。
  • 第三步C/RTL 的联合仿真:
    在这一阶段,HLS 会根据我们的 C Testbench 来生成我们的 RTL 的 Testbench 并且根据我们所选择的仿真工具来进行 RTL 级的仿真。仿真完成后我们可以观察联合仿真所产生的波形。
  • 第四步导出IP:
    前面有提到过 HLS 相当于一个 IP 生成器,它能够将我们的高级语言的代码映射为一个 IP,我们可以根据需要将这些 IP 导出到 Vivado 的集成开发环境中,将这些算法的 IP 应用到实际的工程当中。

二、环境搭建

2.1初始化

打开系统命令管理器cmd,定位到init_hls.bat的路径,并运行

d:
cd D:\intelFPGA\18.1\hls
init_hls.bat

此时会提示vs的路径问题,不用担心,系统会自动添加所需要的路径

2.2编写测试文件

在桌面新建文件夹prj,创建text.cpp,编写如下乘法器代码:

#include “HLS/hls.h”
#include “stdio.h”

component int mul(int a,int b)
{
int c =0;
c = a*b;
return c;
}
int main()
{
int a=0,b=0,c=0,i=0;
for(i=0;i<5;i++)
{
a= i+1;
b= i+2;
c = mul(a,b);
printf("%d * %d = %d\n",a,b,c);
}
return 0;
}

2.3编辑测试文件

c:
cd C:\Users\han\Desktop\prj
i++ -march=x86-64 -o mul.exe test.cpp 用于生成mul.exe文件

期间会报一些警告,但是不影响结果

运行mul.exe文件

mul.exe

在这里插入图片描述
生成镜像文件

i++ -march=CycloneV -o mul test.cpp -ghdl

继续运行mul.exe文件,产生波形文件vsim.wlf

mul.exe

在这里插入图片描述
查看报告
在这里插入图片描述

报告内容如下
在这里插入图片描述

2.4导入自编辑IP核

将生成的 components 文件夹的路径导入到quartus中

Tools–>Options–>IP Setting–>IP Catalog Search Locations

在Globa IP Search directory栏中指定mul的路径:C:\Users\han\Desktop\prj
此时自定义的hls的乘法器工作环境就搭建完成了。

2.5参考内容

参考链接

三、总结

本次博客主要是对HLS的入门介绍,并且完成了HLS的环境搭建,完成了一个入门级程序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值