ASIC是一种专用集成电路,与FPGA用途多种多样不同,ASIC只做自己真正擅长的那件事。FPGA的灵活性虽然不错,但选择FPGA时也需要考虑在多种因素中权衡,前文已经在成本、易用性、功耗、速度和灵活性方面将FPGA与微控制器进行了比较,接下来沿着同样的路线来比较FPGA和ASIC。
当批量不多时,ASIC非常昂贵,它涉及非经常性费用(NRE):首先需要先向半导体代工厂(或晶圆厂)支付一大笔钱,才能得到第一块ASIC样片,ASIC设计中的NRE达高数百万美元。是否选择设计ASIC在很大程度上取决于需要生产的芯片数量。如果产品数量很低,只有几万个,便不太可能收回ASIC的前期成本;如果需要数百万个芯片,那么ASIC成为有吸引力的选择,因为第一个样片之后的每颗芯片都非常便宜(通常低于1美元)。单片FPGA的成本往往超过10美元,大批量使用FPGA在经济上并不划算。一般来说,批量较小时,FPGA价格胜过ASIC,但在批量较大时,二者的价格不具备可比性。
FPGA胜过ASIC的优势是易用性。设计专用集成电路的过程非常复杂,在晶圆厂制造芯片之前,需要确保设计没有漏洞,否则便会浪费NRE。另一方面,大多数FPGA可以在现场修复(是现场可编程的),即使将产品发送给客户后发现了bug,也可以通过更新代码来解决问题,这是ASIC无法实现的。为此,必须花费大量的工程时间和精力,确保ASIC设计尽可能无缺陷的之后,再将ASIC制造出来,这一过程称为验证工程,将在第5章中更详细地探讨。
ASIC的好处是它可以针对低功耗进行优化。根据特定应用对ASIC进行精细的调整,使得它正好具备所需的一切特性。同时,FPGA有大量的走线和互连,这给了它很大的灵活性的同时也意味着它需要消耗更多能量。ASIC相对于FPGA的另一个优点是,可以通过优化在晶体管级实现低功耗的制造技术。举个现实生活中的例子,比特币刚出现的时候,人们用家用电脑(CPU)来挖币,每开采一个比特币,都会消耗大量的能量。人们意识到可以通过FPGA编程来挖币,比CPU消耗更少的能量。由于电力比较昂贵,所以用FPGA挖币更有利可图。后来,人们意识到ASIC比FPGA挖币更快捷,而且消耗更少的电力。于是,创建一个专用于比特币挖矿的ASIC变为非常值得,较低的功耗能显著节约成本。今天,比特币几乎完全是用ASIC来开采。
涉及速度时,FPGA和ASIC都有很大的带宽,可以传输大量的数据,同时二者也都擅长数学运算,特别是乘法和加法,而且都可以并行执行数学运算。ASIC还有一个小小的优势:因为它是专用集成电路,所以会比FPGA运行得更快一些。
此外,FPGA比ASIC有更大的灵活性,当项目目标尚未明确定义时,在设计中拥有灵活性非常重要。与ASIC不同,FPGA可以一遍又一遍地再编程,添加或删除部分特性和功能。此外,ASIC的设计、制作和验证需要很长时间,而使用FPGA却可以立即动手,进度会更快。
一般来说,当体量非常大时,ASIC在成本上胜过FPGA,但当体量很小时,ASIC就无法胜过FPGA,虽然ASIC在功耗上击败了FPGA,在速度上略占优势,但在灵活性和易用性上却输给了FPGA。然而,在现实中,ASIC和FPGA往往是并行不悖的。当一个公司想要设计一个ASIC时,它通常会先用FPGA设计出一个原型,然后生产ASIC。这种方法允许工程师在花费数百万美元购买定制芯片之前更快地使用硬件并获得信心。工程师使用FPGA原型来解决Verilog或VHDL代码中的错误,并在成本低廉且简单的情况下修复问题,代码并非一次性代码,可以重复使用,可以用在FPGA上创建的Verilog或VHDL代码来创建ASIC。
扫码有惊喜: