语言输出空心菱形算法解读_技术解读| 开源HLS工具Legup4.0介绍(二)

4fca93816d8666257c198e95e4b8f4fe.gif

基于Legup的FPGA开发

在上一节文章中,我们全面梳理了HLS中开源软件Legup的基本概念,接下来我们将解读Legup的使用说明,以及FPGA算法编译烧录的相关概念。

安装部署

由于Legup在编译和仿真时,会依赖Quartus和Modelsim工具,所以请事先安装好这两个工具,这里不做过多说明,基于已有的Quartus虚拟机进行安装。操作系统是centos7.4

♦ 安装LLVM-3.5

下载需要的软件:

3981447bb85cc2c4a5621e207d653e01.png

编译安装:

b6ba1d1044d42102bfbc45ca7c57a41c.png

♦ 安装Legup-4.0

下载源码(点击阅读原文下载)

07f7f900f780555f1f8f1579a0953aec.png

排查测试

♦ 错误排查

在编译过程中会有各种各样的依赖错误,下面记录了主要的问题,部分问题在前面的安装依赖里已经解决了。

c2aab489d1b8a1a060930238848c9f5c.png 4d0c6c4fb89c022f761a9a5545ff8229.png 840120aad9d873b230b8c0ad25a4453a.png

滑动查看更多

♦ 测试

通过测试命令批量测试,可以查看测试通过情况。

cd examples

runtest

跑测试demo sra.c

cd examples/sra

make

此时可以看到生成了 sra.v 文件,这就是最终的Verilog代码。

使用说明

在编译过程中会有各种各样的依赖错误,下面记录了主要的问题,部分问题在前面的安装依赖里已经解决了。

♦ 编写C程序

8ed95268ccc1d9ba0e796f5cbf4f84a3.png

两个全局变量,test和test1,逻辑也很简单,最终输出test1应该等于{11,3,2,4}

♦ 编译Verilog代码:

# make

# produces verilog: test.v

../../llvm/Release+Asserts/bin/llc -legup-config=../legup.tcl  -march=v test.bc -o test.v

仿真输出:

make v

输出如下:

5cb6c629771c0ff7aeed3d19486fce5c.png

可以看到输出结果:return_val= 25165824,C程序里的输出是一个数组,但是这里的输出却是一个十进制值。根据前面的说明可以知道这里的输出是没有意义的。要查看具体输出,可以通过modelsim仿真。

需要系统有图像界面,仿真:

make w

47f69b68db26fab53850c554788fffa4.png

可以看到上图的仿真结果,test1的ram值是{11,3,2,4}与前面的值相同,说明HLS结果没有问题。

烧录到FPGA

♦ 生成sof文件

向FPGA里烧录,需要生成sof文件,创建quartus项目:

c779039b56d33a6e7ba2248d9c22cf58.png 42db51d575cfbdfb865f66a950c8b281.png

滑动查看更多

创建好项目之后,进行全编译:

bd2c50145c57b1ba225e52637023d0ed.png 9d54c598b95e0dc30ab49abe11eeb6b8.png

滑动查看更多

编译完成,查看是否生成sof文件

du -sh output_files/top.sof 

36M    output_files/top.sof

等待生成sof文件,之后可以通过Jtag烧录如FPGA开发板中。

本文主要介绍了FPGA开发工具HLS的开源软件Legup的基本概念和使用,以及FPGA算法编译烧录的相关概念。后面会继续介绍Legup的开源插件LeFlow,可以将TensorFlow实现的python代码转换为Verilog代码。

作者介绍

6aae3f852287bb7cbf09b03573079f61.png

杨振宇 海云捷迅资深系统架构师

杨振宇,海云捷迅资深系统架构师,成都信息工程大学计算机应用技术硕士研究生毕业,10余年软件开发和架构经验,熟悉Linux,OpenStack,Kubernetes,Docker等开源技术并具有开源社区贡献经历,在云计算、人工智能、物联网等技术领域有较深的研究和丰富的一线开发经验。

FPGA在线培训

学习更多FPGA专业知识,关注“FPGA在线培训”(点击了解更多培训咨讯)。FPGA在线培训囊括了业内的前沿技术理论,汇集了业内经验丰富的一线工程师,将带领学员全方位解读开发语言、开发工具、配置电路等FPGA开发设计环节。

推荐阅读

0031c7259077d7a1e7a0b39e79f7ee8b.png

(1)技术解读| 开源HLS工具Legup-4.0介绍(一)

2

FPGA 在深度神经网络当中的应用(三) 

3

SRIO 在某无线通信系统中的应用(一)

e7e9d99522328e6fe15eda41835ab34c.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值