FPGA之旅

以FPGA为主导,分享一些FPGA知识,同时还会介绍51,32,arm linux编程语言,Qt等其他知识。

FPGA和ASIC有何区别

0
阅读(578)

1、FPGA——现场可编程门阵列

FPGA(Field Programmable Gate Array),即现场可编程门阵列,是一种硬件可重构的体系结构。它是在可编程阵列逻辑 PAL(Programmable Array Logic)、门阵列逻辑 GAL(Gate Array Logic)、可编程逻辑器件 PLD(Programmable Logic Device)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。


FPGA运用硬件描述语言(Verilog或VHDL)描述逻辑电路,可以利用逻辑综合和布局、布线工具软件,快速地烧录至FPGA上进行测试。人们可以根据需要,通过可编辑的连接,把FPGA内部的逻辑块连接起来,通过配置它的可编程架构来实现任意需要的数字功能组合。FPGA由Xilinx,Alter等器件厂家提供,设计人员只需要根据需求选择相应的器件,然后设计逻辑电路,并下载到FPGA器件中去,实现需求的电路功能,随时可以修改电路功能。


它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本。FPGA特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以很容易的由ASIC实现,因此开发风险也大为降低。


FPGA的特点:


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

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

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

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

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

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


2、ASIC——专用集成电路

ASIC(Application Specific Integrated Circuits),即专用集成电路,是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求,品种多、批量少,要求设计和生产周期短,它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,与通用集成电路相比具有体积更小、重量更轻、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。


ASIC是定制的,具体分为全定制和半定制。全定制设计可以实现最小面积,最佳布线布局、最优功耗速度积,得到最好的电特性。特点:精工细作,设计要求高、周期长,设计成本昂贵。半定制设计方法又分成基于标准单元的设计方法CBIC和基于门阵列的设计方法。半定制主要适合于开发周期短,低开发成本、投资、风险小的小批量数字电路设计。


ASIC的特点:


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

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



 3、两者的设计流程

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


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


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


4、ASIC和FPGA之间的比较

目前用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特点。


用途:

FPGA主要用于要求快速迭代或者小批量产品,或者作为ASIC的算法验证加速。


ASIC用于设计规模大,复杂度比较高的芯片,或者是成熟度高,产量比较大的产品。


成本:

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


功耗:

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


速度:

FPGA内部是基于通用的结构,根据RTL设计选择内部布局布线,FPGA结构上的通用性必然导致冗余。


ASIC是根据设计需求,最优化cell逻辑资源,没有结构上的限制,并且做到最优布局走线,降低走线延迟和CELL延时。


相同的工艺和设计,在FPGA上的速度应该比ASIC跑得慢。


面积:

定制化的电路设计和工艺使用ASIC面积小于FPGA。FPGA要规模大得多才能实现ASIC相同的功能,主频还只有几分之一。因此,FPGA相对于ASIC来说还是大很多的。


其他方面:

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成为主流,两者的边界也就不辣么明显了。


原文链接:https://mp.weixin.qq.com/s/3gEHGMWqva-9BHT6zHej8w

微信截图_20220708161426.png

电子技术应用专栏作家  FPGA之旅