HLS编程环境入门

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

  1. HLS是什么?与VHDL/Verilog有什么关系?
  2. HLS有哪些关键技术问题?目前存在什么技术局限性?
  3. 在win10或者Ubuntu系统下安装 Intel 或者 Xilinx 的支持HLS的FPGA编程开发软件,推荐Quartus18,或者Vivado18,设置好环境,完成一个入门级的HLS程序,并进行仿真或者实际开发板运行。

1.HLS的简介

HLS是什么:

HLS高层次综合(High Level Synthesis)是Xilinx公司推出的最新一代的FPGA设计工具,它能让用户通过编写C/C++等高级语言代码实现RTL级的硬件功能。即使是完全不懂硬件,也可以使用这个软件去实现FPGA。采用HLS之后,FPGA开发的时间大大降低了,甚至可能低于DSP和GPU;这大大加速的FPGA的开发时间,使得开发具有了更强的灵活性和高效性,HLS的逐步完善使得FPGA的开发高效性更进一步。HLS就是从高层次描述,之后综合成可用的网表文件的技术。这里的“高”指采用C、C++等编写程序,而不是传统的HDL语言。然而,实际上软件套件中是预先采用Vivado HLS这个软件将C程序转换成为Verilog HDL或者VHDL代码,之后进行下一步操作的,并不是直接综合C代码。也就是说HLS是将C/C++转换为VHDL/Verilog,然后再执行

2. HLS与VHDL/Verilog之间的关系

2.1 VHDL/Verilog语言

verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。vhdl和verilog的共同点
1、能形式化地抽象表示电路的行为和结构;

2、支持逻辑设计中层次与范围地描述;

3、可借用高级语言地精巧结构来简化电路行为和结构;具有电路仿真与验证机制以保证设计的正确性;

4、支持电路描述由高层到低层的综合转换;

5、硬件描述和实现工艺无关;

6、便于文档管理;

7、易于理解和设计重用

2.2 HLS与两种硬件描述语言的关系

Vivado HLS启用了C,C++以及SystemC规范,所以其支持以上三种语言对可编程器件进行编程,无需手动创建RTL,从而加速IP核的创建,并且Vivado HLS支持ISE和Vivado的设计环境,从另一个方面减少了开发人员熟悉软件环境的时间。
以下是官网给出的说明:
算法描述摘要、数据类型规格 (整数、定点或浮点) 以及接口 (FIFO, AXI4, AXI4-Lite, AXI4-Stream)
支持任意精度数据类型、视频以及 DSP 等的广泛库,查看各种库下的以下部分
指令驱动型架构感知综合可提供最优的 QoR。
在竞争对手还在手动开发 RTL 的时候快速实现 QoR。
使用 C/C++ 测试平台仿真、自动 VHDL 或 Verilog 仿真和测试平台生成加速验证
多语言支持和业界最广泛的语种覆盖率。
自动使用 Xilinx 片上存储器、DSP 元素和浮点库
关系类似与C语言和汇编语言的关系,是VHDL/Verilog语言的进一步发展。

2.3 HLS存在的局限性

HLS引擎的常见弱点包括:

  • 没有早期的性能估计以及任何违反设计和平台限制的行为

  • 没有利用所有可能的数据通信方式

  • 没有功能概述,也没有对用户代码进行优化转换

  • 支持代码报告得太晚了

  • 在某些情况下,工具的高效实施是不可能的,例如当必须将太多的加速器映射到硬件部分时。 HLS工具无法预先检测到这种情况,也无法在用户坚持的情况下尽量减轻其影响。
    这些弱点都对设计周期造成损害,因为它们不允许自动设计空间探索,更不用说为所需解决方案自动生成软件和硬件。
    参考链接:HLS高阶综合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值