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)市场。

可是可惜的是,他无法享受这一派欣欣向荣的景象,在19***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都不知道,失去了非常多就业的机会。我们公司(广州单片机发展有限公司)这三年来跑遍了全国22个城市。每次宣讲会场里场外
都站满了人。每一个学生都渴望寻找一份好工作的心情由此可见一斑,但通过考试发现懂FPGA和Verilog的学生却寥寥无几,虽然我们每年都对招聘 FPGA人才寄予了非常大的希望。但每次都失望而归,深深地体会到招聘FPGA开发project师困难重重。

由此可见在应届毕业生中熟练掌握FPGA的学生属于稀缺资源。然而企业为培养FPGA开发project师无不付出沉重的代价,所以对于在校电类专业的学生来说,这 就是打造个人差异化竞争力的机会,其实仅仅要掌握FPGA就行找到一份薪水更好的工作。我们公司每次在考核员工时往往都会特别关注这些“特殊员工”的情 况,一般来说这些员工的工作都会比其他岗位高500元。这就是学习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团队。发展到现在30人左右的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里执行起来。这时我们须要一个硬件平台的支持,然后曾经的FPGA硬件平台 的价格让非常多的刚開始学习的人望而却步,上千元的价格并非一般的刚開始学习的人(特别是学生)可以承受的,并且不易学习。针对这种现状,也是为了回馈社会,帮助很多其它想
学FPGA又没有经济能力的爱好者,广州周立功单片机发展有限公司开发了一套低成本的FPGA开发套件。售价仅99元,即使是学生也是全然可以承受得起。 这款开发套件可以说是根本不赚钱,我们不仅要提供硬件电路,我们还得配套提供一系列教程资料。

过去的一年来。我们一共投入了4位开发project师环绕EasyFPGA030开展工作,翻译所有开发工具软件技术资料,先自己吃透然后再依据自己的理解、实践 和多次讨论,将技术资料通俗化,而且录制了第一个“Actel FPGA高速入门视频教程”供刚開始学习的人免费下载。便于刚開始学习的人高速入门,当第一版做出来销售1000套之后,才发现刚開始学习的人的焊接经验不足,于是又開始设计第二 版,这就是眼下大家在站点上见到的一体化EasyFPGA030开发学习板。为了可以带给大家最准备、最权威的知识。我们还请了国内第一个EDA创始人之 一的夏宇闻教授给我们进行Veirlog的培训。培训完后我们制作一系列Veirlog视频教程和PPT供刚開始学习的人学习,相同免费提供给大家。同一时候,我们和
夏老师一起共同合作编写了本书,目的是希望可以以最快的速度帮助刚開始学习的人入门。另外我们另一个30人的团队全面的提供FPGA的技术支持和售后服务,解决 用户的后顾之忧。

所以通过EasyFPGA030的平台学习。不仅节约了前期学习的成本,并且该套件详实的资料使得很的易用易学,对于刚開始学习的人来说是一个不可多得的FPGA开发平台。

3. 技术进行巩固和升华

    对于刚開始学习的人来说。有了一定基础后,应该将其继续的巩固和升华,笔者觉得竞赛是学生进行验证所学知识非常好的舞台,不仅可以锻炼学生的动手能力。并且可以发挥学生的创造力和想象力。

广州周立功公司已经成功举办了两届“Actel杯全国大学生FPGA电子竞赛”。參加的队伍各自是100队和300队,每支队伍都将免费获得价值1480 元的一套FPGA开发套件作为竞赛的平台,竞赛完后该套件无需退回。并且设置了最高5000元的奖金。这样的举措对公司来说仅仅有投入,非常难看到产出。可是我 们还坚持做了。主要是想给学生提供施展才华的舞台,让很多其它的人了解FPGA,学会FPGA。2009年我们又将启动了第三届竞赛,将队伍扩大到1000 支,给很多其它的人提供机会,我们的目标就是要将创新教育实践活动进行究竟。培养出一批又一批适合企业发展的人才。

1.4  小结

     综上所述,我们仅仅有了解了什么是FPGA。为什么要学习FPGA,怎么学习FPGA后,我们才干很有目的、有计划的去掌握这门技术。我相信通过我们的共同努力。一定可以培养出一批又一批优秀的FPGA人员。

參考原文:http://bbs.ednchina.com/BLOG_ARTICLE_3009771.HTM?click_from=8800023988,9950310837,2014-10-13,EDNCOL,NEWSLETTER   刘银华

作为刚開始学习的人应该怎样来学习FPGA的更多相关文章

  1. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  2. wxWidgets刚開始学习的人导引(2)——下载、安装wxWidgets

    wxWidgets刚開始学习的人导引全目录   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxS ...

  3. wxWidgets刚開始学习的人导引(4)——wxWidgets学习资料及利用方法指导

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  4. 刚開始学习的人制作VMOS场效应管小功放

    VMOS场效应管既有电子管的长处又有晶体管的长处,用它制作的功率放大器声音醇厚.甜美,动态范围大.频率响应好.因此近年来在音响设备中得到了广泛应用. 大功率的场效应管功率放大器.电.路比較复杂.制作和 ...

  5. wxWidgets刚開始学习的人导引(1)——前言

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  6. Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)

    Linux世界介绍 给自己定级 门外汉: 不会安装操作系统 不会用虚拟机(安装和使用) 入门级: 熟悉常见的发行版,甚至装过而且能用一些特殊发行版(比如kali)做过一些简单的图形界面的使用. 会一些 ...

  7. 对于刚開始学习的人Xcode最经常使用的快捷键

    对于刚開始学习的人而言,好多人都是直接使用鼠标进行操作.差点儿非常少使用快捷键,从而再练习编程时比别人慢那么一点,今天就把刚開始学习的人最经常使用的几个快捷键给大家总结下,当然欢迎大家补充. (1)c ...

  8. 【React Native开发】React Native配置执行官方样例-刚開始学习的人的福音(8)

    ),React Native技术交流4群(458982758),请不要反复加群! 欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文 ...

  9. wxWidgets刚開始学习的人导引(6)——wxWidgets学习材料清单

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  10. JavaScript 刚開始学习的人应知的 24 条最佳实践

    原文:24 JavaScript Best Practices for Beginners (注:阅读原文的时候没有注意公布日期,认为不错就翻译了,翻译到 JSON.parse 那一节认为有点不正确路 ...

随机推荐

  1. vim 插件之supertab

    supertab.vim 这个插件是用来把tab键作为只能补全的映射,当然,具体更能肯定不仅仅只是如此,等待以后发现吧 地址 http://github.com/ervandew/supertab h ...

  2. Java多线程理解:线程安全的集合对象

    1.概念介绍 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用.不会出现数据不一致或者数据污染. 线程不安全就 ...

  3. js中字符串转驼峰转为下划线

    function dasherize(str) { return str.replace(/::/g, '/') .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') ...

  4. UI Framework-1: Aura Graphics Architecture

    Graphics Architecture Overview Each Aura Window owns a corresponding compositor layer. The layer tre ...

  5. python BeautifulSoup 获取页面多个子节点中的各个节点的内容

    页面html格式为 <tr bgcolor="#7bb5de"><td style="border-bottom: 1px solid #C9D8AD& ...

  6. python Web抓取(二)selenium模块的使用、对浏览器的按键操作及错误处理

    建议以下帖子: 教你在Windows上搭建Python+Selenium环境:https://blog.csdn.net/huilan_same/article/details/52888262 py ...

  7. Win 7中开启Telnet功能

    参看以下文章: http://winsystem.ctocio.com.cn/Longhorn/472/8756972.shtml

  8. myeclipse2013 jsp编辑初始化

    首先,大家可能有过这种经历.双击打开jsp编辑.它默认会打开视图,这样就使人恼火了,卡死了.所以我们能够自己设jsp的默认打开方式:打开Window-->preferences得: 搜索edit ...

  9. [Python] Slice the data with pandas

    For example we have dataframe like this: SPY AAPL IBM GOOG GLD 2017-01-03 222.073914 114.311760 160. ...

  10. OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)

    //一: 迭代器 //数组 NSArray *arr=@[@"1",@"2",@"3",@"4",@"5&qu ...