很多粉丝问我,嵌入式方向中的fpga怎么样?收入如何?
前言 讲述fpga前,我们先讲讲当年中兴被制裁的问题。
美国前总统特朗普曾经发布过一条禁令,由于中兴违反了美国的某个条例,禁止美国已经国外任何一家公司向中兴销售fpga芯片。这个时候,一定会有抬杠青年说,我见过国内生产的fpga芯片,还用过呢。【通常遇到这一类质疑声,我一般都会说:你是对的!】
后来中兴没有办法,只能妥协了,美国派了人入驻中兴,还签了一些协议。最后才恢复到原来的买卖关系中。
要知道cpu、gpu、fpga三者能力相加就是芯片的未来!
fpga门槛之高在芯片行业里无出其右。
fpga是一个本领群集型的行业,没有坚实的本领功底,很难造成有角逐力的产物。
好了,我们来介绍下到底什么是fpga吧!
一、什么是fpga? fpga 是一种硬件可重构的体系结构。它的英文全称是field programmable gate array,中文名是现场可编程门阵列。
fpga就是一个可以通过编程来改变内部结构的芯片,fpga常年来被用作专用芯片(asic)的小批量替代品,
同时也在微软、百度等公司的数据中心大规模部署,以同时提供强大的计算能力和足够的灵活性。
在没有fpga之前,要想实现一个新计算机体架构的设计想法,
必须要开发一个asic作为原型,在面板上安装很多个体积庞大的ic。
但是,与这些需要投入巨大成本和精力的方式不同,一旦用户创建了具有多个fpga的原型板,就可以立即运行您设计的新架构。
而且,修正和更改规格也变得轻松简单。
要知道、流片的价格可不低!
因此,许多新的架构应运而生因此,对可重构处理器的研究和对新fpga架构的研究也开始蓬勃发展,
在此之后,fpga使用灵活,适用性强的特征在通信/图像处理领域也大获好评,并将其应用于路由器等通信网络的各种设备中。
与asic的概念截然相反,fpga的概念是在短时间能以低成本让用户得到想要的逻辑。
赛灵思xilinx公司 可编程fpga技术于上个世纪80年代初由美国赛灵思xilinx公司发明。
xilinx于1985年首次推出商业化产品“xc2000”。
近40年来,先后有超过60家以上的公司从事过fpga技术与产品的研发,
其中包括intel、ibm、amd、ti、ge、at&t、摩托罗拉、朗讯、三星、东芝、飞利浦等实力雄厚的大公司,
但绝大多数在耗费了上亿美元后功亏一篑!
欧洲、日本、韩国、等经济强国和中国台湾等地区都尚未真正掌握其核心技术。
二、fpga的应用场景 fpga是集成电路大产业中的小领域,5g和ai为行业增长提供确定性,国产替代叠加行业增长,国产fpga市场腾飞在即。
全球fpga市场规模走势及未来预测:
借助5g、自动驾驶、ai,fpga需求还在逐步增大,未来空间还非常巨大。
1,通信领域。 通信领域需要高速的通信协议处理方式,另一方面通信协议随时都在修改,不适合做成专门的芯片,所以能够灵活改变的功能的fpga就成了首选
电信行业一直大量使用fpga。电信标准不断变化,建造电信设备非常困难,因此首先提供电信解决方案的公司往往会占领最大的市场份额。由于asic需要花费很长时间才能制造,因此fpga提供了捷径的机会。最初的电信设备版本开始采用fpga,这引发了fpga价格冲突。尽管fpga的价格与asic仿真市场无关紧要,但电信芯片的价格却很重要。许多年前,at&t和朗讯制造了自己的fpga,称为orca(优化的可重配置单元阵列),但就硅片的速度或尺寸而言,它们与xilinx或altera不具有竞争优势。
2,算法领域。 fpga对于复杂信号的处理性很强,可以处理多维信号。
3,嵌入式领域。 利用fpga构建一个嵌入式的底层环境,然后在此之上编写一些嵌入式软件,事务性的操作更加繁杂一些,对fpga的操作较少。
4,在安防监控领域 目前cpu很难做到多通道处理和只能检测分析,但是加上fpga之后就可以轻松解决了,尤其在图形算法领域有得天独厚的优势。
5,在工业自动化领域 fpga可以做到多通道的马达控制,目前马达电力消耗占据全球能源消耗的大头,在节能环保的趋势下,未来各类精准控制马达得以采用,一片fpga就可以控制大量的马达。
三、公司 fpga多年来被四大巨头xilinx(赛灵思)、altera(阿尔特拉)、lattice(莱迪思)、microsemi(美高森美)垄断。
还有一些小公司勉强在夹缝中生存。
其中xilinx(赛灵思)是全球领先的可编程逻辑完整解决方案的供应商。xilinx研发、制造并销售范围广泛的高级集成电路、软件设计工具以及作为预定义系统级功能的ip(intellectual property)核。
国外三巨头占据90%全球市场,国产厂商暂时落后。
fpga市场呈现双寡头垄断格局,xilinx和altera分别占据全球市场56%和31%,
在中国fpga市场中,占比也高达52%和28%,
由于技术、资金、人才上的壁垒及fpga量产带来的规模经济,行业领导者地位较为稳定。
国产厂商目前在中国市场占比约4%,未来随着国产厂商技术突破,
fpga领域国产替代或将是百亿级的机会,替代空间广阔。
altera目前已被intel收购,amd正在收购赛灵思,预计2021年底完成收购。
我国fpga公司 1、京微齐力:二次创业,瞄准ai云边端 2、上海遨格芯:从编译软件切入生态链 3、广东高云:28nm中高密度fpga 4、深圳紫光同创:高性能fpga已量产商用 5、西安智多晶:小米为第四大股东 6、上海安路科技:28nm今年批量供应 7、成都华微科技:出身国家“909”工程 8、上海复旦微电子:超大规模亿门级fpga 五、ip核 fpga有个最重要的概念就是ip核。
ip(intelligent property) 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。
如果还不理解,你就当他是一个软件模块,或者是一个积木的部件。
比如赛灵思已经基于fpga设计好了udp 核、pcie xdma 核、uart 核,我们只需要把人家的核添加到我们工程中,那么就相当于与我们的板子已经支持了这个功能。
对于fpga 开发软件,其提供的ip核越丰富,用户的设计就越方便,其市场占用率就越高。
一句话:ip核很值钱!
六、语言和举例 talk is cheap,show you code!
下面我们举一个例子来讲解
下面我们用verilog实现超前进位加法器:
例1:超前进位信号的产生原理 ab = 1 --> co = 1a + b = 1,且ci = 1 --> co =1两位多位数中第i位相加产生的进位输出co(i)可以表示位coi=aibi+(ai+bi)(cii)从全加器的真值表写出第i位和s(i)的逻辑式:si=aibi′cii′+ai′bicii′+ai′bi′cii+(ai+bi)cii上式变换位异或函数位:si=ai⊕bi⊕cii 代码:
module carry_look_aheadadder( output [3:0] s, output co, input [3:0] a, input [3:0] b, input ci );wire [3:0] co_tmp;wire [3:0] cin;assign cin[3:0] = {co_tmp[2:0],ci};//计算中间进位assign co_tmp[0] = a[0]&b[0] || (a[0] || b[0])&(cin[0]);assign co_tmp[1] = a[1]&b[1] || (a[1] || b[1])&(cin[1]);assign co_tmp[2] = a[2]&b[2] || (a[2] || b[2])&(cin[2]);assign co_tmp[3] = a[3]&b[3] || (a[3] || b[3])&(cin[3]);//计算和assign s[0] = a[0] ^ b[0] ^ cin[0];assign s[1] = a[1] ^ b[1] ^ cin[1];assign s[2] = a[2] ^ b[2] ^ cin[2];assign s[3] = a[3] ^ b[3] ^ cin[3];assign co = co_tmp[3];endmodule module carry_look_aheadadder_tb;wire [3:0] s;wire co;reg [3:0] a;reg [3:0] b;reg ci;initialbegin a = 4'b0000; b = 4'b0000; ci = 0; #10 a = 4'b1111; b = 4'b1111; ci = 0; #10 a = 4'b1100; b = 4'b1001; ci = 0; #10 a = 4'b0111; b = 4'b0110; ci = 0; #10 a = 4'b0101; b = 4'b0101; ci = 1; #10 a = 4'b1110; b = 4'b1001; ci = 1; #10 a = 4'b0010; b = 4'b0110; ci = 1; #10 a = 4'b0110; b = 4'b1100; ci = 1; #10 $finish;endinitial begin $fsdbdumpfile(test.fsdb); $fsdbdumpvars();endcarry_look_aheadadder u_carry_look_aheadadder( .s(s), .co(co), .a(a), .b(b), .ci(ci) );endmodule 结果:
可以看到,这个和一般的高级语言差别比较大。
学习fpga必须有过硬的硬件电路基础。
例2: 上述为lattice的一款fpga架构,你可以把它想象成一块放满电子元件的硬件电路板,图中“电路板”上的元件有iic和spi硬核接口“器件”,有nvcm程序存储“器件”,有ram数据存储“器件”,还有最小单元的lut(查找表)器件。
一般fpga工程师会使用硬件描述语言verilog或者vhdl对fpga进行“编程”,之后,再经过厂家提供的fpga开发工具(diamond或radiant、vivado)的综合、布局、布线,会产生bit文件或bin文件。
如果工程师将最终产生的bit文件或bin文件下载到fpga中,就相当于一位硬件工程师,在fpga芯片这块已经放置了“元件”的“电路板”上,进行了布线操作。(也就是把毫无关联的与器件,用铜线连接起来)
下载程序后的fpga,我们就不能简单称之为“电路板”了。
举个例子,fpga实现的功能是spi转并口,那么这块fpga就可以称为“spi接口转换板”。
当然,fpga和“电路板”终究是不同的,fpga可以进行重复编程,相当于一块可以反复布线的电路板。
七、为什么效率会如此之高? 1. fpga与gpu的区别本质上是体系结构的区别 cpu、gpu 都属于冯·诺依曼结构,指令译码执行、共享内存。
fpga 本质上是无指令、无需共享内存的体系结构。
cpu与fpga区别之(指令):cpu结构——有指令:冯氏结构中,由于执行单元(如 cpu 核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,因此 gpu 使用 simd(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,cpu 也支持 simd 指令。fpga结构——无需指令:而 fpga 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。
cpu与fpga区别之(内存)cpu结构——仲裁与共享内存:冯氏结构中使用内存有两种作用。一是保存状态,二是在执行单元间通信。由于内存是共享的,就需要做访问仲裁;为了利用访问局部性,每个执行单元有一个私有的缓存,这就要维持执行部件间缓存的一致性。
fpga结构——无需仲裁与共享内存:对于保存状态的需求,fpga 中的寄存器和片上内存(bram)是属于各自的控制逻辑的,无需不必要的仲裁和缓存。对于通信的需求,fpga 每个逻辑单元与周围逻辑单元的连接在重编程(烧写)时就已经确定,并不需要通过共享内存来通信。
fpga 同时拥有流水线并行和数据并行,而 gpu 几乎只有数据并行(流水线深度受限)。
fpga流水线与数据并行处理:例如:处理一个数据包有 10 个步骤,fpga 可以搭建一个 10 级流水线,流水线的不同级在处理不同的数据包,每个数据包流经 10 级之后处理完成。每处理完成一个数据包,就能马上输出。
gpu数据并行处理:而 gpu 的数据并行方法是做 10 个计算单元,每个计算单元也在处理不同的数据包,
然而所有的计算单元必须按照统一的步调,做相同的事情(simd,single instruction multiple data)。
这就要求 10 个数据包必须一起输入、一起输出,输入输出的延迟增加了。
总结一句话,很多算法如果用纯软件实现,需要很多条指令才能完成,如果用fpga,只需要在有限个时钟周期即可完成,速度快的不是一点半腥。
八、收入 fpga军品使用非常广泛,基本上只要涉及无线通信的产品都会涉及到fpga开发。
尤其在高校里,应用非常广,这个领域,特别容易发论文(博士论文)
还有一些其他领域都是些小公司,工控机器人,3d成像,裸眼3d公司,led拼接屏公司,
通信领域用的比较多,还有些大数据的,比如说腾讯和百度也有类似的岗位做数据挖掘
一口君随手截取了某app发布的南京、上海、深圳的fpga岗位信息。
可见收入一般2万到5万,
和互联网寡头动辄上百万年薪,没法比,
和金融收入也没法比,
整体来说中规中矩吧!
对比软件行业属于薪水较低 但是经验积累时间长了,
工资会很高,越老越厉害,后面就比软件工资高了。
一口君曾经和龙芯的技术人员交流过,他们的中流砥柱都是做fpga出身的!
迪拜道路与交通管理局结束了一项研究,评估了其人工智能战略的现状
学习STM32的思路和关键步骤
降噪无线蓝牙耳机哪款好?2020真无线蓝牙耳机推荐
直流充电桩充电异常分析
浅谈控制系统设计的波特图,相位裕度
FPGA太强了,就是有点小贵!
中日开始了加速氢燃料电池合作与深化零部件领域合作
一厅多用,XR虚拟演播厅的百变空间!
如何根据型号选择固态继电器
欧姆龙发布面向半导体行业的[RFID系统 V640系列]
贝锐科技携手上海市物联网协会专家,浅谈工业物联网数字化转型
台积电拟不超52.62亿美元增资熊本子公司,兴建第二座c厂
这个机器人可以让你家的植物像动物一样运动
38译码器真值表以及功能与原理
智慧工厂解决方案_AI人工智能
跨链原子交换的流程解析
美商艾湃AG-750M评测 价格并不便宜
日本服务机器人可做炒饭、甜甜圈与鸡尾酒
英特尔傲腾数据中心级持久内存(AEP)在Redis上的应用实践
!!卖/买 Marconi 2955B 2955B 2955