FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
登录
首页-技术分享-正文

学FPGA(从Verilog到hls)

二牛学FPGA二牛学FPGA
技术分享
6个月前
0
0
204

hls,全称为high level synthesis。也就是说从更高一级的语言来完成电路的综合。从前,编写fpga只有一个方法,都是编写verilog类似的硬件语言。但是如何用c、c++编写可综合的逻辑,这就变得很重要了,毕竟c、c++工程师比fpga的工程师要多得多。

1、hls的重要性

从某种意义上,hls会极大拓展目前fpga的应用领域。相比较mcu、arm soc来说,fpga目前还是集中于信号采样、数字信号处理、模数转换这些场景。但是在目前比较兴起的人工智能领域,fpga着墨不多,一个相反的例子就是gpu。从前gpu只是一个图形加速器,后来连续在游戏和人工领域不断发力,使得gpu的应用领域越来越多,关联公司的规模也越来越大。

2、c语言和并发的悖论

c语言本身是一个串行代码,它和并发并不完全一致,从这方面来说,可以看成一个周期为1的特殊fpga代码。所以,在设计的过程中,难点不在于语言本身,而是在于并行的思维。c语言本身不直接变成网表,也是先变成verilog语言,再转成网表的。要实现这一步,就要在c语言上做一些修改和限制,这就是hls的初衷。

3、verilog和waveform不能丢

此外,hls改造后,如何判断hls是不是想要的效果,除了看综合效果后,也需要看对应的waveform,这点无可取代。不要指望代码编写好,就有一个立马的性能改善效果。

4、先编写c代码,再优化hls

对于软件工程师来说,先保证c逻辑没问题,再一步一步优化。优化的方法基本就是添加各种directive,也就是pragma标志。基本方法是三种,1、边收集数据边处理;2、并发;3、流水线。本质上都是各种串行限制,减少算法的latency。

5、hls仍然需要时序图、波形图设计

hls一般都是默认做串行处理,比如下面一段代码,

for(int i = 0; i < 10; i++)
{
b[i] = a[i] + c + d;
}

如果没有任何的说明,那基本上就是loop body里面的运算代码顺序执行10次。如果需要进行显式的加速,可以把循环打开、用pipeline,这样基本就可以加速处理。加速不是没有代价的,基本的方法都是空间换时间,这中间有一个权衡,算法可能快了,但是资源也可能不够了。一个巧妙的办法,就是先设计图形,等testbench的时候,把测试的图形和设计的图形进行对比,这样就可以达到事半功倍的效果,不过度优化也是很重要的。

6、注意接口、内存、hls提供的函数

hls怎么和bus接口沟通,函数里面的内存怎么映射,这里面hls都提供了很好的方法。此外,对于一般的函数功能,hls也提供了对应的优化,尤其是opencv提供的一些函数,hls都有对应的版本。

7、学习hls的另一个思路

如果需要把fpga应用到更多的场合,那么hls至少从目前来说还是必由之路。

ps:

很多人可能很难理解,既然fpga做算法这么烦,为什么还要用。我想主要还是因为低频的fpga算法性能可以和数倍于自己的soc一样好,电路相对还简单一点,成本、供应链也没那么紧张。尤其是对于非标产品来说,特别合适。

标签:
本文原创,作者:二牛学FPGA,其版权均为FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训所有。
如需转载,请注明出处:https://z.shaonianxue.cn/9598.html
二牛学FPGA

二牛学FPGA

初级工程师
这家伙真懒,几个字都不愿写!
21010.92W3.14W3.41W
分享:
成电国芯FPGA赛事课即将上线
2024年夏令营学员项目代码展示(基于FPGA的广告点阵屏)
2024年夏令营学员项目代码展示(基于FPGA的广告点阵屏)上一篇
FPGA &#8211; 基于FPGA的HDMI显示下一篇
FPGA &#8211; 基于FPGA的HDMI显示
相关文章
总数:118
Xilinx FPGA 入门基础指导教程(教材)

Xilinx FPGA 入门基础指导教程(教材)

本教程为FPGA入门基础教程,内容包括Verilog基本语法、数字电路基…
工程案例, 技术分享
4年前
8
0
1.60K
1
紫光FPGA实现基于特征值提取的水果识别系统

紫光FPGA实现基于特征值提取的水果识别系统

项目简介本资源文件提供了一个基于紫光FPGA的水果识别系统实现方…
技术分享
2个月前
0
0
139
0
集成电路全产业链深度剖析:各环节岗位详解及薪资水平

集成电路全产业链深度剖析:各环节岗位详解及薪资水平

一、整体框架调整集成电路全产业链主要包括设计、制造、封装测试三个…
技术分享
10个月前
0
0
289
0
评论表单游客 您好,欢迎参与讨论。
请输入昵称
请输入邮箱
请输入网址
0 / 0
评论列表
总数:0
FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
没有相关内容