FPGA与ASIC有什么差异?二者该如何选用?

news2025/7/23 5:43:02

前言

        对于一个数字电路的新手来说,这可能是会经常遇到的一个问题:FPGA和ASIC之间的区别是什么?

        接下来本文将尝试讲解 “什么是FPGA?” “什么是ASIC?”,然后讲述一些关于FPGA和ASIC的问题,例如它们之间的异同。我们将总结二者的优点和缺点,以便您能够根据应用需求来做出一个明智的选择。

什么是FPGA?

        FPGA是指现场可编程门阵列(Field Programmable Gate Array)。它是一个可以现场编程的、并按照预定设计意图来工作的集成电路。这意味着它可以既作为一个微处理器工作,也可以作为一个加密单元工作,还可以作为一张显卡来工作,它甚至可以同时具备这三者的功能。顾名思义,FPGA是可编程的,因此我们可以对作为以微处理器模式工作的FPGA重新编程,使其在工作现场(不需要去半导体工厂)就可以在功能上变成一张显卡。在FPGA上运行的设计通常使用诸如VHDL和Verilog等硬件描述语言(HDL)构造。

        FPGA由成千上万个可配置逻辑块(Configurable Logic Blocks ,CLB)组成,这些CLB嵌在可编程互联结构中。CLB主要由查找表(Look-Up Table,LUT)、多路复用器(Multiplexer)和触发器(Flip-Flop)构成。它们可以用来实现复杂的逻辑功能。除了CLB和布线(routing interconnect)之外,许多类型的FPGA还包括某些专用的硬件资源,例如BRAM、DSP、外部存储控制器(External Memory Controllers)、PLL、吉比特收发器(Gigabit Transceiver)等。最近的一个趋势是在同一个FPGA中嵌入一个处理器硬核(例如Xilinx Zynq系列中的ARM Cortex A9)。这样处理器可以处理普通的、非关键的任务,而FPGA则可以实现高硬件加速(high-speed acceleration),仅仅用处理器的话,这是无法做到的。这些专用硬核在与ASIC的竞争中至关重要。

什么是ASIC?

        ASIC是指应用专用集成电路(Application Specific Integrated Circuit,ASIC)。顾名思义,ASIC是专用的。它们是专为某个(些)目的而设计的,在其整个生命周期内,它们的功能是固定不变的。比如你手机里的CPU也是ASIC,在它的整个生命周期内,它都是作为一个CPU来工作的,它的逻辑功能无法被改变,因为它的数字电路是由恒定连接的门电路和触发器所构成的。ASIC的逻辑功能使用如Viilog或VHDL等硬件描述语言来实现。

        与FPGA不同的是,ASIC中所生成的电路被直接固定了,而FPGA中的电路则是通过连接多个CLB来灵活实现的。FPGA类似于用乐高积木来拼一个城堡,而ASIC则像是用钢筋混凝土来浇筑一个城堡。当你需要的时候,你可以把FPGA城堡拆了,再重新用这些乐高积木拼一辆汽车;但你却无法把钢筋混凝土重新浇筑成一辆汽车了。

FPGA与ASIC的比较

序号FPGAASIC
1可重构电路。FPGA可通过不同的设计重新配置。甚至在芯片的某一部分处于工作状态时,也能对另一部分进行重配置(部分重配置)。这一功能在数据中心的加速计算中得到了广泛应用。固定电路。一旦设计被转换成实体电路,就无法改变了。该电路在其生命周期内将一直处于同一功能模式.
2设计通常使用硬件描述语言(hdl)生成,如VHDL或Verilog。与FPGA一致。
3低门槛。成本、学习曲线、与半导体工厂联系等方面的门槛很高。
4不适合大规模生产适合大规模生产
5功耗高功耗低
6与类似工艺节点的ASIC相比,工作频率有限。布线路由逻辑和可配置逻辑会吞噬时序裕量。利用相同的工艺节点制作的ASIC,其工作频率远高于FPGA。
7无法进行模拟设计。虽然FPGA可能包含某些模拟电路的硬核,如PLL和ADC等,但它们并不能灵活地来创建如射频收发器等模拟电路。可以有完整的模拟电路,例如Wi-Fi收发器等。这是FPGA所不具备的优势。
8FPGA非常适合雷达、手机基站等应用,目前的设计可能需要升级,以便使用更好的算法或更好的设计。在这些应用中,FPGA高昂的成本并不是决定性因素,它的可编程特性才是决定因素。ASIC不适合在可能需要经常更新设计的应用领域。
9最好用于原型验证和验证设计。很多ASIC都使用FPGA来做原型验证。一些大的处理器厂商也在使用FPGA来验证他们的片上芯片(SOC)。不建议使用ASIC来做原型设计,除非它是绝对有效的。一旦流片后,几乎就没有办法来修复设计错误了(流片失败成本巨大)。
10FPGA设计师通常不需要管后端设计。所有的事情都由综合工具来处理,这些工具会确保设计如RTL代码所描述的那样,并确保其满足时序要求。因此,设计师可以专注于完成RTL的设计。从RTL向下到复位树、时钟树、物理布局和布线、工艺节点、制造约束(DFM)、测试约束(DFT)等,ASIC设计师都需要关注。一般而言,上述每个领域都由不同的工程师负责。

     

FPGA与ASIC的成本分析

        ASIC和FPGA的成本分析图如上。成本和单位值在图表中被省略了,因为它们与所用的工艺技术和时间有所不同。ASIC的NRE成本高达数百万美元,而实际的每一个die成本可能只有几美分。FPGA没有NRE成本,成本的大部分来源于软件(知识产权)。因为NRE成本的存在,ASIC的总成本在一开始就非常高,但其成本斜率较低。也就是说,小规模的ASIC的成本很高,但在大规模的ASIC中,每个批量的成本将变得非常低。

        以下是ASIC成本构成主要部分:

  1. ASIC 的EDA工具和培训
  2. 设计费用
  3. DFT费用
  4. 仿真费用
  5. 掩膜成本
  6. 晶圆成本
  7. 晶圆加工
  8. Die Utilization
  9. 生产和制造损失
  10. 封装

        与ASIC相比,FPGA的成本仅限于购买现成的IC。

如何在FPGA或ASIC之间进行选择

        你是一个想学习更多关于数字电路和硬件设计内容的新手?那么FPGA和仿真软件最适合您。你在设计自己的产品吗?酷!请问问自己目标市场是什么,预期的价格是多少,功率预算是多少,速度要求等问题。能用FPGA实现吗?如果是的话,那就继续把你的想法实现。如果不能,那你可能只好用ASIC了。在大多数情况下,至少可以使用FPGA制作原型并验证您的想法。当你完成原型的时候,你自己就会知道你是否需要使用ASIC。当然,如果您的设计完全是突破性的,并且非常特殊,有着非常具体的要求(在成本、功率、速度等方面),那么您除了使用ASIC外别无选择。FPGA可以满足大多数的应用情况,特别是当您需要可以重新配置电路时。

参考

        《FPGA Vs ASIC: Differences Between Them And Which One To Use?》


  • 📣您有任何问题,都可以在评论区和我交流📃!
  • 📣本文由 孤独的单刀 原创,首发于CSDN平台🐵,博客主页:wuzhikai.blog.csdn.net
  • 📣您的支持是我持续创作的最大动力!如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1157037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【【FIFO to multiplier to RAM的 verilog 代码 和 testbnench 】】

FIFO to multiplier to RAM的 verilog 代码 和 testbnench 只完成了单个数据的传输 大数据需要修改 tb 或者基本连线 FIFO.v //synchronous fifo module FIFO_syn #(parameter WIDTH 16, // the fifo wideparameter DEPTH 1024, …

【MATLAB】全网唯一的7种信号分解+ARIMA联合的时序预测算法全家桶

有意向获取代码,请转文末观看代码获取方式~ 大家吃一顿火锅的价格便可以拥有7种信号分解ARIMA组合的时序预测算法,绝对不亏,知识付费是现今时代的趋势,而且都是我精心制作的教程,有问题可随时反馈~也可单独获取某一算…

【三方登录-Apple】iOS 苹果授权登录(sign in with Apple)之开发者配置一

记录一下sign in with Apple的开发者配置 前言 关于使用 Apple 登录 使用“通过 Apple 登录”可让用户设置帐户并使用其Apple ID登录您的应用程序和关联网站。首先使用“使用 Apple 登录”功能启用应用程序的App ID 。 如果您是首次启用应用程序 ID 或为新应用程序启用应用程序…

加速计算卡设计方案:389-基于KU5P的双路100G光纤网络加速计算卡

基于KU5P的双路100G光纤网络加速计算卡 一、板卡概述 基于Xilinx UltraScale16 nm KU5P芯片方案基础上研发的一款双口100 G FPGA光纤以太网PCI-Express v3.0 x8智能加速计算卡,该智能卡拥有高吞吐量、低延时的网络处理能力以及辅助CPU进行网络功能卸载的能力…

SpringBoot配置文件yml文件基础知识

yaml简介 YAML(YAML Aint Markup Language),一种数据序列化格式 优点:容易阅读容易与脚本语言交互以数据为核心,重数据轻格式 YAML文件扩展名.yml(主流).yamlyaml语法规则 大小写敏感 属性层级…

10.1 am62x平台怎么从ospi启动uboot

本文主要内容: 1 背景(硬件原理图与分区信息) 2 AM62x平台bootloader组成 3 设置SK-AM62B启动方式 4 烧录镜像到OSPI分区 5 解决Message not acknowledgedAuthentication failed!问题 1 背景 Ti的SK-AM62B评估板,通过OSPI接口,连接了一个Nor Flash:S28HS512TGABHM01…

聊天室系统源码 匿名聊天系统源码 在线聊天室系统源码 可发语音 图片 适用PC+WAP

PHP匿名在线聊天室系统源码,适用于PC和WAP端,支持语音和图片传输 通过修改数据库config\settings.php,可以将其用于搭建客户聊天专用的网站 要搭建一个专门用于与客户聊天的网站,您可以使用这个PHP匿名在线聊天室系统源码 该源码…

一文带你速通Sentinel限流规则(流控)解读

目录 前置知识速补 基本介绍 流控模式 直接模式 关联模式 链路模式 流控效果 直接失败 Warm Up(预热) 排队等待 前置知识速补 QPS每秒查询率(Query Per Second):每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多…

基于阿基米德优化算法的无人机航迹规划-附代码

基于阿基米德优化算法的无人机航迹规划 文章目录 基于阿基米德优化算法的无人机航迹规划1.阿基米德优化搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用阿基米德优化算法来优化无…

综合实验案例配置

目录 核心交换机与出口路由器的连接 网络出口的配置 策略路由的配置 1.教学楼的流量走电信出口,宿舍楼流量走联通出口(基于源) 2.访问带内心的服务器走电信出口,访问联通服务器走联通出口 案例图如下: acsw的配置…

二叉树问题——平衡二叉树问题

摘要 本博文主要介绍平衡二叉树问题包括,二叉树的高度差,是否为平衡二叉树,有序链表转二叉搜索树,将二叉搜索树变平衡等。 一、平衡二叉树详解 1.1 判断二叉树是否平衡 /*** Definition for a binary tree node.* public class…

一篇博客读懂顺序表 —— Sequence-List

目录 一、顺序表的初始定义 1.1新建头文件和源文件 1.2 SeqList.h 中的准备工作 二、顺序表的初始化与销毁 三、首尾插入元素 四、首尾删除元素 五、中间插入元素 六、中间删除元素 七、查找指定元素下标 八、源代码 一、顺序表的初始定义 1.1新建头文件和源文件 当我…

zip2john 爆破zip工具

1.使用zip2john工具输出zip文件hash Zip2john 1.zip > 1.txt 2.使用john工具进行zip文件爆破 John 1.txt 如图所示: 该zip密码为19950101

面向Three.js开发者的3D自动纹理化开发包

DreamTexture.js 是面向 three.js 开发者的 3D 模型纹理自动生成与设置开发包,可以为 webGL 应用增加 3D 模型的快速自动纹理化能力。 图一为原始模型, 图二图三为贴图后的模型。提示词: city, Realistic , cinematic , Front view ,Game scene graph 1、…

鸿蒙实现类似于安卓的Handler,鸿蒙的延迟和异步操作

在安卓开发的时候我们想要去延迟处理一些事情可以通过 Handler 解决,比如一秒后处理某些事情: new Handler().postDelayed(new Runnable() {Overridepublic void run() {} },1000);鸿蒙也提供了类似的方法,如下: getUITaskDispatcher().del…

C#,数值计算——积分方程与逆理论Fred2的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public abstract class Fred2 { public readonly double a; public readonly double b; public readonly int n; public double[] t; public double[] f; …

ABBYY16最新pdf文档转换图片、Word、Excel和PPT工具

欢迎来到 ABBYY 软件下载中心,FineReader PDF使专业人员能够最大程度地提高数字工作场所的效率。帮助信息工作者轻松地在同一工作流程中对各种文档进行数字化、检索、编辑、加密、共享和协作。 可以对pdf文档进行各种格式转换,任意转换为图片、Word、Ex…

代码版本控制工具GitLab :从安装到使用一步到位

一、GitLab 是什么? 如果听说过 Git 或者 GitHub,那么 GitLab 你一定也听说过。GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。简单理解:GitLab 类似私人版 …

Linux高性能服务器编程——ch12笔记

第12章 高性能I/O框架库Libevent 12.1 I/O框架库概述 基于Reactor模式的I/O框架库包含: 1)句柄:与事件源绑定(I/O事件、信号和定时事件)。当内核检测到就绪事件时,通过句柄来通知应用程序这一事件。I/O事件…

多线程---线程安全的集合类

文章目录 多线程环境使用数组synchronizedListCopyOnWriteArrayList 多线程环境使用队列多线程环境使用哈希表HashTableConcurrentHashMapHashTable VS HashMap VS ConcurrentHashMap 我们原先学习过的集合类,大部分都是线程不安全的。只有Vector、Stack、HashTable…