本帖最后由 xlhtracy 于 2015-4-24 17:26 编辑
致我们一起“爱”着FPGA的岁月 “永远忠于年轻时的梦想!”这是特权大神的座右铭。这句话激励了不知多少人在FPGA这条路上跪着走了下去。小编虽然在这条“不归路”上悬崖勒马,但是在业余时间还是忍不住的去写点代码,时序逻辑分析器上波形的跳动带来强烈的存在感,这大概就是“真爱”吧。 和FPGA工程师的聊天中,我也深切的感受到他们的**是真的喜欢。当谈到英特尔要收购Altera的时候,大家都希望Altera不要被英特尔玩坏了,在竞争激烈电子行业很难想象会有工程师会有这样的担心。也很难发现像FPGA工程师这样的群体情怀!
和MCU、DSP比起来,FPGA到底有什么不一样的地方?在和一些FPGA工程师交流之后我得到了以下几点(具体技术细节就不说了,这里我们只谈情怀):首先FPGA本身的“高贵”,高端型号是败家、卖**的节奏,“果粉”们能够深刻的体会到这种感觉。其次,技术门槛高,电子设计中的“战斗机”这样的形容已经不够用了,要换“宇宙飞船”才可以,都是飞船了,有情怀是正常的嘛(嘿嘿)。还有人说是因为人追求自由解放的天性在FPGA上得到了释放(这层次上升的有点高了,小编觉悟没能跟上,惭愧啊!)。 为逻辑粘合而生的FPGA在实时控制上找到了用武之地,灵活的信号处理让它越来越高端。到了片上系统的出现,FPGA无所不能!对于一个无所不能的东西,除了占为己有之外还真没什么可表达的了。在自身欲望的促使之下,很多人开始学习不知所云的硬件设计语言,完全不是C的逻辑。语言弄疯掉一些人,剩下的一些跨过硬件设计语言难关的人开始补习欠缺的数字电路养料,因为这时他们发现已经“营养不良”。之后还有算法设计、时序逻辑等等难关摆在面前。所以不是所有人都能精通FPGA这个神器的,就像不是所有人都能拔起“如意金箍棒”一样。
谈完“精神”上的“情怀”之后,再来说说“物质”方面的事情。围观一下死在沙滩上的“前浪”们的共同的经验教训:很多做FPGA的工程师都是从单片机、DSP转过来的。开始都以为FPGA和其他两者没有太大不同,就是在不同的开发环境上写程序、编译,然后烧写到RAM里供CPU调用执行。很多人在开始的半年里,连编译、综合、逻辑分析等具体作用都不知道(部分“天才”可以不算)。以为和单片机、DSP相同,用C的逻辑来写VHDL或者Verilog HDL。从硬件到软件的认识都大错特错。 首先,FPGA是纯硬件,写的‘程序’也就不能称之为程序,它是对硬件本身的描述。就像是写的一篇说明文。其次,单片机和FPGA实现信息处理发出控制信号的方式不同,单片机和嵌入式是通过主函数或者操作系统实现任务调度的途径来响应各种外部条件触发,并通过‘软件’输出相应的状态来实现电子系统的正常工作,然而FPGA是通过纯硬件来实现各种激励的相应的,与单片机实现控制的根本方法不同。
下面总结一下各位大神们学习FPGA最关键的四个点,希望对后来者有所帮助。 1、一定要熟悉FPGA的内部结构,了解可编程器件的基本原理。要深刻理解其内部三大模块:可编程逻辑单元、可编程连线、可编程IO的含义、作用以及相互联系。 2、正确理解HDL语言,全拼是:HardwareDescription Language。注意中间的Description是描述,而非Design。它只是对硬件电路的描述,而非设计。在写代码之前,电路是已经设计好了的(所以要学好数字电路,那是基础)。所以在编写HDL语言,尤其是综合HDL的时候不应该看到语言本身,而是其背后硬件电路。 3、FPGA只是工具,就像是孙悟空的金箍棒。想把它用的出神入化还需要自身深厚的“法力”。对于FPGA来说“法力”就是:数字电路知识、逻辑算法等。 4、不要被漫天纷飞的资料吓到,选一本好书足以。 “情怀”和经验谈完了,行业趋势也是绕不开的话题。通过对参与讨论的各位灼见的总结,FPGA主要有三个方向的应用。首先就是传统的通行设备的高速接口电路的设计,主要使用FPGA的高速接口协议。目前有一半以上的FPGA用在此领域。第二个就是数字信号处理或者数学计算,结合硬核(软核)DSP将越来越流行。最后就是SOPC了,就是利用FPGA这个平台搭建一个嵌入式系统的底层硬件环境。 |