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:

·       What is FPGA?

·       What is ASIC?

·       FPGA vs ASIC comparison summary

·       FPGA vs ASIC visual comparison

·       FPGA vs ASIC Cost Analysis

·       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:它们之间的区别以及使用哪一种?的更多相关文章

  1. FPGA与CPLD的概念及其区别

    一.FPGA与CPLD的基本概念 1.CPLD CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/ ...

  2. 深度学习硬件:CPU、GPU、FPGA、ASIC

    人工智能包括三个要素:算法,计算和数据.人工智能算法目前最主流的是深度学习.计算所对应的硬件平台有:CPU.GPU.FPGA.ASIC.由于移动互联网的到来,用户每天产生大量的数据被入口应用收集:搜索 ...

  3. select、poll、epoll之间的区别总结

    select.poll.epoll之间的区别总结 05/05. 2014 select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪 ...

  4. 你真的会玩SQL吗?EXISTS和IN之间的区别

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  5. [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别

    要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...

  6. iOS中assign,copy,retain之间的区别以及weak和strong的区别

    @property (nonatomic, assign) NSString *title; 什么是assign,copy,retain之间的区别? assign: 简单赋值,不更改索引计数(Refe ...

  7. javascrip中parentNode和offsetParent之间的区别

    首先是 parentNode 属性,这个属性好理解,就是在 DOM 层次结构定义的上下级关系,如果元素A包含元素B,那么元素B就可以通过 parentElement 属性来获取元素A. 要明白 off ...

  8. 面试问题5:const 与 define 宏定义之间的区别

    问题描述:const 与 define 宏定义之间的区别 (1) 编译器处理方式不同     define宏是在预处理阶段展开:     const常量是编译运行阶段使用: (2) 类型和安全检查不同 ...

  9. 关于背景图相对父容器垂直居中问题 —— vertical-align 和 line-height 之间的区别

       html css <div class="register-wrapper"> <div class="register"> &l ...

随机推荐

  1. hdu4560 不错的建图,二分最大流

    题意: 我是歌手 Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...

  2. Java中浮点数的坑

    基本数据类型 浮点数存在误差 浮点数有一个需要特别注意的点就是浮点数是有误差的,比如以下这段代码你觉得输出的什么结果: public class Demo { public static void m ...

  3. 软负载Nginx和硬负载F5的优缺点对比

    对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器.​ a.软件负载均衡解决方案 在一台服务器的操作系统上,安装一个附加软件 ...

  4. 中间件系列一 RabbitMQ之安装和Hello World Demo

    https://blog.csdn.net/hry2015/article/details/79016854 1. 概述 RabbitMQ是一个由erlang开发的AMQP(Advanced Mess ...

  5. python-cmdb资产管理项目4-资产入库处理以及资产变更记录处理

    一 资产入库处理 1.1 连接数据库 在192.168.100.101安装数据库,并给总控机授权可以操作,并创建一个autoserver的数据库,密码123456 settiing.py 配置数据库连 ...

  6. linux系统的负载详解

    系统的平均负载 如何理解平均负载 ​ 单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数. 平均负载多少合理 核心数 平均负载 含义 4 2 有50%的cpu是空闲状态,见 ...

  7. 2.1PyCharm 的初始设置

    PyCharm 的初始设置(知道) 目标 恢复 PyCharm 的初始设置 第一次启动 PyCharm 新建一个 Python 项目 设置 PyCharm 的字体显示 PyCharm 的升级以及其他 ...

  8. fcntl详解

    功能描述:根据文件描述词来操作文件的特性. #include <unistd.h>#include <fcntl.h> int fcntl(int fd, int cmd);  ...

  9. Centos6.5 修改主机名(hostname)

    centos6需要修改两处:一处是/etc/sysconfig/network,另一处是/etc/hosts,只修改任一处会导致系统启动异常.首先切换到root用户. /etc/sysconfig/n ...

  10. 串口1配合DMA接收不定长数据(空闲中断+DMA接收)

    1.空闲中断和别的接收完成(一个字节)中断,发送完成(发送寄存器控)中断的一样是串口中断: 2.空闲中断是接收到一个数据以后,接收停顿超过一字节时间  认为桢收完,总线空闲中断是在检测到在接收数据后, ...