很多萌新小白初入FPGA领域,无法确定自己的学习路线,也经常走弯路,耽误时间浪费精力,为了帮助小伙伴更好地确定自己的学习路线,轻装上阵学习FPGA,今天这篇文搜集了多位技术大牛的学习方法,归纳总结其特点,希望对小伙伴们有所帮助。
需要注意的是,该篇文章适用于初入FPGA的小白,也适用于转行学习FPGA的工程师。,也适用于增强其技能的大学生。
一般来说,要学习FPGA,确定自己的学习路线,需要从四方面发展,分别是编程语言、基础知识、开发工具和动手实践,具体如下:
1、编程语言
和一般的开发语言如C、C++、Java等不同,FPGA开发使用的是硬件描述语言(HDL),或者是寄存器传输级语言(RTL)。对于初学者,不是很建议用C和Python来开发FPGA(难度大,层次高、易出错)。HDL是指用来描述数字电路功能和行为的语言,可以再寄存器传输级、行为级、逻辑门级等描述电路。
目前主流的硬件描述语言有VHDL和Verilog、SystemVerilog。前两个是学习FPGA的常见语言,各有优缺点,如VHDL语法更加严谨、Verilog更加灵活,而第三个是大部分大型企业开发FPGA常用的编程语言。如果你有一定的编程语言基础,建议学习Verilog,容易上手,而且它的用户广,有问题容易解决。
如果没有编程语言基础,可以看看凡亿教育推出的《180天FPGA开发全能线上特训班》。
一般来说,学习编程语言,不外乎三大重点,语法、如何设计、如何验证仿真。而学习FPGA的编程语言,重点在于语法的使用。建议小白学习FPGA一定要把精力放在语法身上。
除此之外,FPGA编程偏重于硬件类开发语言,许多人经常习惯性以软件编程思维去思考硬件,这种思考方法是错误的,软件编程大都是顺序执行,而硬件编程是并发执行,所以二者是不同的,在学习HDL或RTL时一定要多想想它对应的硬件电路是什么。
2、基础知识
FPGA基础知识主要分为专业基础课、专业知识。前者包括电路、数电、计算机体系结构、数字信号处理等,初学者入门FPGA可以优先学习数电也就是数字集成电路,而后者可以根据你所要从事的细分领域来学习专业知识,如芯片工程师的FPGA芯片结构等。
像专业知识这部分内容,我会推荐大家看FPGA官方的文档,里面讲的比较详细且专业。
值得注意的是,学习FPGA的基础知识最好以FPGA的开发流程为主,了解其的开发流程。
3、开发工具
市场上主流的FPGA开发工具主要有两个,一是AMD的Vivado,二是Intel的Quartus。一般来说,FPGA工程师是根据自己的FPGA开发板来选择其中的一个,这里建议萌新小白没必要全选两个学,只需精通其中一个即可。
学习FPGA开发工具的目的主要有三点,①了解FPGA的开发流程,也是重点之重。②是熟悉IP的配置使用,了解不同的FPGA的IP,如PLL、FIFO、存储器等,善用它们有利于提高开发效率。③是时序分析和硬件调试。
4、动手实践
学习硬件不使用开发板,犹如纸上谈兵。常见的FPGA实验有数码管、流水灯、按键、红绿灯、总线通信等。
萌新学习FPGA时,建议配合开发板进行上述所说的实验,提升自己的动手能力。
暂无评论