FPGA零基础入门学习路线
创始人
2025-01-08 08:36:47
0

文章目录

  • FPGA零基础入门指南
    • 一、每个人都应该会使用GitHub
      • 学习之前我们先要明白Git和Github的基本概念:
      • 学习资源推荐
    • 二、数字电路
      • 数字电路是学习FPGA的前提
      • 学习资源推荐
    • 三、Verilog HDL
      • FPGA开发语言
      • 学习资源推荐
    • 四、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视频教程(约4h)

  • GitHub新手入门图文详解

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

  • 廖雪峰的Git教程
  • 猴子都能懂的Git入门
  • GitHub官方文档
  • 开源指北

二、数字电路

数字电路是学习FPGA的前提

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

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

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

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

学习资源推荐

  • 数字电路速成课(约10h)
  • 数字电路课本及讲义 百度网盘(提取码:ryan)
  • 记得诚数字电路专栏

对于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刷题网站
  • HDLBits答案及讲解(不习惯网站刷题也可以直接看这个)
  • Verilog数字系统设计教程 夏宇闻(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

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

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

相关内容

热门资讯

透视插件(WPk)微扑克辅助软... 透视插件(WPk)微扑克辅助软件(透视)详细辅助科技教程(确实是有挂)1、微扑克辅助软件透视辅助简单...
透视中牌率(Aapoker)a... 透视中牌率(Aapoker)aapoker发牌机制(透视)一直真的有挂(详细辅助教你教程)1)aap...
透视教程!德扑ai智能,(wp... 透视教程!德扑ai智能,(wpk德州)原来是有挂(详细辅助技巧教程);1、德扑ai智能系统规律教程、...
透视辅助(WpK)wpk透明挂... 透视辅助(WpK)wpk透明挂(透视)详细辅助爆料教程(真是有挂);暗藏猫腻,小编详细说明wpk透明...
透视黑科技(aapokER)a... 透视黑科技(aapokER)aapoker外挂(透视)确实真的是有挂(详细辅助介绍教程)1、aapo...
透视数据!智星德州菠萝开挂,(... 您好,智星德州菠萝开挂这款游戏可以开挂的,确实是有挂的,需要了解加去Q群【1067239143】很多...
透视透视(WPK)wpk透明挂... 透视透视(WPK)wpk透明挂(透视)详细辅助2025版教程(总是有挂)1、每一步都需要思考,不同水...
透视教学!德扑之星作弊,(德扑... 透视教学!德扑之星作弊,(德扑)都是是真的有挂(详细辅助技巧教程)1、超多福利:超高返利,海量正版游...
透视真的(德州aa扑克)aap... 透视真的(德州aa扑克)aapoker发牌机制(透视)都是是有挂(详细辅助规律教程)1、操作简单,无...
透视存在(wpK)微扑克辅助软... 透视存在(wpK)微扑克辅助软件(透视)详细辅助详细教程(本来有挂)1、下载好微扑克辅助软件辅助软件...