这篇文章给大家聊聊关于FPGA是什么?揭秘其广泛应用的关键,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
美国前总统特朗普曾发布禁令,禁止任何美国或外国公司向中兴通讯出售FPGA芯片,因为中兴通讯违反了美国的某项规定。
[[437333]]
这时候肯定会有一些嚣张的年轻人说,我见过国产的FPGA芯片,甚至还用过。 【一般遇到这种疑问,我通常会说:你说得对!】
后来中兴通讯无奈只能妥协。美国派人到中兴通讯并签署了一些协议。最终恢复了原来的买卖关系。
要知道CPU、GPU、FPGA的综合能力才是芯片的未来!
FPGA的门槛在芯片行业是无与伦比的。
FPGA是一个技术密集型产业。没有扎实的技术基础,就很难生产出有竞争力的产品。
好了,我们先介绍一下什么是FPGA!
一、什么是FPGA?
FPGA 是一种硬件可重构架构。其英文全称是Field Programmable Gate Array,中文名称是Field Programmable Gate Array。
FPGA是一种可以通过编程改变其内部结构的芯片。多年来,FPGA 一直被用作专用芯片(ASIC) 的小批量替代品。
同时也在微软、百度等公司的数据中心大规模部署,在提供强大计算能力的同时,还提供足够的灵活性。
在没有FPGA之前,如果想实现一种新的计算机架构的设计思想,
必须将ASIC 开发为原型,并且必须在面板上安装许多笨重的IC。
然而,与这些需要投入大量成本和精力的方法不同,一旦用户创建了具有多个FPGA 的原型板,您设计的新架构就可以立即运行。
此外,修改和更改规格非常简单。
要知道,流片的价格可不低啊!
因此,出现了许多新的架构。因此,可重构处理器的研究和新型FPGA架构的研究也开始蓬勃发展。
此后,FPGA也因其使用灵活、适用性强而在通信/图像处理领域备受好评,并被应用于路由器等通信网络中的各种设备中。
与ASIC的概念完全相反,FPGA的概念是让用户在短时间内以低成本获得想要的逻辑。
赛灵思Xilinx公司
可编程FPGA技术是美国Xilinx公司于20世纪80年代初发明的。
Xilinx于1985年首次推出商业产品“XC2000”。
40年来,已有60多家公司从事FPGA技术和产品的研发。
其中包括英特尔、IBM、AMD、TI、GE、ATT、摩托罗拉、朗讯、三星、东芝和飞利浦等实力雄厚的公司。
但大多数花费数亿之后却功亏一篑!
欧洲、日本、韩国等经济强国以及中国台湾等地区尚未真正掌握其核心技术。
二、FPGA的应用场景
FPGA是大集成电路行业中的一个小领域。 5G和人工智能为行业发展提供了确定性。国产替代叠加行业增长,国内FPGA市场即将腾飞。
全球FPGA市场规模趋势及未来预测:
在5G、自动驾驶和AI的帮助下,FPGA的需求还在逐渐增加,未来空间仍然非常巨大。
1,通信领域
通信领域需要高速通信协议处理方法。另一方面,通信协议不断修改,不适合制作专用芯片。因此,能够灵活改变功能的FPGA成为了首选。
电信行业一直大量使用FPGA。电信标准不断变化,构建电信设备非常困难,因此首先提供电信解决方案的公司往往会占据最大的市场份额。由于ASIC 的制造时间较长,FPGA 提供了走捷径的机会。第一个版本的电信设备开始使用FPGA,这引发了FPGA 的价格冲突。虽然FPGA 的价格与ASIC 仿真市场无关,但电信芯片的价格却与之相关。许多年前,ATT 和Lucent 制造了自己的FPGA,称为ORCA(优化可重构单元阵列),但它们在硅速度或尺寸方面与Xilinx 或Altera 没有竞争力。
2,算法领域
FPGA处理复杂信号的能力非常强,可以处理多维信号。
3,嵌入式领域
使用FPGA构建嵌入式底层环境,然后在其之上编写一些嵌入式软件。事务性操作比较复杂,FPGA上的操作较少。
4,在安防监控领域
目前CPU难以进行多路处理且仅检测分析,但通过添加FPGA即可轻松解决,在图形算法领域具有独特的优势。
5,在工业自动化领域
FPGA可实现多路电机控制。目前,电机功耗占全球能源消耗的大部分。在节能环保的趋势下,未来将采用各种类型的精密控制电机,单个FPGA可以控制大量电机。
三、公司
FPGA多年来被Xilinx、Altera、Lattice、Microsemi四大巨头垄断。
也有一些小公司在夹缝中勉强生存。
其中,Xilinx是全球领先的完整可编程逻辑解决方案提供商。 Xilinx 开发、制造和销售各种先进集成电路、软件设计工具和作为预定义系统级功能的IP(知识产权)内核。
国外三大巨头占据全球90%的市场,国内厂商暂时落后。
FPGA市场呈现双寡头格局,Xilinx和Altera分别占据全球市场的56%和31%。
在中国FPGA市场,市场份额分别高达52%和28%。
由于技术、资金、人才等方面的壁垒,以及FPGA量产带来的规模经济,行业龙头地位相对稳定。
国内制造商目前约占中国市场的4%。未来,随着国内厂商的技术突破,
FPGA领域的国产替代可能是一个百亿的机会,替代空间广阔。
Altera已被Intel收购,AMD正在收购Xilinx,预计将于2021年底完成。
[[437335]]
[[437336]]
我国FPGA公司
1.经纬启力:二次创业,瞄准AI云边缘2.上海奥格芯:从编译软件切入生态链3.广东高云:28nm中高密度FPGA4、深圳紫光展锐:高性能FPGA已量产-量产商用5.西安智能多晶:小米为第四大股东6.上海安陆科技:28nm今年将批量供货7.成都华为科技:源自国家“909”工程8.上海复旦微电子:超大型亿门规模FPGA
五、IP核
FPGA最重要的概念是IP核。
IP(Intelligent Property)核是具有知识产权核的集成电路核的总称。它是经过反复验证的具有特定功能的宏模块。它与芯片制造工艺无关,可以移植到不同的半导体工艺上。
[[437337]]
如果你还是不明白,就把它想象成一个软件模块或者构建块的一个组件。
例如,Xilinx基于FPGA设计了UDP核、PCIE xDMA核、UART核。我们只需要把他们的核心添加到我们的项目中,这意味着我们的板子已经支持这个功能了。
对于FPGA开发软件来说,提供的IP核越丰富,用户设计就越方便,市场占有率就越高。
一句话:IP核非常有价值!
六、语言和举例
说话便宜,给你看代码!
我们举个例子来解释一下
下面我们使用verilog来实现一个进位超前加法器:
例1:超前进位信号的产生原理
ab=1--co=1a+b=1,且ci=1--co=1 两位多位中第i位相加产生的进位输出co(i) number 可以代表位coi=aibi+ (ai+bi)(cii) 从全加器的真值表中写出第i 位与s(i) 的逻辑表达式: si=aibicii+aibicii +aibicii+(ai+bi)cii 变换位异或函数位:si=aibicii 代码:
modulecarry_look_aheadadder(输出[3:0]s,outputco,输入[3:0]a,输入[3:0]b,inputci);wire[3:0]co_tmp;wire[3:0]cin;assigncin[3:0]={co_tmp[2:0],ci} ;//计算中间进位allocateco_tmp[0]=a[0]b[0]||(a[0]||b[0])(cin[0]);assignco_tmp[1]=a[1] b [1]||(a[1]||b[1])(cin[1]);分配co_tmp[2]=a[2]b[2]||(a[2]||b[2 ] )(cin[2]);assignco_tmp[3]=a[3]b[3]||(a[3]||b[3])(cin[3]);//计算和allocates[0 ]=a[0]^b[0]^cin[0];分配[1]=a[1]^b[1]^cin[1];分配[2]=a[2]^b[2 ] ^cin[2];分配[3]=a[3]^b[3]^cin[3];assignco=co_tmp[3];endmodulemodulecarry_look_aheadadder_tb;wire[3:0]s;wireco;reg[3:0]a; reg [3:0]b;regci;initialbegina=4'b0000;b=4'b0000;ci=0;#10a=4'b1111;b=4'b1111;ci=0;#10a=4'b1100;b=4'b1001;ci=0;#10a=4'b0111;b=4'b0110;ci=0;#10a=4'b0101;b=4'b0101;ci=1;#10a=4'b1110;b=4'b1001;ci=1;#10a=4'b0010;b=4'b0110;ci=1;#10a=4'b0110;b=4'b1100;ci=1;#10$完成;endinitialbegin$ fsdbDumpfile ('test.fsdb');$fsdbDumpvars();endcarry_look_aheadadderu_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结构——有指令: 在Feng结构中,由于执行单元(如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,单指令多数据)。
这就要求10个数据包必须一起输入输出,输入输出延迟增加。
综上所述,很多算法如果用纯软件实现,将需要很多指令才能完成。如果使用FPGA,它们只需要在有限数量的时钟周期内完成,这甚至不算快。
八、收入
FPGA军工产品应用广泛。基本上,任何涉及无线通信的产品都会涉及到FPGA开发。
尤其是在高等院校中,被广泛使用。在这个领域,发表论文(博士论文)特别容易。
还有一些其他领域的小公司,比如工控机器人、3D成像、裸眼3D公司、LED拼接屏公司,
多用于通信领域,也有一些在大数据领域。例如,腾讯和百度在数据挖掘方面也有类似的定位。
依依君随意截取了南京、上海、深圳某APP发布的FPGA招聘信息。
可见收入一般在2万到5万。
这和动辄几百万的互联网寡头的年薪是无法比拟的。
这是经济收入无法比拟的。
总体来说还是比较满意的!
相比软件行业,薪资较低,但需要较长时间积累经验。
工资会很高。你年纪越大,你就会越好。以后工资会比软件高。
易一君曾与龙芯的技术人员交流,发现他们的中流砥柱都是FPGA出身!
九、如何学习FPGA
网上有很多关于学习FPGA的资料。
需要开发板。
依依君也多次强调,
购买开发板时,首先要关注的不是价格。
还要注意所使用的芯片是否是最新的。
最重要的是信息是否足够全面。
以下是Atom 推荐的几款FPGA 开发板:
学习的视频资料还是比较全面的。
提供视频材料和示例源代码。
如果你还想了解更多这方面的信息,记得收藏关注本站。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7809.html
用户评论
我从没听说过FPGA是什么,看起来很有潜力!
有7位网友表示赞同!
想了解一下FPGA在哪些领域都有应用,有没有可以举例说明的?
有15位网友表示赞同!
这篇文章能让我更深入地理解什么是FPGA吗?我现在对这方面比较陌生。
有7位网友表示赞同!
FPGA的重要性听起来很高,它的优势相比传统的CPU或GPU在哪里呢?
有13位网友表示赞同!
我一直好奇芯片是如何设计和制造的,这篇关于FPGA的文章会不会涉及到这些内容?
有5位网友表示赞同!
如果我对电子电路有一定了解,是可以学习并使用FPGA吗?
有17位网友表示赞同!
FPGA是不是只有在专业领域才会用到?日常生活中有没有什么应用场景呢?
有9位网友表示赞同!
现在很多智能设备都基于芯片的计算,FPGA在这方面的角色究竟是什么?
有15位网友表示赞同!
我觉得硬件和软件都是很重要的,FPGA作为一种新式硬设备,应该有很多有趣的应用吧!
有7位网友表示赞同!
读到文章标题我就觉得很有意思,希望能够了解FPGA的独特之处。
有16位网友表示赞同!
我最近在学习嵌入式系统,不知道FPGA在这个领域中扮演着怎么样角色?
有18位网友表示赞同!
是不是学点编程知识也能更好地理解FPGA的使用方法?
有10位网友表示赞同!
文章标题很吸引人,期待能详细介绍FPGA的运作原理和用途。
有10位网友表示赞同!
学习新的技术总感觉很有成就感,希望这篇关于FPGA的文章可以给我一些启发。
有10位网友表示赞同!
如果想了解FPGA,我应该从哪本教材开始入手呢?
有15位网友表示赞同!
FPGA的价格比较昂贵吗?和其他的芯片相比有哪些优劣势?
有7位网友表示赞同!
除了用在硬件方面,FPGA还能应用于其他领域吗?
有8位网友表示赞同!
这篇评论能不能分享一下一些常见的FPGA应用案例?
有16位网友表示赞同!
希望文章能够介绍一些FPGA开发平台和工具,这样学习起来会更容易。
有15位网友表示赞同!