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】;

点击回车;进入如示终端界面

初始化环境:
方式一:双击脚本文件【运行结束自动退出】

方式二:使用指令执行脚本

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的随机数ab = rand()%10; //产生小于10的随机数bret = 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的随机数ab = rand()%10; //产生小于10的随机数bret = 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【存放波形以及类仿真文件】

仿真测试文件

HLS学习篇—搭配hls环境及操作实例相关推荐

  1. Mysql学习篇之---Windows环境下安装 (修改密码)

    Mysql学习篇之---Windows环境下安装 (修改密码) 前言: 自己瞎鼓捣本机上的Mysql,结果导致mysql密码用那个都登录不进去了. 解决方案: 首先把mysql重新删除掉,重新解压了一 ...

  2. 深度学习论文 代码复现 环境配置操作

    ***深度学习论文代码复现 前置工作 安装Ubuntu18.04 安装Nvidia显卡驱动 安装anaconda 安装CUDA与cuDNN 通过软链接的修改实现多版本CUDA间的切换 将~/.bash ...

  3. (转载)OC学习篇之---KVC和KVO操作

    前一篇文章我们介绍了OC中最常用的文件操作,那么今天来看一下OC中的一个比较有特色的知识点:KVC和KVO 一.KVC操作 OC中的KVC操作就和Java中使用反射机制去访问类的private权限的变 ...

  4. 国产版Jetson Nano学习篇2—详细讲解Jetson Nano的开发环境配置和其 Ubuntu 18.04系统的操作,入门必看

    目录 前言 1.开发环境配置 1.1联网 1.2系统汉化和安装中文输入法 1.2.1系统汉化(按需求选择) 1.2.2安装中文输入法 1.3更换关屏设置 1.4更新源和部分软件(仅供参考) 2.Pyt ...

  5. VIVADO HLS 学习之路之图像的resize

    ** VIVADO HLS 学习之路之图像的resize ** 算下来接触vivado已经有半年了,学习fpga也满打满一年半了,零零碎碎的的笔记做过一些,但是记下了却没有复习,基本上等于没有.以后的 ...

  6. 网络安全学习篇35_第二阶段_lnmp、Nginx简单配置+安装报错:C compiler cc is not found缺少环境解决、安装php5.3.28

    上一篇博客:网络安全学习篇34_第二阶段_apache.mysql等配置+ centOS设置中文输入法 目录 Nginx的简单介绍 Nginx的安装 安装的时候报了一个错:C compiler cc ...

  7. [网络安全学习篇60]:文件上传

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  8. LVGL之学习篇(一)

    LVGL之学习篇(一) 学习目的 LVGL简介 LVGL本身是一个图形库,前身是litterVGL.其作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C语言编写,以 ...

  9. 《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.2 Torvalds的Linux开发

    本节书摘来自异步社区<鸟哥的Linux 私房菜 基础学习篇(第三版)>一书中的第1章,第1.2节,作者:鸟哥著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1. ...

最新文章

  1. 小测一下fastjson的速度(纯娱乐)
  2. 嵌入式成长轨迹11 【嵌入式环境及基础】【Linux shell深入】【深入讨论】
  3. 数据中心建设模式变革-- 如何采用EPC模式实现快速交付?
  4. SEAM学习(一)-----安装运行example
  5. cass块参照怎么改颜色,【干货】新版本CASS符号颜色自定义详解
  6. cpu 被挂起和阻塞_迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章...
  7. 判断两个ListInteger是否包含同样的值,不考虑位置关系
  8. 微信小程序启动过程分析
  9. 上计算机课没有签到肿么办,钉钉教学直播如何课前签到 钉钉直播如何提醒未签到的学生...
  10. linux识别riser卡,Riser卡和PCIe槽位
  11. 《九宫格记忆网配置使用说明》
  12. python正则表达式匹配字符串中的电话号码_Python正则表达式匹配字符串中的数字...
  13. 什么是基线评估(Baseline Evaluation)
  14. 计算机专业有那些?原来有这么这么多
  15. Unity中的设备唯一码GAID、IDFA,用于广告跟踪和数据统计
  16. jvm垃圾回收之垃圾收集器
  17. 关于国信证券的丑恶现象
  18. 17-kubernetes集群中ceph集群使用
  19. [cf] 752 div2 B. XOR Specia-LIS-t
  20. 风变科技python课程评价.11_风变科技在线职业教育课程不错,菜鸟也能成python高手...

热门文章

  1. 机器学习随笔(拾人牙慧)
  2. Python打开文件/文件夹/路径/目录
  3. i.MX6ULL终结者Cortex-A7寄存器组
  4. Navicat新建查询系统找不到指定路径
  5. 二叉堆(彻底整明白堆排序)
  6. 毕业季.公司 | 字节跳动:在宇宙中心赚钱,996也能挺住?
  7. java 队列和栈区别是什么_队列和栈有什么区别?
  8. php ajax轮询替代,swoole可以代替ajax轮询吗
  9. 微信小程序实现抽奖走马灯+圆点闪烁
  10. UnityEngine.CameraType