FPGA学习路线:
大致分成四个部分:编程语言、基础知识、开发工具、项目实战。
编程语言:
推荐先学习Verilog,如果有一定的C语言基础,那么应该会比较好上手。
等积累一定开发经验之后,考虑看VHDL(因为在实际项目中一些模块是Verilog写的,另外一些是VHDL写的,所以即使写的不好但最好能看懂用)。
编程语言主要的内容有三大部分,语法、如何用这个语言做电路设计、如何用这个语言做验证。
这里推荐HDLBits网站,建议大家把这里面的题做一遍。
Verilog掌握比较熟练的推荐转向SystemVerilog(业界的大公司都在使用)。
仿真工具,这里比较常用的是Mentor的Modelsim,还有Synopsis的VCS,
此外,FPGA开发工具也会自带轻量级的仿真工具,网上也有一些开源的验证工具,比如iverilog,还有一些网页工具,比如EDAplayground(大家可以根据自己的实际情况选择)。
基础知识:
主要有专业基础和FPGA专业知识两部分。
专业基础一般都是大学期间学的课,比如:数电、计算机体系结构、接口、数字信号处理等等。
FPGA专业知识,包括:FPGA芯片的基础结构,以及它的一些基本单元的结构,比如查找表、逻辑单元、逻辑块、DSP、存储器等等(推荐看FPGA官方的文档)。
另外就是FPGA的开发流程,包含:设计、仿真、综合、映射、布局布线,时序收敛,映像下载和硬件调试等步骤。
开发工具:
主流的FPGA开发软件有两,赛灵思/AMD的Vivado、英特尔的Quartus(大家要根据自身情况去选择)。
工具的学习主要有3个目的:
1、熟悉前面说的FPGA开发流程。比如:怎么创建工程,怎么添加文件,怎么加入时序约束,怎么把生成的FPGA映像加载到开发板上等等。
2、熟悉一些常用的IP的用法,在FPGA项目中,会用到很多不同的IP核,比如PLL、FIFO、存储器等等,还有一些通信用的IP比如以太网控制器、PCIe、DDR控制器等等,这能帮助提升设计的效率和性能。
3、学习一些常见的硬件调试和时序分析的方法,比如怎么看最大频率,当时序不收敛的时候怎么进行分析和修改等等。
项目实战:
学习FPGA不摸板子,就像纸上谈兵,所以项目实战非常重要,从头到尾走几遍前面说的流程,是非常有利于学习FPGA的。
入口:免费领取fpga教程、fpga项目。