时间:2024-07-27 来源:网络搜集 关于我们 0
现在有很多的同学想学习FPGA,但是又担心学完FPGA后的就业。
● 同学们在校期间如何更好地实现FPGA入门学习?
● 想不想看一下FPGA工程师的技能树?
● 一名FPGA工程师的日常工作包含哪些?
● 就业市场对FPGA工程师的需求程度如何?
笔者毕业2年多,在此文中分享一些笔者的FPGA学习经验和就业的看法,希望能够帮到那些迷茫中的同学。
1
FPGA入门学习
先说学习FPGA。和学大多数的微处理器一样,第一,首先得学会其语言。个人比较推荐学习Verilog HDL,VHDL不是太推荐,因为学VHDL的人相对少一些,如果你硬是要学习VHDL的话,可能要走的路会更崎岖一点,当你遇到困难,你能求助的人会比较有限,如果你对VHDL特别有情怀的话,也可以先学习Verilog HDL再学VHDL,先入门(Verilog HDL)再锦上添花(VHDL)。我觉得所有编程语言都是相通的,关键在于对语法的理解以及思维逻辑。当你学会一门编程语言后,学习另一门编程语言就会轻松很多。笔者没有拿任何好处费,还是大胆推荐一本入门的语法书——夏宇闻的《Verilog数字系统设计教程》。
第二,学会了编程语言,接下来最好再预习或者复习一下数电这本书,对数字电路有一个清晰的理解。
第三,学了那么久的语法书,是不是想小试牛刀一下,现在你需要一本FPGA工具使用书籍,先理解FPGA工具的使用,试着自己不看书去编写简单代码,并在集成开发环境(比如赛灵思的Vivado和ISE)中编译通过,如果遇到报错,看看是不是语法上是不是出错了,比如少个标点或者使用了中文字符,这个阶段你只需要按照你的逻辑去编写代码,编译通过即可。
第四,前面进行了大量的准备,现在是时候开始实战了,如果你资金充沛,可以去购买一款适合自己的FPGA开发板,一分钱一分货,有入门的也有专业性很强的开发套件。如果你资金比较困难,那么,你只能在Vivado或者Modelsim等软件中仿真验证了。在此着重说一下,掌握FPGA仿真软件的使用是非常重要的,FPGA开发中将有至少百分之60的时间是在仿真中度过的,入门和很多微处理器学习一样,还是点灯,然后编写SPI和IIC等等总线协议,并在板上进行验证。
第五,你把前面那些路都走过了,那么恭喜你,你已经成功入门FPGA,你现在需要的是提升自己,做一些进阶性的训练。现在,你又得回归课本,去好好的学习高等数学学习算法,试着编写DDS、数字滤波器等代码,因为FPGA大多数时候是应用在大数据处理或者实时性要求高的场合中,所以,做FPGA开发算法要比较好一些。
第六,提升自己的过程都是有一些难度的,懂得求助别人是一个非常重要的品质,期间你可以在很多论坛都可以发帖求助,比如电子创新网,DIGILENT中文技术论坛等。
我比较赞成循序渐进的学习FPGA,只有掌握了FPGA的基础——编程语言和数字电路,你才能继续往下走,如果连语法都不懂,就直接板上调试,复杂的代码估计看都看不懂,更何况修改代码和纠错了,而且写出的代码也是C语言风格代码。也有些人喜欢看那些比较简短的语法教程,我觉得这样不太好,学得虽然快,但是理解不够透彻,容易出问题。再补充一点,如果资金充裕的话,可以参加学校的FPGA培训班,这种培训班都有老师手把手教学,入门会快很多,也容易纠正你的错误,但是,师傅领进门,修行在个人,你能达到什么样的境界最终还是看你自己的努力以及天赋。
2
FPGA技能树
以下是在知乎上看到的FPGA工程师的技能树(可点击放到哦),挺有意思的,看看你爬到哪儿了呢?
3
FPGA就业谈
最后说说就业。FPGA就业领域比较集中在通信、图像和一些高端设备中,进入门槛会高一些。笔者在通信行业从事FPGA开发工作,日常的主要工作职责包括修改代码以满足客户提出的需求,再或者有更高性价比的芯片出来,进行芯片的更替,除此以外,还有新机型的评估与设计。个人理解,FPGA开发的核心主要有三点:1、系统需求和FPGA资源评估;2、代码编写以及仿真验证;3、板上调试;这3点都需要在学习和工作中慢慢积累经验,目前有一些前沿技术对FPGA有较大需求,如对实时性准确性要求很高的无人机和机器人,还有高速摄像机等,都对当前的微处理提出了相当高的要求,FPGA是一个很不错的选择。
很多人觉得FPGA开发工作只有研究生或者985、211之类的名校本科生才能从事,让很多人心生畏惧,我的理解是“是这样,也不是这样”。“是这样”指门槛确实很高,没有过硬的技术真的不能获得这份工作;“不是这样”指只要你够努力有够硬的技术,你也能够获得这份工作。笔者就是一个普通学校的本科生,但是笔者靠着自己的努力也进入了一家大型的上市公司做FPGA开发,如果你没有拼搏的精神(当然有别人不能企及的家庭背景除外),那么不管你做什么,也是不会有多大成就的,一分耕耘一分收获。
也有一些一时起意的同学,学习FPGA之后,发现自己其实并不喜欢FPGA,担心浪费了自己宝贵的时间,其实是没有关系的。FPGA是硬件,后续你不管学习何种微处理器,你有FPGA的基础,你对时序的理解,将会很大的帮助你学习新的微处理器知识。你看看那些招聘信息,很多岗位要求里都会提示说有FPGA使用能力更佳,你还担心什么呢。
最后老生常谈一下:工作是为了什么?是为了更好的生活。生活靠什么保障?靠钱,是的,有一点粗俗,但是却很实际,FPGA岗位的起薪比很多电子工程师岗位的薪资要高一些,主要还是因为缺,缺的不是数量,是质量。从职业发展前景来看,目前嵌入式很火,从业人员也很多,普通人的薪资难有很大的上涨空间,单片机更是集中在低成本的小家电上,高技术是未来发展方向,FPGA就是一门很前沿的技术。就在前些天,李克强总理深圳考察,还积极与创客们互动,鼓励大家瞄准国际前沿,努力研发出颠覆性技术。不论是起薪,还是未来的职业道路,FPGA都是一个很不错的选择。