想从事FPGA需要学好:
1、数字电路基础
2、微机原理,汇编语言(推荐王克义老师的《微机原理(第2版)》)或计算机体系结构或单片机原理;
3、C/C++语言;
4、Verilog语言《Verilog HDL高级数字设计》或《Verilog数字系统设计教程》
5、数字IC设计入门,推荐这本书:《CMOS VLSI Design A Circuits and Systems Perspective》
6、学习AMBA总线,含:APB/AHB/AXI;
7、进阶知识:
(1)算法方向:信号与系统,数字信号处理(DSP);
(2)接口方向:UART/IIC/SPI/DDR等常用接口协议;另外也可以看看USB/PCIE/SATA/MIPI;
(3)日常工作的OS平台:linux操作系统;vim(emac);bash(csh);makefile;
(4)脚本语言:Perl(Python)/TCL;
(5)版本管理工具:SVN/Git;
8、EDA tool:
a:功能验证:
初学者能modelsim/questasim上做仿真测试,熟悉波形窗口;debug RTL code。再使用下windows版的nLint/Debussy就能完成数字IP功能设计验证。
b:综合与实现:
重点掌握STA原理,比如:cell delay在cell library里面是怎么标定的,tool是怎么计算delay的,setup/hold timing check的计算公式是什么;clk skew, clk uncertainty, create_clock, create_generateclock, set_ideal_network, set_input_delay, set_false_path, set_multi_cycle_path,OCV , .... 是什么意思,对STA有何作用。懂STA原理,就可以用TCL语言写SDC(DC综合)/XDC(vivado综合实现)timing constraint了。
9、FPGA课程资源分享:
第一阶段:
对于FPGA来说初学者,在完全掌握 FPGA 前,初学者需要通过基础理论和实验上机的方式,建立硬件逻辑设计的思维模式。在这个过程中,需要深入理解 FPGA的工作原理,掌握 FPGA 的设计流程,更重要的是学会通过 Verilog HDL 硬件语言去描述电路逻辑功能。
FPGA 器件有很多,有国外也有国内的企业,每家 FPGA 都有其不同的功能和特点,但基本的 FPGA 工作原理是相同的,因此对于入门阶段,掌握基本电路的设计能力才是重点。
第二阶段:
学完初级部分后,就能够掌握基本的硬件设计思维模式,但是还要进一步掌握难度较大的知识内容,进一步加深对逻辑电路的理解,掌握各种设计技巧,掌握数字电路常用的协议,掌握数字电路设计过程中的数据存储方式,通过各种 IP 级的模块设计训练,掌握不同类型的硬件设计思路和方法。
第三阶段:
在学完初级和进阶的内容后,就可以完成一个项目的开发工作了,在做项目项目的开发工作中,需要针对项目的具体规则进行系统设计,掌握项目的设计能力,掌握算法实现的能力,能够通过 FPGA 实现 SoC的相关功能。
课程是以FPGA工程师岗位为导向,针对电子类相关专业学生开设的,学完后可以具备FPGA设计、开发及应用能力。
10、项目实战
(1)视频图像处理及数字识别系统设计
使用高分辨像素摄像头将采集到的彩色RGB图像首先存入SDRAM中,读出RGB图像数据后,进行算法操作,然后对灰度图像进行阈值分割,形成二值图像并在边界追踪的基础上进行数字识别,显示在数码管上。
(2)通过FPGA实现类STM32单片机
在 FPGA 上实现基于Cortex-M0的单片机,实现单片机的基本功能包括外设接口及总线互联的实现,能够通过上位机编写基本软件让 FPGA 上的单片机运行起来。
(3)基于FPGA的人工智能系统软硬件开发实战;
对于刚开始学习FPGA的人来说,最好通过系统的知识体系培养,加上项目的实战培训,目的就是为了锻炼动手能力、实操能力。毕竟FPGA看重的是项目经验和能力。
学完可以具备独立完成FPGA项目的实践能力,成为企业所需的FPGA工程师,毕竟FPGA企业看重的还是项目经验和能力。
最后:免费领取fpga教程学习资料包。