做FPGA需要学什么技术,怎样才算掌握了FPGA技术?(请前辈发表意见。)

上一篇 / 下一篇  2007-03-24 12:04:50 / 天气: 晴朗 / 心情: 高兴

查看( 1190 ) / 评论( 57 )
现在已经不同以前了,我们不用再学习Z80,也不用再走那么曲折的道路了,已经有很多前辈刚我们开了路,为我们指明了方向。但是怎么样才算是掌握了FPGA技术了?
了解FPGA/CPLD器件构建,学会了传统设计工具如Quartus II,ise,还能用fpga跑些小程序,做些小应用,甚至可以用fpga做dsp了。但这样就算掌握了吗?

下面简单介绍一下
FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列。 在现在的数字电路设计中,FPGA发挥着越来越重要的作用。从简单的接口电路设计到复杂的状态机,甚至“System On Chip”,FPGA所扮演的角色已经不容忽视。它的可编程特性带来了电路设计的灵活性,缩短了产品的“time to market”。FPGA的设计技术已经成为电子工程师必须掌握的一项技能。

现状:可编程逻辑器件已经从过去的几千门发展到现在的几百万门,它的应用也越来越广泛。从过去只能用来作为部份电子电路的取代品,到现在可以实现SOPC。门数的增多意味着可以实现更多的功能。从传统的自己设计所有模块,到现在的基于IP核基础上的设计。越来越多的IC设计公司更乐于设计IP核而不是单纯的IC芯片。因为他们看到了这是市场的发展方向。最初的单板机变成了单片机,现在的整个单片机系统硬件部份或arm嵌入式系统硬件部份也可以在一个芯片上就可以实现。极大的降低了PCB的设计难度和产品的开发成本。

那么做FPGA需要学什么技术,怎样才算掌握了FPGA技术?大家讨论一下
FPGA/CPLD器件价格查询

TAG:

abutter发布于2007-03-24 12:27:10
我觉得“掌握了FPGA技术”这种说法很怪异,新手上路,请多见谅。

什么是FPGA技术呢?是FPGA的设计原理,还是怎么利用FPGA呢?我想版主的意思应该是后者,因为前者似乎多是xilinx和altera之类考虑的东西。

FPGA在应用中应该是“泥巴”,是硬性的东西;而HDL应该是灵魂,是软性的东西。

我对SOC比较感兴趣,因此学习HDL以及RISC的体系结构,同时也想能实现一个,最直接的办法就时看看openrisc和leon的实现,然后能实际的运行一下,当然运行的时候需要一个载体,此时FPGA就充当了这个角色。

所以我觉得对我自己来说,重要的是理解基本的数字电路知识,学会HDL语言的应用,然后是了解处理器的体系结构(学校里面学的记下来的不过了),最后才会考虑FPGA的实现会碰到什么问题。

我想先搞明白自己用FPGA做什么,不要本末倒置了。

[ 本帖最后由 abutter 于 2007-3-24 12:32 编辑 ]
开启新的翅膀 ec1022 发布于2007-03-24 12:48:33

QUOTE:

原帖由 abutter 于 2007-3-24 12:27 发表
我觉得“掌握了FPGA技术”这种说法很怪异,新手上路,请多见谅。
我也不知道要怎么表述。

什么是FPGA技术呢?是FPGA的设计原理,还是怎么利用FPGA呢?我想版主的意思应该是后者,因为前者似乎多是xilinx和altera之类考虑的东西。
说得很好

FPGA在应用中应该是“泥巴”,是硬性的东西;而HDL应该是灵魂,是软性的东西。

我对SOC比较感兴趣,因此学习HDL以及RISC的体系结构,同时也想能实现一个,最直接的办法就时看看openrisc和leon的实现,然后能实际的运行一下,当然运行的时候需要一个载体,此时FPGA就充当了这个角色。

所以我觉得对我自己来说,重要的是理解基本的数字电路知识,学会HDL语言的应用,然后是了解处理器的体系结构(学校里面学的记下来的不过了),最后才会考虑FPGA的实现会碰到什么问题。

我想先搞明白自己用FPGA做什么,不要本末倒置了。
说得非常的好!!!!!
...

thunder9999发布于2007-03-24 13:00:30
读了上面的帖子,感触颇多,也谈一点粗浅的认识。
从事各种专业的人都会用到计算机,用它的目的应该只有一个,就是将计算机作为促进本专业领域研究工作的一种工具,当然对其了解越多就越能发挥其工具的作用,可是在现实当中往往会出现这样一种情况:在学习计算机的使用时,渐渐的将主要精力转移到了对这种工具的研究上,使自己的方向出现了偏颇,结果是自己专业的研究不够深入,计算机也不太精。
学FPGA就好像学习计算机一样,如果不是打算将来专门去生产设计FPGA芯片或搞IC设计相关工作,就不能舍本逐末,而要紧紧抓住本专业领域这个核心,仅仅FPGA作为帮助实现自己想法的一种工具。
当然,如何去学好FPGA这种工具,还是需要大家积极提供建议。
开启新的翅膀 ec1022 发布于2007-03-24 13:26:24

QUOTE:

原帖由 thunder9999 于 2007-3-24 13:00 发表
学FPGA就好像学习计算机一样,如果不是打算将来专门去生产设计FPGA芯片或搞IC设计相关工作,就不能舍本逐末,而要紧紧抓住本专业领域这个核心,仅仅FPGA作为帮助实现自己想法的一种工具 ...
fpga已经不仅仅是用来取代asic,现在各行各业都开始使用fpga来实现自己需要的东西。以专业知识以基础,再用fpga来实现自己的想法,说得很好。
Mi Chen@NCRL chenmi1999 发布于2007-03-24 14:11:19
FPGA也只是一种工具。是研究算法的重要工具,我觉得没有什么严格意义上的FPGA技术。基本设计方法、设计思路固然重要,但是随便找一个系统设计文档,篇幅占的最多的肯定是算法描述和实现,比如数字算术(Digital Arithmetic)的实现等,而这些内容,不管是应用于FPGA还是用ASIC,基本理论都是一样的。
Mi Chen@NCRL chenmi1999 发布于2007-03-24 14:16:52
相比于verilog语法,Coding Style,基本设计思路等,理论基础才是核心竞争力啊!因为前者学起来比较容易,给你一些优秀工程师写的代码,相信你很快也能学个八九不离十,但是后者的积累却不是一朝一夕的事情。越枯燥、越难懂的东西门槛才越高啊。

[ 本帖最后由 chenmi1999 于 2007-3-24 14:18 编辑 ]
hllyh发布于2007-03-24 14:56:57
在FPGA中如果不用软CPU要写复杂一点的算法还是比较困难的,各位大侠能否共享一些这方面的经验?
Mi Chen@NCRL chenmi1999 发布于2007-03-24 15:22:17
回复 #8 hllyh 的帖子
从基础的开始学起,学数字算法。数字算法涉及的主要内容是基本加法、乘法、除法电路的设计,以及它们在CORDIC等高级算法中的应用。
Good luck!
solidsanke17发布于2007-03-24 19:07:40
听听高手的意见
flexchips发布于2007-03-24 23:08:32
既然是社会就有分工,不能指望成一个超人。简单的设计,软件硬件和逻辑可以自己做。对于复杂的设计,如果分成多个模块由多人去完成就会变得简单;另外就是利用现有的IP或模块;而这些IP或模块大多来自公司或自己以前的积累。
abutter发布于2007-03-26 08:47:35
回复 #7 chenmi1999 的帖子
门槛高的话的同时需要的人自然量也会小,术业有专攻,做实现的也没有什么不好。

工匠也有工匠的艺术。
inforway发布于2007-03-26 09:18:41
在FPGA中如果不用软CPU要写复杂一点的算法还是比较困难的,各位大侠能否共享一些这方面的经验?
sunday359发布于2007-03-27 12:57:29
偶也在学习中,也迷茫,不知道学什么,希望有前辈指点
Jed的个人空间 jed 发布于2007-03-27 14:00:07
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
的确是这样,FPGA这种东西比较适合逻辑关系较简单、但性能要求较高的场合。
如果你的算法用单片机能做,就不要考虑FPGA了!

但是算法有时要求的处理能力较高,普通单片机或处理器根本做不了(是指性能上)。
所以才有了DSP处理器这种玩艺,也就是普通处理器加上一些硬件的乘加电路。

对一些性能非常高的应用场合,比如眼下热得烫手的H.264、HDTV、SDR之类的应用。
工程师们开始慢慢想到还有FPGA这种工具可以选择。FPGA是并行的吗!性能当然不是串行CPU可以比的。

但FPGA毕竟是硬件的东西,灵活性总比不上软件吧。
所以又有一些FPGA供应商在它们的FPGA中嵌入了CPU,也就是增加系统实现的灵活性,可以实现较复杂的逻辑控制关系。

FPGA是一个工具,一个越来越完备的工具。现在你可以用FPGA可以做高速的算法,
可以用FPGA里面的CPU做逻辑控制,可以输出高速的串行信号,可以接高速的DDR/DDR2/DDR3存储器,etc.,...几乎无所不能。

但是话又说回来,无所不能的东西往往觉得用在哪里都不是最优、最完美的...
这个世界上哪里有完美的东西呢。

FPGA供应商们个个都想吃通用CPU,DSP处理器,商用套片的市场,
但是通用CPU,DSP处理器,和商用套片厂商肯定不会轻易让出市场。
竞争就是这样,有竞争才有进步嘛。

QUOTE:

原帖由 hllyh 于 2007-3-24 14:56 发表
在FPGA中如果不用软CPU要写复杂一点的算法还是比较困难的,各位大侠能否共享一些这方面的经验?
[ 本帖最后由 jed 于 2007-3-27 14:03 编辑 ]
inforway发布于2007-03-27 16:34:13
能用FPGA做出稳定,可靠成熟的产品最重要
Haibin的个人空间 shorestlyer 发布于2007-03-27 19:31:13
FPGA在学术研究特别是重构计算中是常用的,但关于重构的应用好像还不是很多啊,个人觉得重构技术是FPGA的优势和趋势
hgp0117发布于2007-03-28 20:09:07
最初当然是数字逻辑基础
而后是HDL语言和FPGA的学习
最好有个开发板(MONEY...)
如果是牛鼻人物的话就学点FPGA嵌入CPU的咚咚吧
abutter发布于2007-03-29 21:33:34
回复 #15 jed 的帖子
FPGA的优势就在于能并行的处理数据,软件的优势就是灵活。

高速和灵活是要折中的。
liucp发布于2007-03-30 09:46:01
这个问题好难回答,学习中.....
51ti5000的个人空间 51ti5000 发布于2007-03-30 17:57:55
看了前面的回答,觉得很受益,

如果我不想搞NIOS 这类的DD,只想学习FPGA的其他DD,可以吗
我来说两句

(可选)

我的栏目

日历

« 2008-12-03  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 2327
  • 日志数: 4
  • 建立时间: 2007-03-15
  • 更新时间: 2008-02-25

RSS订阅

Open Toolbar