FPGA与ASIC:它们之间的区别以及使用哪一种?
FPGA与ASIC:它们之间的区别以及使用哪一种?
FPGA Vs ASIC: Differences Between Them And Which One To Use?

VL82C486 Single Chip 486 System Controller ASIC.
引论
对于一个刚接触超大规模集成电路和硬件设计领域的人来说,这往往是第一个问题:FPGA、ASIC和CPLD之间有什么区别?在另一篇文章中,我们试图回答FPGA和CPLD之间的区别。本文将定义什么是FPGA,什么是ASIC,我们将试图阐明FPGA与ASIC的问题,并讨论它们之间的异同。我们将概述每种方法的优缺点,这样您就可以根据应用程序的需要明智地决定使用哪种方法。
这是一个目录,你可以很容易地导航到你感兴趣的副标题。
Content:
· FPGA vs ASIC comparison summary
· FPGA vs ASIC visual comparison
· How to choose between FPGA or ASIC
What is FPGA?
FPGA代表现场可编程门阵列。它是一种集成电路,可以“现场”编程,按预期设计工作。这意味着它可以作为一个微处理器,或者一个加密单元,或者显卡,甚至可以同时使用这三个功能。顾名思义,FPGA是现场可编程的。因此,与半导体铸造厂不同,作为微处理器的FPGA可以重新编程,在现场充当显卡。在FPGA上运行的设计通常使用硬件描述语言(如VHDL和Verilog)创建。
FPGA是由数千个可配置逻辑块(CLB)组成的,它们嵌入在可编程互连的海洋中。CLB主要由查找表(LUT)、多路复用器和触发器组成。它们可以实现复杂的逻辑功能。除了CLB和路由互连,许多FPGA还包含用于各种功能的专用硬硅块,如块RAM、DSP块、外部存储器控制器、PLL,千兆位收发器等。最近的一个趋势是在同一个FPGA芯片内部提供一个硬硅处理器核心(如Xilinx Zynq中的ARM Cortex A9),这样处理器就可以处理日常的、非关键的任务,而FPGA可以处理用处理器无法完成的高速加速。这些专用的硬件块在与asic竞争中至关重要。
What is ASIC?
ASIC代表专用集成电路。顾名思义,asic是特定于应用程序的。它们的设计目的只有一个,它们的整个使用寿命都是一样的。例如,手机内部的CPU是一个ASIC。它的功能是作为一个CPU的整个生命周期。它的逻辑功能不能改变成其他任何东西,因为它的数字电路是由永久连接的门和硅触发器组成的。ASIC的逻辑功能以类似于FPGA的方式指定,使用硬件描述语言,如Verilog或VHDL。在这种情况下,集成电路的集成电路的数量是可配置的。作为比较,可以考虑使用乐高积木建造城堡与使用混凝土建造城堡。前者类似于FPGA,而后者类似于ASIC。你可以重复使用乐高积木创造一个不同的设计,但混凝土城堡是永久性的。
FPGA vs ASIC comparison summary
FPGA ASIC编号
1.FPGA可重构电路。FPGA可以用不同的设计进行重新配置。他们甚至有能力重新配置芯片的一部分,而芯片的其余部分仍在工作!这个特性被广泛应用于数据中心的加速计算。
ASIC永久电路。一旦特定于应用的电路用胶带固定在硅上,它就不能改变。电路在其整个工作寿命内也将同样工作。
2.FPGA设计通常使用硬件描述语言(HDL),如VHDL或Verilog。
ASIC与FPGA相同。使用Verilog、VHDL等HDL指定设计。
3.FPGA更容易进入障碍物。从FPGA开发开始,成本低至30美元。
ASIC从成本、学习曲线、与半导体制造厂的联络等方面来看,进入门槛非常高。从头开始ASIC开发可能会花费数百万美元。
4.FPGA不适合大批量生产。ASIC适合大批量生产。
5.FPGA低能量效率,同样的功能需要更多的功率。
ASIC可以在较低的功率下实现。比FPGA更省电。ASIC的功耗可以非常精确地控制和优化。
6.FPGA与同类工艺节点的专用集成电路相比,工作频率有限。布线和可配置逻辑占用了FPGA的时序裕度。
ASIC由于电路针对其特定功能进行了优化,使用同一工艺节点制造的ASIC可以比FPGA工作频率高得多。
7.FPGA不可能进行模拟设计。例如,可编程逻辑控制器(FPC)可与模拟收发器(例如,可编程逻辑控制器(PLC)等)一样。
ASIC在专用于模拟收发器的射频(RF)核心上,可以不包含许多专用的模拟收发器。这是FPGA所缺乏的优势。
8.FPGA非常适合于雷达、手机基站等应用,当前的设计可能需要升级以使用更好的算法或更好的设计。在这些应用中,FPGA的高成本并不是决定因素。
ASIC相反,可编程性是决定因素,asic绝对不适合设计可能需要频繁或偶尔升级的应用领域。
9.FPGA优先用于原型设计和验证设计或概念。许多ASIC都是用FPGA自己设计原型的!主要处理器制造商自己使用FPGA来验证他们的片上系统(SOC)。使用FPGA原型设计更容易确保设计按预期正确工作。
ASIC除非经过绝对验证,否则不建议使用ASIC对设计进行原型设计。一旦硅被贴上胶带,几乎什么也无法修复设计缺陷(例外情况也适用)。
10.FPGA设计人员一般不需要关心后端设计。所有的事情都由合成和路由工具来处理,这些工具确保设计工作如RTL代码中所述,并符合时间安排。因此,设计人员可以专注于完成RTL设计。
ASIC设计人员需要关心从RTL到重置树、时钟树、物理布局和布线、工艺节点、制造约束(DFM)、测试约束(DFT)等所有事情。通常,所述的每一个领域都由不同的专业人员处理。
FPGA vs ASIC visual comparison


根据Xilinx,ASIC vs FPGA成本分析图如上图所示。由于成本和单位价值随使用的工艺技术和时间的不同而有所不同,因此在图表中省略了成本和单位价值。ASIC有非常高的非重复性工程(NRE)成本,以百万计,而实际的每个模具成本可能是美分。就FPGA而言,不存在NRE成本。你要为实际的FPGA芯片付费,一般情况下,你可以免费获得该FPGA的软件(最高限额)。因此,由于非重复性成本的存在,ASICs的总成本开始非常高,但其斜率更平坦。也就是说,小批量的原型化asic非常昂贵,但是在大批量生产中,每版的成本变得非常低。在FPGA的情况下,IC成本相当高,因此在大批量生产中,与ASIC相比,成本变得更高。
以下是ASIC成本构成的明细:
1. ASIC EDA tools and training
2. Cost of designing
3. DFT cost
4. Cost of simulating
5. ASIC Masks Cost
6. Wafer Cost
7. Wafer Processing
8. Die Utilization
9. Yield & Manufacturing Loss
10. Packaging
与上表相比,FPGA的成本仅限于可以现货购买的IC。
How to choose between FPGA or ASIC
你想了解更多关于VLSI的硬件设计的人?那么FPGA和仿真软件最适合您。你在设计自己的产品吗?酷!问问自己目标市场是什么,预期的价格范围,功率预算,速度要求等等。能用FPGA实现吗?如果是的话,那就继续把你的想法原型化。如果没有,你可能没有其他办法,除了去ASIC。在大多数情况下,至少可以使用FPGA制作原型并验证您的想法。当你完成原型的时候,你自己就会知道你是否需要使用ASIC路由。当然,如果您的设计完全是突破性的,并且非常特殊,有着非常具体的要求(在成本、功率、速度等方面),那么您除了使用ASIC线路外别无选择。否则,FPGA可以满足大多数用例,特别是当您需要可重新配置的硬件时。
FPGA与ASIC:它们之间的区别以及使用哪一种?的更多相关文章
- FPGA与CPLD的概念及其区别
一.FPGA与CPLD的基本概念 1.CPLD CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/ ...
- 深度学习硬件:CPU、GPU、FPGA、ASIC
人工智能包括三个要素:算法,计算和数据.人工智能算法目前最主流的是深度学习.计算所对应的硬件平台有:CPU.GPU.FPGA.ASIC.由于移动互联网的到来,用户每天产生大量的数据被入口应用收集:搜索 ...
- select、poll、epoll之间的区别总结
select.poll.epoll之间的区别总结 05/05. 2014 select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪 ...
- 你真的会玩SQL吗?EXISTS和IN之间的区别
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
@property (nonatomic, assign) NSString *title; 什么是assign,copy,retain之间的区别? assign: 简单赋值,不更改索引计数(Refe ...
- javascrip中parentNode和offsetParent之间的区别
首先是 parentNode 属性,这个属性好理解,就是在 DOM 层次结构定义的上下级关系,如果元素A包含元素B,那么元素B就可以通过 parentElement 属性来获取元素A. 要明白 off ...
- 面试问题5:const 与 define 宏定义之间的区别
问题描述:const 与 define 宏定义之间的区别 (1) 编译器处理方式不同 define宏是在预处理阶段展开: const常量是编译运行阶段使用: (2) 类型和安全检查不同 ...
- 关于背景图相对父容器垂直居中问题 —— vertical-align 和 line-height 之间的区别
html css <div class="register-wrapper"> <div class="register"> &l ...
随机推荐
- hdu4544 优先队列(小贪心)
题意: 湫湫系列故事--消灭兔子 Time Limit: ...
- ASLR 的关闭与开启(适用于 Windows7 及更高版本)
ASLR 是一种针对缓冲区溢出的安全保护技术,通过对堆.栈.共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术 有的时候 ...
- c/c++ 指针函数 和 函数指针
指针函数:返回指针类型的函数,定义方法如下: 类型标识符 *函数名(参数列表) 函数指针:指向函数入口地址的指针,定义方法如下: 类型标识符 (*指针名称)(形参列表) 下面我们通过一段代码加深我们的 ...
- SpringBoot JPA + 分页 + 单元测试SpringBoot JPA条件查询
application.properties 新增数据库链接必须的参数 spring.jpa.properties.hibernate.hbm2ddl.auto=update 表示会自动更新表结构,所 ...
- HDU - 1789 Doing Homework again(贪心) ~~~学了一波sort对结构体排序
题目中因为天数和分数是对应的,所以我们使用一个结构体来存分数和截止如期. 一开始做这道题的时候,很自然的就想到对天数排序,然后天数一样的分数从大到小排序,最后WA了之后才发现没有做到"舍小取 ...
- Codeforces Round #712 (Div. 2)
A. Déjà Vu 题意:就是问能否加上字母a,使得字符串不中心对称 思路:只有一种情况不能加入,就是全部是a,剩下的都可以满足,找a的位置就找哪个字母不是a,然后让它的对称位置是新加的这个a 代码 ...
- 常用的 TCP KeepAlive 参数
转自:http://dola.xinfan.org/?p=359 我们知道 TCP 协议有检测连接状态的机制,当连接不活跃的时候,连接双方会通过一定的算法检测连接是否正常.这个机制就是 TCP 的 K ...
- @Aspect 注解使用详解
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点, ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署
之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...
- 探索专有领域的端到端ASR解决之道
摘要:本文从<Shallow-Fusion End-to-End Contextual Biasing>入手,探索解决专有领域的端到端ASR. 本文分享自华为云社区<语境偏移如何解决 ...