工程师须知:FPGA 的演进、优势、设计、改进
种外设进行连接,通过软件执行不同的进程,从而完成一定的任务,并将控制命令或结果进行输出。可以说通过软件编程微处理器可以做任何事情,但是致命的缺点就是速度有限,在外部时钟的节拍下顺序执行一条条的指令,不能并行处理,因此微处理器厂商只能玩命提高芯片的速度(比如Intel的芯片时钟在2GHz以上,ARM已经在600MHz以上),对于更复杂的任务只能多放几个兄弟在里面一起干活,也就是今天的多核技术。由于一般稍微复杂一些的系统都会用到微处理器用于输入输出、多进程处理以及网络通信等,很多满足一定性能需求的通用微处理器成本较低,因此被广泛采用。现在微处理器领域最热门的技术术语无疑就是 "嵌入式系统"了,但我可以负责任地讲,大多数人对"嵌入式系统"的理解是片面甚至是错误的。有些公司为了商业利益把嵌入式系统以"皇帝的新装"模式进行大规模地忽悠,导致人们几乎把"嵌入式系统"同某一种IP类型画上了等号,这个行业涌现出了大批的根本不懂嵌入式系统的嵌入式系统工程师。
2. DSP: 数字信号处理,精于在数字域通过执行相应的程序进行信号的处理,广泛用于音、视频,通信等领域。众所周知,通用DSP的领导厂商当首推TI, 当然很多通信芯片公司、视频芯片公司都在自己芯片内部放入了相应的DSP模块,同微处理器一起构成完整的系统。微处理器负责控制、人机界面、网络通信等,其对应的执行软件一般称作Software;DSP负责算法,比如滤波、空间变换、FFT/IFFT、调制解调等,相应的执行程序被称作Firmware。DSP的优点是灵活,由软件控制的可编程,并支持大规模的乘除法运算,缺点同微处理器一样是串行处理,无论做多少个事情要一个个排着队来做。
3. ASIC:专用集成电路。一般为厂商在确定市场量比较大的情况下,为了降低成本而把比较成熟的功能做在一颗芯片中,执行已经确定的一些应用。它的优点是显然的:便宜,专用。缺点也是明显的,发现有问题了再改?对不起重新交钱。如果量不大,平摊下来的单片成本就会相当的高,一颗芯片的设计、流片、测试的周期没有6个月是下不来的,时间成本是巨大的。另外客户的需求几乎是无限的,他们的胃口也是不断增加的,无论你设计中考虑的多么周全,都无法满足所有客户的需要,你会发现很多外设的接口需要增加、改进,内部的功能需要调整,片上的存储空间受到了限制等等。
4. FPGA: 它比较明显的缺点就是相对来讲成本较高,主要用于研发过程中或者市场量不会很大,FPGA在系统的整体价格中不敏感。一颗FPGA芯片的价格从低于1美元到几千美元不等,当然这是可以理解的,毕竟灵活性是靠高度的冗余带来的。它的好处是其它任何一种技术无法比拟的 - 它几乎可以做任何事情,你可以用它搭建多个微处理器,用它构建自己的乘、除法单元做出几个DSP来,而且这些处理器、DSP可以同时干活,并行工作,与此同时您还可以利用芯片内部未用的资源做很多辅助的功能,可以说是高度的灵活。
以一个应用为例,今天的汽车电子也是以人为本,该领域的一个重要的技术热点就是"司机帮助(DA)"系统,它由超声、雷达、照相机以及激光等多种不同的传感器构成,这些不同的传感器在不同的时刻或者同一时刻把相应的信号采集下来,发往中央处理单元进行识别、运算、做出判断,帮助司机在倒车、高速行驶以及夜间行驶的时候能够对周围的环境在最短的时间内做出准确的判断并做出一系列的安全保护动作。如果采用微处理器或DSP对多传感器的信号进行处理,它们无法并行执行多个任务,并且同其他系统进行互联,因此就会造成系统的处理时间延迟,可靠性差,从而导致事故无法及时避免。如果采用ASIC呢?随着用户对功能要求的不断增加,对性能要求的不断升级,也就要求算法要不断的改进,显然采用ASIC无论从灵活性还是成本上都是不合算的。图1是Xilinx专为汽车电子开发提供的功能模块,图2为在一颗Spartan-3E FPGA中针对"司机帮助"集成了很多的功能 。
FPGA的设计:
FPGA的功能越是强大,对设计的要求也就越高,毕竟有那么多的管脚需要跟其它芯片连接起来,有那么多的功能要一行一行地采用逻辑写出来,远远不是十年前处理门级电路的时候了。虽然今天大多数用过FPGA的工程师已经对这个痛苦的过程深有体会,我还是把他们列举在此:
1. 电路板设计:
现在的电路板设计动不动就是4层板、6层板甚至更多层,芯片的封装也变得稀奇古怪,什么QFN、BGA等等,如果发现了连接不对想手工修改,拿着烙铁都找不到往哪里烫,根
- 基于视觉的ADAS解决方案,近在咫尺!(05-07)
- 精通信号处理设计小Tips(6):卷积是怎么得到的?(11-24)
- 精通信号处理设计小Tips(7):应用极其广泛的相关(12-01)
- 精通信号处理设计小Tips(8):检测淹没在噪声中的信号(02-06)
- 精通信号处理设计小Tips(9):估算信号在模拟通道的延时(02-10)
- 什么是OpenCL?面向FPGA的OpenCL有何优点?(03-12)