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

一、环境测试及开发流程

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

1、环境测试

工具所需:

  • quartus prime18.1
  • modelsim
  • visual studio 2010

环境测试
在quartus安装路径的【hls】目录下,打开【cmd】;
在这里插入图片描述
点击回车;进入如示终端界面
在这里插入图片描述
初始化环境:
方式一:双击脚本文件【运行结束自动退出】
在这里插入图片描述
方式二:使用指令执行脚本

init_hls.bat

在这里插入图片描述
出现上示界面,则初始化成功。

2、i++编译与测试

进入counter目录下
在这里插入图片描述
双击打开
在这里插入图片描述
输入指令,终端进入该目录

cd examples\counter

在这里插入图片描述
运行编译文件,生成可执行文件“a.exe”

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

在这里插入图片描述
输入指令,运行可执行文件,显示PASSED,则编译测试通过

a.exe

在这里插入图片描述

3、编译为FPGA程序

输入指令

i++ -march=CycloneV counter.cpp

在这里插入图片描述
运行【a.exe】
在这里插入图片描述
生成文件
在这里插入图片描述
运行指令,生成波形文件

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

在这里插入图片描述
运行生成的【a.exe】文件,生成波形文件
在这里插入图片描述
查看生成文件
在这里插入图片描述

4、modelsim仿真

进入波形文件目录

cd a.prj\verification

在这里插入图片描述
查看目录文件

dir

在这里插入图片描述
运行指令,自动打开modelsim运行仿真

vsim vsim.wlf

在这里插入图片描述
添加仿真波形,开启仿真【计数器】
在这里插入图片描述

二、Examples示例

1、Image_downsample

关闭仿真软件,回到hls目录下
在这里插入图片描述
输入指令,进入此目录

cd examples\image_downsample

在这里插入图片描述
输入指令,执行脚本
在这里插入图片描述
生成【test-x86-64.exe】,运行可执行文件

test-x86-64.exe

在这里插入图片描述
输入指令,编译图形压缩程序并生成名为“a.exe”的文件

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

在这里插入图片描述
查看生成文件
在这里插入图片描述
运行可执行文件
在这里插入图片描述
结果显示【test.bmp】输入输出压缩操作一样
在这里插入图片描述

2、YUV2RGB

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

cd YUV2RGB

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

build.bat

在这里插入图片描述
输入指令执行可执行文件

test-x86-64.exe

在这里插入图片描述
结果显示

image_in.bmp

在这里插入图片描述

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

三、实例——加法器

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

1、C语言实现加法器

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

#include<stdio.h>
#include<stdlib.h>
 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;
}

运行结果
在这里插入图片描述

2、hls搭桥【语言转换】

在上述代码中添加hls库,指定模块或主键
在这里插入图片描述
源码

#include<stdio.h>
#include<stdlib.h>
#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】文件路径。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
即可解决导入文件报错问题。

3、编译测试

打开终端,右下角选择cmd
在这里插入图片描述
进入hls所在目录
在这里插入图片描述
初始化
在这里插入图片描述
切换回工程路径
在这里插入图片描述
运行程序

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

编译结果
在这里插入图片描述
加入编译器件,生成FPGA程序

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

在这里插入图片描述
生成文件
在这里插入图片描述
运行指令,生成波形文件

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

在这里插入图片描述
使用指令,查看仿真文件

cd a.prj\verification
dir

在这里插入图片描述
查看文件
在这里插入图片描述

4、仿真验证

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

vsim vsim.wlf

在这里插入图片描述

5、文件简介

简单认识一下这四个文件夹
在这里插入图片描述
①components【类似FPGA的IP目录,可直接使用】
在这里插入图片描述
②quartus【存放生成的FPGA工程文件以及Verilog文件】
在这里插入图片描述
双击打开工程,直接全编译即可
在这里插入图片描述
③reports【报告文件,资源占用及其他逻辑分析】
在这里插入图片描述
进入如示网页
在这里插入图片描述
④verification【存放波形以及类仿真文件】
在这里插入图片描述
仿真测试文件
在这里插入图片描述

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值