FPGA与ASIC比较

转自http://www.openhw.org/module/forum/thread-658598-1-1.html

身份证

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC) 领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本。

ASIC(Application Specific Integrated Circuit),即专用集成电路,是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求, ASIC分为全定制和半定制。亮点在于专用,量身定制所以执行速度较快。一句话总结就是,市场上买不到的芯片。水果的A系列处理器就是典型的ASIC。

<ignore_js_op>

FPGA是可复用的

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB、输出输入模块IOB和内部连线三个部分。 现场可编程门阵列(FPGA)是可编程器件。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能。

FPGA的特点:

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。 理论上,FPGA允许无限次的编程。

FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。

FPGA内部有丰富的触发器和I/O引脚。

快速成品,可以被修改来改正程序中的错误和更便宜的造价。

用户不需要介入芯片的布局布线和工艺问题,而且可以随时改变其逻辑功能,使用灵活。

图 FPGA基本架构

ASIC是为VIP服务的

ASIC是定制的,具体分为全定制和半定制。

全定制设计可以实现最小面积,最佳布线布局、最优功耗速度积,得到最好的电特性。特点:精工细作,设计要求高、周期长,设计成本昂贵。

半定制设计方法又分成基于标准单元的设计方法CBIC和基于门阵列的设计方法。半定制主要适合于开发周期短,低开发成本、投资、风险小的小批量数字电路设计。

ASIC的特点是:

面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。

ASIC需要较长的开发周期,风险较大,一旦有问题,成片全部作废,所以小公司已经玩不起了。

<ignore_js_op>

图 ASIC基本架构

两者的设计流程

<ignore_js_op>

图 FPGA和ASIC设计流程

完整的FPGA设计流程包括功能描述、电路设计与输入、功能仿真、综合优化、综合后仿真、实现与布局布线、时序仿真、板级仿真与验证、调试与加载配置。

ASIC的设计流程(数字芯片)包括:功能描述、模块划分、模块编码输入、模块级仿真验证、系统集成和系统仿真验证、综合、STA(静态时序分析)、形式验证。

插一句,在ASIC 设计过程中,往往要用到FPGA 进行原型验证。FPGA 验证是进行ASIC 设计的重要环节,其后,还需要引入ASIC 版本源码,插入IO PAD,DFT,功耗估计和进行其它后端流程。完成FPGA 验证可以说就完成了ASIC 整套流程的50~80%。

从设计成本来考虑,小批量上FPGA占优,大批量时,ASIC占优。

<ignore_js_op>

FPGA本身就是一个芯片,只是你可以通过编程的方式修改内部逻辑连接和配置实现自己想要的功能。实现ASIC,就如从一张白纸开始,你得有代码,之后综合,之后布局,布线,得到GDSII后去流片。

比速度

相同的工艺和设计,在FPGA上的速度应该比ASIC跑得慢。因为FPGA内部是基于通用的结构,也就是LUT(look up table),它可以实现加法器,组合逻辑等等,而ASIC,一般加法器就是加法器,而比较器就是比较器,FPGA结构上的通用性必然导致冗余;另外,作为FPGA基本单元是LUT(LUT组成SLICE,SLICE组成CLB--这是xilinx的结构),为此大的设计假如一个LUT实现不了,就得用两个LUT,一个SLICE实现不了就要用CLB,不同结构处于特定的位置,信号之间的互联,导致的wire delay是不可忽略的一部分。而对于ASIC来说没有结构上的限制,而且对于特定的实际可以在空间上靠得很近,相对之下wire delay和cell delay都应该比FPGA小。当然LUT中也有DFF,作为高速的设计一般都会在一个简单的组合逻辑操作之后打一拍,再做下一步的处理。

比个头

完全相同的结构的话,FPGA被ASIC远远踢飞。FPGA要规模大得多才能实现ASIC相同的功能,主频还只有几分之一。因此,FPGA相对于ASIC来说还是大很多的。

功耗方面

在相同工艺条件下,FPGA要大于ASIC。FPGA,尤其是基于占用大量硅面积的、每个单元六个晶体管的静态存储器(SRAM)的查寻表(LUT)和配置元件技术的FPGA,其功耗要比对等的ASIC大得多。

比花的银子

FPGA贵在单片,开发工具和风险基本不存在。对于ASIC贵在流片的费用和开发工具,NRE费用随着工艺的提高变相当贵,除非你的芯片一次成功可以量产,否则单片费用将其贵无比!

其他方面

ASIC用于大型项目,而对于需要快速投放市场且支持远程升级的小型项目,FPGA则更为适合。FPGA技术的主要优势仍是产品投放市场的时间较短。

在ASIC的优势方面,ASIC加电后可立即运行,就单位逻辑大小而言封装选择更多,还可包括某些模拟逻辑。与此相对比,FPGA加载配置进入存储器需要时间,因此不能立即工作。此外,FPGA的封装也较复杂。

除此之外,FPGA内部还包括接口I/O,I/O分为普通I/O和高速I/O,高速I/O支持例如高速的SERDES,用于实现XAUI,PCIE等高速接口,这些接口动辄几Gbps到10Gbps以上。此外种类多种多样的硬核IP也是各FPGA厂商差异化竞争利器,例如POWERPC、ARM等硬核IP。从而构成CPU+FPGA于一体的集可编程性和可重构的处理平台。因此,相对来所,FPGA虽然发展有二三十年的历史,其基本架构一直不变不大。

两者的定位

FPGA和ASIC产品的使用要根据产品的定位和设计需要来选用,ASIC产品适用于设计规模特别大,如CPU、DSP或多层交换芯片等,或者是应用于技术非常成熟且利润率非常低的产品,如家用电器和其它消费类电器,亦或是大量应用的通用器件如RAM、PHY等。而FPGA产品适用于设计规模适中,产品要求快速占领市场,或产品需要灵活变动的特性设计等方面的产品,如PDH、2.5G以下SDH设备和大部分的接口转换芯片等。当然具体使用那种产品来设计还要设计者充分考虑自己的产品定位来决定。

两者在互相融合

最明显的莫过于处理器中开始集成FPGA,而可编程的ASIC也开始兴起。随着SoC成为主流,两者的边界也就不辣么明显了。

最后奉上网友对FPGA比ASIC快的解释

FPGA的LUT等资源已经固定了,你用不用都在哪里,不多不少。

ASIC理论上每一个你用到的CELL或者IP等资源你都可以手动的摆放来进行优化。

FPGA的资源固定有两个劣势:

劣势一:能够利用的资源是固定的,且不成大片,横跨区域的产生逻辑,会退化时序。其实也就是你没有办法把逻辑尽可能的摆得近。逻辑摆得近可以减小线上的延迟,可以提高速度。ASIC的cell你可以全部的挤在一起(不违反DRC的前提下)。

如下图所示啦,这就是一个FPGA的资源图。

<ignore_js_op>

劣势二:你的大小是固定的。你用1个门还是用10W个门,都是这一片已经固定好了的LUT给你用。如果你的逻辑很小很小,FPGA很大,你信号从IO进来到逻辑,有可能会走比较长的距离,这个也要花时间的。极端的例子,你从上部的IO进来,你的逻辑在下部,这走线的长度感人啊。(正常的设计不会这么做的)

除此之外,FPGA的走线,你几乎是动不了的。

ASIC中你可以直接加宽金属线,比如两倍宽度走时钟线,复位线啦,之类的。金属线宽度变大,线上的延迟变小,对速度也是有帮助的。

还有asic的库一般还包含高性能cell,低功耗cell等。在关键路径,为了提高时序,你全用高性能的cell(功耗大)。一般的路径,时序比较松多用低功耗的cell(性能低)。你FPGA一旦选定了,你就只有他给你的东西,你没有选的。

ASIC还可以使用useful skew的方式来提高速度,手段会比FPGA中的多。

总的来说,就如同GPU和CPU一样。GPU可以非常快的处理图像,但是让GPU去处理其他的东西,GPU表示摊手。CPU很多的运算都能处理,也能去处理图像,只是慢而已。一旦你是冲着某个目的去的(ASIC)你为了实现这个目标,你各种没节操没下线都可以。如果你想要多方面兼顾(FPGA),你就不可能在每一个方面都做到最好,你必须trade-off。

<ignore_js_op>

2.jpg
(64.94 KB, 下载次数: 1)

原文地址:https://www.cnblogs.com/linlin00/p/9280773.html

时间: 2024-10-09 17:33:16

FPGA与ASIC比较的相关文章

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

人工智能包括三个要素:算法,计算和数据.人工智能算法目前最主流的是深度学习.计算所对应的硬件平台有:CPU.GPU.FPGA.ASIC.由于移动互联网的到来,用户每天产生大量的数据被入口应用收集:搜索.通讯.我们的QQ.微信业务,用户每天产生的图片数量都是数亿级别,如果我们把这些用户产生的数据看成矿藏的话,计算所对应的硬件平台看成挖掘机,挖掘机的挖掘效率就是各个计算硬件平台对比的标准. 最初深度学习算法的主要计算平台是 CPU,因为 CPU 通用性好,硬件框架已经很成熟,对于程序员来说非常友好.

CPLD FPGA ASIC的概念

ASIC: 目前,在集成电路界ASIC被认为是一种为专门目的而设计的集成电路.是指应特定用户要求和特定电子系统的需要而设计.制造的集成电路.ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小.功耗更低.可靠性提高.性能提高.保密性增强.成本降低等优点. ASIC分为全定制和半定制.全定制设计需要设计者完成所有电路的设计,因此需要大量人力物力,灵活性好但开发效率低下.如果设计较为理想,全定制能够比半定制的ASIC芯片运行速度更快.半定制使用库里的标准逻辑单元(S

FPGA、单片机、DSP、ASIC的区别

https://zhuanlan.zhihu.com/p/21357765 ASIC原本就是专门为某一项功能开发的专用集成芯片,比如你看摄像头里面的芯片,小小的一片,集成度很低,成本很低,可是够用了.一个山寨摄像头卖才卖30块,买一片ARM多少钱?后来ASIC发展了一些,称为半定制专用集成电路,相对来说更接近FPGA,甚至在某些地方,ASIC就是个大概念,FPGA属于ASIC之下的一部分. FPGA基本就是高端的CPLD,两者非常接近.我现在用的是ALTERA DE2开发板的CYCLONE系列F

FPGA入门1

FPGA入门知识介绍 近几年来,由于现场可编程门阵列(FPGA)的使用非常灵活,又可以无限次的编程,已受到越来越多的电子编程者的喜爱,很多朋友都想学习一些FPGA入门知识准备进行这个行业,现在关于FPGA入门知识的书籍.论坛.教程等种类繁多各式各样.下面笔者也通过搜寻一些关于FPGA入门知识的资料供大家学习和参考. FPGA入门知识首先要从FPGA的定义开始,什么是FPGA呢,有什么作用这些都是基本需要了解的东西.FPGA是可编程器件,目前以硬件描述语言(Verilog 或 VHDL)所完成的电

FPGA IN 消费电子

消费电子: 消费电子(Consumer electronics),指供日常消费者生活使用的电子产品.消费类电子产品是指用于个人和家庭与广播.电视有关的音频和视频产品,主要包括:电视机.影碟机(VCD. SVCD.DVD).录像机.摄录机.收音机.收录机.组合音响.电唱机.激光唱机(CD)等. 随着技术发展和新产品新应用的出现,数码相机.手机.PDA等产品也在成为新兴的消费类电子产品.从二十世纪九十年代后期开始,融合了计算机.信息与通信.消费类电子三大领域的信息家电开始广泛地深入家庭生活,它具有视

SOC芯片的FPGA原型验证

FPGA验证在SOC设计非常重要,一般而言,做一些RAM和FIFO的替换以及相应代码转换.具体分下面几步: 1 替换RAM,FIFO和时钟 RAM和FIFO控制器需要RAM的接口都放在了设计顶层,方便RAM做BIST.采用generate 做RAM的例化,提供代码的可读性. 2适当做一些外围接口 3 用synplify综合 对于RAM 采用stub综合,编写相应的综合约束. 4 用vivado布局布线 编写布局布线的约束文件,比如全局时钟,引脚分配等.用采用增量编译和多核编译提供开发效率.在采用

转载论文关于fir滤波器的fpga实现

摘 要 本文讨论的FIR滤波器因其具有严格的线性相位特性而得到广泛的应用.在工程实践中,往往要求信号处理具有实时性和灵活性,本论文研究FIR的FPGA解决方案正体现了电子系统的微型化和单片化. 本论文主要讨论了以下的问题: 首先,以FIR滤波器的基本理论为依据,研究适应工程实际的数字滤波器的设计方法,确定了直接型网络结构.窗函数设计法的设计方案: 然后,讨论了FPGA的原理与结构特点,总结FPGA的设计流程与设计原则,并用Verilog HDL语言根据设计方案编写出FIR滤波器程序: 接着,采用

(转)FPGA异步时序和多时钟模块

http://bbs.ednchina.com/BLOG_ARTICLE_3019907.HTM   第六章   时钟域 有一个有趣的现象,众多数字设计特别是与FPGA设计相关的教科书都特别强调整个设计最好采用唯一的时钟域.换句话说,只有一个独立的网络可以驱动一个设计中所有触发器的时钟端口.虽然这样可以简化时序分析以及减少很多与多时钟域有关的问题,但是由于FPG**外各种系统限制,只使用一个时钟常常又不现实.FPGA时常需要在两个不同时钟频率系统之间交换数据,在系统之间通过多I/O接口接收和发送

Synplify FPGA 逻辑综合

作为 Synopsys FPGA 设计解决方案的一部分,Synplify FPGA 综合软件是实现高性能.高性价比的 FPGA 设计的行业标准. 其独特的行为提取综合技术 (Behavior Extracting Synthesis Technology, BEST) 在将 RTL 代码综合成特定的 FPGA 逻辑之前,先进行高层次优化. 此方法可以对整个 FPGA 进行高度优化,提供更快运行时间并支持超大型设计. Synplify FPGA综合工具以其能对FPGA设计产生高性能和低成本而成为业