您当前的位置:首页 > 电脑百科 > 硬件技术 > 硬件知识

什么是FPGA?为什么FPGA会如此重要?

时间:2021-12-01 09:35:59  来源:  作者:一口Linux

CPU、GPU、FPGA三者能力相加就是芯片的未来!

很多粉丝问我,嵌入式方向中的FPGA怎么样?收入如何?

前言

讲述FPGA前,我们先讲讲当年中兴被制裁的问题。

美国前总统特朗普曾经发布过一条禁令,由于中兴违反了美国的某个条例,禁止美国已经国外任何一家公司向中兴销售FPGA芯片。

什么是FPGA?为什么FPGA会如此重要?

 

这个时候,一定会有抬杠青年说,我见过国内生产的FPGA芯片,还用过呢。【通常遇到这一类质疑声,我一般都会说:你是对的!】

后来中兴没有办法,只能妥协了,美国派了人入驻中兴,还签了一些协议。最后才恢复到原来的买卖关系中。

要知道CPU、GPU、FPGA三者能力相加就是芯片的未来!

FPGA门槛之高在芯片行业里无出其右。

FPGA是一个本领群集型的行业,没有坚实的本领功底,很难造成有角逐力的产物。

好了,我们来介绍下到底什么是FPGA吧!

一、什么是FPGA?

FPGA 是一种硬件可重构的体系结构。它的英文全称是Field Programmable Gate Array,中文名是现场可编程门阵列

什么是FPGA?为什么FPGA会如此重要?

 

FPGA就是一个可以通过编程来改变内部结构的芯片,FPGA常年来被用作专用芯片(ASIC)的小批量替代品,

同时也在微软、百度等公司的数据中心大规模部署,已同时提供强大的计算能力和足够的灵活性。

什么是FPGA?为什么FPGA会如此重要?

 

在没有FPGA之前,要想实现一个新计算机体架构设计想法,

必须要开发一个ASIC作为原型,在面板上安装很多个体积庞大的IC。

但是,与这些需要投入巨大成本和精力的方式不同,一旦用户创建了具有多个FPGA的原型板,就可以立即运行您设计的新架构。

而且,修正和更改规格也变得轻松简单。

要知道、流片的价格可不低!

因此,许多新的架构应运而生因此,对可重构处理器的研究和对新FPGA架构的研究也开始蓬勃发展,

在此之后,FPGA使用灵活,适用性强的特征在通信/图像处理领域也大获好评,并将其应用于路由器等通信网络的各种设备中。

与ASIC的概念截然相反,FPGA的概念是在短时间能以低成本让用户得到想要的逻辑

赛灵思Xilinx公司

可编程FPGA技术于上个世纪80年代初由美国赛灵思Xilinx公司发明。

Xilinx于1985年首次推出商业化产品“XC2000”。

什么是FPGA?为什么FPGA会如此重要?

 

近40年来,先后有超过60家以上的公司从事过FPGA技术与产品的研发,

其中包括Intel、IBM、AMD、TI、GE、AT&T、摩托罗拉、朗讯、三星、东芝、飞利浦等实力雄厚的大公司,

但绝大多数在耗费了上亿美元后功亏一篑!

欧洲、日本、韩国、等经济强国和中国台湾等地区都尚未真正掌握其核心技术。

二、FPGA的应用场景

FPGA是集成电路大产业中的小领域,5G和AI为行业增长提供确定性,国产替代叠加行业增长,国产FPGA市场腾飞在即。

什么是FPGA?为什么FPGA会如此重要?

 

全球FPGA市场规模走势及未来预测:

什么是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?为什么FPGA会如此重要?

 

FPGA市场呈现双寡头垄断格局,Xilinx和Altera分别占据全球市场56%和31%,

在中国FPGA市场中,占比也高达52%和28%,

由于技术、资金、人才上的壁垒及FPGA量产带来的规模经济,行业领导者地位较为稳定。

国产厂商目前在中国市场占比约4%,未来随着国产厂商技术突破,

FPGA领域国产替代或将是百亿级的机会,替代空间广阔。

Altera目前已被Intel收购,AMD正在收购赛灵思,预计2021年底完成收购。

什么是FPGA?为什么FPGA会如此重要?

 


什么是FPGA?为什么FPGA会如此重要?

 

我国FPGA公司

  • 1、京微齐力:二次创业,瞄准AI云边端
  • 2、上海遨格芯:从编译软件切入生态链
  • 3、广东高云:28nm中高密度FPGA
  • 4、深圳紫光同创:高性能FPGA已量产商用
  • 5、西安智多晶:小米为第四大股东
  • 6、上海安路科技:28nm今年批量供应
  • 7、成都华微科技:出身国家“909”工程
  • 8、上海复旦微电子:超大规模亿门级FPGA

五、IP核

FPGA有个最重要的概念就是IP核。

IP(Intelligent Property) 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。

什么是FPGA?为什么FPGA会如此重要?

 

如果还不理解,你就当他是一个软件模块,或者是一个积木的部件。

比如赛灵思已经基于FPGA设计好了UDP 核、PCIE xDMA 核、UART 核,我们只需要把人家的核添加到我们工程中,那么就相当于与我们的板子已经支持了这个功能。

对于FPGA 开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占用率就越高。

一句话:IP核很值钱!

六、语言和举例

talk is cheap,show you code!

下面我们举一个例子来讲解

下面我们用verilog实现超前进位加法器:

例1:超前进位信号的产生原理

ab = 1 --> co = 1
a + 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;

initial
begin
          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;
end

initial begin
  $fsdbDumpfile("test.fsdb");
  $fsdbDumpvars();
end

carry_look_aheadadder u_carry_look_aheadadder(
                                              .s(s),
                                              .co(co),
                                              .a(a),
                                              .b(b),
                                              .ci(ci)
                                              );

endmodule

结果:

什么是FPGA?为什么FPGA会如此重要?

 


什么是FPGA?为什么FPGA会如此重要?

 

可以看到,这个和一般的高级语言差别比较大。

学习FPGA必须有过硬的硬件电路基础。

例2:

什么是FPGA?为什么FPGA会如此重要?

 

上述为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 本质上是无指令、无需共享内存的体系结构。

  1. CPU与FPGA区别之(指令): CPU结构——有指令: 冯氏结构中,由于执行单元(如 CPU 核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。 由于指令流的控制逻辑复杂,不可能有太多条独立的指令流, 因此 GPU 使用 SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU 也支持 SIMD 指令。 FPGA结构——无需指令: 而 FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。
  2. CPU与FPGA区别之(内存) CPU结构——仲裁与共享内存: 冯氏结构中使用内存有两种作用。一是保存状态,二是在执行单元间通信。 由于内存是共享的,就需要做访问仲裁; 为了利用访问局部性,每个执行单元有一个私有的缓存,这就要维持执行部件间缓存的一致性。

FPGA结构——无需仲裁与共享内存: 对于保存状态的需求,FPGA 中的寄存器和片上内存(BRAM)是属于各自的控制逻辑的,无需不必要的仲裁和缓存。 对于通信的需求,FPGA 每个逻辑单元与周围逻辑单元的连接在重编程(烧写)时就已经确定,并不需要通过共享内存来通信。

FPGA 同时拥有流水线并行和数据并行,而 GPU 几乎只有数据并行(流水线深度受限)。

  1. FPGA流水线与数据并行处理: 例如:处理一个数据包有 10 个步骤,FPGA 可以搭建一个 10 级流水线,流水线的不同级在处理不同的数据包,每个数据包流经 10 级之后处理完成。每处理完成一个数据包,就能马上输出。
  2. GPU数据并行处理: 而 GPU 的数据并行方法是做 10 个计算单元,每个计算单元也在处理不同的数据包,

然而所有的计算单元必须按照统一的步调,做相同的事情(SIMD,Single Instruction Multiple Data)。

这就要求 10 个数据包必须一起输入、一起输出,输入输出的延迟增加了。

总结一句话,很多算法如果用纯软件实现,需要很多条指令才能完成, 如果用FPGA,只需要在有限个时钟周期即可完成,速度快的不是一点半腥。

八、收入

FPGA军品使用非常广泛,基本上只要涉及无线通信的产品都会涉及到FPGA开发。

尤其在高校里,应用非常广, 这个领域,特别容易发论文(博士论文)

还有一些其他领域都是些小公司,工控机器人,3d成像,裸眼3d公司,led拼接屏公司,

通信领域用的比较多,还有些大数据的,比如说腾讯和百度也有类似的岗位做数据挖掘

一口君随手截取了某App发布的南京、上海、深圳的FPGA岗位信息。

什么是FPGA?为什么FPGA会如此重要?

 


什么是FPGA?为什么FPGA会如此重要?

 


什么是FPGA?为什么FPGA会如此重要?

 

可见收入一般2万到5万,

和互联网寡头动辄上百万年薪,没法比,

金融收入也没法比,

整体来说中规中矩吧!

对比软件行业属于薪水较低 但是经验积累时间长了,

工资会很高,越老越厉害,后面就比软件工资高了。

一口君曾经和龙芯的技术人员交流过, 他们的中流砥柱都是做FPGA出身的!



Tags:FPGA   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
CPU、GPU、FPGA三者能力相加就是芯片的未来!很多粉丝问我,嵌入式方向中的FPGA怎么样?收入如何?前言讲述FPGA前,我们先讲讲当年中兴被制裁的问题。美国前总统特朗普曾经发布过一条...【详细内容】
2021-12-01  Tags: FPGA  点击:(48)  评论:(0)  加入收藏
EETOPEETOP创芯网(易特创芯):国内著名的老牌电子工程师社区及半导体行业门户网站(150万会员)www.eetop.cn bbs.eetop.cnblog.eetop.cn edu.eetop.cn来源:EETOP编译自electron...【详细内容】
2020-08-07  Tags: FPGA  点击:(108)  评论:(0)  加入收藏
ARMARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。更早称作Acorn RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32...【详细内容】
2020-08-06  Tags: FPGA  点击:(90)  评论:(0)  加入收藏
对于最近研究过新车的任何人来说,很难不注意到汽车电子产品的发展是多么的迅速。仅仅将三年前的汽车安全性技术与今天的技术进行对比,您就会发现摄像头数量已显著增加,以支持诸...【详细内容】
2020-07-27  Tags: FPGA  点击:(103)  评论:(0)  加入收藏
现场可编程门阵列(FPGA)技术不断呈现增长势头。 1984年Xilinx刚刚创造出FPGA时,它还是简单的胶合逻辑芯片,而如今在信号处理和控制应用中,它已经取代了自定制专用集成电路(ASIC)和...【详细内容】
2019-12-18  Tags: FPGA  点击:(137)  评论:(0)  加入收藏
▌简易百科推荐
首先我们要弄懂什么是“雷电”接口。其实“雷电”本质上和咱们常见的HDMI,DP等一样是一种传输协议的简称,全程英文名叫做Thunderbolt。请注意与其说他是一个接口倒不如说他是...【详细内容】
2021-12-27  小伊评科技    Tags:雷电接口   点击:(2)  评论:(0)  加入收藏
畅谈关于装修的那些事,分享装修的各种经验和知识。大家好,我是畅谈装修,关注我即可了解更多关于装修的那些事!路由器现在已经是居家生活中“不可缺少的伙伴”,没有了它,相信连饭吃...【详细内容】
2021-12-27  畅谈装修    Tags:路由器   点击:(1)  评论:(0)  加入收藏
此前有关厂商销售的显示器上,HDMI 2.1的标示问题闹得沸沸扬扬。按照官方的说法,HDMI 2.0标准已经不存在了,以后只有HDMI 2.1标准,后者的功能是可选的,显示器制造商只要具体说明该...【详细内容】
2021-12-24  超能网    Tags:HDMI   点击:(8)  评论:(0)  加入收藏
声卡本身会包含一个DAC。DAC字面上直接翻译,就是“数字到模拟转换器”。有时候,人们认为声卡的DAC不够好,所以从声卡的数字输出接口,外接独立的DAC,来改善声音。DAC首选的接口是...【详细内容】
2021-12-10  亲爱的客户    Tags:解码器   点击:(15)  评论:(0)  加入收藏
1.为什么要有虚拟内存 在早期的计算机中,是没有虚拟内存的概念的。我们要运行一个程序,会把程序全部装入内存,然后运行。 当运行多个程序时,经常会出现以下问题: 1)进程地址空间...【详细内容】
2021-12-08  linux上的码农    Tags:虚拟地址   点击:(21)  评论:(0)  加入收藏
CPU、GPU、FPGA三者能力相加就是芯片的未来!很多粉丝问我,嵌入式方向中的FPGA怎么样?收入如何?前言讲述FPGA前,我们先讲讲当年中兴被制裁的问题。美国前总统特朗普曾经发布过一条...【详细内容】
2021-12-01  一口Linux    Tags:FPGA   点击:(48)  评论:(0)  加入收藏
现在市面上常用的视频线有HDMI线、VGA线、DP线、DVI线,其中HDMI线是用的比较多的,平时直播也有很多朋友会问HDMI相关的问题,今天小泽总结了一些高频的HDMI使用问题,赶紧收藏! 所...【详细内容】
2021-11-25  SAMZHE山泽    Tags:HDMI线   点击:(32)  评论:(0)  加入收藏
本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:殇小辛 apple tv 4K使用近2年了,分享下深度使用体验 整个盒子比想象中小很多,放在电视柜里不占空间,还很好看 遥控器顶部区...【详细内容】
2021-11-09  什么值得买    Tags:Apple TV   点击:(31)  评论:(0)  加入收藏
近年来摩尔定律“失速”,使得中央处理器(CPU)的性能增长边际成本急剧上升。有研究数据表明,现在CPU的性能年化增长率(面积归一化之后)仅有3%左右。然而,人们对计算的需求依然爆发性增长。...【详细内容】
2021-11-05  赵广立  中国科学报  Tags:DPU   点击:(44)  评论:(0)  加入收藏
分享屏幕的分辨率与像素点,让大家更加直观了解显示屏清晰度。 分辩率: 分辩率是液晶显示屏像素点排列的密度,密度排列越高,显示的画面就会越清晰。 举例:2K55寸显示屏,显示尺寸为:1...【详细内容】
2021-11-04  深圳盛诚专显科技    Tags:分辨率   点击:(46)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条