IC行业的范围很广,有数字、模拟不同的研究方向,也有设计、制造、封测不同的产业环节、还有FPGA、ASIC等不一样的芯片领域。
遇到过很多想要入行、转行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(阿尔特拉)。
阿尔特拉在2015年就被英特尔收购,Altera这个名字也就很少再被提及了。作为龙头的赛灵思,也在今年(2022年)2月成功被AMD收购。
从前有企业宣传FPGA是“万能芯片”,也有人说FPGA会取代ASIC。现在看,万能和取代是谈不上,但FPGA凭借其优势也能在业内有一席之地。
但不得不说巨头也难逃被收购的命运。
<>入行难度
FPGA入行是要更容易一些的。
需要先区分你是做fpga本身的设计,还是用fpga进行设计。前者的门槛很高,而且处于卡脖子的状态;后者门槛相对比asic要低一点。
但大多数情况下我们所讨论的FPGA都属于后者:只是基于已有的FPGA芯片去做后端排列组合的工作内容,而不是设计制造新的FPGA芯片,毕竟世界上能做这件事的公司屈指可数。
<>如何选择
很多人会拿FPGA工程师和IC前端工程师直接做类比,也会有很多人选择从FPGA转行到IC前端。
FPGA转IC前端确实是比较容易,毕竟都要写Verilog。当然,这只是一个可选择的方向,并不是必须。
就数字IC来说,它和FPGA都算是还不错的方向。
FPGA的难度稍低入门也会快,但会受技术发展的限制,部分的工作内容会被新工具所取代,相对来说也会更快遇到职业瓶颈。IC前端岗位比较多,入门门槛更高,技术难度要大于FPGA,但就长期职业发展来说是比较有优势的。
说简单一些:如果想要入行快,可以选择FPGA。但如果追求更高的天花板,就可以选择IC前端。