FPGA零基础入门学习路线

FPGA零基础入门指南

我从2021年10月份开始接触FPGA并进行系统学习,练习了已经两年了,离出道的两年半还差一点,不过也有很多收获。目前网上的FPGA的学习路线质量参差不一,对于资料的总结不够全面,导致我自己在学习过程中走了很多弯路,例如看了质量一般的网课、复现了一个错误的项目等,这些信息差都极大的影响了我的学习成本。

因此,我仅作为一名普通的FPGA爱好者,总结了一套适用于零基础FPGA入门指南,包含全套学习路线和资料,都是我本人使用过,并且精心挑选后的资源,力求给大家呈现最简单的FPGA零基础入门!

本文开源地址(内含超多FPGA精品学习资料和license):

https://github.com/ChinaRyan666/FPGA-Getting-Started-Guide

一、每个人都应该会使用GitHub

如果你是一枚Coder,但是你不知道GitHub,那么我觉得你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。说明你根本不善于突破自己!

为什么这么说?原因很简单,很多优秀的代码以及各种框架源码都存放于GitHub当中!

学习之前我们先要明白Git和Github的基本概念:

Git是一个分布式版本控制系统,简单的说就是一个软件,用于记录一个或若干文件内容变化,以便来查阅特定版本修订情况的软件,通过Git我们可以从Github和Gitee等地方拉取和推送代码,便于管理和团队协作。

Github是一个为用户提供Git服务的网站,简单说就是一个可以放代码的地方(也可以放其他内容)。Github除了提供管理Git的web界面外,还提供了订阅、社区、讨论组、在线编辑器等丰富的功能。

总结起来就是:先学Git,再学GitHub。

学习资源推荐

如果你想更深入的理解Git,玩转GitHub,推荐以下资料

二、数字电路

数字电路是学习FPGA的前提

数字电路是指基于数字信号的电子电路,由数字逻辑门和触发器等元件组成。而FPGA(Field Programmable Gate Array)是一种可编程的数字逻辑芯片,它是由大量的可编程逻辑单元、I/O单元和时钟管理单元等组成的。

FPGA可以用来实现数字电路,因为它可以被编程成各种不同的数字逻辑电路,包括逻辑门、计数器、状态机等等。这使得FPGA成为一种灵活、高效的数字电路实现方式,特别适合于需要快速原型开发和设计迭代的应用场景。

FPGA也可以被用来实现数字信号处理(DSP)和嵌入式系统。在这些应用场景中,FPGA可以用来处理实时数字信号,例如音频和视频信号,而数字信号处理器(DSP)和微处理器可能无法处理这些信号。

因此,FPGA可以看作是数字电路的一种高级实现形式,可以用来实现各种不同的数字逻辑电路和数字信号处理应用。

学习资源推荐

对于FPGA的入门开发,学完上面的教程即可,掌握程度70%就可以,如果想系统性的学习数字电路,建议自行上网寻找合适自己的网课进行学习,可参考B站清华大学王红老师讲的数字电路,但我不推荐,原因是时长过长、年限较久远(约10年前的课)、无配套讲义(知识点不够清晰)。

浩瀚互联网,找到适合自己的就行。

三、Verilog HDL

FPGA开发语言

FPGA的开发语言主要分为硬件描述语言和高级语言两种。

1.硬件描述语言:

硬件描述语言(HDL)是一种专门用于FPGA开发的语言,常见的有Verilog和VHDL。使用HDL编程可以直接描述硬件电路的结构和行为,实现电路的功能。HDL语言需要掌握一定的电路原理知识,通常被硬件工程师所使用。

2.高级语言:

高级语言包括C/C++、Python、MATLAB等,可以通过编译或解释实现对FPGA的控制。这种方法需要使用到对应的FPGA开发工具包,如Vivado等。使用高级语言可以简化FPGA的开发难度,但是会牺牲一定的性能。

总之,选择何种开发语言取决于FPGA应用的需求和开发者的技术水平。对于入门而言,先学Verilog即可。

学习资源推荐

使用这门硬件描述语言的时候我们像是在建模,这点区别于编程语言,这往往是新手首先需要绕过来的难关!

入门只需把HDLBits刷70%即可,细节不必深究,在具体实验中去品味。

四、FPGA开发

正片开始,仅属于FPGA的浪漫。

基础扫盲

Xilinx和Altera是我们主要使用到的FPGA芯片厂商,此外还有国产的紫光、安陆等。

对我们用户来说,他们的区别主要在于EDA软件的不同,比如Xilinx使用的是Vivado、Altera使用的是Quartus。(Xilinx已被AMD收购,Altera已被Intel收购)

软件选择也就影响了我们的板卡选择,选择Vivado还是Quartus取决于设计人员所需要的功能和设计对象。

如果设计人员需要设计Xilinx FPGA芯片,则Vivado是更好的选择;如果需要设计Altera FPGA芯片,则Quartus更适合。同时,如果速度和处理能力是设计人员的首要考虑因素,那么Vivado是更好的选择;如果设计人员需要更多的工具和优化功能,则Quartus可能更适合。

虽然对于入门来说选择哪个没有太多区别,但学习FPGA的时候手上最好要有一块板卡,上板验证会有更多的成就感。所以,用什么家的板卡,就用什么软件。

学习资源推荐

  • 小梅哥Xilinx FPGA开发全套网课

    目前我认为全网最好的免费FPGA逻辑端开发教程,只要你按照这套教程用心学完,你就是个有开发经验的FPGA工程师了。

    如果走马观花,心浮气躁的浏览完整个课程,那就只能算是扩展知识面了。眼睛觉得会了,手表示自己不会写。按照教程推荐的方法学,越学越简单,越学越有信心,如果走马观花,不注重基础的打造,只想看结果,不注重学习和调试的过程,只会越学越困难,最后放弃。

  • 小梅哥官网

    宝藏网站,我总结了以下几种打开方式:

    1.选择一款芯片(基本涵盖市面上所有常见的),找到对应小梅哥家的板卡名称,搜索即可查到全套软硬件、网课及开发资料。重点看开发板的文档手册,小梅哥的文档总结非常详细,强烈推荐。

    2.开发时遇到报错,将报错信息复制到此网站的搜索栏,绝大部分报错都是有对应解决方法的。

    3.逛三大专栏:FPGA学习交流、MCU学习交流、ARM Linux学习交流,你将会打开一个新世界。


至此,FPGA入门就结束了,如果你能用心学完这些,相信你会对FPGA的世界更感兴趣,就可以开始进阶学习了,例如ZYNQ、HLS高层次综合、计算机体系结构、深度神经网络加速器等等。

最后再推荐一个网站和一套人工智能的学习资料,供大家一起进步!

  • Road To Coding

    B站程序羊做的一个开源编程学习网站,有六大方向的学习路线和知识点大梳理,包括但不限于Java后端、前端、C/C++后台开发、大数据开发、嵌入式开发,还有很多宝藏资料,考研求职摸鱼…一起去探索吧!做一个全栈大佬!

  • 人工智能全套学习路线

    B站Future做的全套学习路线,从0到1,这年头不会人工智能都不好意思坐在实验室了!

之后我会继续更新FPGA的详细进阶指南,先挖个坑(因为我也还在进阶中),希望我练习完两年半可以出道。

一起学起来吧!!

No gall no glory(不经磨练,难现辉煌)

微博:沂舟Ryan (@沂舟Ryan 的个人主页 - 微博 )

GitHub:ChinaRyan666

微信公众号:沂舟无限进步

如果对您有帮助的话请点赞支持下吧!

  • 13
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChinaRyan666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值