FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~

可内推简历,丝我即可

前言

初次接触FPGA是在2022年3月左右,正处在研二下学期,面临着暑假找工作,周围的同学大多选择了互联网,出于对互联网的裁员形势下,我选择了FPGA,对于硬件基础知识我几乎是没有的,最初我还很担心要补的硬件知识太多了,但是慢慢发现需要的硬件知识不算多,用到哪里就学哪里,以下记录我从零开始学习FPGA的过程,以及使用的资料,下面的内容均是我尝试过的,有好的方法大家可以借鉴,也提到一些不好的方法,以帮大家避坑

正文

一开始,我先去咨询身边会FPGA的人,以及去网上搜经验贴,大家不约而同地提出数电的重要性,于是从数电开始,我开启了我一路跌跌撞撞的入门之旅

一、视频教程

1.1 数电

推荐教材:数字电子技术基础-第六版-闫石
数电重点章节:组合逻辑、触发器、时序逻辑;其中触发器这一章中可以先学最常用的D触发器,别的触发器等以后用到再学


我看过B站上好几位讲数电的老师,一开始看的是播放量最高的清华的王红老师的课程:数电 - 清华王红
但是看了几节课后发现我看不懂,也跟不上老师的上课进程,于是我又发现了另外2位老师的课程:数电 - 西电任爱锋、数电 - 苏州大学,这2位老师的课程是我觉得比较能听懂的,于是我跟着他们的课程快速过了一遍数电的组合逻辑、时序逻辑这2章最重要的内容
因此想要快速过一遍数电,推荐这两个老师的视频:

  • 数电 - 西电任爱锋
  • 数电- 苏州大学
  • 数电 - 哈工大(有好几个老师轮流上课,讲得还是很不错,可以作为补充观看)

1.2 Verilog

数电把重点章节过一篇后,我就直接开始学习Verilog了,虽然很多人推荐夏闻宇老师的Verilog书,但是我觉得不是很适合用来快速入门,我也没有选择去B站找Verilog的视频教程看,而是开始跟着小梅哥的视频,边熟悉数电知识,边学习Verilog语言
看小梅哥视频这部分应该算是入门的关键之一,看完视频后悔对Verilog和FPGA大概能做什么有一个初步的认识
下面是我看的视频:
这两个视频我是搭配着看的,如果小梅哥讲的我没听懂,我就去看看野火是怎么讲的,反之亦然

  • 零基础轻松学习FPGA - 小梅哥
  • FPGA系列教学视频,“波形图”教学法 - 野火:几乎每节课都会先带着你手绘波形图,然后对着波形图写代码

补充:
如果有同学想要系统跟着课程学一遍Verilog,推荐这个老师的课程:
Verilog硬件描述语言 西安电子科技大学 蔡觉平等主讲


当你觉得自己可以写一点Verilog的简单代码后,就可以开始刷HDLBits上的题了,题目比较多,几乎涵盖了Verilog的常用语法,强烈建议刷一遍上面的题,尽量自己做,然后再去看别人的答案;我第一遍刷是看了别人的答案再去做,感觉收获不大。你可以评估一下自己现在的Verilog编程水平,做前10道你都觉得没什么问题的话,就可以继续做下去;如果觉得很吃力的话,还是再看一段时间的小梅哥或者野火的视频再去做上面的题

  • 刷题网站
  • HDLBits答案 - 博客 - 孤独的单刀
  • HDLBits答案 - B站视频 - 荣晔

另外再推荐一个菜鸟的Verilog教程,还是比较全的

  • 菜鸟 - Verilog

注意:在看视频时,一定不要陷入一种误区,眼睛会≠手会≠脑子会,所以一定要多动手写代码,而且要把学过的东西用起来,不然很快就会忘记,比如点灯这个操作,你可以在最开始用assign led = 1'b1让灯亮起来,后面学到状态机,你可以用状态机检测一个序列,如果检测到,就点灯;再比如,学到UART串口,你可以使用串口助手往FPGA传输数据1,如果FPGA接收到了串口助手发来的数据,就点灯;最后再举例,使用赛灵思的开发板时,用PL中断给PS端传输中断信号,再通过GPIO点灯。
(后面举例这部分你可以能还不太看得明白,没关系,我刚学的时候也不明白,我想表达的含义就是要把前面学到的东西用起来,我就是吃了这个亏,不用好多东西都忘记了)


如果有同学需要system verilog的刷题网站,也推荐一个比较不错的:
System Verilog刷题网站

1.3 项目

把上面的视频看得差不多了,可以尝试做一些网上的开源项目,我师兄推荐给我的这个项目我暂时还没有做,但我后面有时间一定要把他做了,因为我在看牛客上的面试经验时发现有的公司还是会经常问SDRAM的内容

1.3.1 SDRAM

推荐项目:

  • SDRAM第一季 - 开源骚客
1.3.2 RISC-V实现单周期处理器

还有一个我做了的项目,是用riscv写一个CPU,做了这个项目后对我的帮助是,提升了Verilog的代码编写能力,熟悉了CPU的大致结构和工作原理,算是位以后学习计算机体系结构开了一个头吧

  • tinyriscv技术手册
  • tinyriscv - gitee仓库
  • tinyriscv - B站分析教程 - 荣晔
  • riscv - 设计 - 荣晔
1.3.3 基于ov7725、ov5640摄像头的图像处理、数字识别

这个摄像头的项目涉及的知识点稍微多了一点,可以把之前学的SDRAM、I2C协议、HDMI显示、VGA显示等知识点都用上,还有其他关于显示数据的内容。做了这个项目我是写到简历上的,推荐的课程如下:
正点原子 : ov7725摄像头
:也可以把每个模块需要的知识点拆分开,去野火FPGA那里找对应的知识点


摄像头这部分我做了图像显示、简单的图像处理、数字识别这几个功能,实现效果如下:

FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~_第1张图片

FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~_第2张图片
经过很长一段时间调试,需要工程的朋友后台私信我,一杯奶茶钱带走它哈~

1.3.4 卷积神经网络的手写数字识别

这个是找到工作后打算做的,还在进行中…

二、博客教程

学习FPGA的过程中,能遇到一个领路人是一件无比重要的事,在这个过程中有幸发现一位这样的领路人,他的CSDN上的内容从结构来看,就是一本FPGA书!!从入门到进阶,结构十分清晰,内容也很丰富,博主本人也非常热心,这一波,墙裂推荐啊~

  • 推荐博主 - 孤独的单刀

三、基础课程

3.1 计算机体系结构

最好不要一上来就看书,我反正是看不进去的,对于这样的专业性很强的课程,推荐找到对应的考研视频,考研视频会把知识点讲的很细,跟着过一遍就好。
我在做RISCV那个项目时,发现一位研究院的工程师到高校讲课的视频,其中对计算机结构做了很清晰的讲解,十分推荐:
RISCV - 汪辰

四、推荐论坛

论坛太多了,找个时间整理一下

五、补充

1、需要资料的后台私信我
2、我在2022年期间担任声光电校园大使,收到过很多求职简历,可提供修改简历以及项目PPT
3、创作不易,给个三连啦~
4、另外还有我整理的面试常问的问题,面试前我手里就拿着这个看一看
FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~_第3张图片

你可能感兴趣的:(#,▶FPGA相关的专业知识,fpga开发,学习)