找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2734|回复: 6
收起左侧

FPGA入门需要什么知识

[复制链接]
ID:596800 发表于 2019-11-7 22:32 | 显示全部楼层 |阅读模式
我想入手FPGA,不知道需要什么前期知识储备
回复

使用道具 举报

ID:235200 发表于 2019-11-9 21:50 | 显示全部楼层
必须熟悉各种数字逻辑,如译码器、触发器、计数器、寄存器、存储器、各种逻辑门,然后学习用程序定义输入输出,之间用逻辑表达式表示其逻辑关系
回复

使用道具 举报

ID:155507 发表于 2019-11-9 22:12 | 显示全部楼层
数字电路基础

说到底,FPGA就是一堆数字逻辑组合在一起实现特定功能而已。所以数字电路基础知识是根本。如果你连触发器,组合电路,时序电路,竞争,毛刺等等基本概念还模棱两可不清不楚的话,那玩转FPGA只能是痴人说梦的幻想了。

FPGA基本单元都相似,都是由真值表和D触发器构成。改变真值表的值就改变了逻辑功能,再通过和D触发器组合来实现任何时序逻辑。所以我们对FPGA的编程,实际上就是去修改这些真值表和连接关系,使他们组成一张专门的真值表,去实现特定的功能。这和软件编程一步步运行程序有本质的区别。

我们必须要好好的学好数字电路基础这门课,基本的数字电路烂熟于心。把这些基础打牢固, 再往更深的方向发展。什么时候能够从抽象的算法中提炼算法的结构,再分解成具体的模块并通过硬件电路实现出来,这时候就算从菜鸟级别步入老鸟级别了。

回复

使用道具 举报

ID:275826 发表于 2019-11-9 22:33 | 显示全部楼层
需要数字电子技术方面和C语言方面基础
回复

使用道具 举报

ID:155507 发表于 2019-11-10 11:51
tyrl800 发表于 2019-11-9 22:33
需要数字电子技术方面和C语言方面基础

FPGA 不用C语言,用HDL语言

HDL语言的英语全称是:Hardware Description Language,注意这个单词Description,而不是Design。老外为什么要用Description这个词而不是Design呢?因为HDL确实不是用用来设计硬件的,而仅仅是用来描述硬件的。

描述这个词精确地反映了HDL语言的本质,HDL语言不过是已知硬件电路的文本表现形式而已,只是将以后的电路用文本的形式描述出来而已。而在编写语言之前,硬件电路应该已经被设计出来了。语言只不过是将这种设计转化为文字表达形式而已。但是很多人就不理解了,既然硬件都已经被设计出来了,直接拿去制作部就完了,为什么还要转化为文字表达形式再通过EDA工具这些麻烦的流程呢?

其实这就是很多菜鸟没有了解设计的抽象层次的问题,任何设计包括什么服装、机械、广告设计都有一个抽象层次的问题。就拿广告设计来说吧,最初的设计也许就是一个概念,设计出这个概念也是就是一个点子而已,离最终拍成广告还差得很远。

ID:401564 发表于 2019-11-11 15:46 | 显示全部楼层
FPGA对数字电路基础的要求远远高于单片机
编程的思路和单片机也是不同的,单片机是通过语言去操作硬件
FPGA则是用语言来描述这是一个什么硬件,哪个是输入,哪个是输出,输入和输出的关系是什么
单片机只要对数字电路看一个大概就可以了
但FPGA对于入门要求就比较高,基本是要精通数字电路才行
但FPGA从业者的工资也是要高出不少的
回复

使用道具 举报

ID:640249 发表于 2019-11-12 10:41 | 显示全部楼层
FPGA已成为现今的技术热点之一,无论学生还是工程师都希望跨进FPGA的大门。网络上各种开发板、培训班更是多如牛毛,仿佛在告诉你不懂FPGA你就OUT啦。那么我们要玩转FPGA必须具备哪些基础知识呢?下面我们慢慢道来。    (一) 要了解什么是FPGA    既 然要玩转FPGA,那我们首先最重要的当然是要了解什么FPGA。FPGA(Field-Programmable Gate Array),即现场可编程门阵列。看到编程两个字码农就笑了,不就是编程嘛,那可是我们的强项。且慢,此编程非彼编程。一定要把FPGA的编程和软件编 程区分开来。软件的编程,处理器会 逐条的把语言翻译成各种控制信号,去控制内部电路完成一个个运算或操作。那么FPGA的编程是怎么实现的呢?无论Altera家还是Xlinix家的 FPGA,叫法有什么差异,基本单元都相似,都是由真值表和D触发器构成。改变真值表的值就改变了逻辑功能,再通过和D触发器组合来实现任何时序逻辑。所 以我们对FPGA的编程,实际上就是去修改这些真值表和连接关系,使他们组成一张专门的真值表,去实现特定的功能。这和软件编程一步步运行程序有本质的区 别。要想玩转FPGA,就必须理解FPGA内部的工作原理,学习如何利用这些单元实现复杂的逻辑设计。    (二) 正确理解HDL语言    HDL(Hardware Description Language),硬件描述语言。通过名称我们能看出来,HDL语言是一种“描述”语言,这一点和C语言是有本质区别的。正确理解描述的含义,对学好 HDL语言很有帮助。HDL语言只是用文本的方式把硬件电路描述出来。我们在阅读HDL程序的时候,在脑子里应该能反映出一个完整的硬件电路结构。从另一 方面说,我们在编写HDL语言之前,就已经对要实现的电路有清晰的概念。所以HDL语言只是一个描述我们头脑中具体电路的工具,玩转FPGA的根本不是语 言而是逻辑电路设计。不要再纠结于我应该学习VHDL还是Verilog,那种语言更好学这些问题。如果把学习FPGA的重点放在学习语言上,死记硬背一 些语法,那自然是抓错了重点。语言在日常使用中会越用越熟练,不需要花很长的专门时间去学习。当然一本好的参考资料可以随时方便查询会是很有帮助的。   
回复

使用道具 举报

ID:640249 发表于 2019-11-12 11:54 来自手机 | 显示全部楼层
FPGA相对其它技术的学习与入门来讲,门槛性较高;首要一点,在学习FPGA之前,本科期间必须学习了解数字电路基础课程,模电电路基础课程;在我们步入大学期间,作为理工科,我们接触到的也是初步对可编程领域的接触就是单片机,在初步认识单片机,接触单片机,动手学习设计单片机的时候,我们就开始打基础,对语言的认识与学习,C语言,汇编语言的学习;所以,如果在你学习FPGA之前,你对单片机设计过,学习过,那么FPGA这块你学习起来也是具备一定的基础性;FPGA是什么,FPGA就是:现场可编程门阵列的简称;FPGA就是数字电路,核心是数字在前;所以,FPGA的开发核心就是数字电路的学习与掌握,至于对开发工具的学习,我们要明白,开发工具是帮助我们实现:高速,稳定,可靠,低功耗电路的一种手段。
做FPGA主要是要有电路的思想,作为初学者,往往对器件可能不是熟悉,那么应该对于数字电路的知识很熟悉吧,FPGA中是由触发器和查找表以及互联线等基本结构组成的,其实我们在代码里面能够看到的就是与非门以及触发器,不要把verilog和c语言等同起来,根本就是不同的东西,没有什么可比性,在写一句程序的时候应该想到出来的是一个什么样的电路,计数器,选择器,三态门等等。
那么,在理解时序,逻辑是一拍一拍的东西,在设计初期想的不是很清楚的时候可以画画时序图,这样思路会更加的清晰,还有就是仿真很重 要,不要写完程序就去往FPGA中去加载,首先要仿真,尤其是对比较大型一点的程序,想像自己是在做ASIC,是没有二次机会的,所 以一定要把仿真做好,还有很多新手对于语言的学习不知道选vhdl好还是verilog好,个人偏好verilog,当然不是说vhdl不好,反正 写出来的都是电路,那当然就不要在语言的语法上面花太多的功夫了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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