HLS学习篇—搭配hls环境及操作实例

HLS学习篇—搭配hls环境及操作实例

  • 一、环境测试及开发流程
    • 1、环境测试
    • 2、i++编译与测试
    • 3、编译为FPGA程序
    • 4、modelsim仿真
  • 二、Examples示例
    • 1、Image_downsample
    • 2、YUV2RGB
  • 三、实例——加法器
    • 1、C语言实现加法器
    • 2、hls搭桥【语言转换】
    • 3、编译测试
    • 4、仿真验证
    • 5、文件简介

一、环境测试及开发流程

有关HLS的详细认识,可参考:
FPGA基础之HLS

1、环境测试

工具所需:

  • quartus prime18.1
  • modelsim
  • visual studio 2010

环境测试
在quartus安装路径的【hls】目录下,打开【cmd】;
HLS学习篇—搭配hls环境及操作实例_第1张图片
点击回车;进入如示终端界面
HLS学习篇—搭配hls环境及操作实例_第2张图片
初始化环境:
方式一:双击脚本文件【运行结束自动退出】
HLS学习篇—搭配hls环境及操作实例_第3张图片
方式二:使用指令执行脚本

init_hls.bat

HLS学习篇—搭配hls环境及操作实例_第4张图片
出现上示界面,则初始化成功。

2、i++编译与测试

进入counter目录下
HLS学习篇—搭配hls环境及操作实例_第5张图片
双击打开
HLS学习篇—搭配hls环境及操作实例_第6张图片
输入指令,终端进入该目录

cd examples\counter

HLS学习篇—搭配hls环境及操作实例_第7张图片
运行编译文件,生成可执行文件“a.exe”

i++ -march=x86-64 counter.cpp

HLS学习篇—搭配hls环境及操作实例_第8张图片
输入指令,运行可执行文件,显示PASSED,则编译测试通过

a.exe

HLS学习篇—搭配hls环境及操作实例_第9张图片

3、编译为FPGA程序

输入指令

i++ -march=CycloneV counter.cpp

HLS学习篇—搭配hls环境及操作实例_第10张图片
运行【a.exe】
HLS学习篇—搭配hls环境及操作实例_第11张图片
生成文件
HLS学习篇—搭配hls环境及操作实例_第12张图片
运行指令,生成波形文件

i++ -march=CycloneV counter.cpp -ghdl //加-v可以显示编译过程

HLS学习篇—搭配hls环境及操作实例_第13张图片
运行生成的【a.exe】文件,生成波形文件
HLS学习篇—搭配hls环境及操作实例_第14张图片
查看生成文件
HLS学习篇—搭配hls环境及操作实例_第15张图片

4、modelsim仿真

进入波形文件目录

cd a.prj\verification

HLS学习篇—搭配hls环境及操作实例_第16张图片
查看目录文件

dir

HLS学习篇—搭配hls环境及操作实例_第17张图片
运行指令,自动打开modelsim运行仿真

vsim vsim.wlf

HLS学习篇—搭配hls环境及操作实例_第18张图片
添加仿真波形,开启仿真【计数器】
在这里插入图片描述

二、Examples示例

1、Image_downsample

关闭仿真软件,回到hls目录下
HLS学习篇—搭配hls环境及操作实例_第19张图片
输入指令,进入此目录

cd examples\image_downsample

HLS学习篇—搭配hls环境及操作实例_第20张图片
输入指令,执行脚本
在这里插入图片描述
生成【test-x86-64.exe】,运行可执行文件

test-x86-64.exe

HLS学习篇—搭配hls环境及操作实例_第21张图片
输入指令,编译图形压缩程序并生成名为“a.exe”的文件

i++ main.cpp bmp_tools.cpp resize.cpp

在这里插入图片描述
查看生成文件
HLS学习篇—搭配hls环境及操作实例_第22张图片
运行可执行文件
HLS学习篇—搭配hls环境及操作实例_第23张图片
结果显示【test.bmp】输入输出压缩操作一样
HLS学习篇—搭配hls环境及操作实例_第24张图片

2、YUV2RGB

回到examples文件目录
在这里插入图片描述
进入该文件夹

cd YUV2RGB

在这里插入图片描述
运行脚本

build.bat

HLS学习篇—搭配hls环境及操作实例_第25张图片
输入指令执行可执行文件

test-x86-64.exe

HLS学习篇—搭配hls环境及操作实例_第26张图片
结果显示

image_in.bmp

HLS学习篇—搭配hls环境及操作实例_第27张图片

注意:运行全程终端需保持开启状态。

三、实例——加法器

有关VScode配置C语言编译环境,可参考:
VScode搭配python&C#编译环境

1、C语言实现加法器

新建工程,用VScode打开【源码】

#include
#include
 int add(int a,int b)
{
    return a+b;
}

int main()
{
    int i;
    int a,b,ret;
    for(i=0;i<10;i++)
    {
        a = rand()%10;//产生小于10的随机数a
        b = rand()%10; //产生小于10的随机数b
        ret = add(a,b);
        printf("%d + %d = %d\n",a,b,ret);
    }
    return 0;
}

运行结果
HLS学习篇—搭配hls环境及操作实例_第28张图片

2、hls搭桥【语言转换】

在上述代码中添加hls库,指定模块或主键
HLS学习篇—搭配hls环境及操作实例_第29张图片
源码

#include
#include
#include"hls\hls.h"
component int add(int a,int b)
{
    return a+b;
}

int main()
{
    int i;
    int a,b,ret;
    for(i=0;i<10;i++)
    {
        a = rand()%10;//产生小于10的随机数a
        b = rand()%10; //产生小于10的随机数b
        ret = add(a,b);
        printf("%d + %d = %d\n",a,b,ret);
    }
    return 0;
}

补充:如果源码的【#include"hls\hls.h"】有错,则需要导入quartus安装路径的【hls】下的【include】文件路径。
HLS学习篇—搭配hls环境及操作实例_第30张图片

HLS学习篇—搭配hls环境及操作实例_第31张图片

HLS学习篇—搭配hls环境及操作实例_第32张图片

在这里插入图片描述

HLS学习篇—搭配hls环境及操作实例_第33张图片

HLS学习篇—搭配hls环境及操作实例_第34张图片
即可解决导入文件报错问题。

3、编译测试

打开终端,右下角选择cmd
HLS学习篇—搭配hls环境及操作实例_第35张图片
进入hls所在目录
HLS学习篇—搭配hls环境及操作实例_第36张图片
初始化
HLS学习篇—搭配hls环境及操作实例_第37张图片
切换回工程路径
HLS学习篇—搭配hls环境及操作实例_第38张图片
运行程序

i++ -march=x86-64 add.cpp
a.exe

编译结果
HLS学习篇—搭配hls环境及操作实例_第39张图片
加入编译器件,生成FPGA程序

i++ -march=CycloneV add.cpp
a.exe

HLS学习篇—搭配hls环境及操作实例_第40张图片
生成文件
HLS学习篇—搭配hls环境及操作实例_第41张图片
运行指令,生成波形文件

i++ -march=CycloneV add.cpp -ghdl -v
a.exe

HLS学习篇—搭配hls环境及操作实例_第42张图片
使用指令,查看仿真文件

cd a.prj\verification
dir

HLS学习篇—搭配hls环境及操作实例_第43张图片
查看文件
HLS学习篇—搭配hls环境及操作实例_第44张图片

4、仿真验证

进入仿真文件所在目录,运行指令

vsim vsim.wlf

HLS学习篇—搭配hls环境及操作实例_第45张图片

5、文件简介

简单认识一下这四个文件夹
HLS学习篇—搭配hls环境及操作实例_第46张图片
①components【类似FPGA的IP目录,可直接使用】
HLS学习篇—搭配hls环境及操作实例_第47张图片
②quartus【存放生成的FPGA工程文件以及Verilog文件】
HLS学习篇—搭配hls环境及操作实例_第48张图片
双击打开工程,直接全编译即可
HLS学习篇—搭配hls环境及操作实例_第49张图片
③reports【报告文件,资源占用及其他逻辑分析】
HLS学习篇—搭配hls环境及操作实例_第50张图片
进入如示网页
HLS学习篇—搭配hls环境及操作实例_第51张图片
④verification【存放波形以及类仿真文件】
HLS学习篇—搭配hls环境及操作实例_第52张图片
仿真测试文件
HLS学习篇—搭配hls环境及操作实例_第53张图片

你可能感兴趣的:(FPGA,hls)