当前位置:首页 > 新闻资讯 > FPGA之家动态 >

FPGA是什么呢,通透讲解单片机和FPGA的区别

时间:2026-02-18      来源:FPGA_UCY 关于我们 0

FPGA是什么呢,通透讲解单片机和FPGA的区别

fpga是什么_FPGA与CPU结合应用_单片机与FPGA的区别

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

FPGA与CPU结合应用_fpga是什么_单片机与FPGA的区别

一.单片机和FPGA的区别

单片机又称单片微控制器(Single-chip MCU),它其实就是集成在1个硅片上的计算机系统。现在市场上主流的单片机基本都使用的是ARM核,51单片机基本上已经退出历史舞台了,只有在一些特定场合还有使用。严格来说,单片机是没有I/O设备的,这也是它和计算机最大的区别。然而,我们常说的单片机往往指的是单片机开发板,这种开发板不仅包含单片机,还包含厂商开发设计的外围电路和各种外设。最常见的ARM单片机是STM32系列,它的内核是Cortex-M3/M4,外设则包含LED灯、蜂鸣器、LCD显示屏、摄像头、片上内存和各种IO口等。图1给出的是正点原子的STM32F1开发板,最中间的那个黑色的、上面写着ARM三个字母的芯片就是STM32F1芯片(即单片机),只占板子的很小一部分,芯片周围则是外围电路和外设。一般来说,我们买到的STM32开发板往往就自带有LED灯、蜂鸣器等外设,而摄像头、LCD显示屏则需要额外购买,厂商只在开发板上预留相应的接口。

单片机与FPGA的区别_FPGA与CPU结合应用_fpga是什么

图1正点原子STM32F1开发板

那么,FPGA又是什么呢?FPGA英文全称为Field Programmable Gate Array,它的中文名是现场可编程逻辑门阵列。FPGA主要是由可编程逻辑阵列和各种外设组成的,它是一种半定制电路。通过使用quartus或vivado这些开发软件编写verilog或VHDL程序,我们可以实现并综合出各式各样的数字电路,并可以把电路“烧”进FPGA器件,完成电路在物理层面上的实现。FPGA是可以进行无限次“擦写”的,只有逻辑资源足够,FPGA理论上可以实现所有的数字电路,哪怕是CPU这样复杂的超大型电路。然而,FPGA的逻辑资源往往是很匮乏的,哪怕是在今天,也难以完成大规模的浮点运算。而且,由于FPGA的基本单元使用的是可配置逻辑单元,工艺制程往往会受到限制,总会比ASIC落后好几代,并且工作频率也一直达不到CPU早已标配的GHz。

单片机与FPGA的区别_FPGA与CPU结合应用_fpga是什么

图2 Altera DE2-115开发板

FPGA最大的优点是它的并行度高,我们可以在FPGA上设计并实现N维的并行流水线,在时钟的驱动下,这些流水线可以同时进行工作,能极大地减小运算时间和提高运算效率。对于单片机而言,单片机的主体其实就是CPU,而CPU执行运算是串行的。在进行一次运算时,一般是先由CPU向运算单元发送指令,然后运算器进行运算并给出结果,接着CPU接收到计算结果并进行暂存,再进行下一次运算。此外,对于CPU而言,芯片大部分面积是控制逻辑单元,只有很少一部分是运算单元。因此,在执行高密集度运算时,CPU是难以胜任的。但是,CPU所擅长的逻辑控制,却正是FPGA所欠缺的。由于FPGA所有功能均依靠硬件实现(这里指传统的FPGA),完全不使用软件,甚至无法实现分支条件跳转等操作。

二.CPU和FPGA的结合

从上面的分析可以看到,CPU长于控制,而FPGA则擅长运算。因此,很快就有人想到了在FPGA开发里引入CPU来进行逻辑控制,以弥补FPGA的缺陷。最开始,这种“联姻”是由FPGA开发商主导的,Altera最早提出了SOPC(System On a Programmable Chip,可编程片上系统)技术,这种技术使用FPGA的逻辑和资源搭建的一个软核CPU系统,后来Xilinx也进行了跟进。Altera主推的软核是Nios-II,而Xilinx主推的软核则是MicroBlaze。老实说,这些软核的效率并不高,而且它们都有自己的一套开发环境和开发流程,实际使用起来其实非常麻烦,而且应用场景也不多。因此,这些软核并没有在FPGA开发中引起什么变革,长期处于厂商力推,而市场却不温不火的状态。

然而,时代总是在前进的,随着无人驾驶、大数据分析、物联网、人工智能等行业的发展,嵌入式平台的应用范围得到了极大的扩展,但这些应用场景对算力提出了新的要求,单片机这种传统的嵌入式平台的算力就显得捉襟见肘。Xilinx开始意识到,与其自己开发软核,来为FPGA打辅助;不如反过来让FPGA给CPU打辅助,直接在FPGA集成ARM的Cortex-A系列处理器。这样,FPGA就实际意义上成了CPU的外设,专门用于计算,除此之外的所有事,都由强大的Cortex-A系列处理器来完成。在2010年4月硅谷举行的嵌入式系统大会上,Xilinx发布了ZYNQ 7000系列FPGA,它由双核A9+Xilinx 7系列FPGA组成。严格意义上,它其实不算是FPGA,更像是嵌入式开发平台。然而,它又和传统的嵌入式开发平台不一样,它又需要使用FPGA搭建定制电路,这就需要开发者掌握较高的硬件开发能力。这款产品推出时,受到了很大的质疑,很多人都觉得它实用性并不会太高,只是Xilinx推出的一个实验性产品。

fpga是什么_FPGA与CPU结合应用_单片机与FPGA的区别

图3 ZYNQ7000开发板

但是,ZYNQ却取得了巨大的成功,成为了Xilinx最著名的FPGA开发板系列之一。Xilinx的判断是正确的,在随后的10年内,解决嵌入式平台的算力瓶颈成为了行业发展的主流方向。就拿人工智能来说,在ZYNQ推出后,很多大学研究小组用它完成了卷积神经网络在FPGA平台上的部署,实现了对卷积神经网络的硬件加速。FPGA平台相对于GPU有更低的功耗,相比于ASIC有可编程性,使得对FPGA加速器的研究一度成为人工智能领域的热门方向。当然,这时的FPGA不是传统的FPGA了,而是CPU+FPGA。这种模式也被Altera迅速跟进,它们也推出了双核A9+Altera FPGA的开发平台,比如DE1-SoC等。严格来说,Cortex-A9处理器不是单片机(即微控制器,MCU),而是微处理器(MPU),但是它们都是CPU。因此,在上文中,我们并没有说单片机和FPGA进行“联姻”,而是直接说的是CPU和FPGA进行联姻,这主要是为了保证文章的“严谨性”。在这一时期,虽然两者的“联姻”主要还是由FPGA开发商推动的,但FPGA却成为了CPU的一个大型外设,由主角变为了配角。

三.ARM DesignStart计划的推出

在PC时代,英特尔+Windows组成的“Wintel联盟”长期处于绝对的统治地位,在这一时期ARM的存在感其实很低。但是,随着智能手机、智能导航仪等移动端平台的发展,ARM开始成长为移动市场的行业巨头。关于ARM为何能在移动端击败英特尔,有很多种不同的说法,但主要原因总结起来有3点。第一,英特尔低估了移动端的发展潜力,没有及时进场。第二,ARM处理器采用的是RSIC指令集,而英特尔采用的是CSIC指令集,虽然CSIC指令集性能更占优,但功耗往往会非常高,因此不适用于移动端产品;而RSIC指令能做到低功耗,这在移动端是绝对的优势。第三,ARM采用IP授权的商业模式,和谷歌、苹果、高通、三星等公司形成了联盟,组建起了以ARM为核心的生态圈。总的来说,ARM的崛起主要还是由于移动端市场的发展,因此ARM注定不会漠视在物联网时代会大放异彩的嵌入式平台。


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言