我试图理解诸如英特尔、AMD、PowerPC、AVR、ARM等“普通”MCU/CPU与FPGA和ASIC之间的关系。
以下是我的理解:
我上面的理解有什么不正确吗?如果是的话,请纠正我!
发布于 2015-05-14 04:31:58
你把事情搞混了。你已经知道了它的要点,但还没有完全理解。
让我们比较一下通用微处理器、微控制器、FPGA和ASIC。你把微控制器和微处理器混为一谈,而你真的不该这么做。
通用微处理器:这些是台式机和膝上型处理器,英特尔奔腾芯片,AMD雅典乐等。这些是昂贵的,很高的功率(瓦特),高性能处理器。它们需要大量的支持电路才能运行。
微控制器:这些经典的设备,如8位Atmel AVRs,微芯片图片,和许多其他设备.它们通常是廉价的,低速的,低性能的,低功率的设备,并且通常需要很少的支持电路来操作。40W对于CPU来说是低的,而对于一个微控制器则是高的。它们的内存非常少,通常只有4-8K的SRAM和64 of的闪存。
许多应用程序中的处理器,如手机,模糊了通用微处理器之间的界限,具有更高的性能和更大的内存,但功耗仍然很低。有许多ARM产品正在微控制器领域取得进展,它们的性能远远超过上面所述的微控制器,虽然功耗要高得多,但在支持电路和成本方面却是相似的。例如,数码相机中的处理器可能是一个很难装进任何一个桶的芯片(而且可能会有一个强大的DSP来配合它)。
FPGA经济地处于微控制器和ASIC的中间。它们提供高速和低功耗的折衷,但灵活性降低,复杂性增加.为它们编写VHDL或Verilog比为微控制器编写C要复杂得多。现在,除非您的应用程序有大量的模拟组件,否则ASIC通常不会比FPGA更具成本效益。FPGA也不是微处理器,也不是微控制器,但是,只要它有正确的外围设备,就可以编写一个作为微控制器的程序。
专用集成电路(ASIC)。这些是为特定任务设计的定制芯片。根据我的经验,ASIC标签是针对单一客户/单一产品设计的芯片,而不仅仅是它们的专业程度。我个人不会把数字钥匙目录中的任何东西叫做ASIC,只是一个IC。甚至像TI ADS1298R,一种专门为心电设备设计的芯片。ASICs用于速度、功率或尺寸限制的专用产品,在这些产品中,没有现有的通用部件可以满足需要。ASIC不一定是为了最大的速度而设计的,它也可以是低功耗的。一个ASIC可以做到所有,并给你的速度,力量和大小的任何组合,你需要,但达到那里将花费你比任何其他选择。
同样,与FPGA一样,ASIC既不是微控制器,也不是微处理器,但可以在ASIC中实现。然而,这样做是非常昂贵和复杂的,你需要重新思考你在做什么。相反,您将实现一个设备来计算拼图中的一些小部分,即应用程序最紧的循环中的元素,然后使用通用部件来处理其他所有内容。
当然,正如所提到的,有很多设备不太适合这些水桶。
最后,通用微处理器不一定是最慢的,事实上,桌面处理器速度非常快,几乎超过了FPGA所能做到的所有功能。然而,与FPGA相比,它们还需要大量的能量。因此,您是否想使用常规处理器或FPGA将取决于您的应用程序是插到墙上还是运行一个微型电池。
https://softwareengineering.stackexchange.com/questions/283794
复制相似问题