FPGA知识大梳理(一)对FPGA行业的一点感言
0赞今天想开始把这FPGA行业的知识点做一个大整理,从个人感想,到语法,到器件基础,难点攻克,到项目应用。把自己这几年接触到的知识做一个全面的回顾,看看自己这几年走过的路。
人生无常,几年的跌跌撞撞勉强算是在FPGA行业大门前。之前一直都是看别人的感言,逛别人的论坛笔记。或许自己应该有一个突破。
我经常把工程师比喻成农民伯伯,相同之处有两点,第一他们都是沉默寡言 老老实实的辛勤的工作者。第二,技术的世界像耕地一样,你无法投机取巧,也没有捷径,所有的知识点都需要你脚踏实地的去开辟。你多努力一点就回报多一点,知道的就多一点,见效快。
今天我就只想谈谈个人的看法,也是当年困扰我的问题。现在我觉得想通了,拿出来大家讨论一下。
问题一:FPGA会不会死
当年徘徊了一段时间要不要学习FPGA的时候就在想这个问题,万一这个行业被openCL这样的软件系统给替换掉了,那我不就悲剧了。
现在我这么看待的,FPGA行业分两大知识点部分。1:编程语言。2,器件。行业会死就是这两大部分被其他东西代替。我们分开讨论
1,编程语言
FPGA 最常见的开发语言就是HDL ,敝人不才,没有接触过别的,类似systemC等等。所以单说HDL语言。
最近几年不管是altera还是xilinx都力推用C实现HDL开发,但是一直是进展不大。貌似并没有出现颠覆性的成果,所以一直是噱头和彼此抢风头的阶段(现在altera被intel收购)。有人就担心(当年我也想过)HDL会不会被C 替换掉呢?只要有这么一个编辑器,就可以了。我的答案是不会。原因要从编程语言特性说起。
大家知道现在的编程语言发展也是相当快的,从原始的汇编,到C , java,c++ ,c#,html5.........
这里有一个误区,大家以为汇编被干掉了,其实没有,现在懂汇编的工程师是抢手货。应用场景有两个地方,一,小型mcu随着智能家居兴起,有些产品开发就是需要汇编。二,IC设计公司,像处理器mcu的开发,必须使用汇编进行指令测试,实现指令全覆盖,这个是其他语言无法替代的。比汇编高级一点点的就是C语言,而C语言一直都是经典,语言发展到再高级都无法将C和汇编完全替换掉,为什么呢?因为他们是面向过程的开发语言,就是写出数据的处理过程,而java,c++,c#,html5...... 都是面向对象的编程语言,当然他们存在都是有各自的特性,可是编程的思维方式是类似的。
说了这么多,只想说出一句:HDL是一种硬件描述语言(HDL:Hardware Description Language)。C是面向过程的,根本无法完全兼容。HDL一直是以硬件电路为设计思维导向,而不是数据流的思维导向。举例,C语言要实现sin。就直接写a=sinb。可是HDL要实现一个sin。那就是一个IP 。而HDL写一个移位操作在硬件里面很好理解也很好实现。用C 就要写好几行。语言没有好坏之分,他们各有特色,所以想用C的思维模式来指导硬件电路的设计,这个路似乎太长了吧。
说到这里不得不提一门语言systemverilog。知道SV的人就知道SV迟早会替代HDL,其实也不叫替代,是更新。因为SV是融合了verilogHDL 以及C 再加上一些自己的拓展形成的语言,也就是说你学的verilog其实就是SV的一部分。现在的SV 主要用来做IC 验证,形成了独立的验证方法学,这是SV 特性发展出来的。SV中融合的C 以及自己的其他特性主要是用来写testbench的,也就是说在可综合的代码部分,还是由verilogHDL撑着。目前也不用急于学sv,因为不是做IC 验证,用SV做项目有点杀鸡用了宰牛刀一样,当然,多了解一下更好。
所以,HDL 会向SV升级,但是不会死。
2,器件
器件包括器件特性以及开发工具(altera的QuartusII 以及xilinx的vivado为主)。
器件,那就是工艺需要考虑的事情,我们只需要跟随原厂就行。他们会告诉我们这种工艺下的器件特性和之前比有哪些不同,以及出现问题是工艺的影响还是设计的因素。至于工具,一个FPGA原厂想推广自己的产品必然有相关的技术培训,也就是最没有技术含量但是新手看来最能忽悠的技能。最近国产FPGA势头很猛,没有用过不发表看法。
这些就是工作的时候,公司用谁的产品我们就用谁的器件和工具,这些是大同小异。
问题二:FPGA的市场与技术现状
说得好听就是高处不胜寒 —— 高端解决方案,一般公司不用,那玩意儿贵啊。量产都是用ASIC,极少数有用FPGA的。门槛相对软件要高一点,比IC门槛要低一点。
当年我在学校的时候altera和xilinx都力推SOPC,就是在FPGA中嵌入原厂自己的CPU 。后来估计也是知道自己的CPU性能都太差了,所以现在又都力推SOC —— 既然自己的CPU 不行,那就用别人的 —— 嵌入硬核ARM。所以未来的发展就是软件和硬件这种技术壁垒突破越来越多,学FPGA也要学ARM,软硬兼施才行。SV软件和硬件语言已经融合了(虽然目前看起来还是有些独立的感觉),知识上当然也就要求我们攻城狮都要学习啊。
啰啰嗦嗦如此之多了。感谢一路走来的亲人和朋友,也感谢自己这颗坚强的心。
// ***********************************************************
2018年5月3日 新增
今年新上任的CEO 致辞以及xilinx这几年的动作来看。xilinx 遇到瓶颈是不争的事实—— 新市场打不开,传统领域在被Lattice和ASIC吞噬。既然龙头老大都是这种境况,整个FPGA领域都不好过了。
xilinx 推出ACAP ,并且说自己不只是一个做FPGA的公司,意思就是ACAP 并不是FPGA。这种新型的带有HBM技术的芯片应该是在大型数据中心,超算等领域使用吧。反正一般的企业是接触不到。
所以对未来FPGA领域的猜测是:两级分化。高端FPGA在企业中会有部分身影,并且开发方式不再是HDL ;第二种就是传统领域的使用,比如通讯,安防,用于视频编解码等,而且这个市场越来越小,Lattice,国产都在争这个市场。
至于zynq,实在是找不到他的位置。
// ***********************************************************