ASICASSPSoC和FPGA到底有何区别?

Posted dhcn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASICASSPSoC和FPGA到底有何区别?相关的知识,希望对你有一定的参考价值。

http://www.21ic.com/app/eda/201412/610989.htm

 我经常收到关于各类设备之间的差异的问题,诸如ASIC、ASSP、SoC和FPGA之间的区别问题。例如是SoC是ASIC吗?或ASIC是SoC吗?ASIC和ASSP之间的区别是什么?以及高端FPGA应该归类为SoC吗?

这里有几个难题,至少技术和术语随着时间而演变。牢记这一点,对于这些术语的起源以及它们现在的意义是什么,我对此做了高度简化的解释。

ASIC——特定应用集成电路

让我们从特定应用集成电路(ASIC)开始。正如其名称所表示的,这是因特定目的而创建的设备。当大多数人听到这个词ASIC时,他们的“下意识”反应是,假设它是数字设备。事实上,不论它是模拟的、数字的,或两者的混合,任何定制的芯片都是一个ASIC。然而,对于这些讨论的目的,我们应该假设这是一个完全或主要部分是数字性质的芯片,任何模拟和混合信号功能是沿着物理接口线(物理层)或锁相回路(PLL)的。

ASIC通常被设计和使用在特定系统中的单个公司。开发ASIC非常昂贵、耗时、资源密集的,但ASIC确实能提供低功耗的高性能。

ASSP——专用标准产品

专用标准产品(ASSP)的设计和实施方式完全和ASIC相同。这并不奇怪,因为它们本质上是相同的东西。唯一的区别是,ASSP是更通用的设备,适用于多个系统设计工作室。例如,独立的USB接口芯片可以归类为ASSP。

SoC——系统级芯片

系统级芯片(SoC)是硅芯片,包含一个或多个处理器核心——微处理器(MPU)和/或微控制器(MCU)和/或数字信号处理器(DSP)——片上存储器、硬件加速器功能、外围功能,以及(潜在的)各种其他“东西”。看它是否属于SOC的办法是,先看一个ASIC是否包含一个或多个处理器内核,那么它就是一个SoC。同样,如果一个ASSP包含一个或多个处理器内核,那么它也是一个SoC。

技术图片

在此基础上,我们可以把ASIC(和ASSP)当做是扩展集术语,因为它包含SoC,或者我们可以把SoC当做是扩展集术语,因为它包括ASIC(或ASSP)的一切,包含一个或多个处理器核心。是不是觉得很好玩呢?

FPGA——现场可编程门阵列

ASIC、ASSP和SoC具有高性能、低功耗的优势,但它们包含的任何算法——除了那些在软件内部处理器内核执行的——其余都是“冻结的”。所以这个时候我们就需要现场可编程门阵列(FPGA)了。早期的FPGA器件的架构相对简单——只是一系列通过可编程互连的可编程模块。

FPGA最厉害的地方是,我们可以配置它的可编程架构来实现任意我们需要的数字功能组合。另外,我们可以以大规模并行的方式实施算法,这意味着我们可以非常迅速和有效地执行大数据的处理。

SoC级的FPGA

随着时间的推移,FPGA器件的能力(容量和性能)大幅提升。例如,现代的FPGA可能包含几千个加法器、乘法器和数字信号处理(DSP)功能;片上存储器、大量高速串行互连器(SERDES)收发器模块,以及许多其他功能。

问题是,现场可编程门阵列(FPGA)的名字不再足以表达出如今可编程器件的性能和功能。我们需要想出一些新的术语,可以表达出一切目前国家最先进的工具和技术能够做到的事情。

和我们在这里的讨论尤其相关的是,今天的FPGA可以包含一个或多个软/硬核处理器。在此基础上,我们应该把这种类型的FPGA归类为SOC(系统级芯片)吗?我个人不得不说SoC不为我工作,因为我把“SOC”一词定义为创建于使用ASIC技术的自定义设备。

另一种方法是称呼这些器件为可编程片上系统,或PSoC,但赛普拉斯半导体公司已经对PSoC这个名称申请了控制权。赛普拉斯的器件具有一个硬核的微控制器,增添了一些可编程模拟和可编程的数字架构(这个数字架构更倾向于CPLD,而不是FPGA)。

Altera公司通常称呼这些器件的这个版本为SoC FPGA,它们结合了硬MCU内核、可编程的FPGA架构,但他们似乎已经发展到只称呼它们为SoC。同时,Xilinx(赛灵思)称呼这些设备的特点为“所有可编程片上系统”。

就个人而言,我拿不定主意什么名字最好。如果赛普拉斯对这一称谓没有采取的控制权的话,我想我更愿意称它为PSoC。但是因为他们已经对PSoC这个词采取了控制权,所以我们不能。PSoC行不通,我想我会选择SoC FPGA。除非你有更好的提议。

以上是关于ASICASSPSoC和FPGA到底有何区别?的主要内容,如果未能解决你的问题,请参考以下文章

区块链和数据库,技术到底有何区别?

数字藏品与NFT到底有何区别?

贝叶斯估计和极大似然估计到底有何区别

人工智能,机器学习,深度学习,到底有何区别

hive的几种join到底有何区别

Python爬虫:urllib3与urllib到底有何区别?内行人告诉你答案