FPGA学习路线by老石谈芯

放一张老石!(思维导图在文末!)

入行十年,我总结了这份FPGA学习路线:搞定这四点,你也能轻松进阶(老石谈芯).
FPGA学习路线by老石谈芯_第1张图片

摘要

FPGA学习路线

  • (一)编程语言
    • 1 硬件描述语言HDL
    • 2 寄存器输入集语言RTL
      • 2.1 如何入门
      • 2.2 最大的思维转变
    • 3 推荐转向学习System Verilog
    • 4 仿真工具
  • (二)基础知识
  • (三)开发工具
  • (四)动手实验
  • (五)思维导图

(一)编程语言

1 硬件描述语言HDL

FPGA使用的语言叫做硬件描述语言HDL寄存器输入集语言RTL
(先不考虑高级语言C、Python编程)

主流硬件描述语言有1 VHDL 2Verilog 3System Verilog

VHDL和Verilog各有优缺点,比如VHDL的语法更加严谨,而Verilog更加灵活,更加像C语言

入门的话,先熟练掌握一门语言即可

老石建议:先学Verilog(尤其是有C语言开发经验),有开发经验了之后再学VHDL,因为有可能在实际的项目中有一部分模块是用Verilog写的,一部分是用VHDL写的(最好至少大概能看懂)

不管学习什么语言,最主要的都有三大点
1 语法
2 如何使用这个语言做设计
3 如何使用这个语言做验证

书籍几乎都大同小异,但是建议认真的看一遍Verilog的语法,不用要死记硬别,但是需要对每一条的语法和功能做到心中有数
FPGA学习路线by老石谈芯_第2张图片可以先看可生成电路的可综合的Verilog语法,不太多
再看主要用于写验证和仿真的不可综合的语法

书籍:《verilog传奇》
强烈推荐的刷题网站!!!!!:HDLBits.
建议先做,不会的时候反查 Verilog的书籍,这样通过实践来学习

2 寄存器输入集语言RTL

2.1 如何入门

RTL设计主要有组合电路时序电路两个部分,还有一个非常重要的部分就是状态机,都应该熟练的掌握(刷题网站里都有对应的题目哦!~)

关于RTL的验证,初学者主要掌握如何写一个简单的测试平台,及如何写一些简单的测试用例

2.2 最大的思维转变


思维转变:软件编程大都是顺序执行的,但硬件编程大都是并行执行的!

在学习Verilog的时候一定要多想想它对应的硬件电路是什么样的

3 推荐转向学习System Verilog

现在的大公司更喜欢的System Verilog
System Verilog可以看成是Verilog的超集,它加入了很多Verilog里不支持但是非常有用的功能
比如自定义类型、结构体联合体、接口
还有一些用于仿真验证的特性,比如业界常用的随机约束、UVM
也简化勒很多Verilog里的一些语法表达,不用纠结一个信号到底是wire还是reg可以直接用Logic来表示

不建议初学者一开始就学System Verilog(还没太找到好的教程)

4 仿真工具

FPGA学习路线by老石谈芯_第3张图片学习编程语言很重要的就是仿真工具
这是网上的两个开源的工具:iVerilog,EDAplayground

(二)基础知识

1 电路、数电,计算机网络结构,接口,数字信号处理
推荐优先看数电

2 和FPGA相关的知识,包括FPGA芯片的结构以及它的一些基本组成单元的结构(推荐看FPGA官方的文档)

3 了解FPGA的开发流程

(三)开发工具

入门阶段建议专注于一个平台

(四)动手实验

配合开发版的学习
比较经典的实验有:数码管、流水灯、按键、红绿灯 还有一些常见的总线的通信
还有一些数据处理和信号处理的实验
《深入浅出玩转FPGA》

(五)思维导图

FPGA学习路线by老石谈芯_第4张图片

你可能感兴趣的:(FPGA,fpga)