HLS入门实践

文章介绍了HLS(HighLevelSynthesis)技术,这是一种将高级语言(如C)转换为硬件电路的方法,用于提高芯片设计效率。HLS与VHDL/Verilog编程不同,后者是手动编写硬件描述,而HLS自动化程度更高。文章还提到了HLS的关键技术挑战和局限性,并指导如何下载Quartus和VisualStudio进行环境搭建及项目编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、HLS是什么?

High Level Synthesis(高级综合)是一种自动化的芯片设计方法,通过将高级语言(如C语言)描述的算法转换为硬件电路的形式来实现芯片设计。相比传统的低级硬件描述语言(如Verilog和VHDL),高级综合可以大大提高芯片设计的效率和可移植性,减少设计工作量和开发周期。高级综合技术的应用领域包括数字信号处理、图像处理、通信系统等。它适用于需要高效、高速的计算、复杂判断和控制逻辑的场景,可以帮助芯片设计者更快地完成设计、优化功耗和提高性能。

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

High Level Synthesis(高级综合)与Verilog和VHDL是两种完全不同的设计方法。

Verilog和VHDL是硬件描述语言,用于描述电路的行为和结构,它们与底层的硬件逻辑非常接近,可以灵活地实现各种复杂的逻辑功能。Verilog和VHDL通常由芯片设计工程师使用,在设计过程中,需要手动将代码编写成符合要求的电路结构。而且,Verilog和VHDL相对于高级语言来说更难上手,因此对于一些初次接触硬件设计的程序员来说,学习门槛较高。

High Level Synthesis则是一种自动芯片设计方法,通过将高级语言(如C语言)转换成硬件描述语言(如VHDL或Verilog),从而自动生成电路结构。它可以将复杂算法自动转化为可实现的电路,减少了硬件设计的工作量和开发周期,提高了设计效率和可移植性。

总体来说,High Level Synthesis和Verilog/VHDL都是芯片设计中非常重要的工具,但它们之间的应用范围和设计思路有所不同。High Level Synthesis适用于从高级语言到可实现的电路的转换,而Verilog和VHDL用于手动编写电路的行为和结构,具有更强的灵活性和可编程性。

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

High Level Synthesis(高级综合)作为一种自动芯片设计方法,其核心技术是将高级语言(如C语言)转换成硬件描述语言(如VHDL或Verilog)。在实际应用中,High Level Synthesis面临一些关键技术问题和技术局限性,主要包括:
1.算法的并行化和流水化: 高级综合需要将算法转换成硬件电路,其中并行化和流水化是关键技术,必须考虑到数据依赖性、数据冲突等因素。
2.优化: 高级综合需要对设计进行逻辑优化,包括布局、布线、时序等方面,以提高电路性能。
3.低功耗设计: 高级综合中需要考虑电路的功耗问题,需要进行优化设计,包括时钟频率、电压等方面。
4.可重构设计: High-Level Synthesis设计出的结果也需要满足可重构电路的需求,以方便设计更新和升级。

目前,High Level Synthesis技术仍然存在一些局限性,主要表现为:

1.硬件资源利用率不高: 尽管高级综合可以大大缩短设计周期,但由于代码转换的复杂性,生成的硬件电路的效率和资源利用率相对较低,难以满足某些复杂计算的需求。

2.处理并行性能差: 如果算法本身不存在高度的并行性,或者处理器架构不支持并行处理,那么就很难通过高级综合实现更好的处理性能。

3.可移植性方面仍有问题: 尽管高级综合可以将代码从一种语言转换为另一种语言,但在实际应用中,由于不同的芯片架构、编译器、操作系统等因素,导致代码的移植性仍然存在问题。

4、下载需要的软件

1、quartus 18.1

链接:阿里云盘

2、visual studio 2010下载与安装

百度搜索msdn:第一个就是(该网站并非微软的官方网站,只是民间收集的微软官方发行的的母版样本,不像那种经过网上破解之类的软件可能会出现安全问题。)
在这里插入图片描述
进入网站之后在输入框中输入visual studio 2010,然后点击搜索按钮
在这里插入图片描述
下载旗舰版的即可
在这里插入图片描述
在这里插入图片描述
下载完成之后需要将文件解压,点击setup.exe进行安装
在这里插入图片描述
进入到这个界面中,点击框住的选项进行下面的安装
在这里插入图片描述
接受许可条款,然后点击下一步
在这里插入图片描述
将想要安装的功能选择为自定义,并选择一个合适的安装路径
在这里插入图片描述
我们这里只选择“Visual C++”,然后点击右下角的安装。接下来就是等待了……
在这里插入图片描述
等待中……
在这里插入图片描述
安装完成
在这里插入图片描述
出现了这个对话框的话直接点击“退出按钮”就可以了
在这里插入图片描述
最后打开“开始菜单”,发现多了一个叫“Microsoft Visual Studio 2010”的文件夹,就证明安装成功了。
在这里插入图片描述
进入visual studio 2010之后还需要选择开发环境,我们这里选择C++的就好。然后点击启动按钮
在这里插入图片描述

5、环境搭建

找到init_hls.bat,并使用系统命令管理器运行文件。运行时,会自动配置需要的环境
在这里插入图片描述
运行完脚本之后再输入set,让修改生效
在这里插入图片描述

注意:每打开一个终端都要进行初始化一次

6、编写项目

1. 新建项目&添加需要的文件

先新建一个项目(最好创建在桌面上)。并将hls需要的头文件配置到项目中
在这里插入图片描述
将hls目录包含到项目中,包含的路径(Quartus安装路径/18.1A/hls/include)
在这里插入图片描述

2. 在项目创建led.cpp,参考代码如下:

// 001-first.cpp : 定义控制台应用程序的入口点。
//
#include "HLS/hls.h"
#include "stdafx.h"


component int led(int currentState)
{
	if (currentState == 0)
	{
		currentState = 1;
	}
	else
	{
		currentState = 0;
	}
	return currentState;
}

int _tmain(int argc, _TCHAR* argv[])
{
	int ledState = 0;  // 0表示关闭,1表示开启
	for (int i = 0; i < 10; i++)  // 这里为了将方便,将时长给设置的很短
	{
		ledState = led(ledState);
		printf("%d", ledState);
	}
	return 0;
}

3. 编译运行

进入到cpp文件所在路径下,打开命令行工具,输入以下指令生成可执行文件:

i++ -march=x86-64 -o led.exe led.cpp

运行可执行文件查看结果:
在这里插入图片描述

然后再输入指令生成报告、波形等文件(运行第一条指令之后可能需要等一会儿)

i++ -march=CycloneV -o led led.cpp -ghdl
led.exe

在这里插入图片描述

查看报告:在项目下找到这个文件夹,之后进入下面的reports子文件夹下,再找到report.html。这个html文件就是报告。波形文件路径\verification\vsim.wlf
在这里插入图片描述

报告:
在这里插入图片描述
使用命令打开波形文件:

vsim vsim.wlf

选择 函数名_init 模块添加波形
在这里插入图片描述
部分波形:
在这里插入图片描述

总结:

总的来说,代码编写起来并不是很难,只要稍微有点C语言基础就可以看懂。难的是在配置环境和解决问题等方面。比如说最开始没有将项目创建在桌面上,就总是无法得到vsim.wlf波形图,导致仿真无法正常进行。目前由于手边暂时没有开发板,无法上板运行看结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值