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 ...
随机推荐
- Android进程so注入Hook java方法
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/53769331 Andorid的Hook方式比较多,现在来学习下,基于Android ...
- POJ1988(带权并查集,搬砖块)
题意: 可以这样理解,有n快方形积木,一开始都是单独的放到哪,然后有两种操作 1 M a b 把a所在的那一堆落到b所在那一堆的上面(一开始自己是一堆) 2 C a 问a下面有多少个积木 ...
- CVE-2013-0077:Microsoft DirectShow quartz.dll m2p 文件堆溢出漏洞简单分析
0x01 前言 2012 年 10 月 5 日,exploit-db 漏洞公布站点上发布了 QQplayer.exe 3.7.892 m2p quartz.dll Heap Pointer OverW ...
- Python数模笔记-Sklearn(1) 介绍
1.SKlearn 是什么 Sklearn(全称 SciKit-Learn),是基于 Python 语言的机器学习工具包. Sklearn 主要用Python编写,建立在 Numpy.Scipy.Pa ...
- python 读写 HDFS
pandas dataframe写入hdfs csv文件的两种方式: 1. from hdfs.client import Client cleint.write(hdfs_url, df.to_cs ...
- Java安全之Fastjson反序列化漏洞分析
Java安全之Fastjson反序列化漏洞分析 首发:先知论坛 0x00 前言 在前面的RMI和JNDI注入学习里面为本次的Fastjson打了一个比较好的基础.利于后面的漏洞分析. 0x01 Fas ...
- Python自动扫描出微信不是好友名单
前言 最近找几个老友准备聊天发现几个已经被删除好友名单,做为潜水党多年的我已经不知道成为多少人的黑名单,但是好友列表却依然有不是好友的名单,面对庞大的好友数量想要清除谈何容易.虽然可以发消息给所有人, ...
- PSP初体验:求交点
项目 内容 课程:北航2020春软件工程 博客园班级博客 作业:完成一个平面图形求交点的程序,体验PSP的过程 个人项目作业 我在这个课程的目标是 体验软件开发的全流程 这个作业在哪个具体方面帮助我实 ...
- [物联网] 电气 & 工控
原理 一次回路和二次回路 一次回路:强电部分(380伏---22万伏),连接发电机.电动机.变压器.电网线路.电网开关.电网避雷器等等 二次回路:弱电部分,指的是控制线路.保护线路.测量线路.计量线路 ...
- 使用find命令查找大文件
使用find命令查找大文件 find命令是Linux系统管理员工具库中最强大的工具之一.它允许您根据不同的标准(包括文件大小)搜索文件和目录. 例如,如果在当前工作目录中要搜索大小超过100MB的文件 ...