个人根据自己的一些心得总结一下fpga 需要掌握的基础知识,希望对你有帮助。
知识点:
1、数电(必须掌握的基础),然后进阶学模电,
2、掌握HDL(verilog或VHDL)一般建议先学verilog,然后可以学System Verilog和VHDL。
3、掌握FPGA设计流程/原理(推荐教材:FPGA权威指南、Altera FPGA/CPLD设计、IP核芯志-数字逻辑设计思想、静态时序分析、嵌入式逻辑分析仪等)。
4、器件结构(最好熟练掌握Spartan3,Vertix4系列的器件结构,及其资源于Verilog行为描述方法的关系)。
5、开发工具(熟练Synplify,Quartus,ISE,Modelsim等)。
6、常用的协议(ARP协议、udp协议、SPI、AXI总线等等)够用就行,
另外根据工作领域在选择专业知识:
比如:通信——通信原理、移动通信基础、信号与系统、数字信号处理......
比如:CPU——计算机组成原理、计算机体系结构、编译原理.......
7、具备具体项目经验(独立的做些中小规模的设计,比如:像交通灯、电子琴、DDS等......)。
书籍推荐4本就够:
1、Verilog数字系统设计教程
这本书Verilog HDL语法讲的比较完整,适合作为语法工具书使用,第一部分讲述了Verilog HDL的基本语法,Verilog HDL运算符大部分与C语言是相同的,需要注意的有拼接符和缩减符。选择语句与C含义基本一致,Verilog HDL含有四种循环语句,但是只有for循环可以综合成电路,for循环的含义与C语言有本质区别,具体可以查看之前写的一篇文章去理解Verilog中for循环的含义。而always,assign,begin…end这些是Verilog最常用的,也是比较简单的。对于系统函数只需要有印象即可,因为这些都只能用于测试文件的编写,都是不可以综合成电路的。
第二部分主讲数字电路中加法器,数据选择器,状态机等常用器件Verilog HDL的描述方法,以及对阻塞赋值与非阻塞赋值这些概念进行更加详细的讲解。最后会有对risc的CPU进行设计的介绍。
2、手把手教你学FPGA设计:基于大道至简的至简设计法
这本书是潘老师进行编写的,主要通过讲解以计数器,状态机,FIFO为架构去实现uart,SCCB,SPI,SDRAM,UDP等模块的设计,以及模块接口设计。
做过FPGA的都知道,80%左右的设计都可以通过计数器、状态机、FIFO或者RAM去实现,讲解这几种结构的设计的书有很多,之所以推荐这一本是因为本书的设计思想以及计数器和状态机与其他书都有所区别。关注计数器无非在于其初始值是多少,什么时候加一,什么时候计数结束这三个问题。状态机很多书上也都只是对传统的一段式,二段式,三段式进行对比讲解,而本书总结出四段式。后面两章通过从模块划分,到各个模块内部实现,调试,最终实现两个案例。
注意计数器,状态机,FIFO并不是我们最终目的,架构都是为输出信号服务。实现同一种功能往往可以使用不同架构,根据难度选择合适的架构,这是需要多加练习的。
3、FPGA原理和结构
前面两本一本讲语法,一本讲计数器,状态机,FIFO这些架构的应用,这本书就是用来讲解FPGA的结构以及组成的,全书很少有代码,。
这本书更像一本介绍FPGA原理的科普书,读着就像读小说,写的很好,而且与现在主流的FPGA技术有结合,非常适合初学者。对FPGA的基本结构详细了解是很有必要的,前期不想直接看数据手册时,可以看看这本书,这本书还对altera和xilinx设计流程,工具以及原理进行了介绍。
4、FPGA设计实战演练(高级技巧篇)
本书建议在进阶时使用,主要以quartus讲解时序约束,快慢时钟域下数据传输,全局复位,面积与速度优化,可综合设计讲解。
现代FPGA的结构越来越复杂,多时钟域的设计现在已是常态。对于功能电路来说,复位结构都必不可少。在同步逻辑设计中如何很好地处理异步复位,甚至在多时钟域之间传递(异步)复位信号也是逻辑工程师经常面临的挑战。本书除专门介绍了上述电路的设计方法外,还介绍了状态机的设计。在介绍这些通用电路结构的基础上,还介绍了代码优化以及如何对设计进行综合与布局布线优化方面的相关内容。但是不建议初学者阅读。
当然这些只能自己摸索着学习,难度可能比较大,
课程推荐:
宸极教育FPGA培训,标准化课程体系,课程融合项目、融合应用、融合方法,理论+实操+项目,A+级课程交付。
课程易学,易懂,5年课程经验,深入浅出让学员学得懂、学得快、学得精。
帮助学员不走弯路,从入门、调试技巧、基础接口端;深入涵盖SoC,高速接口,具体项目应用;甚至触及到深处的AI级应用、算法级应用层面。
全日制线下面授+线上就业班,下线学习地点广东、重庆、成都可选,并推荐就业。
这里有一个入口:FPGA学习资料免费领!