谁嵌入谁,本质上是一个任务划分与优化的问题。
对于FPGA而言,其最适用的场景应该具备如下特征:
1、数据吞吐量大,处理速度要高,否则不用专门设计专用逻辑。
2、应用需求特殊,不然可以用通用的硬件加速器解决,而这里加速器会与CPU一起集成为SoC的形式。
3、批量不大,不然会有人考虑做成ASIC或者SoC的形式的。
前一篇主要论证FPGA为什么需要处理器的问题,而处理器需不需要FPGA呢?我们就来探讨一下这个问题。
处理器是现代电子系统中 的核心器件,这个毋庸置疑。所有的现代电子系统基本可以看做是以处理器为核心的专用计算机系统。
但是光有处理器是办不成事的,处理器要最起码要有与外界连接的输入输出通道,才能“有事可做”。而与外界连接的通道就是计算机接口。接口的类型有很多,想必各位也都了解,我在这里也就不多说了。在早期的时候,处理器还没有往SoC的道路上前进,所以需要在外面用各种芯片给处理器做一个外部接口出来。而到单片机的时代,各种简单的基本的接口和外设都逐步开始往里面集成了。这时我们熟知的UART、IIC、1-wire等等接口都开始被集成上去了。但这一阶段的接口很多时候仍然处于“短缺”阶段,所以往往需要做所谓的“接口扩展”。这一般是采用可编程逻辑器件来实现的,通常是CPLD,但有时也用FPGA。再往后就是“接口过剩”的时代了,在这个时代大量的接口被集成到SoC芯片中去,为了满足不同的需求,SoC芯片的设计公司往往会集成过多的接口,并且会推出“一系列”的芯片。这些系列芯片的主要差距出来内核处理器的升级以外,更多的体现在接口的差异上,体现在多了几个串口,少了几个USB上。
这种“过度设计”时常会造成很多浪费,往往会出现一种接口不够用但其它的很多接口用不上的情况。
(未完待续)