FPGA是一个高度集成化的芯片,其学习过程既需要编程,又需要弄懂硬件电路和计算机架构。涉及到的知识和基础非常多,如果不合理地安排学习内容,学习过程会非常漫长和枯燥。这篇文章主要阐述了对于入门FPGA的一些经验分享,希望能够给想学FPGA的人一些引导,少走一些弯路。入门学习FPGA主要分为以下三个阶段:

第一阶段(知识储备):

在正式开始学习FPGA之前,这里希望各位拿一本数电书好好看一下(相关专业的应该都学过数电这门专业课)无论有没有学过,需要把基本的逻辑运算的规则,与或非、同或异或等都搞明白,了解数字电路的原理和基本常识,为后面的FPGA学习奠定良好的基础。这里推荐的数电教材是《数字电子技术基础(第六版)》,是由阎石主编、高等教育出版社2016年出版的教材。

当然,学习FPGA基础的储备肯定不只是数电,还有模电,数字信号处理等等,后续可以看你是要做哪个方向再进行知识的补充,这里的数电基础是必须的有的。

第二阶段(正式入门学习):

为了能更好的入门学习FPGA,小编根据自己的学习历程,整理了“三件套”学习方法来学习FPGA。

1.选择配套的开发板和视频课程进行FPGA开发的系统学习

目前主流的FPGA开发工具主要是AMD的Vivado和英特尔的Quartus,这里建议初学者优先学习使用Quartus,也就是使用英特尔FPGA的开发板作为入门学习使用(Vivado的学习使用较为繁琐,建议先学Quartus)。 网上有很多关于FPGA的课程,包括像正点原子,野火,明德扬等等,他们视频配套的开发板也在某宝售卖。这里建议初学者选择野火的FPGA征途pro系列开发视频,视频使用的征途pro开发板采用的是英特尔的芯片,也就是使用Quartus作为开发工具。野火基于波形图的开发方式对初学者是极其友好的,并且野火的代码风格算是比较好的(代码风格很重要)。相关的配套视频也已经更新完毕,视频资源齐全也是小编推荐该课程的重要原因之一。野火的视频课程入门阶段看到第三十二讲SignalTap Ⅱ即可,后续课程多为进阶,按照需求观看,不必全部刷完(浪费时间)。

2.选择一本工具书对硬件编程语言进行学习

主流的硬件编程语言主要有Verilog,HDL和Systemverilog。目前用的比较多的还是Verilog,入门阶段小编也建议优先学习Verilog,网上的配套视频也基本是以Verilog为主。虽然在视频课程里对于Verilog的语法有讲解,这边建议通过书籍对于Verilog语法进行一个学习,不一定面面俱到但要有一定了解,后续的视频学习中遇到不理解的地方也可以当成一本工具书进行查询,这里推荐的是夏宇闻的《Verilog数字系统设计教程》。

3.通过刷题网站HDLbits巩固基础知识

HDLbits是一个Verilog刷题网站,这个刷题网站可以在线完成编译。是对于语法基础知识的一个巩固。网上有许多博主已经更新了全套的答案,后续小编也会更新答案和讲解。

第三阶段(入门强化阶段)

这一阶段你已经熟练掌握了FPGA基本的开发流程和了解了Verilog语言的使用。对于Quartus和modelsim这些软件的使用已经得心应手。这时候小编的建议是开始转向对于Vivado的学习,这个软件会比Quartus复杂一些,但是换汤不换药。这时候先不建议购入赛灵思的开发板,目前野火的赛灵思视频课程没有更新完毕,但是对于用来熟悉Vivado足够了。大资金比较充裕的大家也可以选择正点原子的达芬奇开发板(比较贵),使用正点的开发视频进行Vivado。在你习惯了野火的波形法后,正点的视频不像野火那么通俗易懂,要做好心理准备。小编这里还是建议暂时不买板子,利用视频熟悉一下Vivado开发流程即可。

当然这一阶段对于野火的后续视频也可以继续开始有选择性的观看,比如一些串口通信对于以后找工作还是很有用处的。

总结下来入门阶段你们最起码需要掌握的东西:

(1)   基础知识:数电

(2)编程语言:Verilog

(3)开发工具:Quartus,Vivado,Modelsim

(4)FPGA开发流程

这些在上述推荐的学习方法中均涉及到,按照步骤来即可。

通过这三个阶段的学习,能够坚持下来对于入门FPGA完全足够了。 这也只是FPGA学习第一步,想要成为一名合格的FPGA工程师后续的学习是非常枯燥漫长的。关于FPGA的学习其实网络上的视频课程相对于软件学习是很少的,但是不乏一些好的书籍,在这里也是希望大家能够养成啃书的习惯,到后续进阶看芯片手册和一些书籍时会轻松很多。

后续会对FPGA进阶学习做出一些经验的分享。

FPGA学习经验分享——入门篇相关推荐

  1. 「代码家」的学习过程和学习经验分享【转】

    图灵丛书的一句话说的很好,Standing on the shoulders of giants,是的,我们一直站在巨人的肩上,我们起步都在沿着他们的轨迹前行,之后慢慢的在前人的开发基础或者规范上写出 ...

  2. Unity3D 之 学习路线与学习经验分享

    转自:https://blog.csdn.net/qq_22521529/article/details/83108837 Unity3D学习路线与学习经验分享 该博文出自作者15游02 丁祺,是一篇 ...

  3. 英语学习经验分享(四六级、竞赛、口语)

    英语学习经验分享(四六级.竞赛.口语) 什么时候开始下决心好好学英语的,自己又经历了哪些苦逼事儿??? Listening Speaking 英语竞赛有哪些需要参加??? 全国大学生英语竞赛 河南省翻 ...

  4. LaTeX学习经验分享

    LaTeX学习经验分享 LaTeX介绍 LaTeX编辑器介绍 LaTeX小技巧 公式编辑环境下斜体符号变直体 结语 LaTeX介绍 Latex 是一种高质量的文字排版工具,主要用于技术类和科技类论文文 ...

  5. Android学习路线_入门篇(一)编写简单的APP

    Android学习入门的目标就是能够编写出一个完整的APP,有可交互的界面,有基本的功能,有本地的数据库,有与后台的数据交换.在本文我们会了解到如何在AndroidStudio中新建.运行.打包一个A ...

  6. JavaScript学习笔记之入门篇

    JavaScript学习笔记之入门篇 JavaScript引入 1. 页面级 js: 2. 外部js文件: JavaScript变量 1. 变量的作用: 2. 声明变量: 3. 变量赋值: 4. 单一 ...

  7. 学习经验分享 | 目录一览表

    文章目录 学习经验分享 | 目录一览表

  8. Day663.大佬学习经验分享 -Java业务开发常见错误

    大佬学习经验分享 Hi,我是阿昌,今天学习记录分析的是关于某大佬的学习经验分享. 大佬工作这些年来,经常会有同学来找大佬沟通学习和成长,他们的问题整体可以归结为两个. 一是,长期参与 CRUD 业务开 ...

  9. Physx3.4学习随笔(入门篇1)-SDK与环境搭建

    Physx3.4学习随笔(入门篇1)-SDK与环境搭建 SDK与环境搭建 SDK获取 PhysX Visual Debugger 执行SnippetHelloworld SDK与环境搭建 本文主要介绍 ...

  10. HTML5+app开发学习之快速入门篇

    HTML5+app开发学习之快速入门篇 5+app开发概念理解相关 开发环境与支持 快速入门实战 5+app开发概念理解相关 见博文:学习跨平台移动应用开发必须理解的一些概念 开发环境与支持 开发环境 ...

最新文章

  1. 七位世界级Java大师的杰作
  2. django Sometimes request.session.session_key is None
  3. ios--小结系列六
  4. ASE V15.7下载地址
  5. 一个普通人的震后十年
  6. [Golang软件推荐] RSA公私钥加解密(解决Golang私钥加密公钥解密问题)
  7. Java小游戏:飞翔的小鸟 【附源码和素材】
  8. Python自学(三)
  9. 查询电脑关机/重启记录
  10. 自然语言一般使用计算机,自然语言理解
  11. weblogic系列漏洞整理————8、WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)
  12. 中级的“信息系统管理工程师”、“系统集成项目管理工程师”和高级的“信息系统项目管理师”有什么区别?
  13. 将ESXI上的虚拟机导出为OVF模板
  14. 超文本标记语言(英语:HyperText Markup Language,简称:HTML)
  15. 视频剪辑技巧,教你视频画面用图片进行遮挡的方法
  16. [转] Windows下Hook DirectX
  17. 华为认证--云计算HCIA-2
  18. 【Java】Java计算器
  19. YK线上机器redis配置(没有主从,单点,一致性哈希)
  20. 关于华硕天选2笔记本所用的mt7921网卡问题

热门文章

  1. matlab三角函数拟合程序,三角函数拟合
  2. 国内知名的java商城系统排名
  3. mongovue mysql_MongoDB 客户端 MongoVue(转)
  4. 信号处理--几种常见的窗函数
  5. 禁用计算机端口,电脑如何关闭445端口
  6. Python3自然语言处理(2)——获得文本语料库和词汇资源
  7. 串口液晶屏和并口液晶屏的区别
  8. Onvif协议学习:12、修改分辨率
  9. 什么新东西值得学「GitHub 热点速览 v.22.29」
  10. VS2015密钥 VS2017密钥