再谈fpga开发(总结篇)

发布于:2025-08-02 ⋅ 阅读:(16) ⋅ 点赞:(0)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        和asic芯片相比,fpga具有很强的灵活性。不管是信号处理领域,还是算法定制领域都有很大的用处。但是fpga有一个很大的缺点,那就是价格问题。因为一个应用如果变成了通用产品,那么必然asic化,而规模化的asic芯片,无论在性能还是在成本上都有很大的优势。这就让fpga只能用在高频、实时、价格不敏感的领域,比如说航空、轨道交通、军工、医疗,这些都是属于价格没那么敏感的领域。纯消费类领域的产品,用fpga并不多。今天正好作为最后一篇谈fpga的文章,稍微总结下。

1、把fpga作为技能,而不是将来就做fpga的工作

        实际开发的时候,我们会发现大部分场景下还是用mcu、dsp、soc居多,甚至直接是x86工控机。这里面除了功能之外,就是成本的考虑,包括器件的成本和人员招聘的成本。这意味着,fpga如果使用,只能用在成本不敏感的区域。或者说,用低成本mcu+fpga,来代替高成本soc,这也是可以的。

        如果有可能的话,可以直接用fpga做产品,而不是用fpga找一份工作而已。

2、学习hls的思维,但是不要用hls写代码

        vivado的hls固然方便,但是用它来生成ip,不光有平台的限制、ide的限制,而且对应的语法其实没有那么好懂。它的好处,并不足以代替它的不足和麻烦。此外,altera虽然也有类似的hls工具,但原理也是一样的。建议大家最好自己掌握c转verilog的原则,什么可以转、怎么转、怎么优化,而不是把精力放在一个工具上面。

        各个ide下面的很多函数都是封装好的,比如viado hls下面的图像处理函数,自己能做的有限。这样做其实并不方便。我们要学习的应该是一个通用方法,而不是一个特定工具下的一个特定sdk的使用方法,这样就意义不大了。

3、fpga最实用的两个领域

        随着国产mcu、soc的发展,国产fpga也越用越多。但是fpga本身的应用范围却是萎缩的。这意味着,fpga会越来越集中于特定的领域,比如说芯片验证、高速通信、算法加速等等。对于一般的用户来说,fpga用来做硬件端口配置和算法硬化两个领域,还是非常有价值的。

        比如自动生成若干个串口、做一个可以控制的信号switch、以及实现一个局部算法加速,这都是非常有意义的,也是fpga自身擅长的领域。用mcu有的时候也能做,要么不方便,要么就是性能比较低,得不偿失。

4、cpu+fpga分工合作才是硬道理

        大家买到的fpga开发板,大部分都是fpga干活,并且从头干到尾。在实际项目中,这一点并不科学。比如低速的接口,类似于gpio、uart、spi、iic、pwm,这些可以通过mcu直接操作ip就好了。只有网络私有协议、图像处理数据加速这部分,才更适合fpga去进行处理。十几年前的zynq,到现在还有很多人使用,道理就是这个,传感器数据通过ip送进来,fpga做一些前端加速处理之后,剩下来的arm来完成,这是大多数时候两者的处理模式。

        回到mcu也是一样,比如说一些数据的采集、运算和加速,也可以放在fpga运算,处理好了,把结果送给mcu也是可以。mcu负责控制、参数设置、显示、网络、存储和人机交互,这样才能发挥出两者的最大优势。

5、软件工程师可以更多地用fpga做算法

        做软件开发的同学也可以使用fpga,但是不要用fpga来做点灯、uart、数码管、蜂鸣器这些事情,而应该是考虑怎么把复杂的算法用fpga固化下来。等算法固化之后,再转成ip,写一个驱动,让上层的软件来进行调用,这样不仅可以做成pipeline、算法加速,还能形成自己的计算优势。就国内市场来说,纯软件本身的风险是很大的,软硬结合会效果好很多。

6、打好fpga基础之后,用ai写verilog代码

        fpga的基础,很大一部分是数字电路基础。比如说组合逻辑、时序逻辑,为什么频率上不去,为什么用延迟一拍的方法处理组合逻辑,为什么有clock violation等等,这些内容都是数字电路这门课程告诉我们的。只要掌握了基本的verilog语法,知道常规的套路之后,并且熟悉背后的电路逻辑,fpga就会越用越顺的,直到它变成自己的一个有力工具。

        此外,现在ai发展很快,很多代码不需要自己写,一定要学着把自己的需求和ai相结合,把它当成自己的一个助手,这样才能最大限度提高自己的工作效率。


网站公告

今日签到

点亮在社区的每一天
去签到