许多朋友都是经验丰富的嵌入式设计工程师,但他们都是微控制器(MCU)背景,因此对于FPGA是什么以及FPGA能做什么只有一个模糊的概念。如果问急了,他们会说“你可以通过配置FPGA让它做不同的事情”诸如此类的话,但他们真的不是很清楚FPGA里面有什么,或者如何在设计中使用FPGA。
事实上,MCU对有些任务来说是很适合的,但对其它一些任务来说可能做的并不好。举例来说,当需要并行执行大量计算任务时,FPGA可能会让你喜出望外。在本文中我们将讨论FPGA的硬件属性。
简单的FPGA构造
在集成电路领域人们经常会听到构造(fabric)这个术语,它指的是FPGA器件的底层基础结构。(作为一个兴趣点,单词“构造”来自中世纪英语fabryke,意思是“建造的某些东西”)。下面让我们从FPGA中的内核可编程构造开始吧……
如果我们仔细观察FPGA封装的内部,我们将看到硅片(技术术语裸片)。可编程构造表现为可编程逻辑块阵列,如下图所示。如果我们用放大镜“放大查看”,我们可以看到这种构造由沉浸于可编程互连“海洋”中的许多逻辑“岛”(可编程逻辑块)组成。
图1:简单的FPGA构造。