这几天,对一些常见又不是很懂的一些专有名词进行了查阅了解,包括ASIC,FPGA,嵌入式系统和单片机等,了解后发现ASIC和FPGA比较类似,可以放在一起进行比较,所以今天就进行ASIC和FPGA的区分。
首先是定义上,什么是ASIC?ASIC是一种专用芯片,与传统的通用芯片有一定的差异,是为了某种特定的需求而专门定制的芯片。也就是说本质上是一种芯片。那么FPGA呢?与ASIC相类似FPGA又称为现场可编程逻辑门阵列,是PAL(可编程阵列逻辑),GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物(百度的定义)。其实与ASIC一样,它也属于AI芯片,但是它作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
在看完以上的定义后虽然不是很懂,但是起码对二者大致的区别应该八九不离十了,在我的理解中,ASIC可以理解为特殊芯片,属于专门定制而成,而FPGA则相对来说具备一定的自由度,属于通用芯片
在结构方面ASIC芯片相对复杂,所以就先对FPGA进行结构了解。
FPGA基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。其中还有很多专有名词如:可配置逻辑块,数字时钟管理模块,嵌入式块RAM等就下次再来详细了解学习,今天主要探讨ASIC与FPGA的区别就不再深入。
在优缺方面
ASIC芯片的优点在于体积小,功耗低,计算性能高,而且芯片出货量越大,成本越低。
不过它的缺点也是很明显的即由于它的定制性质,它的算法是固定的,就一旦生产出来一种芯片只能对应一种特定的算法,一旦算法变化就可能无法使用,另外这种特殊性就使得它的定制成本十分昂贵,一般人往往很难承受起高质量的ASIC芯片定制成本,而且由于它的昂贵成本就要求它在生产前即设计阶段必须小心谨慎,不能出现细微错误,因此ASIC的设计周期也会相应变长,往往需要1~2年时间设计。
相对来说FPGA的优势就很明显,即FPGA允许无限次的编程,可通过使用框图或者Verilog HDL来设计,从简单的门电路到FIR或者FFT电路,不用太担心设计时出错,其次这也使得它的价格相对定制的ASIC芯片来说价格上更具优势,初学者往往能够承担得起,有利于初学者进行学习,另外还具备由逻辑单元,RAM,乘法器等硬件资源组成,通过将这些硬件资源合理组织,可实现乘法器,寄存器,地址发生器等硬件电路(百度解释)。
当然FPGA也有一定的局限性,它的所有功能均依靠硬件实现,无法实现分支条件跳转等操作以及FPGA只能实现定点运算(参考网址:定点计算_百度百科 (baidu.com))。
FPGA依靠硬件来实现所有的功能,速度上可以和专用芯片相比,但设计的灵活度与通用处理器相比有很大的差距。