赞
踩
1. HLS是什么?与VHDL/Verilog编程技术有什么关系?
高层次综合(High Level Synthesis,
HLS)是Xilinx公司推出的最新一代的FPGA设计工具,它能让用户通过编写C/C++等高级语言代码实现RTL级的硬件功能。Verilog或VHDL与HLS相比,就好比是几十年前的汇编语言与C语言。RTL设计需要了解VHDL和Verilog等语言,而HLS工具通常使用熟悉的语言,如C/ C++。HLS工具可以处理大多数特定于硬件的实现细节,因此大大降低了软件工程师处理硬件项目的门槛。但与VHDL/Verilog相比,HSL能实现的优化十分有限。
理想的方法是将 HLS 代码用于计算密集型部分与手工制作的用于逻辑控制和存储器管理的 HDL
实现相结合。但是,当内存管理和控制逻辑是应用程序实现过程中最复杂,最耗时的部分时(如本文所说),与纯 HDL
设计相比,混合方法可能不会增加太多价值。此外,在这种方法中,HDL 模块将被视为 HLS 设计中的黑匣子,从而阻碍了该工具重新使用 HDL
模块消耗的资源的努力。
2. HLS有哪些关键技术问题?目前存在什么技术局限性?
HLS协议的小切片方式会生成大量的文件,存储或处理这些文件会造成大量资源浪费。如果要实现数天的时移,索引量将会是个巨额数字,并明显影响请求速度。因此,HLS协议对存储I/O要求相当苛刻。
目前存在的技术局限性:HLS技术无法直接用于布局布线之后的综合,高级语言仍然需要转换成硬件描述语言。并且一般的C语言学习不会涉及到地址映射、Avalon总线等,开发起来具有一定难度。
如果卸载了VS还需得重新安装上VS2010,可以去微信公众号“软件管家”处找到安装包
打开系统命令管理器cmd,定位到init_hls.bat的路径,并运行
d:
cd D:\intelFPGA\18.1\hls
init_hls.bat
查看路径和环境变量,找到init_hls.bat
在D盘新建文件夹prj(英文路径下就可以),创建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; }
1.切换到刚刚新建的工程目录,输入i++ -march=x86-64 -o mul.exe test.cpp,生成exe文件
d:
cd D:\Hproject\prj
i++ -march=x86-64 -o mul.exe test.cpp 用于生成mul.exe文件
2.运行mul.exe文件
mul.exe
3.生成镜像文件
输入i++ -march=CycloneV -o mul test.cpp -ghdl
i++ -march=CycloneV -o mul test.cpp -ghdl
mul.exe
6、导入自编辑IP核
将生成的 components 文件夹的路径导入到quartus中
Tools–>Options–>IP Setting–>IP Catalog Search Locations
通过本实验的学习,学会了HLS开发环境的搭建。
https://blog.csdn.net/han422858897/article/details/117106846?utm_source=app&app_version=4.7.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。