还是那句话,任何一件新事物的诞生都是有一定的历史背景和市场需求的。同样,FPGA也不例外。当时一边是具有可配型高、设计和调试时间短,但是相对来说实现功能简单的SPLD和CPLD,而另一边是支持极为大规模和复杂功能但是设计很耗时、开发周期长、昂贵、专对性强的ASIC。在20世纪80年代初,Xilinx开发了第一块FPGA,并于1984年投入市场。FPGA具有两者的共同点,针对不同大小及复杂度的功能,提供了不同规模的FPGA;同时它好比一张未开发的白纸,一方面可以设计成简单的,高度可配置性,设计调试快的PLD,另一方面它可以实现巨大和复杂的,在之前只有ASIC可实现的功能,但是有别于ASIC,依然可以重配置。实际上,现在做ASIC,都是在FPGA的平台上先做验证再做后面的工序。
那么有人会有疑问,现在依然有PLD、ASIC?这就涉及到成本问题。就像为什么现在有了ARM,为什么要有依然在用51单片机一样,PLD的价格相比FPGA来讲是要便宜,同样量产的ASIC也是比FPGA要便宜很多的。
FPGA的类型从内部实现机理来讲,是可以分为几类的,具体的区别将在后面章节叙述。最开始出现的FPGA是基于静态存储器SRAM查找表的,后来才陆续出现熔丝反熔丝与FLASH的FPGA。也正因为这个,现在的基于SRAM技术的FPGA要比其他技术类型的FPGA快一代。
所谓SOPC就是System On a Programmable-Chip即片上可编程系统。可能很多人在接触嵌入式的时候碰到这个概念,嵌入式的确是SOPC,但是这里主要指以FPGA为核心展开,加或不加其他硬件资源构成的系统,确切的将应该算是FPGA平台。
在具体介绍各种SOPC平台的之前,先讲一下SOPC产生的原由。最开始的FPGA雏形是只具备三大基本要素,即可编程逻辑块、可编程布线资源和可编程IO。对于要抢占PLD和ASIC的市场来说,这些还远远不够,完成不了复杂的功能。随着工艺的进步,FPGA的逻辑资源规模以及逻辑资源密度的提高,在FPGA内部放一个处理器的软核成为了可能,这样在达到以往单片处理器的效果的同时还能利用剩余资源做一些快速的接口粘合。这与以往的嵌入式开发很不一样,不需要额外的片子,在同一片FPGA内即可更好的做控制,同时可按照需求配置外设接口资源,灵活性很大,从成本上考虑可以节俭一块控制器,从空间上也可以节俭很大一面积。由于在FPGA上可以添加一些固有功能的硬件资源,随着各种各样的硬件资源的加入,FPGA也就从低端慢慢发展出一些功能强大的高端芯片,从单板FPGA架构扩展到单板FPGA+CPU/DSP架构,市场竞争力大大增强。
对于不同厂家的器件可以嵌入的软核不一样,在Altera大部分型号里支持嵌入NIOS软核,而在Xilinx大部分器件里支持microblaze(早期是picoblaze)软核。
片内从低端到高端的演进另一方面是可用资源的种类的提高,比如内嵌的乘法器,它可以使一些原来利用逻辑实现的消耗的量多速度又慢的算法,得到很大的优化。如图XX,在这些硬乘法器周围一般紧邻一些内嵌的RAM块,这些内嵌RAM也是为了乘法器数据输入输出专配的,减小输入输出到乘法器的延时,更加减小乘法运算时间。还有一些FPGA包含硬加法器,这样一来,利用硬乘法、加法器构成的乘加器,就可以完成很多DSP利用包含的乘加(MAC)器完成的FFT和滤波器等算法了。
随着FPGA应用领域的扩展,更很多硬资源的加入方便了我们使用FPGA,例如硬处理器核的添加,世界上第一个加入的硬处理器是ARM,是加在Excalibur TM器件上的,后来Xilinx也从IBM引进了这个PowerPC4硬核了。随着发展,相信还有很多各种各样的硬核会加入其中来,比如滤波器硬核等。
上面所讲述的只是FPGA本身各方面的发展,下面介绍常用的FPGA平台应用架构。主要分三种,一种是FPGA+处理器的架构,这种架构如果由处理器细分的话又可以分为基于FPGA+ARM、FPGA+CPU及FPGA+GPU等。如下图所示,这样的应用架构处理器主要做一些控制调度,FPGA主要做一些接口特别是高速接口的粘合,或者在FPGA内做一些快速算法,通信系统上做一些基带的调制解调、信道编解码等。
第二种是基于FPGA+DSP的应用架构,如图XX所示,是一个双通道的Xilinx V4+TI 6000系列的一个硬件平台,在通信系统中一路通道做上行一路做下行。这样的架构DSP主要是做一些复杂算法,更多的是一些FFT的算法、滤波器、RS卷积等等,FPGA主要做高速数据的采集、缓存以及做一些快速性的算法。
第三种是FPNA (Field Programmable Node Arrays),它是由很多不同种的可编程节点构成,这样的新概念器件在国外也只是近十年内的事。根据FPNA的相关介绍,FPNA 芯片结合了信号处理器与FPGA 配合设计的灵活性及ASIC 的高性能,把FPGA看作是LEB或LAB的阵列的话,那么FPNA就可以看作FPGA、DSP、CPU等运算、控制节点的阵列。目前QuickSilver与Picochip公司已有相关产品,关于FPNA大家可以登入它们的官方网站查找更多相关介绍。FPNA的产生需求主要是一些基站、雷达等处理数据量巨大的场合,相信在不久的将来,它的应用与推广,也值得我们关注。
用户1824638 2015-1-9 13:58
345002072_353389109 2015-1-8 09:46
345002072_353389109 2015-1-8 09:45
用户1780481 2015-1-1 17:26
楼主你好,我现在是通信研一学生,也想进华为,能具体说说oj和leetcode吗?
用户1824420 2014-12-26 00:51
阳光守望者 2014-12-2 23:14
345002072_353389109 2014-12-2 09:25
345002072_353389109 2014-12-2 09:23
用户573499 2014-12-1 17:07
阳光守望者 2014-11-30 20:49