Quartus18.0 HLS入门

一、HLS简介

1、HLS是什么?

HLS(High-Level Synthesis)是一种硬件描述语言(HDL)的编程技术,它可以将高级语言代码(如C/C++)转换成硬件描述语言(如VHDL或Verilog)。

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

HLS与VHDL/Verilog编程技术有很大的关系,因为它们都是用于编写硬件描述语言的工具。然而,HLS与传统的VHDL/Verilog编程技术不同之处在于,HLS更加高级,可以让开发人员使用更加直观和易于理解的语言来描述硬件功能,从而提高开发效率和代码质量。HLS的流程与传统的VHDL/Verilog编程技术也不同,它更加依赖于自动化工具来完成硬件代码的生成和优化。

3、HLS关键技术问题

语言映射:如何将高级语言转换为硬件描述语言,生成硬件电路。
时序约束:如何对生成的硬件电路进行时序优化,以达到最佳的性能。
存储器优化:如何最大限度地利用FPGA中的存储器资源,提高性能和资源利用率。
并行化:如何将硬件电路并行化,以提高性能。

4、HLS目前存在的技术局限性

难以处理复杂的电路:HLS通常用于生成相对简单的电路,因为它难以处理复杂的电路。
设计复杂度高:使用HLS进行设计需要掌握高级语言、硬件描述语言和电路设计知识。如果开发人员没有足够的经验,可能会导致设计复杂度高、性能低下的问题。
生成的电路可能不是最优的:HLS生成的电路可能不是最优的,因为它依赖于自动化工具进行优化,而自动化工具的优化程度有限。
代码可读性差:HLS生成的硬件描述语言通常比手写的代码难以理解和调试,这可能会影响开发人员的效率。


二、环境搭建

1、Quartus下载

参考:https://blog.csdn.net/weixin_43828944/article/details/122139680

2、HLS入门程序

(1)初始化

找到init_hls.bat,并使用系统命令管理器运行文件。运行时,会自动配置需要的环镜

在这里插入图片描述

运行完之后输入set

在这里插入图片描述

(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;
}

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

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

运行可执行文件查看结果,会输出5个10

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

使用命令打开波形文件:

vsim vsim.wlf

打开modelsim后选择函数名_init 模块添加波形

在这里插入图片描述

部分波形:

在这里插入图片描述

注:项目用vs2010创建

三、参考资料

https://blog.csdn.net/m0_58807717/article/details/130953226

https://blog.csdn.net/molongqishi/article/details/130644555

https://blog.csdn.net/m0_58807717/article/details/130953226

https://blog.csdn.net/molongqishi/article/details/130644555

https://blog.csdn.net/qq_52548731/article/details/130795962

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值