很多入行不久的朋友潜意识里会认为FPGA是很博识的东西,能节制FPGA的一定都是极其厉害的人。
实在,这是一个误解。
我们所谈论的FPGA只是基于已有的FPGA芯片去做后端排列组合的事情内容,而不是设计制造新的FPGA芯片,天下上能做这件事的公司屈指可数。

在解释FPGA为什么转IC前端之前,须要明确一下观点。
一、什么是FPGA?
FPGA像是IC行业里的乐高(拼乐高很随意马虎,造乐高就极难了),它由大量基本的单元构成,让你组成自己想实现的功能。
FPGA:Field(现场) Programmable(可编程) Gate(逻辑门) Array(阵列)
这个中凸显了大量的逻辑门单元,这些逻辑单元是可以在任何地方随时进行组装的,这是不是跟组装积木一样?
在硬件描述措辞涌现之前,电路是用门搭的。
逻辑门单元是构成统统数字逻辑器件的基本单元,在数字天下里你想做任何事情、实现任何功能,都可以通过逻辑门的堆砌来实现,也便是说FPGA在数字领域里险些无所不能。
前些年某FPGA公司在宣扬其产品是称之为“万能芯片”,万能有些夸年夜,但FPGA高度灵巧,理论上来讲,只要有足够的资源(积木数量足够多)险些可以实现数字域的任何功能,受限的是速率、功耗以及系统的本钱。
二、FPGA和ASIC的差异和共通点
有FPGA的自由组合,自然也有ASIC的量身定制,这二者的差异十分明显。
1、浸染
ASIC——专用集成电路
ASIC由IC设计职员根据特定的电路需求,设计专用的逻辑电路,在设计完成后天生设计网表,交给芯片制造厂家流片。在流片之后,内部逻辑电路就固定了,芯片的功能也就固定的。
FPGA——现场可编程门阵列
FPGA由Xilinx,Alter等器件厂家供应,设计职员只须要根据需求选择相应的器件,然后设计逻辑电路,并下载到FPGA器件中去,实现需求的电路功能,随时可以修正电路功能。
2、适用性
FPGA紧张用于哀求快速迭代或者小批量产品,或者作为ASIC的算法验证加速。
ASIC用于设计规模大,繁芜度比较高的芯片,或者是成熟度高,产量比较大的产品。
3、本钱
小批量需求时,单片FPGA本钱低于ASIC,随着产品量的增加,单片ASIC本钱逐步降落
4、功耗
在相同工艺条件下,FPGA要大于ASIC。FPGA,尤其是基于占用大量硅面积的、每个单元六个晶体管的静态存储器(SRAM)的查寻表(LUT)和配置元件技能的FPGA,其功耗要比对等的ASIC大得多
5、速率
FPGA内部是基于通用的构造,根据RTL设计选择内部布局布线,当然通用一定导致冗余。
ASIC是根据设计需求,最优化cell逻辑资源,并且做到最优布局走线,降落走线延迟和CELL延时。
显而易见,FPGA在适用性、普遍性、本钱、功耗、速率等等方面都难以与ASIC竞争。
至于共通点,须要理解节制FPGA应该具备以下能力:
1、须要有数字逻辑的设计思想 :针对任意一项详细的功能,如何组合你器件内的单元来实现,须要哪些单元?如何连接这些单元?各个单元之间连接的先后顺序如何?
2、一套从头到尾实行的设计环境(FPGA厂商供应的编译工具 - Lattice的Diamond、Intel的Quartus、Xilinx的Vivado)
3、一种连接你的逻辑思维和机器操作之间的沟通工具 - 设计措辞(事理图、Verilog、VHDL等等)。
而设计思想和措辞工具在ASIC上也是所必须的,说白了大家都要写Verilog,很多地方自然互通。
三、FPGA转IC前真个缘故原由
并不是说FPGA必须转数字IC,这只是一个方向。
真正的缘故原由是做RTL的工程师一定要往系统层面的工程师转,只在RTL和协议这条路上走下去,没有任何希望。
19年的Xilinx 开拓者大会(XDF)之后,新的开拓平台和自适应芯片降落了FPGA的利用门槛,将软硬件放在同一平台上开拓,尽可能的利用高等软件措辞(c++、python等)进行整体SOC的开拓,这也是将来FPGA开拓的趋势,让无论是否会HDL的人都能立立时手利用。
最开始从底层做起,逐步的积累学习,终极能在SOC上实现软硬件的整体把控设计,才能在当前岗位上提升一个层面。
RTL出身的工程师,在这方面本身就具有一点点上风,而且从技能上来说,数字IC设计只会比FPGA更加繁芜:
更快的时钟更统一的coding style更严格的STA更系统的仿真更低的功耗更少的可用资源至于UVM仿真,即便不做IC,传统的FPGA工程师也该当有所节制,一个别系的仿真对产品的开拓和后期掩护,节省的韶光不可估量。
FPGA受限于环境成分,ASIC/SOC一定是之后发展的大趋势。
如果乐意待在目前的舒适区,做个传统的FPGA工程师也没什么不好,但是想事情上有打破,就大胆迈向IC前端吧!