HLS入门实践

前言

软件工具:
quartus 18.1
vs2010版本(别用2019,会出现出现找不到路径并且无法添加路径使用的问题)

一、HLS是什么?与VHDL/Verilog编程技术有什么关系?

1、HLS简介

HLS就是从高层次描述,之后综合成可用的网表文件的技术。这里的“高”指采用C、C++等编写程序,而不是传统的HDL语言。然而,实际上Vivado套件中是预先采用Vivado HLS这个软件将C程序转换成为Verilog HDL或者VHDL代码,之后进行下一步操作的,并不是直接综合C代码。

2、HLS与VHDL/Verilog编程技术有什么关系?

RTL(寄存器传输级别,基于 VHDL/Verilog 语言)逐步发展,但 VLSI 系统的复杂性呈指数级增长,使 RTL 设计和验证过程成为生产力的瓶颈。HLS(高级综合)通过提高抽象级别, 可以减少最初的设计工作量,设计人员可以集中精力描述系统的行为,而不必花费时间来实现微体系结构的细节,且验证被加速、设计空间探索(DSE)更快、定位新平台非常简单、软件工程师可以访问 HLS 等这些好处加在一起,减少了设计和验证时间,降低了开发成本,并降低了进行硬件项目的门槛,因此缩短了产品上市时间,并且在异构系统上使用硬件加速已成为更具吸引力的选择。但是在结果质量(QoR)上,HLS 工具还落后于 RTL。

二、HLS有哪些关键技术问题?目前存在什么技术局限性?

HLS 协议的小切片方式会生成大量的文件,存储或处理这些文件会造成大量资源浪费。如果要实现数天的时移,索引量将会是个巨额数字,并明显影响请求速度。因此,HLS 协议对存储 I/O 要求相当苛刻。

HLS 技术无法直接用于布局布线之后的综合,高级语言仍然需要转换成硬件描述语言。并且一般的C语言学习不会涉及到地址映射、Avalon 总线等,开发起来具有一定难度。

三、初始化环境

1、打开系统命令管理器cmd,定位到init_hls.bat的路径,并运行init_hls.bat。
在这里插入图片描述
2、在桌面上新建一个文件夹存放工程文件,并在工程目录下新建一个test.cpp文件。然后编写一个简单的程序:

#include “HLS/hls.h”
#include “stdio.h”

component int mul(int a,int b)
{
int c =0;
c = a*b;
return c;
}
int main()
{
int a=0,b=0,c=0,i=0;
for(i=0;i<5;i++)
{
a= i+1;
b= i+2;
c = mul(a,b);
printf("%d * %d = %d\n",a,b,c);
}
return 0;
}

3、切换到刚刚编写程序的目录,然后输入i++ -march=x86-64 -o mul.exe test.cpp命令,将刚刚编写的程序生成测试文件。
在这里插入图片描述
4、运行mul.exe
在这里插入图片描述
5、生成IP核镜像文件:i++ -march=CycloneV -o mul test.cpp -ghdl
在这里插入图片描述
6、再次运行mul.exe之后才能生成波形文件:
在这里插入图片描述
7、切换到波形文件的目录,用仿真软件打开波形文件:
在这里插入图片描述
在这里插入图片描述
8、查看报告:
在这里插入图片描述
在这里插入图片描述
9、导入IP
Quartus的Tools–Options–IP Setting–IP Catalog Search Locations菜单下,在Globa IP Search directory栏中指定mul的路径;
在这里插入图片描述
在工程中的 IPCatalog 栏中找到前面加进去的 IP,然后双击该 IP,在弹出的界面中点击 OK–Generate HDL–Finish:
在这里插入图片描述
在这里插入图片描述

四、测试调用IP

1、新建quartus工程
2、新建顶层文件
3、添加ip
在工程中的 IPCatalog 栏中找到前面加进去的 IP,然后双击该 IP,在弹出的界面中点击 OK–Generate HDL–Finish,
4、添加 .qsys
把 components 文件夹里的 .qsys 文件添加进 Quartus 工程,
5、例化
并把_inst.v 文件中的模块端口复制到 Quartus 顶层文件中进行例化
在这里插入图片描述

五、总结

本次学习了HLS的基本原理,了解了HLS基本实践流程。通过软件语言封装IP然后调用来实现硬件描述,感觉非常神奇。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值