Board logo

标题: 为啥学习FPGA [打印本页]

作者: m1_ljp    时间: 2012-9-7 16:34     标题: 为啥学习FPGA

FPGA 作为一种高新的技术,已经逐渐普及到了各行各业,无论是消费类、通信类、电子行业都无处不在它的身影,从1985 年第一颗FPGA 诞生至今,FPGA 已经历了将近20 多个年头,从当初的几百个门电路到现在的几百万门、几千万门,从原来的上千元的天价到现在几元的超低价,可谓是出现了翻天覆地的变化。所以当前正是学习FPGA 的最好时机,无论是社会的需求也好,还是技术的成熟度也好,已经达到了前所未有的高度,我们可以花更少的成本,并以最快的速度掌握一种新的前沿技术,对我们的未来发展将会是非常大的帮助。  作为一个FPGA 的初学者必须要了解以下几个问题:什么是FPGA?为什么要学习FPGA?如何去学FPGA?
  1.1 什么是FPGA?
  FPGA 是Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路( ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
  FPGA 诞生于1985 年,当时第一个FPGA 采用2μm 工艺,包含64 个逻辑模块和85000 个晶体管,门数量不超过1000 个,由名为Ross Freema 所发明,当时他所创造的FPGA 被认为是一个不切实际发明,他的同事Bill Carter 曾说:“这种理念需要很多晶体管,并且那时晶体管是非常珍贵的东西。”,所以人们认为Ross 的想法过于脱离现实。但是Ross 预计:根据摩尔定律(每18 个月晶体管密度翻一翻),晶体管肯定会越来越便宜,因此它就越来越常见。在短短的几年内,正如Ross 所预言的,出现了数十亿美元的现场可编程门阵列(FPGA)市场。但是可惜的是,他无法享受这一派欣欣向荣的景象,在1989 年Ross Freeman 就与世长辞了,但是它的发明却持续不断地促进电子行业的进步与发展。
  我们都知道构成数字逻辑系统最基本的单元是与门、或门、非门等,而他们都是用三极管、二极管和电阻等元件构成,然后与门、或门、非门又构成了各种触发器,实现状态记忆,FPGA 属于数字逻辑电路的一种,同样由这些最基本的元件构成。一个FPGA 可以将上亿个门电路组合在一起,集成在一个芯片内,打破以往需要用庞大分立门电路元器件搭建的历史,不仅电路面积、成本大大减小,而且可靠性得到了大幅度的提升。
  一般的FPGA 内部是由最小的物理逻辑单位LE、布线网络、输入输出模块以及片内外设组成,所谓的最小物理逻辑单元是指用户无法修改的、固定的最小的单元,我们只能将这些单元通过互联线将其连接起来,然后实现用户特定的功能。一个LE 由触发器、LUT 以及控制逻辑组成,可以实现组合逻辑和时序逻辑;随着FPGA 集成度的不断增加,其内部的片内外设也越来越多,内部可集成SRAM、Flash、AD、RTC 等外设,真正实现单芯片解决整个系统功能的目的。所以我们所理解的FPGA 最底层是一些实实在在的门电路构成,然后由门电路构成最小的物理逻辑单元,然后通过布线层将这些最小物理逻辑单元连接成用户需要的特定功能,我们所需要控制的是布线层之间的互连开关,这也是我们编程的对象,通过这些开关来改变功能。
  当今的FGPA 按工艺分主要有SRAM 工艺和Flash 工艺(工艺是针对它们的编程开关来说的)两类,SRAM 工艺的FPGA 最大的特点是掉电数据会丢失,无法保存,所以它们的系统除了一个FPGA 以外,外部还需要增加一个配置芯片用于保存编程数据,每次上电的时候都需要从这个配置芯片将配置数据流加载到FPGA,然后才能正常的运行;但是Flash 架构的FPGA 掉电不会丢失数据,无需配置芯片,上电即可运行,它的特点非常类似ASIC,但是又比ASIC 更加的灵活,可以重复编程。在一些小规模的公司或者产品量不是很大的时候往往更倾向于用FPGA 来取代ASIC,不仅能够降低风险,而且能够降低成本。
  1.2 为什么要学习FPGA?
  FPGA 从诞生以来,经历了从配角到主角的过程,从初期开发应用到限量生产应用再到大批量生产应用的发展历程。从技术上来说,最初只是逻辑器件,现在强调平台概念,加入数字信号处理、嵌入式处理、高速串行和其他高端技术,从而被应用到更多的领域,正因为其飞速的发展,让更多学FPGA 的人看到了希望,其广阔的前景正是我们选择的原因之一。
  1. 广阔的发展前景
  据市场调研公司Gartner Dataquest 预测,2010 年FPGA 和其它可编程逻辑器件(PLD)市场将从2005 年的32 亿美元增长到67 亿美元,未来还将有不断往上增长的趋势。FPGA 及PLD产业发展的最大机遇是替代ASIC 和专用标准产品(ASSP),由ASIC 和ASSP 构成的数字逻辑市场规模大约为350 亿美元。由于用户可以迅速对PLD 进行编程,按照需求实现特殊功能,与ASIC 和ASSP 相比,PLD 在灵活性、开发成本以及产品及时面市方面更具优势,所以未来FPGA 将会是一个非常有前景的行业。
  FPGA 由于其结构的特殊性,可以重复编程,开发周期较短,越来越受人们的青睐,它的特点也更接近ASIC,ASIC 比FPGA 最大的优势是低成本,但是FPGA 的价格现在也是越来越低,例如:Actel 的Nano 系列更是打破了FPGA 的价格屏障,提供超过50 种低于1 美金的FPGA,在一定程度上已经可以与ASIC 相抗衡。
  根据当前发展的趋势,未来的FPGA 势必将会取代一部分ASIC 的市场,虽然根据摩尔定律(Moore’s Law):每18 至24 个月能在相同的单位面积内多挤入一倍的晶体管数,这意味着电路成本每18 至24 个月就可以减半,但这只是指裸晶(Die)的成本,并不表示整个芯片的成本减半,这是由于晶圆制造更前端的掩膜(Mask)成本、晶圆制造更后端的封装(也称为:构装、包装)成本、人力成本等都不会随摩尔定律而变化,反而芯片的成本有上升的趋势,所以过去许多中、小用量的芯片无法用先进的工艺来生产,对此不是持续使用旧工艺来生产,就是必须改用FPGA 芯片来生产……
  因此,未来的趋势告诉我们,FPGA 将成为21 世纪最重要的高科技产业之一,特别是国内的FPGA 市场,更是一个“未开垦的处女地”,抓住现在的机遇意味着为我们将来的产品提供更多的竞争力。
  2. 提供更多就业机会
  虽然FPGA 市场的广阔,但是FPGA 的技术人员是极度地缺乏,其原因是还未得到高校的重视,很多学校都未开FPGA 的课程,导致学生毕业后连什么是FPGA,什么是Verilog 都不知道,失去了很多就业的机会。
  由此可见在应届毕业生中熟练掌握FPGA 的学生属于稀缺资源,然而企业为培养FPGA 开发工程师无不付出沉重的代价,所以对于在校电类专业的学生来说,这就是打造个人差异化竞争力的机会,事实上只要掌握FPGA 就能够找到一份薪水更好的工作。
  当前受金融危机的影响,对学生的就业更是巨大的考验,据教育部的统计, 2008 年,全国普通高校毕业生达559 万人,比2007 年增加64 万人,2009 年高校毕业生规模达到611 万人,比2008 年增加52 万人,如此多的大学生面临着就业的问题,如果不具备一定的技能,将会淹没在大学生的潮流之中而找不到理想的工作,而学习FPGA 可以帮助学生多一技之长,大大提高就业的机会。
  3.具有更大的技术扩展空间
  我们都知道,以前IC 半导体产业一直是国内比较薄弱的产业,与国外的发展步伐相比还差甚远,我们所用的IC 大部分都来自欧美地区,国内拥有自主产品的IC 技术不多,多半需要引进国外先进的IC 设计技术,但是自2000 年以来,中国大陆的IC 设计企业如雨后春笋般迅速涌现,企业数量5 年增加了4 倍多,2005 年已经达到500 多家,销售收入过亿元人民币的设计企业达到17 家,其中两家超过5 亿元。概括地讲,中国的IC 设计公司可以分为四类,第一类是国有IC 设计公司,一般是承担政府研发任务的研究所转制后设立;第二类是由系统厂商的设计部门独立出来的IC 设计公司;第三类是民营IC 设计公司,以海归型为主;最后一类是外资IC 设计公司。
  所以IC 设计也是未来发展的一个重点方向,将会是国家大力扶持的产业之一,而IC 的设计人员所必须掌握的是FPGA 的技术,在芯片流片之前都是通过FPGA 来进行前期的设计验证,用的语言也是FPGA 的设计语言,只是在后端的设计中才用到IC 设计的特定技术,所以IC 设计人员必定是懂得FPGA 设计的人,掌握FPGA 的技术是通往IC 设计殿堂的必经之路,学习FPGA 有助于给我们更大的技术扩展空间。
  1.3 怎样学FPGA?
  既然FPGA 对我们如此的重要,那对于初学者的我们又应该如何去学呢?学习一样知识应该有好的老师教导,我们才能更快的掌握,可惜的是大部分的学校未开相关的课程,也缺少相关专业的老师,我们如何能够找到一个捷径或方法帮助我们学会这么极具竞争力的技术,让我们通向成功的殿堂呢?
  1. 掌握FPGA 编程语言
  在学习一门技术之前我们往往从它的编程语言开始,就如学习单片机一样,我们从C 语言开始,掌握了C 语言,开发单片机就不是什么难事了。学习FPGA 也是如此,FPGA 的编程语言有两种:VHDL 和Verilog,这两种都适合用于FPGA 的编程,VHDL 比Veirlog 早出现,由美国的军方组织开发,在1987 年成为了IEEE 的标准;Verilog 则是由民间一家普通的公司私有财产转化而来,基于其优越性,在1995 成为了IEEE 标准。VHDL 在欧地区应用的较为广泛,而Verilog 在中国、美国、日本、台湾等地应用较为广泛,笔者比较推崇的是Verilog,因为它非常易于学习,很类似于C 语言,如果具有C 语言基础的人,只需要花很少的时间便能掌握Verilog,而VHDL 较为抽象,学习需要一段较长的时间。
  如果是学生,学习Verilog 最好的时期是在大学二年级,与数字电路同步学习,不仅能够理解数字电路实现的方式,更能通过FPGA 将数字电路得以实现,笔者发现华中科技大学康华光教授主编的《电子技术基础(数字部分)》非常好,可以说是一本与时俱进的教材,在其中介绍了Verilog 语言,并且在每一章的最后一节都介绍了如何使用Verilog 建模实现相关数字电路的内容,非常适合大二学习FPGA 的学生,本书同样以《电子技术基础(数字部分)》为背景,并与该书进行配套同步,在它的基础上进行了升华和改进,源于它而又高于它,所以也可以同步学习。大三、大四的学生还可以进一步将Verilog 进行强化,学习北京航天航空大学的夏宇闻教授编写的《Verilog 数字系统设计教程(第二版)》可以比较全面地、详细地掌握Verilog 的基本语法,对大二学习的内容进一步的巩固和强化。如果是其他初学者,可以直接借助《Verilog 数字系统设计教程(第二版)》和本书即能对Verilog 的语法进行全面的掌握。这是学习FPGA 的第一步,也是必不可少的一步。
  2. 一个易学易用的硬件平台是成功的一半
  除了学习编程语言以外,更重要的是实践,将自己设计的程序能够在真正的FPGA 里运行起来,这时我们需要一个硬件平台的支持。
  3. 技术进行巩固和升华
  对于初学者来说,有了一定基础后,应该将其继续的巩固和升华,笔者认为竞赛是学生进行验证所学知识很好的舞台,不仅能够锻炼学生的动手能力,而且能够发挥学生的创造力和想象力。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0