FPGA开发流程遵循ASIC开发的流程,都是集成电路方向,coding使用的编程语言和编程逻辑基本一致,绝大多数电子类硬件产品,能使用FPGA做出来,就能用ASIC做出来,通过两种方式都能实现同样的功能。

但在IC行业,这二者确实也属于两个不同的领域。有很多想要入行、转行IC的同学,都有“选FPGA还是ASIC”的问题。区分概念往往是做选择的前提,所以首先要明确二者的概念。

# 明确概念
FPGA全称是Field Programmable Gate Array,中文名叫现场可编程门阵列,但究其本质它仍是芯片的一种。
很多人不清楚FPGA到底算软件还是硬件?其实它介于软硬件之间。如果用它做接口、通信的话,它就偏向硬件;如果用它做算法、控制,那么它就偏向软件。举个例子,FPGA在数字IC领域已经被用于验证RTL代码。相对于仿真器跑仿真,FPGA的运行速度更加接近真实芯片。
ASIC全称是Application Specific Integrated Circuit,是指专用集成电路,就是针对某些特定应用需求、特定用户要求和特定电子系统的需要而开发设计的芯片。
很多人听到ASIC都会下意识和数字IC画等号,但其实不论是数字、模拟还是数模混合,任何定制的芯片都可以称之为ASIC。

# 灵活性
FPGA的灵活度高于ASIC。
众所周知芯片流片成本很高,一旦出问题就是流片失败。尤其是大规模的数字芯片,开发过程中需要验证团队花费大量的精力在RTL代码验证上。
FPGA就可以随时改变芯片的功能,哪怕已经制造出来甚至应用在了客户端,依然可以修改电路结构,这样就能很大程度上降低风险和成本。而如果设计本身并不需要太多灵活性的话,FPGA的灵活也许就是一种浪费,也会增加潜在的成本。
# 开发流程与周期
FPGA开发时间短。
一般来说对FPGA编程之后就可以直接使用,通常几个月就可以完成开发流程,不需要经过半年甚至一年以上的流片周期。
而ASIC更加复杂,尤其是全定制设计,需要大量的人力物力进行设计开发。与之相应的就是体积小、功耗低......芯片综合性能更抗打。
# 速度和性能
在两者都是相同的工艺和设计下,FPGA的性能比ASIC有所差距。
因为FPGA内部都是通用的结构,它可以根据需求的不同去实现乘法器、多路选择器等等组合逻辑。而ASIC内部都是固定的结构,乘法器就是乘法器,所以FPGA在结构上的通用性必然导致性能冗余。
# 成本对比
成本取决于数量。如果是小批量的,FPGA成本低。如果是大批量的,ASIC成本低。
在使用量小的时候,FPGA是不需要支付几百万甚至几千万的流片成本的(FPGA比较大的成本就是板子),成本也就比较低。当使用量大的时候,使用ASIC反而是更加低成本且高性能的选择。这也就是很多高校的项目都是FPGA的原因之一。
# 行业现状
业内规模最大的两家FPGA公司是Xilinx(赛灵思)和Altera(阿尔特拉)。
Altera在2015年就被英特尔收购,Altera这个名字也就很少再被提及了。作为龙头的赛灵思,也在2022年2月成功被AMD收购。不得不说,巨头也难逃被收购的命运。
从前有企业宣传FPGA是“万能芯片”,也有人说FPGA会取代ASIC。现在看,万能和取代肯定是谈不上了,不过FPGA凭借其优势也能在业内有一席之地。
# 入行难度
FPGA入行是要更容易一些的。
需要先区分你是做FPGA本身的设计,还是用FPGA进行设计。前者的门槛很高,而且处于卡脖子的状态;后者门槛相对比ASIC要低一点。
但大多数情况下我们所讨论的FPGA都属于后者:只是基于已有的FPGA芯片去做后端排列组合的工作内容,而不是设计制造新的FPGA芯片,毕竟世界上能做这件事的公司屈指可数。

来源:IC设计日记录