集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1593|回复: 5

FPGA怎么学?几个过来人的学习建议

[复制链接]
Python0291 发表于 2019-10-9 10:15:52 | 显示全部楼层 |阅读模式
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。那么,FPGA怎么学呢?这里整理分享一些学习FPGA的小建议,希望对大家有所帮助。

(1)深入了解FPGA

知己知彼,方能百战百胜。既然要玩转FPGA,那我们首先重要的当然是要了解FPGA是什么,知道FPGA内部的工作原理是怎样的。

FPGA(Field-Programmable Gate Array),即现场可编程门阵列。看到编程两个字码农就笑了,不就是编程嘛,那可是我们的强项。且慢,此编程非彼编程。一定要把FPGA的编程和软件编程区分开来。软件的编程,处理器会逐条的把语言翻译成各种控制信号,去控制内部电路完成一个个运算或操作。那么FPGA的编程是怎么实现的呢?无论Altera家还是Xlinix家的FPGA,叫法有什么差异,基本单元都相似,都是由真值表和D触发器构成。改变真值表的值就改变了逻辑功能,再通过和D触发器组合来实现任何时序逻辑。所以我们对FPGA的编程,实际上就是去修改这些真值表和连接关系,使他们组成一张专门的真值表,去实现特定的功能。这和软件编程一步步运行程序有本质的区别。要想玩转FPGA,就必须理解FPGA内部的工作原理,学习如何利用这些单元实现复杂的逻辑设计。

(2)掌握FPGA的编程语言

在学习一门技术之前我们往往从它的编程语言开始,如同学习单片机一样,我们从C语言开始入门,当掌握了C 语言之后,开发单片机应用程序也就不是什么难事了。学习FPGA 也是如此,FPGA 的编程语言有两种:VHDL 和Verilog ,这两种语言都适合用于FPGA 的编程,VHDL 是由美国军方组织开发的,在1987年就成为了IEEE 的标准;而Verilog 则是由一家明间企业的私有财产转移过来的,由于其优越性特别突出,于是在1995年也成为了IEEE 标准。VHDL 在欧洲的应用较为广泛,而Verilog 在、美国、日本、台湾等地应用较为广泛,作者比较推崇是Verilog ,因为它非常易于学习,很类似于C 语言,如果具有C 语言基础的人,只需要花很少的时间便能迅速掌握Verilog ,而VHDL 则较为抽象,学习的时间较长。

作为在校大学生,学习Verilog 的好时期是在大学二年级开设《电子技术基础(数字部分)》时同步学习,不仅能够理解数字电路实现的方式,更能通过FPGA 将数字电路得以实现。作者发现华中科技大学康华光教授主编的《电子技术基础(数字部分)》非常好,可以说是一本与时俱进的教材,在本书的第二章后一节专门介绍了Verilog 语言与FPGA ,并且在每一章的后一节都介绍了如何使用Verilog 建模实现相关数字电路的内容,因此本书非常适合大二学习FPGA 的学生参考。本书是以《电子技术基础(数字部分)》为背景,并与该书同步配套学习FPGA ,并在它的基础上作了改进,源于它而又高于它。

大三、大四的学生还可以进一步强化学习Verilog ,建议以北京航天航空大学出版社出版的由夏宇闻教授编写的《Verilog 数字系统设计教程(第二版)》作为蓝本,本书比较全面地、详细地介绍了Verilog 的基本语法。如果是其他初学者,可以直接借助《Verilog 数字系统设计教程(第二版)》和本书即能全面掌握Verilog 的语法,这是学习FPGA 的第一步,也是必不可少的一步。

(3)掌握FPGA设计的流程

了解了FPGA的结构和设计流程才有可能知道怎么去优化设计,提高速度,减少资源,不要急躁,不要去在为选择什么语言和选择哪个公司的芯片上下功夫。语言只是一个表达的方式,重要的是你的思维,没有一个好的指导思想,语言用得再好,不过是个懂语言的人。

(4)FPGA实验尤为重要

学习FPGA除了要学习编程语言以外,更重要的是多实践。很多时候光想是学不会的,有了什么想法好还是通过实验验证一下,将自己设计的程序能够在真正的FPGA里运行起来,这时我们需要选一块板子进行实验,一般的板子基本上可以满足大家的需求,大家感兴趣的不妨买一块做做实验。

(5)不要钻牛角尖

刚开始学习FPGA的时候,我们没有必要去细究每一个细节。所有的知识,当我们需要它的时候,再去深入了解就行。入门知识,只要掌握常用的,够用就行,这样子才能很快就上手做项目,积累出经验,也让自己积蓄起信心继续前进。要是一开始就对每一个问题、每一个知识点都咬住不放,或者去钻研一些不常用的、以现有知识和经验无法理解的知识,只会让自己耗费大量的精力而进展缓慢,让自己觉得学习FPGA太难,只会让自己丧失信心!
 楼主| Python0291 发表于 2019-10-9 10:21:05 | 显示全部楼层
(1)掌握FPGA设计的流程:
了解了FPGA的结构和设计流程才有可能知道怎么去优化设计,提高速度,减少资源,不要急躁,不要去在为选择什么语言和选择哪个公司的芯片上下功夫。语言只是一个表达的方式,重要的是你的思维,没有一个好的指导思想,语言用得再好,不过是个懂语言的人。
(2)FPGA实验尤为重要:
学习FPGA除了要学习编程语言以外,更重要的是多实践。很多时候光想是学不会的,有了什么想法好还是通过实验验证一下,将自己设计的程序能够在真正的FPGA里运行起来,这时我们需要选一块板子进行实验,一般的板子基本上可以满足大家的需求,大家感兴趣的不妨买一块做做实验。
(3)不要钻牛角尖:
刚开始学习FPGA的时候,我们没有必要去细究每一个细节。所有的知识,当我们需要它的时候,再去深入了解就行。入门知识,只要掌握常用的,够用就行,这样子才能很快就上手做项目,积累出经验,也让自己积蓄起信心继续前进。要是一开始就对每一个问题、每一个知识点都咬住不放,或者去钻研一些不常用的、以现有知识和经验无法理解的知识,只会让自己耗费大量的精力而进展缓慢,让自己觉得学习FPGA太难,只会让自己丧失信心!
(4)掌握FPGA的编程语言:
作为在校大学生,学习Verilog 的好时期是在大学二年级开设《电子技术基础(数字部分)》时同步学习,不仅能够理解数字电路实现的方式,更能通过FPGA 将数字电路得以实现。作者发现华中科技大学康华光教授主编的《电子技术基础(数字部分)》非常好,可以说是一本与时俱进的教材,在本书的第二章后一节专门介绍了Verilog 语言与FPGA ,并且在每一章的后一节都介绍了如何使用Verilog 建模实现相关数字电路的内容,因此本书非常适合大二学习FPGA 的学生参考。本书是以《电子技术基础(数字部分)》为背景,并与该书同步配套学习FPGA ,并在它的基础上作了改进,源于它而又高于它。
大三、大四的学生还可以进一步强化学习Verilog ,建议以北京航天航空大学出版社出版的由夏宇闻教授编写的《Verilog 数字系统设计教程(第二版)》作为蓝本,本书比较全面地、详细地介绍了Verilog 的基本语法。如果是其他初学者,可以直接借助《Verilog 数字系统设计教程(第二版)》和本书即能全面掌握Verilog 的语法,这是学习FPGA 的第一步,也是必不可少的一步。
 楼主| Python0291 发表于 2019-10-10 17:02:32 | 显示全部楼层
作为在校大学生,学习Verilog 的好时期是在大学二年级开设《电子技术基础(数字部分)》时同步学习,不仅能够理解数字电路实现的方式,更能通过FPGA 将数字电路得以实现。作者发现华中科技大学康华光教授主编的《电子技术基础(数字部分)》非常好,可以说是一本与时俱进的教材,在本书的第二章后一节专门介绍了Verilog 语言与FPGA ,并且在每一章的后一节都介绍了如何使用Verilog 建模实现相关数字电路的内容,因此本书非常适合大二学习FPGA 的学生参考。本书是以《电子技术基础(数字部分)》为背景,并与该书同步配套学习FPGA ,并在它的基础上作了改进,源于它而又高于它。
大三、大四的学生还可以进一步强化学习Verilog ,建议以北京航天航空大学出版社出版的由夏宇闻教授编写的《Verilog 数字系统设计教程(第二版)》作为蓝本,本书比较全面地、详细地介绍了Verilog 的基本语法。如果是其他初学者,可以直接借助《Verilog 数字系统设计教程(第二版)》和本书即能全面掌握Verilog 的语法,这是学习FPGA 的第一步,也是必不可少的一步。
大鹏 发表于 2019-10-13 13:52:37 | 显示全部楼层
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。那么,FPGA怎么学呢?这里整理分享一些学习FPGA的小建议,希望对大家有所帮助。
 楼主| Python0291 发表于 2019-10-21 10:17:48 | 显示全部楼层
知己知彼,方能百战百胜。既然要玩转FPGA,那我们首先重要的当然是要了解FPGA是什么,知道FPGA内部的工作原理是怎样的。
 楼主| Python0291 发表于 2022-4-27 11:00:22 | 显示全部楼层
那么,FPGA怎么学呢?这里整理分享一些学习FPGA的小建议,希望对大家有所帮助。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-25 00:50 , Processed in 0.058592 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表