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【存放波形以及类仿真文件】
仿真测试文件