FPGA成长之路

初始FPGA

第一次听说FPGA是在大二下学期。当时有一位很严格的老师对我们说,这门课一定要学好,因为这是以后你们吃饭的家伙。当时学的是VHDL硬件语言,老师讲的也特别仔细,但是一直没觉得FPGA有什么特别之处。不过现在想想VHDL语法真的比较复杂,但是VHDL语法相比verilog在数学运算上更有优势,更容易实现浮点运算。经过一个学期的学习,算是对FPGA有了初步印象,期末的上机考试记得用了三段式状态机。

为什么学习FPGA

大二上完课之后便没有接触过FPGA,对其了解也仅限于状态机写时序逻辑。等到大四考完研之后,想细学一个方向,就思考起来学哪一个方向。首先排除了软件方向,因为本科是通信工程,专业基础学的也不错。如果放弃了自己大学四年积累的知识去学软件岂不是太亏了,这里我也想说周围很多同学都去做C++与JAVA开发,他们本科四年与研究生三年都没用过这些语言,只是因为工资高、招聘多。但是自己作为一个研究生和科班出身的本科生相比一点优势没有。甚至有部分同学连操作系统、数据结构都没接触过,知识学习一下基本语法、刷刷题便去找工作。这里,不否认确实可以找到挺不错的工作,毕竟我们专业与计算机类专业是一个大类,但我总感觉很亏。

或许会有些同学说,反正本科四年我什么都没学到,肯定去做工资高的软件。但是相比于软件的什么也不会,我们毕竟在电子专业中沉浸了四年,关于电子最起码知道二极管、三极管、锁存器、触发器、集成运放;信号处理方面我们知道信号、滤波器、DA、AD、量化编码;通信方面了解调制解调、BPSK、QPSK、载波,2\3\4G通信。那为什么还要去做软件方向呢?

至于为什么最后选择了FPGA方向,首先自己的专业基础课程学的还不错,而FPGA几乎可以把大学课程全给包括进来电子电路、编程语言、信号处理、通信等,这里也可以发现这也是FPGA的几个方向,这样感觉自己的竞争力更大点;其次FPGA是电子行业工资很高的一个方向,不比软件低,相比于嵌入式工资要高的多。而且现在看来,当时选择的方向并没有错,FPGA工程师的缺口很大,再加上国家在IC行业的支持,人才的需求量会越来越大,这带来了一系列的机遇。

这里劝解一下电子类的同学,不要一股脑扎进软件的方向中去,我们本专业同样有比软件方向更好的工作,毕竟我们的中年危机要比软件低的多,工资又不必他们低。

如何学习FPGA

啰嗦了那么多,终于到了重点,如何学习FPGA。有同学会说先看语法书,也有同学说买个开发板。
1、这里个人建议是先把数电学号,否则会发现一个很简单的现象自己都不明白原理,这里推荐慕课网上清华大学林红老师的数字电子技术基础(阎石老师主编),在bilibili上有完整的视频;
2、然后买个开发板,因为语法书太厚了,里面大多数是不可综合语句,也就是平常很少用得到。而且,书本看完之后几乎也记不清什么。这里入门推荐小梅哥的开发板AC620(约500元),因为小梅哥有完整的暑假班教学视频,是从零基础开始的,语法也是从零学习(bilibili上有完整视频、也有专门的答疑群)。学完小梅哥的开发板,你将会学到三大协议接口、千兆网、SOPC等,算是进入了入门阶段;
3、接下来需要进行进阶学习、这里推荐米联客的开发板,因为米联客的板子较便宜(也已经很贵了),历程也比较丰富,这里推荐MA7035FA 100T(1699元)。从这个开发板上,你可以学到HDMI接口、USB3.0接口、PCIE接口、SFP光口、DDR3、千兆网等。因为米联客的基础答疑服务做的不算完善(毕竟做的板卡较高级,时间有限可以理解),所以一定要有了较好的基础再接触,否则会感觉自己什么都学会了,自己又什么都没学会;
4、这时候可以接触时序约束课程了,入门还是建议小梅哥的时序约束视频,进阶可以看明德杨的时序约束(bilibili上面有完整视频),个人认为时序约束没那么重要,内部时序主要看自己的代码风格,这里推荐V3学院、开源骚客的代码风格,输入输出时序约束可以用PLL代替;
5、将FPGA的接口常见的接口逻辑学完,那么接下来应该注重算法了,这个市面上据我所知没有交完善的资料,顶多就是V3学院的深度学习课程、SOBEL边缘检测,开源骚客的直方图均衡、静脉显示,至芯的霍夫曼编码等等,各位同学如果需要可以联系他们。因为这些算法的FPGA实现已经很成熟,所以具有一定的参考作用。但是到达这个阶段主要就靠自己了,与自己的研究方向或工作方向联系起来。如果做基于FPGA的图像处理方向,推荐冈萨雷斯的数字图像处理、CrazyBingo的学习材料;如果做加速方向,可以关注V3学院的加速课程(SDSOC)、浙大与复旦也有研究生做了相应的课程;如果是做近来比较火的IC方向,这个我没关注过,就不解释了。。。。

至于应不应该报辅导班是很多同学想问的。如果自己实在静不下心又有时间,可以考虑报辅导班,但是要切记自主学习很重要。现在市面上的资料已经比较全,报辅导班就是遇见不会的bug,可以找到老师帮你立刻解决。但是这是一个FPGA工程师必备的技能,要学会自己解决问题,不能什么都问。这里建议报辅导班的同学属于,大学确实什么基础都没有,甚至C语言都不会,又想从事FPGA行业的同学。如果有相应的基础,还是自己学比较好,虽然过程比较曲折难受,但是这种能力是必备的。至于辅导班,主要有V3学院(上海)、至芯科技(北京)、明德扬(广州),还有一些小型的比如开源骚客(成都)、小梅哥(武汉)、大辉哥(暂未定)办的。至于内容其实大同小异(把常见的接口讲完,再附带几个简单算法),选择哪家看自己的方便程度就行了。

最后吐槽一句,上面提到的公司记得打钱哈,免费做了广告!!!!!

需要掌握的接口

这里稍微提一下需要学什么:
1、verilog、VHDL语法
2、常见接口:VGA、HDMI、UART、IIC、SPI等
3、常用外设:AD、DA、OV5640、LCD屏、DS18B20等
4、存储外设:SDRAM、DDR、EEPRO等
5、信号处理算法:FIR滤波器、FFT变换、CORDIC算法、自适应滤波算法、硬件排序算法,差值抽取等
6、图像处理算法:SOBEL图像边缘检测、中值滤波、图像腐蚀与膨胀、直方图均衡化等等(这里强烈推荐HLS工具,可以很方便的实现图像处理算法)
7、高速接口:USB2(480Mbps)、USB3(5Gbps)、千兆网(1Gbps)、PCIE(2.5、5、8GT/s)、SFP、万兆网等
8、ZYNQ:C语言基础、AXI协议、DMA操作,常用PS端外设的使用方法。
9、时序约束操作
10、项目实战
11、必备技能:MATLAB、C、C++

  • List item

未来计划

以后我将在CSDN上面从零基础开始写一些文章,总结自己学到的知识,同学们应该可以看出我这人比较啰嗦,自己写的文章也一定会很详细。以上知识,我己经基本掌握,对文章有什么看法或者需要更近一步交流的同学,可以加入下面的群
在这里插入图片描述

  • 31
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
01 试看小梅哥fpga设计思想与验证方法视频:http://bbs.elecfans.com/jishu_484523_1_1.html 02 芯航线FPGA开发平台设计初衷:http://bbs.elecfans.com/jishu_514523_1_1.html 03 芯航线FPGA学习平台介绍:http://bbs.elecfans.com/jishu_514526_1_1.html 04 芯航线FPGA学习平台焊接记录:http://bbs.elecfans.com/jishu_514914_1_1.html 05 芯航线FPGA学习平台系统调试:http://bbs.elecfans.com/jishu_515169_1_1.html 06【连载视频教程(一)】科学的开发流程:http://bbs.elecfans.com/jishu_515340_1_1.html 07【连载视频教程(二)】3-8译码器设计验证:http://bbs.elecfans.com/jishu_515468_1_1.html 08【连载视频教程(三)】二进制计数器设计验证:http://bbs.elecfans.com/jishu_515476_1_1.html 09【连载视频教程(四)】高性能计数器IP核使用:http://bbs.elecfans.com/jishu_515714_1_1.html 10【连载视频教程(五)】BCD码计数器设计验证:http://bbs.elecfans.com/jishu_515893_1_1.html 11【连载视频教程(六)】例解阻塞赋值与非阻塞赋值:http://bbs.elecfans.com/jishu_516094_1_1.html 12【连载视频教程(七)】例说状态机:http://bbs.elecfans.com/jishu_516249_1_1.html 13【连载视频教程(八)】基于状态机的独立按键消抖:http://bbs.elecfans.com/jishu_516791_1_1.html 14【连载视频教程(九)】独立按键控制LED与亚稳态问题引入:http://bbs.elecfans.com/jishu_516795_1_1.html 15【连载视频教程(十)】数码管动态扫描设计与实现:http://bbs.elecfans.com/jishu_516979_1_1.html 16【连载视频教程(十一)】UART串口发送模块设计与验证:http://bbs.elecfans.com/jishu_516984_1_1.html 17【连载视频教程(十二)】UART串口接收模块设计与验证:http://bbs.elecfans.com/jishu_518308_1_1.html 18【芯航线FPGA学习平台众筹进度帖】芯航线FPGA开发板入手测试说明:http://bbs.elecfans.com/jishu_518301_1_1.html 19【芯航线FPGA学习平台众筹进度帖】芯航线FPGA学习套件配置文件固化教程 http://bbs.elecfans.com/jishu_518816_1_1.html 20【芯航线FPGA学习平台众筹进度帖】芯航线FPGA学习套件众筹回报已发放完毕,特公布运单号 http://bbs.elecfans.com/jishu_518819_1_1.html 21【芯航线FPGA学习平台众筹进度帖】芯航线FPGA学习套件众筹总结暨抽奖结果 http://bbs.elecfans.com/jishu_520454_1_1.html 22【芯航线FPGA学习平台众筹进度帖】【有奖活动】芯航线FPGA学习平台有奖活动第一季——看教程,秀笔记,赢好礼 http://bbs.elecfans.com/jishu_520463_1_1.html 23【连载视频教程(十三)】嵌入式块RAM应用之双口RAM:http://bbs.elecfans.com/jishu_520914_1_1.html 24【连载视频教程(十四)】搭建串口收发与存取双口RAM简易应用系统: http://bbs.elecfans.com/jishu_520915_1_1.html 25【连载视频教程(十五)】ROM的搭建与Signaltap II 工具使用:http://bbs.elecfans.com/jishu_522774_1_1.html 26【连载视频教程(十六)】FIFO介绍与时序验证:http://bbs.elecfans.com/jishu_522778_1_1.html 27【连载视频教程(十七)】使用PLL进行设计+Verilog参数化设计介绍: http://bbs.elecfans.com/jishu_524442_1_1.html 28【芯航线FPGA学习平台众筹进度帖】芯航线FPGA学习套件下载器驱动安装说明 http://bbs.elecfans.com/jishu_524793_1_1.html 29【芯航线FPGA学习平台众筹进度帖】Verilog语法基础讲解之参数化设计: http://bbs.elecfans.com/jishu_528770_1_1.html 30【连载视频教程(十八)】基于线性序列机设计思想的串行DAC(TLC5620)驱动: http://bbs.elecfans.com/jishu_533944_1_1.html 31【连载视频教程(十九)】基于线性序列机设计思想的串行ADC驱动: http://bbs.elecfans.com/jishu_537056_1_1.html
作为一个十年的FPGA工程师,我的职业成长经历充满了挑战和机遇。开始的时候,我对FPGA的理解只是停留在书本知识上,缺乏实际操作的经验。然而,随着实践的积累,我逐渐掌握了FPGA设计的各个领域。 早期的成长经历是通过学习掌握FPGA的基础知识和工具的使用,如Verilog/VHDL编程语言、Xilinx/Vivado开发工具等。这让我有了在顶层设计的基础上完成简单的FPGA设计的能力。 随着时间的推移,我开始接触到更复杂的项目和挑战。我学习了如何优化FPGA设计,以减少功耗和资源占用,提升性能。同时,我也深入研究了高级设计技术,如时序约束、时钟域处理、IP核使用等。 在职业生涯中,我参与了多个大型项目的开发,这为我的成长提供了宝贵的机会。通过与团队合作,我学习到了如何与其他工程师合作,有效地进行沟通和协作。这帮助我成为一个具有良好团队合作精神的工程师。 此外,我也积极参加行业会议和培训,不断更新自己的知识和技能。我了解到了FPGA领域的最新发展和趋势,并将这些知识应用到实际的工程项目中。 在这十年中,我不仅在技术方面成长,还提升了自己的项目管理和解决问题的能力。我学会了如何合理地规划并管理项目的时间和资源,以确保项目按时交付。 总的来说,作为一个十年的FPGA工程师,我的成长经历是一个循序渐进的过程。通过不断的学习和实践,我逐渐掌握了FPGA设计的各个领域,并提升了自己的技术和管理能力。我相信,在未来的职业生涯中,我将继续不断学习和成长,为FPGA领域的发展做出更大的贡献。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值