HLS入门实践

文章介绍了HLS(High-LevelSynthesis)技术,它允许用C/C++等高级语言进行FPGA设计,提高了开发效率。HLS的关键技术包括输入语言、时序评估和验证环境的复用,但也存在性能估计和资源控制的局限性。通过一个LED灯闪烁的例子,详细阐述了从新建HLS工程,编写C代码,进行C仿真,C综合到联合仿真的完整流程。
摘要由CSDN通过智能技术生成

一、关于HLS

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

HLS(High-Level Synthesis)高层综合,就是将 C/C++的功能用 RTL 来实现,将 FPGA 的组件在一个软件环境中来开发,这个模块的功能验证在软件环境中来实现,无缝的将硬件仿真环境集合在一起,使用软件为中心的工具、报告以及优化设计,很容易的在 FPGA 传统的设计工具中生成 IP。
传统的FPGA开发,开发周期比较漫长,使用HLS,用高级语言开发可以提高效率。

Verilog可以精准的控制电路实现,但实现起来需要较长的周期,而HLS虽然可快速迭代,但其从软件到硬件翻译无论是面积还是资源均难以控制。

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

关键技术:

输入语言采用了类 C语言而非前两代的 HDL 语言,如 C、C++、SystemC 以及 SpecC、HandelC 等,这能够使得系统模型得到复用,进行进一步的软硬件实现。
实现了对时序(timing)比较精确的评估和调度。
实现了对验证环境的重复使用,通过 TLM 建模技术可以将系统验证环境复用于 RTL 级验证,降低了验证的复杂度。

局限性:

没有早期的性能估计以及任何违反设计和平台限制的行为;
没有利用所有可能的数据通信方式;
没有功能概述,也没有对用户代码进行优化转换
支持代码报告得太晚了;
在某些情况下,工具的高效实施是不可能的,例如当必须将太多的加速器映射到硬件部分时。 HLS工具无法预先检测到这种情况,也无法在用户坚持的情况下尽量减轻其影响。

二、HLS完成LED灯闪烁

2.1 新建HLS工程

先点击创建工程
在这里插入图片描述
选择创建位置,输入项目名
在这里插入图片描述
点击next到下面的界面,选择元器件
在这里插入图片描述
在这里插入图片描述
导航栏如下所示:
在这里插入图片描述

2.2 添加源文件

右键 Source,点击 New file,新建一个 led.cpp 文件
在这里插入图片描述
再添加一个头文件led.h
代码如下:
led.h:

#ifndef _SHIFT_LED_H_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值