这些年学过的FPGA

这些年学过的FPGA

????最近看了老罗的鄙视链是怎样炼成的,联想到FPGA。从2011年底开始接触FPGA到现在已经快接近4个年头了,这四年见证了Altera-FPGA的发展,使用的cyclone系列的芯片也从cyclone到现在cycloneV,从单纯逻辑门,到集成DSP模块,再到现在的集成ARM,工艺技术也从最初的90nm发展到现在的28nm,最小的可以达到14nm(这么高级的芯片目前还没有用过),设计软件也从当初的Quartus II 9.0-- Quartus II 11.0-- Quartus II 13.1-- Quartus II 14.1。

?

????FPGA的角色也慢慢从当初的设计数字电路,到后来也把DSP干的活给干了,再到现在也想把ARM的活给干了。几年前,嵌入式处理器方面,就是三国(ARM、DSP、FPGA)鼎立,FPGA干的最多的也就是协处理,那时大部分人都去学习ARM,学习DSP和FPGA的寥寥无几,没办法,市场所向,市场所需的DSP和FPGA开发人员就是要求少而精,当然那时ARM也是炒得火热,各种培训机构涌现,有种供过欲求的趋势。如今这形势已经变了,ARM器件厂商一般连方案都提供了,市场没必要要那么多的ARM器件开发人员,更多需要的是做上层软件的人员,由此当初大部分ARM器件开发人员更多的就转向了做上层软件和系统软件方面。没办法,市场所向,智能手机出现,需要的更多的是人/物与人/物之间的连接,由此也出现了近两年做应用软件人员越来越多,做ARM、DSP、FPGA器件开发人员越来越少的现象,这情况也是和前几年的情况一样一样的。

????不过,现在的总趋势是电子产品的集成度必须越来越小,一板多芯片的情况也必须改变,变成了现在的一板一芯片,一芯片多核的形势,而SoPC(system on the chip)的特性正好能满足电子产品的集成度越来越高的特点。

????下图为2013年Altera和xilinx官网的头条,Altera当年提出的技术蓝图,如今Altera都已经实现了,电子产品更新的速度还是很快的,工艺甚至超过当初设计的发展蓝图,达到了14nm(估计也达到了一个暂时的极限,FPGA的单位面积逻辑门集成度也很高了,所以要在广度上进行扩展),所以也集成了ARM,也能跑跑OpenCL(异构并行计算,当前大数据处理前卫处理方式)。

????Altera和xilinx也开始大力推广SoC开发平台,逐渐感觉FPGA开发的软硬件界限越来越模糊了………….

????这些年FPGA芯片的发展形势就是:单位面积上逻辑门越来越高、功耗越来越低、硬件集成模块越来越多,芯片价格也越来越实惠(但是相比ARM而言还是贵的),如今感觉FPGA的功耗还是一个问题,再降功耗也是一个很大的难题,Altera在降低功耗可下了大工夫,连电源功耗管理芯片PowerSoC都开始自己做了,看来FPGA的功耗设计还是个很大的难题,没办法集成度、时钟频率、功耗是个矛盾的问题。

?

????芯片功能方面,从cyclone用到如今的cycloneV,感觉单位的逻辑门集成度越来越高,从cyclone到cyclone IV感觉FPGA的变化就是逻辑门集成度、集成DSP 处理模块数量和功耗,基本上没有多大的变化,所以作为一个基础入门FPGA的学习也无须强求一定要最新的cyclone型号,其实内部基本无差,关键还是要掌握基础的逻辑设计规则。但是从cycloneV的S信号型号开始,就开始集成ARM处理器,功能也就实现了一个广度上的扩展,当初的三国鼎立也变成了一家,估计以后懂FPGA的,也要开始学软件、ARM、系统方面的知识了,开发FPGA也要开始面临一个转型,也就是转型到SoCFPGA的开发,更像是一个系统设计。但是FPGA器件开发人员的转型相对较难,因为开发语言没有相通性,FPGA开发所看到的是触发器、锁存器、门电路,逻辑流也是一大堆并行的信号流,而软件开发是串行执行,由当前的处理结果引导到下一个执行动作。

????FPGA本身的无奈,虽然能够并行计算、流水线处理,但是有些东西是串行实现的,虽然状态机本身能够实现,但是实现起来也是很复杂的,例如一个iic接口或者是一个SD卡读写操作,这种串行机制非常强的东西,用FPGA就是很不方便了,用状态机的方式实现,估计也要几百上千行的代码,而用C实现的话简单方便。如非必要,还是不要少让FPGA干那些串行机制太强的活,多干些数据搬运的工作。

????FPGA应用方面,在通信方面的应用还最为广泛的,但是FPGA承担的角色主要还是高速数据搬移、高速数学运算与数据处理、ASIC/SoC的原型验证。

(http://blog.chinaaet.com/molf/p/35051#)

????虽然现在出现了异构并行计算的趋势,但还不是主流,OpenCL也可以实现到FPGA上,在能效上FPGA也比GPU高一到两个数量级,以前运行在GPU上工程也能够移植到FPGA上运行,运行速度方面也有很大的提升,但是其所带来的资源使用率还是个很大的问题,毕竟成本太高,开发难度也上了一个台阶,开发者要掌握的知识量也是很大的(算法层面、器件实现层面、并行计算层面)。异构并行计算国内目前估计没几家在研究,百度在这方面走在了前沿,需要用到更加高级的计算能力来支撑其庞大的业务和大量的数据计算,由此百度开始尝试用FPGA打造AI专有芯片,并成就了第一版AI专有芯片版百度大脑——FPGA版百度大脑。这使得百度成为了全球最早将FPGA规模应用在人工智能领域的公司,也和Altera开启了合作。同时,也有应用于金融超级计算,单纯用超级计算机,需要运行238秒,而在超级计算机中添加 FPGA,运行只需要12秒。但是,目前离FPGA广泛用于异构并行计算还有距离。

????对于目前开始火热起来的VR、MR,估计FPGA的应用主要是在前期asic验证或者是作为一个数据协处理器件,毕竟VR和MR面临的是消费类电子产品,成本是关键,ASIC才是VR投向市场的关键所在。

http://it.people.com.cn/n/2015/1202/c223607-27882640.html

????电子产品朝着一板一芯片,一芯片多核的形势短期之内不会改变,FPGA硬件上该集成的已经集成了,Altera三年前的设计蓝图已经完成,未来如何走向还是很期待。作为FPGA器件开发,要掌握的知识越来越多,面对市场的少而精转变为少而精而全,FPGA的门槛感觉也越来越高,毕竟这个行业发展太快了,所以,从功利的角度上来讲,如果是只是为了找工作的话,应该去选择那些就业概率更大的技术学习。

时间: 2024-11-13 23:58:20

这些年学过的FPGA的相关文章

VGA系列之一:VGA显示网络图片

一休哥是在读研究生的时候开始正式接触FPGA的,之所以这么说呢,是因为之前本科参加电赛的时候也学过一点FPGA的知识,可惜学习周期太短导致那次电赛惨败.可能世上就是有这么巧的事,刚上研究生的第一天,老板就给了我一块FPGA板,让我自己玩去,从此就踏上了这条不归路. 好了,闲话不多说,接下来我们来讲讲如何用FPGA实现VGA显示网络图片.这里我们先提出几个问题,通过解决这几个问题,从而实现工程效果. 1.  如何用FPGA实现VGA显示 2.  网络图片和VGA显示有何区别 3.  VGA如何显示

verilog实现中值滤波

前言 项目需要,想要实现算法中的其中一步即中值滤波,同时,因为图像处理部分中值滤波相对来说还是比较简单的,将中值滤波的硬件实现作为进入FPGA领域的第一次尝试.虽然说网上有较多关于中值滤波的文档,可是说实话,其一没有详细地讲解实现方法及原因,其二没有关于完整过程的叙述,其三有些网站上有代码但是下载下来几乎没有用,因为你根本看不明白,俗话说得好,吃别人嚼过的馍真tm的没味儿还会难受.所以,还是需要自己静下心来分析原理.设计模块.编写实现以及仿真调试.对于FPGA新手来说,前三部分还能自己慢慢摸索,

手把手教你学FPGA系列(1)

开课学习,坚持下去. 让运动[写博客]成为习惯! 首先对于FPGA的学习,需要准备2个条件,一个是硬件环境,一个是软件环境,硬件环境无所谓,可以自己low一个板,也可以某宝买一个板,当然最靠谱的还是在xilinx的官网买一个评估板,评估板例程多且权威,楼主力荐. 对于硬件的选择,大同小异,大家各凭爱好. 对于软件环境,楼主经过阵痛期后决定弃用ISE,改用Vivado,为什么呢?我为了说服自己,罗列了搜索了网上的各个说法: "一提起 Xilinx 的开发环境,人们总是先会想起 ISE,而对 Viv

烦躁而无奈的一次调试-记fpga驱动ad9854

写这篇东西,主要还是要发泄心中之不爽,毕竟debug不出来很影响食欲和心情,也没心情陪妹纸了. 一个月前,师兄便开始带我fpga,先让我驱动个dds作为训练.由于暑假的原因,就停停放放的,在家先把VHDL简单过了一遍,又反复研究了一下AD9854的datasheet.什么寄存器啊,时序啊都了解的差不多了.一个星期前开始着手编. 但是菜鸟不会重头编啊,所以先拿了一个网上的驱动程序,根据板子的实际电路对程序作了修改.感觉不是很难吧,但示波器木有一丁点现象啊,芯片却在发热.然后我就开始一点一点的改啊,

IC卡解密从零开始学1 (也许会有2) 解密工具V2 V3大放送 By:lookyour

前段时间发了一个破解的PN532工具,详见 ===========================IC卡解密工具 PN532工具XP 爆破版http://www.52pojie.cn/thread-597896-1-1.html IC卡解密从零开始学2  解密工具PN532-mfoc-mfcuk-GUIhttp://www.52pojie.cn/thread-604402-1-1.html =========================有很多人私信和回复希望有个详细点的介绍... 好吧,本着

FPGA机器学习之学习的方向

经过了2个月对机器学习的了解后.我发现了,机器学习的方向多种多样.网页排序.语音识别,图像识别,推荐系统等.算法也多种多样.看见其它的书后,我发现除了讲到的k均值聚类.贝叶斯,神经网络,在线学习等等,还有非常多其它的算法.比方说:免疫算法,遗传算法,主成分分析.蚁群算法等等. 好像非常多算法都是须要做非常多的研究才干用的非常好的.据说深度学习是由神经网络升级来的. 神经网络本身就是一本书,内容非常多.龙星计划里面也涉及到多种算法的应用.是要跟着追火爆的算法去学习.还是找最新的机器学习算法呢??

一点一滴认真学起

应该梳理出一个学习的框架,顺着这个框架一路向前,这样人生才不会虚度,现在感觉自己是看到什么想学什么,到头来学着这个忘着那个,什么也没有系统的掌握,也没有将知识进行升华,有的只是支离破碎的知识片,这样对自己真是一个不好的事,所以理出来一个头绪,一个人生方向,才不失为一个明智的路.认真.努力没错,方向错了,努力就是白费,而且往往更容易妥协.放弃,所以说,认准一个方向,努力向前,做到深入浅出.之前我的知识结构是单片机->ARM7->stm32->A8->dsp,但是一路走来,我觉得什么都

一位FPGA前辈的分享

我常年担任多个有关FPGA学习研讨的QQ群管理员,长期以来很多新入群的菜鸟们总是在重复的问一些非常简单但是又让新手困惑不解的问题.作为管理员经常要给这些菜鸟们普及基础知识,但是非常不幸的是很多菜鸟怀着一种浮躁的心态来学习FPGA,总是急于求成.再加上国内大量有关FPGA的垃圾教材的误导,所以很多菜鸟始终无法入门. 为什么大量的人会觉得FPGA难学?本管理员决心来详细讲一下菜鸟觉得FPGA难学的几大原因. 1.不熟悉FPGA的内部结构,不了解可编程逻辑器件的基本原理. FPGA为什么是可以编程的?

观点:哪些人适合做FPGA开发?--转载

FPGA目前非常火,各个高校也开了FPGA的课程,但是FPGA并不是每个人都适合,FPGA讲究的是一个入道,入什么道,入电子设计的道,就是说,这个过程,你得从电子设计开始,然后再学FPGA,而不是先从VHDL开始,直接跳过数电模电.这一点非常重要,这涉及到你以后的发展高度的问题.我是过来人,我深刻体会到FPGA与数电模电的基础的深层次联系.对于本科生而言,你可以把FPGA当作业余兴趣,但不要把它当成今后的饭碗,你可以保持这个兴趣直到研究生读完.从我招聘的情况来看,做FPGA的至少要读过研究生.