1.FPGA:现场可编程门阵列,简言之就是通过编程来描述数字电路逻辑,并实现在FPGA芯片上。
我们可以认为FPGA就是一张白纸,你把它做成CPU,它就是CPU,你把它做成编码器,它就是编码器,总之只要是数字电路的芯片,都可以用它来实现。当然,它由于可以反复擦写形成不同逻辑,所以芯片成本比ASIC流片的芯片成本要高很多。为什么不直接流片做成真正的芯片呢?因为开发和流片(一次性研发成本)非常高,起码在几十万左右。而FPGA没有这个投入。
2.FPGA是数字电路实现的载体,CPU是数字电路的一种,FPGA可以实现CPU,也可以实现其他逻辑。当然由于它的结构必须具有通用性,因此这样做并不划算,速度也不高,因此高档FPGA一般会加入一个硬CPU核。FPGA同样也可以实现你所提出的寄存器和门电路等数字逻辑单元。只不过由于它内部可以形成RAM的基础结构有限,所以如果需要大量,那么还是外接比较好,各个FPGA厂商都提供了高速的内存借口,比如DDR1333.FLASH存储器一般是需要外接的。FPGA的管脚很多,高档的甚至有上千个。内部的制作工艺可以达到40nm,这些指标一点不差于intel处理器。它的差分串行接口可以传输高于10Gbit/s的数字信号,这种速度一般的CPU是承受不了的。现在很多FPGA集成了大量DSP处理核和乘法器,因此运算能力很高。但是一般地讲,FPGA的时钟主频做不太高,一般在100M-200M。因为它的后端优化是全自动的,同时由于结构上的复用特点,浪费了很多没有用到的逻辑电路。
3.FPGA主要采用多输入查找表作为基础单元,比如四输入查找表,输入abcd四路信号,那么可以使其输出端产生a&b&c|d.等等,其间的与或运算是可编程的。具体内部的电路结构好像有用RAM的也有其他手段,而且有一定秘密性。
4.FPGA由于其成本和定位,主要用于样机和少量定制品。以及原理验证。或者需要今后可以进行更新的场合。比如人造卫星上的电路要求小巧,不能过于复杂笨重,那么可以用FPGA作为主控逻辑,并给它配备几个编译好的电路逻辑(以软件形式存储),到时候根据需求可以根据需求分别烧写变更电路。这是普通芯片无法做到的。
5.一直以来FPGA作为胶水逻辑,充当粘贴不同的大型数字逻辑的桥梁,比如loongson2E盒子的主板南北桥当时就是拿FPGA做的。另外一个应用是实时处理要求非常高的场合,因为它可以对实现真正的并行运算,比如我们可以做100个乘法器在同一个时钟周期计算出结果。用面积换取速度,CPU是做不到的。从可以实现并行运算的角度,FPGA的实时性能比CPU要好。 |