zoukankan      html  css  js  c++  java
  • (原创)如何学习FPGA(初学者值得借鉴的一篇博文)

    ------------------------------------------------------------------------------------------------------------------------------------

    *******************************************************************************************************

    我在想,如果当初有人给我指导一下FPGA之路怎么走那该有多好啊!为了不想大家再走我经过的弯道,所以以自己的真实经历为鉴!

    如何学习FPGA,这应该是初学者迫切想知道的问题,因为人都有一种想走捷径的心理,即以最短的时间成就自我。

    常曰:“欲速则不达”。我以自己的亲身体验告诉大家到底该如何学习FPGA。

    FPGA之路:我自己走。

     

    可到底该如何走呢?

    工欲善其利,必先利其器。想要学习FPGA的人,首先得把其工具学好。这个工具得从两点下手:

    第一点:语言 ? verilog : vhdl

    此时,可能大家又会有疑问了,我又到底该学哪门语言呢?

    其实在大学里面大多不可开了vhdl语言,毕竟授课的那一代最先接触的是vhdl语言,所以这也不为过了。可是我们要明白,我们以后要面对的是市场,所以就不然生活在死板的教学安排下罗。

    刚开始时我跟大家也一样,最先接触的是VHDL语言,可是慢慢地我发现很多资料都是Verilog的,这样的话就造成了一些阅读上的麻烦。所以,我也就慢慢地接触上Verilog。可能刚从VHDL转向Verilog的学习会觉得很不习惯,甚至还没有Vhdl好学,虽然这样想我很同晴你,因为包括我在内,很多人都是感同身受,因为它不像Vhdl那么规范,格式比较固定。学电子的通常都有C语言的基础,而Verilog也就是C语言延升过来的,所以想Verilog也还是比较容易上手的。更重要的是,Verilog的代码通常都是比较简洁的。比如说同一段代码,用Verilog实现比Vhdl至少少三分之一的量!

    刚才我们说到了市场,就目前情况来讲,Verilog在公司里面占的份额远比Vhdl高,所以呢?我觉得大家把Verilog学好是非常有必要的。不过最好是把两门语言弄精通(事实上我就是这么做的),这样不仅可以更另方便地查看资料,同对有时对于设计也还是非常有帮助的。

    学语言的时候我希望大家不要死看书本,因为很多书上记载的实例通常也都漏洞百出,所以也可以尝试编译一下实例,即可以加深印象,有时也可以查找出错误,同时也还可以熟悉对工具软件的使用,何乐而不为呢?

    另外,很多人对语言的学习并不看重,敷衍了事就行了,这是学习之大忌。造成的直接的结果是遇到问题了都不会在书上找到答案,而是直接问别人,有时候就是一个小小的语法上面的问题而已,哎 初学者如果抱着这种学习的态度是永远也学不好的。

    第二点:工具软件 ?Altera :Xilinx

    其实这一点还是比较讲清楚的,因为软件其实都是相通牟,只要把一方面的软件学好的,另外也就迎刃而解的,上手也快。在咱们中国,使用Altera公司开发的编译软件Quartus II比较多,而在欧洲那边使用Xilinx的比较多,在美国则平分秋色。对于软件的使用我希望大家多看下帮助文档或者是手册,这是最好最详细的导航仪,比问别人更加精确。在平时的自己最好一个一个去尝试,不要遇到问题就问,否则自己的自学能力如何提高。哈哈 不知道大家英文学得怎样?否则的话看这些文档起初是比较费劲的,不过贵在坚持,看多了,自然就习惯了。英语对我们学电子的实在太重要了,无论是现在用软件看成Handbook也好,还是以后看芯片资料Datasheet,要知道这些可全是英文的呀!不可能以后公司还为每个人配一个英语翻译的吧!这样的话公司为什么不直接招聘一个英语水平比较高的人呢? 对吧 可见英文能力的重要性了吧!具我所知,学电子的通常都是理工科出身,而且大多为男生,所以通常英语水平都不怎么的。但是,我不会同情你,如果在以后的竞争过程中你不想被淘汰就必须得把英语学好(这点重点强调的是英文阅读能力)。男人们啊,加油吧!相信自己没有什么可以难倒我们的。

    呵呵 说了这么多 无非就是想大家把基础扎好,而且不定要扎实,至于好处会在以后的过程中体会得到的。

    现在社会是一个团队的竞争,不再是英雄称霸的时代罗。所以要非常注意团队之间的合作,这一点想必也不用我再强调啦!

    另外,在学习的过程中,如果说没有一个团队,就自己一个人闭门造车,这样的话会学得很慢的,虽然有时候是迫不得已,因为在很多学校一个专业能有那么几个学习技术就已经很不错了,所以在这种情况下我们该怎么办呢?

    想当初我刚学的时候也是一个个摸索着前进,指望不上同学的帮助,也指望不上都是的指导,就这样前进了半个学期,会的也还是只有那么多,太慢了,这一点对于一个非常讲效率的我是不能接受的。所以,我建议大家如果身边没有同伴的话,可是多往论坛跑跑(这一点下面我会向大家推荐的),别把时间全花在游戏跟谈恋爱身上去了,学电子的要耐得住寂寞,这一点是我刚接触电子时老师对我说的,至今还记在心中。学电子的需要的是一种刻苦钻研的精神,心不能太浮躁,否则的话我劝你还是早点转行得了,因为转行的话或许你的路会好走一点。

    上面说的这些话或许只能对新手起一点指导作用,大师就可以不必了解了。因为这些我是从自己的切身体验上写出来的,真实 实在 所以我希望能够刚接触FPGA的初学者指引一条道路。

     

    强烈推荐:

    论坛:中国电子顶级开发网(论坛有很多,但建议大家不要参与太多,因为我们没那么多经历停留在网上 ,这个网站应该是目前同类中最好的一个中文论坛)

         Altera官网论坛

            博客园(这并非论坛,但其中资料非常丰富,有很多不错的牛人的博客都写得非常好)

    书籍:ALTERA FPGA/CPLD设计 基础篇 高级篇

        Verilog数字系统设计教程 夏雨闻

           VHDL与数字系统设计

    备注:上面所说的大多建立在数电模电的基础上,如果这两点大家没有扎劳的话 就得赶紧抓时间罗

    下面介绍一下自己

      现在从事LED显示行业(主要是户外大型的显示屏等),主要工作内容是编写代码,拿ARM跟FPGA去控制,对于ARM现在也还是在学习阶段,所以,现在又走上了当初学习FPGA路径,就是不断的学习 学习 学习……

    网名:tdyizhen1314(这个大家Google一下就知道,初写博文,希望能够帮助到大家)

    邮箱:495567585@qq.com

    续(2011-3-12):

          最近收到很多初学者的提问,大多涉及到怎么学习FPGA的捷径,我想要说的是:捷径就是不走弯路,即使走弯路,也要看尽弯道上的风景!

    在此我总结了几条学习方法(仅个人意见):

    1、看资料第一选择是原版,最好是官网上的。(官网上提供了各种各样的资料,没有什么书籍比这更权威的了,上面有足够多的视频和实例教程)。

    2、人家写的一些博文资料等等,也不仅仅是这些,包括在中国出版的绝大部分书籍,资料看了之后要细细揣摩,要验证其正确与否,方可吸收,否则吸收进去的可能会拉肚子。

    3、编写代码要有硬件性的思维,你写的每一条语句对应的都是实实在在的一个电路。

    4、多提问,多讨论,多记录,多思考。

          多提问,就像我上面所说的一样,多上官网论坛提问,不要认为自己英语不好,否则谷歌、有道翻译怎么会有市场,慢慢来,再说咱们说的那些英文虽然漏洞百出,但是老外也能看懂,就好比老外跟咱们说汉语一样,论坛上面会对你得问题回答的很精彩。多讨论,学习东西最好是有专研的一个团队(这个团队可能在学校里面是比较难找的,大家也都明白大学里学东西的一个状况),但是现在网络这么发达,所以,途径还是有的,况且讨论的时候还可以学到该知识点之外的知识,何乐而不为呢。多记录,要经常把自己觉得有用的东西记录下来,虽然说脑子的容量很大,但长时间不看的话估计也就慢慢的陌生了,好记性不如烂笔头,什么东西都有个折旧率,知识一年不看的话,损失的将是80%,这就是现在所说的知识折损。多思考,一个代码写完了,不是说在实验板上有结果就算完了,有没有更好的节省资源,其工作频率能不能在高点,等等等等,都是一个严谨的工程师所要考虑的。

          另外再说一个代码风格的问题,你写的代码能够在最短的时间内让人家看懂,这才是风格最好的(所以你得遵守一些前辈积累下来的风格,这个方面可以不太需要创新)。

    好了,对于方法先就说这么多吧!学习FPGA的过程是漫长的,但是市场也是广泛的。

      也有很多人问我学习FPGA跟ARM哪个最有前景,这个的话我也不能因为我学FPGA就说FPGA好,当然也包括DSP,看个人兴趣吧!这就好比一张白纸(FPGA)和一张已经有模有样的纸(ARM)让你去作画,你会选择哪种风格呢?就目前而言,ARM的市场比FPGA大得多,但是现在FPGA每年的发展势头让人很吃惊,哈哈

    作者:tdyizhen1314(一位从事软硬件开发十年以上的老兵的故事,希望与大家一起交流,共同进步) 邮箱:495567686@qq.com
  • 相关阅读:
    数组常用方法
    Chrome调式技巧
    Object.create()和new object()和{}的区别
    ES6基础知识
    sass基础
    webpack中package.json相关参数
    webpack.config.js====图片处理
    java发送邮件功能[转]
    mybatis sql使用经验总结
    JSON操作
  • 原文地址:https://www.cnblogs.com/tdyizhen1314/p/1800713.html
Copyright © 2011-2022 走看看